前言

应急响应也有快20次了,挖矿、木马、webshell、暗链都处理过,当然我还是很菜,然后也大概记了一些笔记分享出来,有不全的地方希望大佬们补充,错的地方轻喷(呵,也根本没人看我的网站)。记得最优先的是止损,其他的都是次要的(跟大佬学的),然后就这篇文章我自己都不会照做,只有什么都找不到的时候我才会这么干,排查一遍,嗯~对。

最重要的日志分析还没有写,之后开单张


1、 先做备份,有快照可以快照

# dd整盘刻录
dd if=/dev/hdb of=/dev/hdd

# 内存的也可以备份一下,我不会就不细说了,逃~

# 像云主机这种可以做快照的可以先拍张快照


2、查看历史记录

# 先使用 history 命令打印历史命令记录,然后复制出来,因为默认记录是有上限的防止后面的盖过来。
history > /tmp/history.bak
cp -a ~/.bash_history /tmp/.bash_history.bak

# 可以查看变量获得记录的上限,
# 命令记录的上限
echo $HISTSIZE
# history文件的路径
echo $HISTFILE
# 文件记录的上限
echo $HISTFILESIZE

# 还有其他用户的命令历史
cat /home/*/.bash_history


3、记录自己的登陆时间,以及查看其他用户所有的登录时间

# 查看现在正在登录的用户,以及时间、IP、tty等信息
w
who

# 正在登陆用户的列表
users

# 所有登录的记录,这条命令选项还挺多的,具体自行百度
last

# 所有登陆失败的用户及信息
lastb

# 每个用户上一次登录的时间
lastlog

# 查看pts文件
ls -l /dev/pts

# 确认异常的tty可以 强制下线
pkill -kill -t pts/1

后面的无先后顺序,全看随机应变


4、查看进程

# 挖矿的话可以看看 CPU、内存的占用率
top
ps aux --sort -pcpu          #静态查看进程,根据cpu使用情况排行,从高到低
ps aux --sort -pmem          #静态查看进程,根据内存使用情况排行,从高到低


# ps命令
ps
ps  -ef
ps  -ax
ps  -L PID     #查看线程
ps  -axjf

# 进程树
pstree  -a

# 查看进程的文件位置
ll  /proc/*/exe

追踪进程 –待更新

strace -p PID
strace 命令
strace -tt -T -e trace=all -p 1389       #跟踪1389进程运行情况

隐藏进程 –待更新

# unhide 命令可以找隐藏进程
# 具体用时候在百度,现在还不会
yum install -y unhide

内存 –待更新

# 如果恶意进程在内存里,还需要对内存进行检查


5、查看网络连接

# 查看所有里连接
netstat -pantu

# 可以把每个外部ip拿到威胁情报平台做下分析,效果看你自己喽
netstat -pantu | grep ESTABLISHED

# 列出所有unix端口
netstat -antpx

# 显示所有监听端口
netstat -pntul

# 可以抓下包,做下流量分析
tcpdump -i eth0 -w ./aa.cap


6、查看服务

cat /etc/services
service --status-all
systemctl list-unit-files --type=service
chkconfig

# 服务启动目录
ls -alt  /etc/init.d


7、计划任务

crontab -l
crontab -l -u 

# 查看文件
ls -alr /etc/cron*
cat /etc/crontab
cat /etc/cron.d/*
cat /etc/cron.daily/*
cat /etc/cron.hourly/*
cat /etc/cron.weekly/*
cat /etc/cron.monthly/*
cat /etc/anacrontab
cat /etc/at.allow
cat /etc/at.deny
cat /var/spool/cron/*
cat /var/spool/anacron/*

# 查看使用atq的任务
atq


8、查看开机自启

# 开机自启的服务
systemctl list-unit-files|grep enabled

# 显示所有系统服务在不同运行级的状态信息,检查是否有非自己设置自启动的服务存在: 
chkconfig |grep :on

# 查看以下目录及文件来检查启动脚本是否被修改:
/etc/rc.d/*
/etc/rc.local
/etc/rc[0-6].d
/etc/inittab


9、文件排查

用户相关

cat /etc/passwd 
cat /etc/group 
cat /etc/shadow 

# 查看UID是0的用户 和 GID是0的组
awk -F: '$3 == 0 { print $1}' /etc/passwd
awk -F: '$4 == 0 { print $1}' /etc/passwd 

# 查看拥有sudo权限的用户
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL="

# 查看是否有空口令用户:
awk -F: 'length($2)==0 {print $1}' /etc/shadow
awk -F: 'length($2)==0 {print $1}' /etc/passwd

家目录

ls -ahlR /root/ 
ls -ahlR /home/

bin目录

# 正常命令文件不会太大
# 好几个文件不会大小都完全一致
ls -ahlR /usr/bin/ 
ls -ahlR /usr/sbin/ 
ls -ahlR /bin/ 
ls -ahlR /usr/local/bin/

# 7天内被修改过的文件
find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -mtime -7 |xargs ls -la

#按时间排序,确认最近是否有命令被替换,可以结合rpm -Va命令
ls -alt /usr/bin /usr/sbin /bin /sbin /usr/local/bin | rpm -Va>rpm.log

# 文件对照MD5 和 

tmp目录

ls -alt  /tmp/
ls -alt  /var/tmp/

# 查找所有tmp目录,然并卵
find / -type d -name tmp |grep -v 'tmp/.*/tmp'

多少天内被修改的文件

find  ./ -mtime 0 -name "*.php"(查找24小时内被修改的php文件)
find  / -ctime 2(查找72小时内新增的文件)
find / *.jsp -perm 4777

find查找可疑文件

# 查找权限是可读可写可执行的文件
find / -name *.jsp -perm 777  
find / -perm 2777
find / -perm 4777

# 查找哪些目录为所有用户可读可写可执行的
# 系统自带的话通常有/tmp /var/tmp /dev/shm等目录
find / -type d -perm 777
find / -type d -perm 1777


10、查看环境变量是否被修改

cat /etc/profile
cat /etc/bashrc
cat ~/.bash_profile
cat ~/.bashrc
cat ~/.bash_logout
env
set


11、日志分析

cat /var/log/messages   #内核及公共消息日志
cat /var/log/cron       #计划任务日志
cat /var/log/dmesg      #系统引导日志
cat /var/log/maillog    #邮件系统日志
cat /var/log/lastlog    #用户登录日志
cat /var/log/boot.log   #记录系统在引导过程中发生的时间
cat /var/log/secure     #用户验证相关的安全性事件
cat /var/log/wtmp       #当前登录用户详细信息
cat /var/log/btmp       #记录失败的的记录
cat /var/run/utmp       #用户登录、注销及系统开、关等事件



cat /var/log/secure* | grep Accepted   #查看登录成功的记录
cat /var/log/secure* | grep Failed     #查看登录失败的记录


12、 检查载入模块

这一块完全不知道,直接复制的 –待更新

# 检查已载入的模块中是否异常模块:
lsmod
# 如果显示有可疑模块使用modinfo查看详细模块信息:
modinfo 模块名  
# 确认是异常模块可以尝试卸载:
rmmod 模块名


13、webshell排查

​ –待更新

# 把所有可以解析的文件全部打包成tar,拿出来D盾扫一下或代码分析
find ./ -name '*.php' |tar -cvf php.tar


14、恶意程序和rootkit

工具有很多 看你喜欢用什么 –待更新

#查杀rootkit
chkrootkit (下载地址-http://www.chkrootkit.org)

rkhunter (下载地址-https://jaist.dl.sourceforge.net/project/rkhunter/rkhunter)(安装-  ./install.sh --install)

#查杀病毒
clamav(下载地址-http://www.clamav.net/download.html)


其他

Attr 权限 和 ACL 访问控制列表 –待更新 => 链接 链接 链接

# chattr可以锁定目录,阻止恶意进程再次生成 
chattr 

# 查看属性
lsattr 

后台运行查看 前面都看过进程了,这个看不看也无碍

jobs    #查看后台运行的任务
fg      #后台运行的任务调到前台运行

还有驱动也是有可能被篡改的 –待更新


参考

https://mp.weixin.qq.com/s/9y0b_sonyrYurTBcBfH3bg
https://blog.csdn.net/qq_36119192/article/details/94397856
https://www.freebuf.com/articles/system/218407.html

# 还有更多但是都很久远了记不起来了





1+
最后修改日期:2020年6月30日

留言

作者

哇好困,整理出来已经第二天早上6点半了

1+

要是有检查md5的就好了,就怕程序被人动过之后还改了ctime和mtime,体积也加的不大。。

0
    作者

    要是rpm系列的可以用rpm -Va看是否被更改

    0

    按照我们老大的操作,应急一切凭感觉,感觉那个文件不对劲,你把找个正常linux md5校验一下不就可以,是在不行,你就md5一下/usr/bin /usr/sbin /bin /sbin /usr/local/bin整一个list放到应急文件夹里,应急的时候直接比对

    3+
      作者

      别问,问就全是经验全是感觉,什么技术 啥技术都没有 玄学就完了

      1+

博主是升天了吗?停更?

0

admin进行回复 取消回复

发布留言必须填写的电子邮件地址不会公开。