5. FTP 스캐너 모듈 개발(1)
이번에는 FTP에 있는 정보들을 칼리리눅스로 가져와서 보기 위한 모듈을 개발해보려고 한다. exploits가 아닌 Auxiliary를 활용해서 한다는 것이 차이점이다. 추가로 FTP 정보들이 데이터베이스에도 저장이 가능하게 개발을 해봤다.
5-1) FTP 스캐너 모듈 개발 실습
<그림 5-1 ftp_check 코드 - 1>
auxiliary_template.rb파일을 복사해서 파일명을 바꿔서 저장한다. 경로는 modules/auxiliary/dev이며 dev는 필자가 따로 폴더를 만들어 주었다. 이 폴더 안에 ftp_check.rb로 바꿔서 저장한다. vi에디터를 사용해서 파일을 열고 믹스인을 추가해준다. Scanner 라이브러리를 추가하게 되면 rhost가 rhosts로 바뀌게 되고 Report 라이브러리를 사용하게 되면 데이터베이스를 사용이 가능해진다. 추가를 한 후 Name은 FTP Version check라고 바꿔주고 Description은 ftp version check module로 바꿔준다.
<그림 5-2 ftp_check 코드 - 2>
host를 연결시켜 banner정보들을 가져오는 코드이다. 클래스를 run_host(target_host)로 지정해줘야 exploit 실행시 모듈 에러가 발생하지 않게 된다.
<그림 5-3 msfconsole 실행>
msfconsole을 실행시키기 전에 service postgresql start 명령어를 실행해 줘서 msfconsole과 데이터베이스를 꼭 연결시켜준다. 연결시키고 실행이 되면 db_status로 데이터베이스 연결상태를 확인하고 services 명령어를 실행시켜보면 우리가 데이터베이스 안에 가져오고 싶은 정보들을 ftp_check 파일에서 구현을 한 것이다. msfconsole과 같이 보면 우리가 왜 그것을 구현했는지 좀 더 빨리 감이 올 것이다.
<그림 5-4 FreeFTP 실행>
윈도우XP 가상환경에서 FreeFTP를 실행시켜 FTP, SFTP를 실행시켜준다. FreeFTP가 작동되어야 exploit를 해서 정보들을 가져올 수 있다.
<그림 5-5 exploit 실행 결과>
msfconsole을 실행시켜 ftp_check 파일 경로를 지정해주고 rhosts를 지정해준다. IP 주소는 윈도우 XP IP주소를 입력해주고 exploit을 실행해준다. 정상적으로 실행이 되었으면 FTP 배너의 정보들이 탈취 되었음을 볼 수 있다. 우리가 코드로 입력해준 값들이 정상적으로 실행되었음을 볼 수 있다.
'메타스플로잇' 카테고리의 다른 글
메타프리터 stdapi 활용 실습 (0) | 2018.04.27 |
---|---|
FTP 스캐너 모듈 개발 (2) (0) | 2018.04.24 |
http browser 서버 (0) | 2018.04.23 |
http Server (0) | 2018.04.22 |
http 클라이언트 (0) | 2018.04.22 |