NtCreateUserProcess พร้อม CsrClientCallServer สำหรับเวอร์ชัน Windows x64 หลัก
ปรับใช้สิ่งนี้อีกครั้ง: NtCreateUserProcess->BasepConstructSxsCreateProcessMessage->
->CsrCaptureMessageMultiUnicodeStringsInPlace->CsrClientCallServer
โปรเจ็กต์นี้อาจไม่มีประโยชน์ แต่ก็มีประโยชน์ในการเรียนรู้เช่นกัน!
ฉันจะพยายามแก้ไขข้อบกพร่องที่ทราบ ยินดีต้อนรับคำถาม ข้อเสนอแนะ และการดึงข้อมูล :)
ฉันจะพยายามสนับสนุนเวอร์ชัน Windows x64 ทั้งหมดเป็นหลักตั้งแต่ win 7 ถึง win 11
NtCreateUserProcess-Native รองรับการเปลี่ยนเส้นทาง IO มาตรฐาน
NtCreateUserProcess-Native เป็น Native Edition ซึ่งจะลบ BasepConstructSxsCreateProcessMessage, RtlCreateProcessParametersEx, CsrCaptureMessageMultiUnicodeStringsInPlace... เพียงป้องกันฟังก์ชั่น hook ใด ๆ
NtCreateUserProcess-Native ถูกสร้างขึ้นเพื่อวัตถุประสงค์ของ OPSEC, RedTeam
ฉันได้เปิดใช้งาน CFG ในการตั้งค่าโครงการ NtCreateUserProcess-Native แล้ว
ไม่มีแผนที่จะรองรับ AppX Package ในโปรเจ็กต์นี้
ฉันเกือบจะเสร็จสิ้น Reverse Engineering ของ CreateProcessInternalW ของ Windows 21H* แล้ว
แต่ต้องปรับปรุง โครงสร้าง ประเภทข้อมูล... ต้องการเวลามากกว่านี้...
ลองใช้ CreateProcessInternalW-Full แทน
หวังว่าโครงการ CreateProcessInternalW ในภายหลังจะช่วยให้คุณได้รับความรู้และความเข้าใจที่แตกต่างกัน
ซึ่งปรับใช้ใหม่เพื่อรองรับ AppX, RaiseError 16 บิต, ไฟล์ .bat && .cmd
หลังจากเผยแพร่ Direct-NtCreateUserProcess และบทความโดย D0pam1ne705
ฉันคิดว่าฉันควรแบ่งปันผลลัพธ์วิศวกรรมย้อนกลับของ CreateProcessInternalW ด้วย (ไม่จำเป็นต้องเก็บไว้เป็นส่วนตัว)
แตกต่างจากเส้นทางย้อนกลับของเขา ฉันไม่ได้ดีบักเคอร์เนล ALPC และ csrss.exe
แต่ส่วนใหญ่ขึ้นอยู่กับ IDA และพารามิเตอร์การวิเคราะห์หน่วยความจำ
NtCreateUserProcess-Post.exe (ImagePath)
(NtCreateUserProcess-Post เลิกใช้งานชั่วคราว ??? ฉันขี้เกียจ ... ovO)
(ค่าเริ่มต้นคือ C:WindowsSystem32dfrgui.exe โดยไม่มี ImagePath พิเศษ)
(1) NtCreateUserProcess-Post.exe
(2) NtCreateUserProcess-Post.exe C:WindowsSystem32notepad.exe
(3) NtCreateUserProcess-Post.exe C:WindowsSystem32taskmgr.exe
(4) NtCreateUserProcess-Post.exe "C: ไฟล์โปรแกรม (x86) MicrosoftEdgeApplicationmsedge.exe"
และอื่นๆ...
C:WindowsSystem32DisplaySwitch.exe
"C: ไฟล์โปรแกรม GoogleChromeApplicationchrome.exe"
C:WindowsSystem32Magnify.exe
-
NtCreateUserProcess-Native.exe (-c ImagePath) (-i InteractType)
(การเปลี่ยนเส้นทาง IO ไฟล์มาตรฐานได้รับการสนับสนุนแล้วใน NtCreateUserProcess-Native!)
-i 0: (ค่าเริ่มต้น) จะไม่มีการใช้โหมดโต้ตอบใด ๆ เช่น CREATE_NEW_CONSOLE
-i 1: StdHandle ผ่าน AttributeList เช่น bInheritHandles = FALSE
-i 2: ตั้งค่า ProcessParameters Std Input,Output,OutError ด้วยค่า CurrentProcessParameters เช่น bInheritHandles = TRUE
(ค่าเริ่มต้นคือ C:WindowsSystem32dfrgui.exe โดยไม่มีอาร์กิวเมนต์พิเศษ)
(1) NtCreateUserProcess-Native.exe
(2) NtCreateUserProcess-Native.exe -c C:Windowssystem32cmd.exe -i 1
(3) NtCreateUserProcess-Native.exe -c "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -i 2
(4) NtCreateUserProcess-Native.exe -c "C: ไฟล์โปรแกรม GoogleChromeApplicationchrome.exe" -i 0
-
Visual Studio 2022 (Visual Studio 2019 ควรใช้งานได้)
ปล่อย x64
ถ้าคุณคิดว่าอันนี้ซับซ้อนและซ้ำซ้อน ลองใช้ Native Edition NtCreateUserProcess-Native
หมายเหตุ: บน Windows 11 notepad.exe คือ AppX ดังนั้นจึงใช้งานไม่ได้
Windows 11 23H2 ภายใน x64 (26020.1000)
วินโดวส์ 11 21H2 x64 (22000.613)
วินโดวส์ 10 21H2 x64 (19044.1706)
วินโดวส์ 10 21H1 x64 (19043.1023)
วินโดวส์ 10 2004 x64 (19041.264)
วินโดวส์ 10 1909 x64 (18363.2274)
เซิร์ฟเวอร์ Windows 2019 x64 (17763.107)
วินโดวส์ 10 1709 x64 (16299.125)
วินโดวส์ 10 1703 x64 (15063.2078)
เซิร์ฟเวอร์ Windows 2016 x64 (14393.5066)
วินโดวส์ 10 1607 x64 (14393.447)
วินโดวส์ 10 1511 x64 (10586.164)
วินโดวส์ 10 1507 x64 (10240)
Windows Server 2012 R2 x64 (9600)
เซิร์ฟเวอร์ Windows 2012 x64 (9200)
Windows Server 2008 R2 x64 (7601)
วินโดวส์ 7 SP1 x64 (7601)
Windows Server 2008 R2 x64 (7600)
วินโดวส์เซิร์ฟเวอร์ 2008 x64 (6002)
วินโดวส์วิสต้า SP2 x64 (6002)
วินโดวส์วิสต้า x64 (6000)
1: https://github.com/Microwave89/createuserprocess
2: https://github.com/PorLaCola25/PPID-Spoofing
3: https://github.com/processhacker/processhacker
4: https://www.geoffchappell.com/studies/windows/win32/csrsrv/api/apireqst/api_msg.htm
5: https://github.com/leecher1337/ntvdmx64
6: https://github.com/klezVirus/SysWhispers3
7: https://bbs.pediy.com/thread-207429.htm
8: https://doxygen.reactos.org
9: https://github.com/waleedassar/NativeDebugger
10: https://stackoverflow.com/questions/69599435/running-programs-using-rtlcreateuserprocess-only-works-occasionally
11: https://medium.com/philip-tsukerman/activation-contexts-a-love-story-5f57f82bccd
12: https://github.com/ShashankKumarSaxena/nt5src
13: https://github.com/D4stiny/spectre
14: https://github.com/x64dbg/TitanEngine
15: https://github.com/x64dbg/ScyllaHide
16: https://github.com/deroko/activationcontext
17: https://medium.com/philip-tsukerman/activation-contexts-a-love-story-5f57f82bccd
18: https://wasm.in/threads/csrclientcallserver-v-windows-7.29743/
19: https://bbs.csdn.net/topics/360229611
20: https://www.exploit-db.com/exploits/46712
11: https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2020/CVE-2020-1027.html
22: https://ii4gsp.tistory.com/288
23: https://www.unknowncheats.me/forum/c-and-c-/121045-ntdll-module-callback.html