使用常用命令检查

查看历史命令:history
查看定时任务:crontab -l
查看定时任务:cat /etc/crontab
查看已经创建的用户:cat /etc/passwd
查看组:cat /etc/group
当前在线用户:who
最近登录情况:who /var/log/wtmp
列出所有session:screen -ls
CPU占用前10(针对进程被隐藏):ps -aux --sort=-pcpu|head -10
查找文件名(suppoie为例): find  / -name '*suppoie*'
查找本地是否存在有libstdc这个文件:find / -name "libstdc"
去除i权限:chattr -i ./unixdb.sh
执行命令,将aaa.txt下载到本地:ps -ef >> aaa.txt

一般是爆破ssh 或者redis 这种方式运行的挖矿

linux系统中出现类似Windows的目录或可执行文件

如果判断不是用户自己上传的,很有可能系统被黑或数据库被黑


检查定时任务crontab

可以使用 crontab -l 检查定时任务是否异常,比如 1 20 * /bin/rm -rf /home/wwwroot计划执行删除wwwroot目录,可能存在异常。
查看定时任务

[root@xiaoz home]# crontab -l
*/20 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1*
1 20 * * /bin/rm -rf /home/wwwroot

限制写入

mv /etc/crontab  /etc/crontab2 && echo "" >/etc/crontab  && chattr +i /etc/crontab

在排查过程中,因为进程占用资源太多,导致我被频繁踢出虚机,因此我临时写了检查任务,检查程序启动就kill掉。保证虚机能正常使用

#!/bin/sh
name="biden1"
ps -efww|grep -w "$name"|grep -v grep|cut -c 9-15|xargs kill -9 || exit 0

将该脚本保存到check.sh中,然后再crontab中添加定时任务,执行crontab -e ,一分钟检查一次任务。

* * * * * /root/check.sh

检查/etc/init.d/目录

件拥有x可执行权限。ll -t 按照时间排序,最近添加的、一些不认识的服务,打开查看执行内容分析。


检查/etc/rc.local (开机自启动文件)

/etc/rc.local 是否有加载异常启动。如果有都需核实是否正常。

cat /etc/rc.local



检查/etc/passwd

/etc/passwd 是否有异常账户,第三个参数:500以上就是后面建的账户,其它则为系统的用户

cat /etc/passwd    //用户信息
cat /etc/shadow    //密码存放路径
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
cera:x:500:500:cera:/home/cera:/bin/bash
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
www:x:501:501::/home/www:/sbin/nologin
mysql:x:502:502::/home/mysql:/sbin/nologin
ushttp:x:503:503:/home/ushttp:/bin/bash
modianxia:x:0:0::/tmp/modianxia:/bin/bash

modianxia 是一个uid0 gid0 的用户,这是超级管理员啊!
那么先把这个用户清理吧
后面加固一波(谨慎加固)

chattr +i /etc/passwd
chattr +i /etc/shadow

cpu显示占用前10的进程

cpu使用率基本跑满(用户态),没有发现可疑的进程,初步怀疑可能是进程在哪里隐藏了,执行命令,显示占用前10的进程

ps -aux --sort=-pcpu|head -10

登录日志

Linux查看/var/log/wtmp文件查看可疑IP登陆

 last -f /var/log/wtmp
选项说明
-f 文件名指定登录的日志文件(默认是/var/log/wtmp)
-num指定last显示多少行信息
-n num和“-num”一样
-R不显示主机名字
-a在最后一列显示主机名
-d将非本地登录的用户ip转换成主机名
-F显示所有的登录和注销时间和日期
[name]显示指定用户的登录信息

用户安全

基本使用:
1 )用 户 信 息 文 件 /etc/passwd root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell
用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell 注:无密码只允许本机登陆,远程不允许登陆

2)影子文件/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之
后的宽限天数:账号失效时间:保留
who//查看当前登录用户(tty本地登陆pts远程登录)
w //查看系统信息,想知道某一时刻用户的行为
uptime //查看登陆多久、多少用户,负载

具体方法:

1、先用命令 cat /etc/passwd 查看一下所有的用户 可以看到你需要删除的用户名

2、用命令 who 查询当前登录的用户

3、用命令 ps -u 用户名 查看该用户的pid

4、用命令 kill pid 杀掉他的sshd或者是shell进程

5、再用命令 userdel -r 用户名 删除用户


1)查询特权用户特权用户(uid 为0)

awk -F: '$3==0{print $1}' /etc/passwd

查看空口令账号命令


awk -F: '($2=="")' /etc/shadow

2)查询可以远程登录的帐号信息

awk '/\$1|\$6/{print $1}' /etc/shadow

3)除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限

more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" 

4)禁用或删除多余及可疑的帐号
usermod -L user禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头

usermod -L user

userdel user删除user用户
userdel -r user将删除user用户,并且将/home目录下的user目录一并删除

userdel -r user

文件排查

1)敏感目录的文件分析[类/tmp 目录,命令目录/usr/bin /usr/sbin 等]
ls用来显示目标列表
2)查看 tmp 目录下的文件:ls –alt /tmp/
3)查看开机启动项内容:ls -alt /etc/init.d/,/etc/init.d 是 /etc/rc.d/init.d的软链接
入侵排查:
启动项文件: more /etc/rc.local /etc/rc.d/rc[0~6].d ls -l /etc/rc.d/rc3.d


总结:

检查/etc/init.d/目录是否有异常文件或权限异常。
crontab -l检查是否有异常的定时任务。
top查看是否有异常进程。
who /var/log/wtmp查看最近几次登录是否有异常IP。
linux pid进程PID值0-299为系统进程。

经验:
1.linux pid进程PID值0-299为系统进程。 进程名称看起来是系统的,但是pid很高,这种进程就有可能是伪造有问题,需核实。
Linux 常见木马清理命令:
chattr -i /usr/bin/.sshd
rm -f /usr/bin/.sshd
rm -f -r /usr/bin/bsd-port
rm -r -f /root/.ssh
rm -r -f /usr/bin/bsd-port
cp /usr/bin/dpkgd/ps /bin/ps
cp /usr/bin/dpkgd/netstat /bin/netstat
cp /usr/bin/dpkgd/lsof /usr/sbin/lsof
cp /usr/bin/dpkgd/ss /usr/sbin/ss
find /proc/ -name exe | xargs ls -l | grep -v task |grep deleted| awk '{print $11}' | awk -F/ '{print $NF}' | xargs killall -9