善后处理


杀死进程
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/
```


评论
  目录