前言

简单学习了一下应急响应相关的知识。总结自己实际的攻防经验,虽然参与应急响应的次数有限,但还是有些思路的,当然这也是不够完善的,后面会结合更多的应急响应经历来完善这份清单。

所以只在这里列出一个应急响应清单,方便自查。

分析思路

一般受害者主机都属于这三大类:

1.web服务器

中间件、框架版本、语言(php\jsp\asp)、是否存在弱口令(万能密码)、是否站库分离,登录爆破难度,这些都是我们能够快速了解到的,也是常见的getshell手段。

中间件是为了知道网站的文件架构和历史漏洞等,框架版本落后可能存在nday漏洞,获取网站语言是为了查杀可能存在的webshell,弱口令进入后台上传文件getshell或者直接命令执行,站库分离的话就排除了通过sql注入getshell的可能,登录爆破是否有token、验证码、错误次数限制等。

2.远程连接服务器

Windows远程连接:3389

vnc服务:5901/5902

ssh:22

telnet:23

都存在弱口令爆破的可能,而爆破必定会产生大量失败日志,可以关注近期Windows日志登录失败的ip。

3.数据库服务器

Mysql:3306

MSSQL:1433/1434

Oracle:1512

PostgreSQL:5432

MongoDB:27017

Redis:6379

数据库提权,redis未授权访问写入ssh等。

Windows系统排查

直接排查危险项:

1.用户信息

普通用户

1
net user

影子用户

1
reg query HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

D盾

2.进程、服务

任务管理器有没有占用内存较高的、可疑服务

火绒剑排查可疑进程

3.网络连接

1
netstat -ano

获得可疑连接的进程号pid后,进一步筛选

1
tasklist | findstr pid

得知是哪个进程建立的连接

4.启动项、计划任务

启动项

任务管理器的启动

计划任务

1
schtasks

5.日志分析

打开事件查看器,win+r

1
eventvwr

系统日志:

查看日志删除记录,事件ID 104,这个ID记录所有审计日志清除事件,就算入侵者删除了日志,我们也可以初步判定他入侵的时间。

image-20221019210456086

安全日志:

事件ID 4624 代表登录成功的用户,如果登录类型是10,说明是远程登录,关于登录类型的说明可自行百度,一般在凌晨登录的都是攻击者。

事件ID 4625,代表登录失败的用户,如果是远程爆破进来的,一定会留下很多爆破失败的痕迹,我们可以在这里查找多次爆破失败的IP,然后再筛查其进行的事件。

image-20221019211405485

如果上面不好找或者不是通过远程爆破进来的,他一定会进行创建用户账号、修改密码等操作。

事件ID:4720,4722,4723,4724,4725,4726,4738,4740 代表当用户账号发生创建,删除,改变密码时的事件记录。

事件ID: 4727,4737,4729,4762 代表当用户组发生添加、删除时或组内添加成员时生成该事件。

6.自动化日志提取分析工具

APT-Hunter

中文README翻译

其他翻译

快速分析日志小工具

正确的使用可以快速杀死比赛

7.病毒查杀

360

8.木马查杀

D盾防火墙

内存马查杀

卸载冰蝎内存马

首先查看机器进程,找到Tomcat或者Weblogic进程ID,如下为查找Tocmat进程ID

1
ps -el | grep org.apache.catalina.startup.Bootstrap

运行卸载内存马程序

1
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar releaseBehinderShell-1.0-SNAPSHOT-jar-with-dependencies.jar [pid]

java-memshell-scanner

通过jsp脚本扫描并查杀各类中间件内存马,比Java agent要温和一些。

Linux系统排查

1.账号安全

1
2
3
4
who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载
last 最近登录的用户

快速列出所有所有 uid 为0的用户

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

快速列出可以远程登录账号

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

2.历史记录

root用户

1
cat ~/.bash_history

其他用户

1
cat /home/username/.bash_history

3.检查异常进程、端口

1
2
3
netstat -antlp | more
或者
ps aux | grep root

查看下pid所对应的进程文件路径,($PID 为对应的pid 号)

1
2
3
ls -al /proc/$PID/exe

file /proc/$PID/exe

image-20221019221015371

4.检查开机启动项

1
2
3
开机启动配置文件
cat /etc/rc.local
cat /etc/rc.d/rc[0~6].d

5.检查定时任务

Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如: /var/spool/cron/root

crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)

crontab -e 使用编辑器编辑当前的crontab文件

如:*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件

列出某个用户cron服务的详细内容

1
crontab -l

重点关注

1
2
3
4
5
6
7
8
9
/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/*

6.检查服务

查看系统运行的服务

1
chkconfig --list 

7.Linux日志分析

日志文件与说明

image-20221019222011394

image-20221019222028814

8.快速应急小工具

GScan

image-20221019222532076

1
git clone git@github.com:grayddq/GScan.git

LinuxCheck

image-20221019222509960

1
git clone git@github.com:al0ne/LinuxCheck.git

9.病毒/恶意软件查杀

clamav

或者

1
yum install -y clamav

chkrootkit

安装

1
2
3
4
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense

10.webshell查杀

快速查找1小时内修改的jsp文件

1
find [扫描路径] -type f -mmin -60 -name "*.jsp"

河马webshell查杀

安装

1
wget -O /opt/hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.7.0

深信服 webshell 扫描工具