
SharpyShell เป็น ASP.NET Webshell ขนาดเล็กและน่างงที่เรียกใช้คำสั่งที่ได้รับจากช่องที่เข้ารหัสที่รวบรวมไว้ในหน่วยความจำที่รันไทม์
Sharpyshell รองรับเฉพาะ C# เว็บแอปพลิเคชันที่ทำงานบน. NET Framework> = 2.0
VB ไม่ได้รับการสนับสนุน ATM
python3 SharPyShell.py generate -p somepassword
python3 SharPyShell.py interact -u http://target.url/sharpyshell.aspx -p somepassword
รุ่น Python> = 3.6
และ
pip3 install -r requirements.txt
Sharpyshell เป็นกรอบการโพสต์การสำรวจที่เขียนใน Python ที่มีความสามารถ:
เป้าหมายหลักของเฟรมเวิร์กนี้คือการให้เครื่องมือชุดเครื่องมือเพื่อลดขั้นตอนการแสวงหาผลประโยชน์โพสต์เมื่อการแสวงหาผลประโยชน์ได้รับการสนับสนุนจากเว็บเซิร์ฟเวอร์ IIS
เครื่องมือนี้ไม่ได้มีไว้เพื่อแทนที่เฟรมเวิร์กสำหรับเซิร์ฟเวอร์ C2 (เช่น Meterpreter, Empire, ECC .. ) แต่ควรใช้เมื่อคุณลงจอดไปยังเซิร์ฟเวอร์ที่ถูก จำกัด อย่างสมบูรณ์ซึ่งการเชื่อมต่อขาเข้าและขาออกมี จำกัด มาก
ในเฟรมเวิร์กนี้คุณจะมีเครื่องมือทั้งหมดที่จำเป็นสำหรับ PRIVESC, NetDiscovery และการเคลื่อนไหวด้านข้างในขณะที่คุณกำลังพิมพ์ CMD ของเซิร์ฟเวอร์เป้าหมาย
นอกจากนี้เฟรมเวิร์กนี้มีจุดมุ่งหมายที่จะซ่อนตัวได้มากที่สุดเท่าที่จะเป็นไปได้ในการดำเนินการหน่วยความจำสำหรับรหัส C# และโมดูล PowerShell
การทำให้งงงวยดำเนินการใน Sharpyshell มุ่งหวังที่จะหลบเลี่ยงทั้งลายเซ็นไฟล์และรหัสลายเซ็นเครือข่าย
สำหรับการหลีกเลี่ยงลายเซ็นเครือข่ายช่องทางที่เข้ารหัสอย่างสมบูรณ์ได้รับการพัฒนาสำหรับการส่งคำสั่งและรับเอาต์พุต
การหลีกเลี่ยงลายเซ็นไฟล์นั้นทำได้โดยใช้การสะท้อนกลับบน DLL ที่คอมไพล์ precompiled ซึ่งรับผิดชอบการรวบรวมรหัส C#
สร้างขึ้นด้วย asciiflow.com
+-------------------------------------------+ +--------------------------------------------+
| SharPyShell Client (Local) | | Target Server (Remote) |
+-------------------------------------------+ +--------------+ +--------------------------------------------+
| | | Encrypted | | |
| +--------+-----------------^-----------<----> HTTP <---->-----------+-----------------^--------+ |
| | | | | Channel | | | | |
| |4-Receive |1-Send | +--------------+ | |2-Receive |3-Send |
| | | | | | | |
| +--------v-----------------+--------+ | | +--------v-----------------+--------+ |
| | Module | | | | Webshell URL | |
| +--------+-----------------^--------+ | | +--------+-----------------^--------+ |
| | |Parse |Generate| | | | |Parse |Generate| |
| | +------v------+ +------+------+ | | | | +------v------+ +------+------+ | |
| | |Base64 Resp | |Base64 Req | | | | | |Base64 Req | |Base64 Resp | | |
| | +------+------+ +------^------+ | | | | +------+------+ +------^------+ | |
| | |Decode |Encode | | | | |Decode |Encode | |
| | +------v------+ +------+------+ | | | | +------v------+ +------+------+ | |
| | |Xor/Aes Data | |Xor/Aes Data | | | | | |Xor/Aes Data | |Xor/Aes Data | | |
| | +------+------+ +------^------+ | | | | +------+------+ +------^------+ | |
| | |Decrypt |Encrypt | | | | |Decrypt |Encrypt | |
| | +------v------+ +------+------+ | | | | +------v------+ +------+------+ | |
| | |Response | |C# Code | | | | | |C# Code | |Output | | |
| | +------+------+ +------+------+ | | | | +------+------+ +------+------+ | |
| | | ^ | | | | | ^ | |
| | v | | | | | v | | |
| | +--------+--------+ | | | | +--------+--------+ | |
| | | | | | | | | |
| +---------------- ^ ----------------+ | | +---------------- ^ ----------------+ |
| | | | | |
| |Run&Parse | | |Compile&Run |
| | | | | |
| +------ v ------+ | | +------ v ------+ |
| |Terminal | | | |csc.exe | |
| +---------------+ | | +---------------+ |
| |Modules: | | | |System.dll | |
| |#exec_cmd | | | |Compile in Mem | |
| |#exec_ps | | | |No exe output | |
| |#runas | | | | | |
| |..... | | | | | |
| | | | | | | |
| +---------------+ | | +---------------+ |
| | | |
+-------------------------------------------+ +--------------------------------------------+
#download Download a file from the server
#exec_cmd Run a cmd.exe /c command on the server
#exec_ps Run a powershell.exe -nop -noni -enc 'base64command' on the server
#inject_dll_reflective Inject a reflective DLL in a new (or existing) process
#inject_dll_srdi Inject a generic DLL in a new (or existing) process
#inject_shellcode Inject shellcode in a new (or existing) process
#invoke_ps_module Run a ps1 script on the target server
#invoke_ps_module_as Run a ps1 script on the target server as a specific user
#lateral_psexec Run psexec binary to move laterally
#lateral_wmi Run builtin WMI command to move laterally
#mimikatz Run an offline version of mimikatz directly in memory
#net_portscan Run a port scan using regular sockets, based (pretty) loosely on nmap
#privesc_juicy_potato Launch InMem Juicy Potato attack trying to impersonate NT AUTHORITYSYSTEM
#privesc_powerup Run Powerup module to assess all misconfiguration for privesc
#runas Run a cmd.exe /c command spawning a new process as a specific user
#runas_ps Run a powershell.exe -enc spawning a new process as a specific user
#upload Upload a file to the server
Windows Server> = 2008 Standard X64