nginx内存马

admin 2023年12月29日08:07:40评论69 views字数 792阅读2分38秒阅读模式

全链路内存马系列之 nginx 内存马

来源:

https://github.com/veo/nginx_shell

nginx内存马

其他内存马

  • ebpf 内核马

  • websocket 内存马

  • 注意

本项目不含有完整的利用工具,仅提供无害化测试程序、防御加固方案,以及研究思路讨论

  • 测试程序使用方式

测试环境:Nginx 1.18.0

下载测试程序 releases

将下载的so放至目标服务器上,修改 nginx.conf 配置文件在第一行添加以下内容,path为路径,ngx_http_cre_module.so名称最好不修改。

load_module path/ngx_http_cre_module.so

然后重载nginx

nignx -s reload

POST HTTP header vtoken: whoami (测试程序只允许使用 whoami 命令)

nginx内存马

  • 一、技术特点

  1. 无需临时编译(传统的 nignx so backdoor 需要临时编译)

  2. 兼容支持大部分 nignx 版本

  3. 无需额外组件支持

  • 二、技术缺点

  1. 有so文件落地

  2. 需要 nignx -s reload 权限

  • 三、技术原理

nginx module 支持动态加载so,通过 __attribute ((constructor))的方式绕过nginx module version check,可以编译出适应所有nginx版本的module。使用header_filter可以取得命令执行的参数,通过body_filter可以返回命令执行后的结果

  • 四、研究中遇到的问题

  1. 绕过nginx对于module的版本检测

    通过 __attribute ((constructor))的方式绕过

  2. 编写的module要兼容大部分版本

    使用较早版本的函数,不使用高版本新增函数

  • 五、防御加固方案

  1. 监测Nginx Module的加载,Nginx进程的行为

  2. 查杀落地文件

  3. 收敛 nignx -s reload 权限

原文始发于微信公众号(利刃信安攻防实验室):【技术推送】nginx 内存马

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月29日08:07:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   nginx内存马https://cn-sec.com/archives/2343651.html

发表评论

匿名网友 填写信息