使用常用命令检查
查看历史命令: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