全国建设部网站官网,鑫菲互动网站建设公司,自建网站营销是什么意思,网站使用流程图安全分析与研究专注于全球恶意软件的分析与研究背景前几天#xff0c;接到一个nginx后门样本#xff0c;本着就分析和复现的思路#xff0c;完整的将整个过程做一次复现#xff0c;不料最终还获取到了后门的核心代码部分#xff0c;遂将其整理发布#xff0c;仅供学习研究… 安全分析与研究专注于全球恶意软件的分析与研究背景前几天接到一个nginx后门样本本着就分析和复现的思路完整的将整个过程做一次复现不料最终还获取到了后门的核心代码部分遂将其整理发布仅供学习研究之用。在后续分析之前先来了解下nginx后门的功能。通过在Cookie中包含特征字符串lkfakjfa并填写需要反弹的ip和端口完成shell反弹这就是后门的一个大致情况。样本分析1.在已有的分析情报的帮助下得知nginx后门位于ngx_http_header_filterIDA装载样本发现样本带有符号信息如下所示2.找到ngx_http_header_filter函数找到了关键字符串lkfakjf如下所示3.F5之后发现之后调用了一个connect_shell的函数如下所示4.通过对connect_shell进行分析发现是一个反弹shell的功能利用socket编程完成shell反弹如下所示后门复现1.首先启动后门nginx文件由于nginx会绑定80端口如果多次启动会提示80端口被占用而无法启动如下所示2.接着进行本地监听9999如下所示3.使用curl来触发漏洞如下所示4.此时nc里已经得到了shell如下所示原理分析1.通过gdb调试和IDA分析发现要判断cookies中是否存在特征字符串lkfakjf用到了一个这样的结构体ngx_http_request_t使用source insight打开nginx源码定位到ngx_http_header_filter发现参数就是ngx_http_request_t查看该结构体的情况如下所示2.该结构体相对比较大这里截图只留下要使用的部分header_in如下所示3.通过header_in的结构继续寻找找到cookies的定义如下所示4.最后找到关于cookies的结构体情况如下所示5.结合IDA中代码分析v4就是cookies结构体通过结构体偏移32字节定位到输入的特征字符串在这里我也没有分析的特别清楚初步判断应该是ngx_pool_t结构体如下所示重现后门1.首先我们要先获取cookies的结构通过r-headers_in.cookies.elts即可获得然后取到void *elts的内容最后通过32字节偏移得到存储输入特征码的地址取其值即可拿到输入的特征字符串的值最后的代码形式如下所示对这代码做个解释首先v1和v2是long *的指针。第一句代码(long *)r-headers_in.cookies.elts将void *的elts指针转化为long *的指针。第二句代码v2(long *)*v1;*v1是取其值在将其值转化为long*的指针。第三句代码cookie (char *)*(v24);v24是表示在v2的基础上偏移4个long*个字节如果你的v2定义为char *这里就是v232*(v24)取该偏移的内容最后转化为char *的指针。以上代码只适用于64位linux以上代码只适用于64位linux以上代码只适用于64位linux重要的事情说三遍。2.使用nginx的configure配置只需要配置--prefix/root/nginx即可当configure运行完成后会生成Makefile文件。配置过程中可能缺少很多的依赖逐个安装即可如下所示3.然后修改位于objs里的Makefile文件修改为如下配置否则编译会报错如下所示4.此时使用make编译等待编译完成如下所示5.make install安装一下安装的位置为之前配置的prefix路径如下所示6.运行和调试nginx文件能够成功获取输入的特征字符串如下所示7.其中rsi为触发漏洞的输入rdi为内置特征字符串这里选择了printf打印能够成功获取到输入的特征字符串如下所示8.接下来准备复现反弹shell添加功能代码代码只能适用于带有nc命令的系统编译后进行复现操作如下所示9.现在的特征字符串被修改为123456现在来触发该后门如下所示10.成功接收到反弹的shell如下所示自此后门重现成功整个分析和复现过程到此结束。后门排查目前后门排查只能针对特定的版本如果出现新nginx后门排查手段大概率会失效。1本地验证 通过grep命令判断当前运行对nginx里面是否存在/bin/sh可疑字符串$ which nginx |xargs grep /bin/sh –la2将nginx文件提取出来使用IDA分析查找ngx_http_header_filter下载nginx源码和IDA F5做对比判断是否存在后门。最好的效果是下载nginx对应的源码对比是否有增加或改动的地方但是这份方法比较耗时耗力但是效果比较好。威胁情报HASHab498686505dfc645e14c6edad280da7这篇文章作者很早之前就发给我了一直没时间编辑发布后面作者也发布在了看雪论坛链接地址https://bbs.pediy.com/thread-260954.htm安全分析与研究专注于全球恶意软件的分析与研究追踪全球黑客组织攻击活动不忘初心专注专业坚持欢迎关注。