[METASPLOIT] msgrpc 서버를 이용하여 msfconsole과 armitage 연동하기

metasploit의 여러 interface 중 많이들 사용하시는게 msf(metasploit-framework)와 armitage입니다. 각각 cui, gui라는 컨셉을 가지고 있고 한쪽을 선호하시거나 양쪽 모두 선호하시는 케이스 모두 보았습니다.

저 또한 cui 기반인 msf를 선호하지만 침투 대상의 규모가 커질수록 gui로 시각적인 확인을 하는것이 훨씬 좋다고 생각됩니다.

오늘은 이 두 interface를 동시에 사용하는 방법에 대해 이야기드릴까 합니다. 바로 msgrpc를 이용해서요. (사실 armitage의 동작 방식 자체이기도 합니다만 굳이 teamserver를 활용하지 않고 단독적으로 동작시키는 내용을 다루려합니다)

msgrpc(Metasploit-Framework, Armitage)

Metasploit-framework에는 msgrpc라는 모듈이 들어있습니다. 이 친구는 msfrpcd를 실행했을때와 동일한 효과를 줄 수 있는 모듈이며 이 모듈을 통해 현재 사용중인 msf 내부에서 rpc 서버로 동작시킬 수 있습니다.

#> hahwul (./msfconsole) HAHWUL #> load msgrpc Pass=secret_password [] MSGRPC Service: 127.0.0.1:55552 [] MSGRPC Username: msf [] MSGRPC Password: secret_password [] Successfully loaded plugin: msgrpc

#> cd [your armitage directory] #> java -jar armitage

msgrpc 플러그인으로 받을 결과(또는 입력한 결과)로 user와 password 입력

armitage에서 작업을 진행하면 main msf인 제 쉘과 통신하기 때문에 rc 파일이 그대로 적용되어 있고 서로의 jobs이나 session을 공유하게 됩니다.

간단하게 armitage에서 port scan을 진행해보죠.

이 때 Metasploit에서 확인 시 job이 생성되어 있고 서로 동일한 데이터를 사용한다는 것을 알 수 있습니다.

HAHWUL auxiliary(crawler) > jobs

Jobs

Id Name Payload Payload opts – —- ——- ———— 0 Exploit: multi/handler windows/meterpreter/reverse_tcp tcp://0.0.0.0:16951 1 Auxiliary: scanner/portscan/tcp

TroubleShotting

진행하면서 몇가지 이슈가 발생했었습니다. 에러!

@ Could not connect to database: Connection Refused 때때로 이런 에러가 발생하기도 합니다. 물론 뭐 연결이 안됬다는 소리니 DB 서버 확인해주시고, DB가 정상 작동중이라면 metasploit server(msfd)를 실행해줍니다.

#> ./msfd

@ I can not find database.yml. I really need it. 이 경우 database.yml 파일을 환경변수에 찾기 못한 경우입니다. MSF_DATABASE_CONFIG에 metasploit db 파일 설정 파일의 경로를 써줍니다.

#> export MSF_DATABASE_CONFIG=[your_metasploit_dir]/config/database.yml

더 많은 케이스가 있을 수 있으니 아래 경로에서 참고해주세요. http://www.fastandeasyhacking.com/start

Reference

http://www.fastandeasyhacking.com/start https://help.rapid7.com/metasploit/Content/framework/msf-rpc-service.html