杀死进程
top d1 //运行top命令后,键入大写字母P按cpu排序
ps aux | sort -k4nr //运行top命令后,键入大写字母M按内存排序
ls -la /proc/$pid/exe //查找进程文件
strace -tt -T -e trace=all -p $pid //跟踪进程运行
lsof -p $pid //进程打开的文件
netstat -anltp | grep $pid //查看进程端口情况
查看账号
awk -F ":" '$3==0{print $1}' /etc/passwd //查看特权用户
awk '/\$1|\$6/{print $1}' /etc/shadow //可远程登录的账号信息
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)" //sudo的账号
w //当前用户及其行为
lastlog //所有用户最后登录时间
last //所有用户关键信息
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}' //成功登录日期、用户名及ip
//查看试图爆破主机的ip
grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more
grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort //查看爆破root的ip
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr //查看爆破的用户名字典
锁定目录
chmod 000 /usr/bin/风险目录
chattr +i /usr/bin
chattr +i /bin
chattr +i /tmp
检查异常文件
【检查特权文件】
find / -perm /6000
find / -perm /4000
find / -perm /2000
【检查corn文件】
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
【最近被修改的系统文件】
find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime -T | xargs ls -la
【被替换的命令/动态链接库劫持】
echo $LD_PRELOAD
echo $LD_LIBRARY_PATH
注:基本上上面两个命令回显是空白的,如果有回显大概率是被劫持
ls -alt /usr/bin /usr/sbin /bin /usr/local/bin
rpm -Va>rpm.log
删除计划任务等
rm -f /etc/init.d/风险目录
rm -f /etc/rc#.d/木马连接文件
cat /etc/rc.local //开机启动项
chkconfig --list //开机启动项
注意:建议使用vim查看,cat有可能显示不全
rootkit查杀
rootkit主要有两种类型:文件级别和内核级别。
文件级别的rootkit: 一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。
内核级rootkit: 是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。内核级rootkit主要依附在内核上,它并不对系统文件做任何修改。以防范为主。
查杀工具:
chkrootkit 、 rkhunter 、 ClamAV
其它检查方面
- BASH内置命令
compgen -b
- BASH函数
compgen -f unset -f functionName
- 环境变量
env set export cat /proc/$PID/environ declare
- SSH key
- SSH config文件
/etc/ssh/ssh_config 和 ~/.ssh/config将 LocalCommand 和 ProxyCommand 参数封禁
- alias命令替换
alias 命令的功能是为命令设置别名 alert //检查是否存在替换 unalias alert //删除别名
- DNS配置文件
/etc/resolv.conf
- 禁止ptrace_scope操作
cat /proc/sys/kernel/yama/ptrace_scope
- ASLR
cat /proc/sys/kernel/randomize_va_space //调成2减缓溢出攻击
- capabilities
getcap -r / 2>/dev/null //查看对权限的默认情况 setcap //重新设置权限
- iptables端口复用
sudo iptables -L //查看默认情况
- 密码填充检查
cat /etc/passwd | cut -d ":" -f 2 | grep -v "x //默认情况应该是空的
- 服务检查
sudo systemctl list-units --type=service --state=running //正在运行的服务 systemctl status xxx.service //查看单一服务进程状态 systemctl cat xxx.service //获取服务配置文件 systemctl cat
- MOTD
是Linux中发送问候消息的功能,一般在我们登录服务器后显示 每次任意用户登录时都会触发 motd 服务的功能,这个功能的脚本几乎都是使用 root 权限来启动的,所以很适合用来做后门
- 进程启动文件
恶意程序执行后,可能会删除本地文件,但是该文件已经被进程加载,可以通过遍历这种情况来排查恶意程序 sudo lsof | grep deleted sudo ls -al /proc/*/exe 2>/dev/null | grep deleted //建议使用这一个命令
- 检查系统及应用程序配置文件
- sudo配置文件检查
/etc/sudo.conf /etc/sudoers /etc/sudoers.d/
- 第三方GPG密钥检查
```
sudo apt-key list
具体存储⽬录为 /etc/apt/trusted.gpg.d/
gpg –quiet –show-keys /etc/pki/rpm-gpg/*
具体存储⽬录为 /etc/pki/rpm-gpg/
```