Awesome Windows 도메인 강화 
Windows를 위한 멋진 보안 강화 기법의 엄선된 목록입니다.
gepeto42 및 PaulWebSec가 작성했지만 PyroTek3의 연구에서 큰 영감을 받았습니다!
요약
이 문서는 Pyrotek과 Harmj0y의 DerbyCon 발표인 "111 Attacking EvilCorp Anatomy of a Corporate Hack"과 관련된 정보를 요약합니다. 비디오와 슬라이드는 아래에서 확인할 수 있습니다.
또한 gepeto42와 joeynoname이 THOTCON 0x7 발표에서 논의한 기술을 포함하여 다른 공격을 방지하는 데 필요한 강화 기법도 포함합니다.
뭔가 빠진 것이 있나요? Pull Request를 생성하여 추가하세요.
초기 거점
- 어떤 강화 노력도 운영 체제 업그레이드를 희생해서는 안 됩니다.
- EMET을 워크스테이션에 배포하세요 (2018년 7월 지원 종료 - Windows 7에는 EMET을 유지하는 것을 고려하되 Windows 10 및 Edge 업그레이드를 우선시하세요).
- AppLocker를 사용하여 사용자 위치(홈 디렉터리, 프로필 경로, 임시 폴더 등)에서 실행 콘텐츠가 실행되지 않도록 차단하세요.
- DMA 공격에 대한 강화? 여기 있습니다 및 Synacktiv의 DMA 공격에 관한 흥미로운 기사
- AppLocker 또는 제한된 언어 모드를 통해 PowerShell 실행을 관리하세요.
- PowerShell 로깅(v3 이상) 및 명령 프로세스 로깅을 활성화하세요.
- 인터넷에서 다운로드한 콘텐츠의 Office 매크로를 차단하세요 (Windows 및 Mac).
- 의심스러운 동작을 모니터링하는 보안 도구를 배포하세요. WEF를 사용하여 흥미로운 이벤트만 SIEM 또는 로깅 시스템으로 전달하는 것을 고려하세요.
- 이메일/다운로드를 통한 첨부 파일을 차단/제한하여 기능을 제한하세요:
- 실행 파일 확장자:
- (ade, adp, ani, bas, bat, chm, cmd, com, cpl,
crt, hlp, ht, hta, inf, ins, isp, job, js, jse, lnk, mda, mdb,
mde, mdz, msc, msi, msp, mst, pcd, pif, reg, scr, sct, shs,
url, vb, vbe, vbs, wsc, wsf, wsh, exe, pif, etc.)
- 매크로를 지원하는 Office 파일(docm, xlsm, pptm 등)
- 이 파일 형식이 차단되었는지 확인하세요.
- 잊혀지거나 사용되지 않는 Excel 파일 확장자를 차단하세요: IQY, SLK
- Windows 스크립팅으로 열리는 모든 항목의 기본 프로그램을 메모장으로 변경하세요(먼저 테스트하세요!)
- bat, js, jse, vbe, vbs, wsf, wsh, hta, vbs, etc.
- GPO: User Configuration -> Preferences -> Control Panel Settings -> Folder Options -> Open With
- 작업: 바꾸기
- 파일 확장자: (확장자)
- 연결 프로그램: %windir%\system32\notepad.exe
- 기본값으로 설정: 사용
- PackagerPrompt 레지스트리 설정을 통해 Office에서 OLE 패키지 활성화 방지
정찰
- Windows 10을 배포하고 로컬 그룹 열거를 제한하세요.
- 워크스테이션 간 통신을 제한하세요.
- 민감한 GPO의 보안을 강화하세요.
- 행동 분석(Microsoft ATA) 배포를 평가하세요.
BloodHound "방지":
- NetCease를 사용하여 권한 없는 세션 열거를 방지하세요.
- Samri10를 사용하여 권한 없는 로컬 관리자 수집을 방지하세요(이 수정 사항은 Windows 10 1607 이상에 이미 존재합니다).
수평 이동
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\TokenLeakDetectDelaySecs = 30으로 설정하세요. 이렇게 하면 로그오프한 사용자의 자격 증명이 30초 후에 지워집니다(Windows 8.1 이상의 동작을 모방).
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential = 0으로 설정하세요. 이렇게 하면 Wdigest 자격 증명이 메모리에 저장되는 것을 방지하며, 이는 Windows 8.1 이상의 기본값과 동일합니다.
- 로컬 관리자 계정 암호가 자동으로 변경되도록 하고 (Microsoft LAPS), 추가 로컬 관리자 계정을 제거하세요.
- 워크스테이션 간 통신을 제한하세요 (Windows 방화벽).
- 두 워크스테이션 간에 유효한 자격 증명으로 psexec를 테스트하세요. 작동한다면 수평 이동 문제가 있는 것입니다.
권한 상승
- SYSVOL에서 암호가 포함된 파일을 제거하세요 (GPP 포함).
- GPO로 거부 사용자 권한 할당을 구성하여 관리자가 신뢰할 수 없는 시스템(일반 워크스테이션)에 로그온하지 않도록 하세요.
- 모든 고권한 작업에는 Privileged Access Workstation 또는 PAW을 제공하세요. 이러한 시스템은 인터넷에 절대 접근할 수 없어야 합니다.
- 가능하면 SA에 Managed Service Account를 사용하세요 (FGPP).
- Managed Service Account를 지원하지 않는 시스템에는 세분화된 암호 정책을 배포하여 암호가 32자 이상이 되도록 하세요.
- 모든 컴퓨터가 NTLMv2 및 Kerberos를 사용하도록 하고 LM/NTLMv1을 거부하세요.
관리 자격 증명 보호
- 모든 관리자가 승인된 관리 워크스테이션 및 서버에만 로그온하도록 하세요. (권한 상승 섹션의 PAW 참조)
- Administrator를 제외한 모든 기본 제공 그룹이 사용자 권한 할당을 통해 도메인 컨트롤러에 로그온할 수 없도록 하세요. 기본적으로 Backup Operators와 Account Operators는 도메인 컨트롤러에 로그온할 수 있는데, 이는 위험합니다.
- 모든 관리자 계정을 Protected Users 그룹에 추가하세요 (Windows 2012 R2 DC 필요).
- 관리 워크스테이션 및 서버:
- 관리 워크스테이션 및 서버에 대한 액세스를 통제하고 제한하세요.
- TCP/IP를 통한 NetBIOS를 제거하세요.
- LLMNR을 비활성화하세요.
- WPAD를 비활성화하세요.
레거시 강화/제거
- 지금 PingCastle을 사용하여 놀라운 AD 감사를 시작하세요
- NTLM을 감사/제한하세요.
- LDAP 서명을 적용하세요.
- SMB 서명을 활성화하세요(가능한 경우 암호화도).
- WPAD 및 LLMNR을 비활성화하고 NetBIOS를 비활성화하도록 노력하세요.
- Windows 10에서 제거:
- SMB 1.0/CIFS
- Windows PowerShell 2.0
- shims을 사용하여 관리자 권한이 필요한 이전 응용 프로그램이 해당 권한이 있다고 믿고 작동하도록 하세요.
도구
- PingCastle - 꽤 좋은 지표를 제공하는 Active Directory 감사 도구(무료!).
- Responder - LLMNR, NBT-NS 및 MDNS 포이즈너
- BloodHound - 도메인 관리자와 6단계 분리
- AD Control Path - Active Directory 제어 경로 감사 및 그래프 도구
- PowerSploit - PowerShell 사후 침투 프레임워크
- PowerView - 상황 인식 PowerShell 프레임워크
- Empire - PowerShell 및 Python 사후 침투 에이전트
- Mimikatz - 메모리에서 일반 텍스트 암호, 해시, PIN 코드 및 Kerberos 티켓을 추출하고 pass-the-hash, pass-the-ticket 또는 Golden 티켓 생성도 수행하는 유틸리티
- 도구 치트시트 - (Beacon, PowerView, PowerUp, Empire, ...)
- UACME - Windows 사용자 계정 컨트롤 우회
- Windows System Internals - (Sysmon 등 포함)
- Hardentools - Windows가 노출하는 여러 "기능"을 비활성화하도록 설계된 간단한 유틸리티 모음
- CrackMapExec - Windows/Active Directory 환경을 위한 스위스 군용 칼과 같은 도구
- SharpSploit
- Rubeus - Rubeus는 원시 Kerberos 상호 작용 및 악용을 위한 C# 도구 세트입니다.
- Koadic - Koadic(COM Command & Control)은 Windows 사후 침투 루트킷입니다.
- SILENTTRINITY - Python, IronPython, C#/.NET으로 구동되는 사후 침투 에이전트
동영상
슬라이드
추가 리소스