본문 바로가기
2. 시스템 해킹 및 모의 해킹

메타스플로잇 auxiliary 모듈 [FTP 스캐너]

by Robert8478 2023. 12. 28.

FTP 스캐너를 만들어 보는 실습
auxiliary 파일에 직접 만든 스캐닝 모듈 파일을 넣고
victim 컴퓨터에 freeFTPd으로 ftp 21번 포트를 열어준 뒤
스캐닝 하는 실습

auxiliary 위치 - /usr/share/metasploit-framework/modules/auxiliary/

auxiliary에 여러 모듈이 있는데 그중에서 dos와 scanner 모듈을 많이 사용한다.
auxiliary에 모듈 추가 시 auxiliary 폴더 안에 예시로 mkdir dev 로 dev 폴더 생성 후 auxiliary .rb 파일을 dev로 옮긴다.

victim 컴퓨터에서 freeFTPd으로 FTP 서버를 열어준다.
netstat -an 명령으로 21번 포트 열렸는지 확인

그 후 Auxiliary 템플릿을 수정하고 함수를 추가

[ftp_check.rb]
require 'msf/core'
class Metasploit3 < Msf::Auxiliary
include Msf::Exploit::Remote::Ftp  //연결하려면 exploit 리모트 ftp reset 사용
include Msf::Auxiliary::Scanner  # rhost -> rhosts / + threads  //scanner mixin 추가 시 밑에 def run 부분은 def run_host(target_host)로 변경해야한다.
include Msf::Auxiliary::Report # db

 def initialize(info = {})
  super(update_info(info,
   'Name' => 'FTP version check',
   'Description' => %q{
     ftp version check module.
    },
    'Author' => ['Jun'],
    'License' => MSF_LICENSE
  ))
 end

 def run_host(target_host)
  res=connect
  if(banner) //배너를 받아서
   print_status("#{rhost}:#{rport} Ftp banner: #{banner}") //배너를 잘 받았다고 출력
   report_service(  //msfconsole에서 services 입력 시 나오는 받아야하는 인자값들을 넣어준다.
      :host => rhost,
      :port => rport,
      :name => "ftp",
      :info => banner
      )
   end
  end
 end
end

파일 생성 후 실습해본다.

# service postgresql start
# msfdb init
# msfconsole 
# use auxiliary/dev/ftp_check
# show options
# set rhosts [victim 컴퓨터 아이피주소]
# set rport 21
# run

하게 되면 ftp 스캐닝 작업 수행

services 명령어를 입력하면 db에 저장된 ftp 스캐닝 정보가 출력된다.