Shodan API와 Metasploit을 이용한 Exploiting script - AutoSploit

원래 LanGhost 내용으로 글 써볼까 헀다가, 급 주제를 바꾸어 툴 하나에 대해 이야기하도록 하죠. 오늘은 이번주에 나름 핫했던 AutoSploit입니다.

What is AutoSploit?

AutoSploit은 원격 호스트에 대한 자동 서칭, Exploit 툴, 스크립트 정도로 생각하시면 좋을 것 같습니다. 파이썬 기반의 코드이며 Shodan을 이용해서 임의의 대상을 선정하고, Metasploit 모듈로 Exploiting 합니다. 자동을 대상을 선정하고, 공격하고, 권한을 획득할 수 있다는 점에서 조금 리스크한 툴로 보입니다만, 이미 350명이 넘는 사람이 fork 중이네요.

File tree

.
├── Docker
   ├── Dockerfile
   ├── README.md
   └── database.yml
├── LICENSE
├── README.md
├── autosploit.py        // Main code
├── modules.txt          // Msf module list
└── requirements.txt     // 의존성 파일 (따로 PR한)

How to install?

저장소에서 다운로드합니다.

git clone https://github.com/NullArray/AutoSploit
cd AutoSploit

필요한 라이브러리 설치가 필요합니다.shodan과 blessings 입니다.

pip install shodan
pip install blessings

Pull-Request를 하나 보냈는데, 머지 된다면 pip install -r requirements.txt로 되겠지요.

Metasploit 어떻게 연결했을까?

처음에 툴 내용을 대충보았을땐 Metasploit과 직접 연동되는걸까 라는 생각에 설레였습니다. 쓸만한 데이터가 있을까 코드를 보았는데요, 단순하게 msfonsole command line으로 값을 넘기는 형태입니다.

 elif choice == 'a':
  with open( "hosts.txt", "rb" ) as host_list:
   for rhosts in host_list:
    for exploit in all_modules:
     template = "sudo msfconsole -x 'workspace -a %s; setg LHOST %s; setg LPORT %s; setg VERBOSE true; setg THREADS 100; set RHOSTS %s; %s'" % (workspace, local_host, local_port, rhosts, exploit)
     os.system(template)

재미있는 코드를 기대했지만 조금 아쉬운감이 있었습니다.

Conclusion

이런 종류의 프로젝트나 툴들은 많이 있었을겁니다. 다만 kitploit이나 thehackernews등 매체를 통해서 수면위로 올라온 이상 이를 사용하는 사람들도 분명히 늘어날 것이라 생각됩니다. 다만 예측 가능한 범위 이상을 수행할 확률이 높기 때문에 실 서비스 대상으로는 그다지 추천드리진 않네요! 그냥 코드 공부할 겸 봐주시는게 제일 좋은 것 같습니다 :D