BLOG
Tracefield · 02
Tracefield · 01
블로그 · 14
Vibe Audit · 04
Vibe Audit · 03
Vibe Audit · 02
Vibe Audit · 01
출판편집자 · 01
StudyTree · 01
SecurityOps · 02
SecurityOps · 01
AI챗봇 · 04
AI챗봇 · 03
AI챗봇 · 02
AI챗봇 · 01
퍼플심 · 04
퍼플심 · 03
퍼플심 · 02
퍼플심 · 01
블로그 · 13
rootscan · 07
rootscan · 06
블로그 · 12
블로그 · 11
블로그 · 10
블로그 · 09
블로그 · 08
블로그 · 07
블로그 · 06
블로그 · 05
블로그 · 04
블로그 · 03
블로그 · 02
블로그 · 01
rootscan · 05
rootscan · 04
rootscan · 03
asmspeak · 03
asmspeak · 02
rootscan · 02
asmspeak · 01
rootscan · 01
웹보안도구 · 02
웹보안도구 · 01
루트캠프 · 02
루트캠프 · 01
All notes 167
2025-12-14 / 호스트기반모의해킹 · 38
윈도우 후속 공격
1. 개요
윈도우 후속 공격도 리눅스와 비슷하게 정보 수집(Information Gathering)부터 시작된다. 다만 윈도우는 권한 모델과 시스템 구조가 더 복잡해서, 목표를 어디에 둘지와 현재 시스템 상태를 먼저 정확히 이해해야 한다.
2. 윈도우 사용자 및 권한 모델
2.1 사용자 유형(User Types)
- 로컬 유저(Local User): 특정 호스트(단일 컴퓨터) 내에서만 존재하고 권한을 가지는 사용자.
Local Low Privilege: 일반 사용자(예: User, RedRaccoon).
Local Administrator: 호스트 관리자 계정.
- 도메인 유저(Domain User): Active Directory(AD) 환경에서 도메인 컨트롤러에 의해 관리되는 사용자. 네트워크 내의 여러 리소스에 접근 가능하다.(BHPT 범위 외지만 필수 개념).
- 서비스 계정(Service Account): 윈도우 서비스를 실행하기 위한 특수 계정.
LocalSystem(NT AUTHORITY\SYSTEM): 최고 권한.
NetworkService, LocalService: 제한된 권한.
2.2 시스템 권한(SYSTEM vs Administrator)
- Local Administrator: Session 1+(GUI 사용 가능, AD 접근 가능).
- SYSTEM(NT AUTHORITY\SYSTEM): Session 0(GUI 없음, AD 접근 제한).
- 오해와 진실: "SYSTEM이 무조건 최고다?" -> 틀림.
- 실제 공격에서는 로컬 관리자 권한이 GUI 접근 및 내부망 이동(Lateral Movement)에 더 유리할 수 있다.
- 로컬 관리자 권한만 얻으면
PsExec 등을 통해 언제든 SYSTEM 권한으로 상승 가능하다.
2.3 자격 증명 덤핑(Credential Dumping) 타겟
- SAM(Security Account Manager): 로컬 사용자 계정 및 비밀번호 해시(NT Hash).
- LSA(Local Security Authority) Secrets: 서비스 계정 암호, 캐시된 도메인 자격 증명.
- LSASS(Local Security Authority Subsystem Service): 메모리에 로드된 활성 사용자의 평문/해시 비밀번호.
- DPAPI(Data Protection API): Chrome 비밀번호, 무선 네트워크 키 등을 암호화하는 마스터 키.
3.1 사용자 및 그룹 확인
whoami /priv: 현재 사용자의 권한(Privileges) 확인(예: SeShutdownPrivilege 등).
net user [username]: 특정 사용자 상세 정보(소속 그룹 확인).
- Remote Desktop Users: RDP 접근 가능 그룹.
- Remote Management Users: WinRM 접근 가능 그룹.
net localgroup: 로컬 그룹 목록 확인.
Get-LocalUser, Get-LocalGroup: PowerShell Cmdlet 활용.
C:\Users\: 사용자 홈 디렉토리 확인으로 이전 로그인 사용자 추적.
3.2 시스템 및 네트워크 정보
hostname: 호스트 이름(서버 용도 유추: Web01, Dev-DB).
systeminfo: OS 버전, Hotfix(보안 패치) 설치 여부(Kernel Exploit 가능성 판단).
winver: 윈도우 빌드 번호 확인(예: 1809, 22H2).
ipconfig /all: IP 주소, Gateway, DNS, NIC 개수(Dual-homed 여부 확인).
route print: 라우팅 테이블 확인(내부망 연결 확인).
arp -a: 동일 서브넷 내의 통신 기록 확인.
3.3 프로세스 및 서비스
Get-Process(ps): 실행 중인 프로세스 목록. EDR/백신 솔루션(Falcon, SentinelOne 등) 탐지.
Get-Service: 설치된 서비스 목록.
Get-Service | Where-Object {$_.Status -eq 'Running'}: 실행 중인 서비스만 필터링.
- 타사 서비스(Web Server, DB 등) 식별.
netstat -ano: 열린 포트 및 연결 정보(PID와 매핑하여 어떤 프로세스가 포트를 열고 있는지 확인).
3.4 파일 및 소프트웨어
C:\Program Files, C:\Program Files(x86): 설치된 소프트웨어 확인.
C:\opt(드물지만 존재 가능), C:\Users\Public: 사용자 지정 설치 경로.
- LastWriteTime: 최근 수정된 파일을 찾아 최근 활동 내역 파악.
3.5 하드코딩된 비밀(Hardcoded Secrets) 탐색
사용자나 관리자가 실수로 남긴 자격 증명을 찾는다.
- 설정 파일(.config, .ini, .xml):
Get-ChildItem -Recurse -Include *.config,*.ini,*.xml -ErrorAction SilentlyContinue | Select-String "password"
- 사용자 파일(.txt, .xlsx): "비밀번호.txt", "서버접속.xlsx" 등.
- PowerShell 히스토리:
- 경로:
(Get-PSReadlineOption).HistorySavePath
- 이전 명령어 기록에서 평문 비밀번호(예:
net use 또는 스크립트 인자) 노출 여부 확인.