- A+
一.WINDOWS应急响应
1.文件排查
1)使用Process Explore、Process Monitor、Autoruns查看进程运行时的文件位置。
2)查看开机有无异常文件
WIN+R执行msconfig
3)敏感文件路径排查
- %WINDIR%
- %WINDIR%\system32
- %TEMP% 查看Windows产生的临时文件有无异常
- %LOCALAPPDATA%
- %APPDATA%
4)查看用户recent最近的使用文档:
- WIN+R执行%UserProfile%\Recent
5)文件夹内按时间顺序排序,查找可疑文件
6)有些文件,存在被黑客修改过时间 对比创建时间和修改时间,寻找可疑文件。
2.进程排查
1)查看目前的网络连接
- 定位可疑的ESTABLISHED:netstat -ano |findstr ESTABLISHED
- 接着配合netstat定位到pid,在通过tasklist命令定位进行程:tasklist | findstr pid
- 注:
- LISTENING:侦听状态
- ESTABLISHED:建立连接
- CLOSE_WAIT:对方主动关闭连接或网络异常中断
2)wmic process获取进程全路径
- wmic process | findstr "target.exe"
- 或者任务管理器定位到进程路径
- 查询进程:
- wmic process
- wmic process list brief
3)获取进程绝对位置
- wmic process where name="XXX" get executablepath
- 删除进程:
- wmic process where processid="2345" delete
4)枚举启动项&枚举计划任务
- C:\Users\QIYOU>wmic startup list full
- Caption=Autodesk Sync
- Command=C:\Program Files\Autodesk\Autodesk Sync\AdSync.exe
- Description=Autodesk Sync
- Location=HKU\S-1-5-18\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- SettingID=
- User=NT AUTHORITY\SYSTEM
- Caption=发送至 OneNote
- Command=发送至 OneNote.lnk
- Description=发送至 OneNote
- Location=Startup
- SettingID=
- User=LAPTOP-FVJUV0KC\QIYOU
- ======
- schtasks /query /fo table /v
3.系统信息排查
- 1)查看环境变量的TEMP
- 2)查看Windows计划任务程序
- 3)查看是否有隐藏用户,如admin$
- 4)查看当前系统用户的会话:query user
- 踢出会话用户:logoff会话序列顺序号
- 5)查看systeminfo信息,系统版本以及补丁信息
4.工具排查
- 1)PC Hunter
- 2)Procexp进程查看工具
- 3)Microsoft Network Monitor
5.日志排查
- 1)系统日志
- 2)应用程序日志
- 3)安全日志
- 若安全日志被黑客删除,可以查看RemoteConnectionManager日志
6.后门排查
- 1)粘滞键和轻松访问等后门
- 2)ADS数据流隐藏
二.LINUX应急响应
1.文件排查
1)敏感临时/tmp目录,可执行程序目录/usr/bin /usr/sbin
- #ls -alt /tmp
- (ls -alt dir)
2)查看本机启动项
- ls -alt /etc/init.d
3)stat查看文件创建事件和修改时间,确认是否被篡改
4)查看历史命令记录:
- cat /root/.bash_history | more
5)查看操作用户信息:
- cat /etc/passwd
6)查看最近新增文件 通过man find可以查看使用方法
- find ./ -mtime 0 -name "*.*" (查找24小时内被修改的php文件)
- find / -ctime 2 (查找72小时内新增的文件)
PS:-ctime内容未改变权限改变时候也可以查出 常见查找webshell命令
- find /var/webroot -name "*.php" | xargs grep 'eval|shell_exec|system|pasthru' | more
7)特殊权限的文件查看 如查看777特权的文件:
- find / *.jsp -perm 777
8)查看隐藏的文件(以"."开头的具有隐藏属性的文件)
- ls -ar | grep "^\."
- PS:grep是使用正则匹配,“^\."匹配开头为”.“的文件
9)查看分析任务计划
- crontab -u <-l,-r,-e>
- -u指定一个用户
- -l列出某个用户的任务计划
- -r删除某个用户的任务
- -e编辑某个用户的任务(编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件)
2.进程排查
1)netstat分析可疑端口、IP、PID及程序进程
- netstat -anlp | more
查看建立侦听的连接,使用ps命令分析进程
- ps aux | grep pid
2)隐藏进程查看
- [root@mysql01 ~]# ps -ef | awk '{print $2}' | sort -n | uniq>1
- [root@mysql01 ~]# ls /proc | sort -n | uniq >2
- [root@mysql01 ~]# diff 1 2
- 1c1,58
- < PID
- ---
- > acpi
- > asound
- > buddyinfo
- > bus
- > cgroups
- > cmdline
- > consoles
- > cpuinfo
3)ps进程的时候,有可能命令较长,被终端截断的可能性。存在空格超长截断命令,进而隐藏进程,需排查一下。
3.日志排查
1)重要日志
- 登录失败记录:/var/log/btmp //lastb
- 最事一次登录:/var/log/lastlog //lastlog
- 登录成功记录:/var/log/wtmp //last
- 登录日志记录:/var/log/secure
- 目前登录用户信息:/var/run/utmp //w/who/users
- 历史命令记录:history
- 仅清理当前用户:history
2)位于多少IP在爆破主机的root账号
- [root@mysql01 ~]# grep "Failed password for root" /var/log/secure | awk '{print$11}' | sort |uniq -c | sort -nr | more
- [root@mysql01 ~]#
3)登录成功的IP有哪些
- [root@mysql01 ~]# grep "Accepted" /var/log/secure | awk '{print$11}' | sort |uniq -c | sort -nr | more
- 2 10.128.30.164
- [root@mysql01 ~]#
4)查询访问量前十的IP地址
- cat access.log | cut -f 1 -d '' | sort | uniq -c |sort -k 1 -n -r | head -10
5)查询访问量前十的URL
- cat access.log | cut -f 7 -d "" | sort | uniq -c |sort -k 1 -n -r | head -10
6)统计访问量前十QPS的时间点
- cat access.log | cut -f 4 -d '' uniq -c |sort -k 1 -n -r | head -10
7)查看数据库的查询操作
- 如mysql的/var/log/mysql
- 查询关键词:
- cat mysql.log |grep union
4.系统信息排查
1)查看分析history
- cat /root/.bash_history
2)分析用户的账号权限
- [root@mysql01 ~]# cat /etc/passwd | grep -E "/bin/bash$"
- root:x:0:0:root:/root:/bin/bash
- moonrong:x:1000:1000:moonrong:/home/moonrong:/bin/bash
- [root@mysql01 ~]#
3)查看开机启动项
- [root@mysql01 ~]# ls -alt /etc/init.d/
- 总用量 40
- drwxr-xr-x. 2 root root 70 11月 6 09:06 .
- drwxr-xr-x. 10 root root 127 11月 6 09:06 ..
- -rw-r--r--. 1 root root 1160 4月 1 2020 README
- -rw-r--r--. 1 root root 18281 8月 19 2019 functions
- -rwxr-xr-x. 1 root root 4569 8月 19 2019 netconsole
- -rwxr-xr-x. 1 root root 7928 8月 19 2019 network
4)检查shell的配置文件.bashrc和.bash_profile等文件是否有恶意的alias问题
- /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
- /etc/bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
- .~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,它设置一些环境变量,执行用户的.bashrc文件。
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
- ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件。
5)系统路径分析
- [root@mysql01 ~]# echo $PATH
- /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
- [root@mysql01 ~]#
5.后门排查
1)分析sshd文件,是否包括IP信息
- strings /usr/bin/.sshd | grep '[1-9]{1,3}.[1-9]{1,3}.'
PS:strings命令在对象文件或二进制文件中查找可打印的字符串。
2)查看ssh相关目录有无可疑的公钥存在 Redis(6379)未授权恶意入侵,即可直接通过redis到目标主机导入公钥 目录:/etc/ssh ./.ssh/
3)使用chkrootkit是用来监测rootkit是否被安装到当前系统中的工具。
- #检测是否被植入后门、木马、rootkit
- #检测系统命令是否正常
- #检测登录日志
4)使用Rkhunter进行排查
系统命令(Binary)检测,包括MD5校验、Rootkit检测、本机敏感目录、系统配置、服务等异常检测、三方应用版本检测。PS:Rkhunter是Linux系统平台下的一款开源入侵检测工具,具有非常全面的扫描范围,除了能够检测各种已知的rootkit特征码以外,还支持端口扫描、常用程序文件的变动情况检查。
5)Webshell检查 Webshell的排查可以通过文件、流量、日志三种方式进行分析,基于文件的命名特征和内容特征,相对操作性较高,在入侵后应急过程中频率也比较高。a)Webshell的排查可以通过可根据webshell特征进行命令查找,简单的可使用(当然会存在漏报和误报)
- find /var/www/ -name "*.php" | xargs egrp 'assert|phpspy|c99sh|milw0rm|eval|(gunerpress|\
- (base64_decoo|code|spider_bc|shell_exec|passthru|\((\$\_\POST\[|eval \(str_rot13|\.chr\(|\$\{\"\_P|eval\(\$\_R|file_put_contents\(\.\*$\_|base64_decode'
b)Github上存在各种版本的webshell查杀脚本,各有各的自己的特点,可使用河马shell查杀 (shellpub.com)
6)手工Webshell排查
- find /var/www/html/ -type f -name '*.php'|xargs grep 'eval' | more
7)D盾查杀
8)执行命令strace -e access,open id,可看到strace命令id的时候,可以发现有预先去读取/etc/ld.so.preload文件(也可使用设置LDPRELAOD环境变量方式),如果我们事先写好的恶意so文件位置写入ld.so.preload文件,这时就会达到劫持的效果。通过strace命令去跟踪预加载的文件是否为/etc/ld.so.preload,以及文件中是否有异常的动态链接库。以及检查是否设置LDPRELOAD环境变量等。
9)命令被劫持,不能正常运行命令。可疑使用busybox作为替代。
10)查找SUID的程序
- find / -type f -perm -04000 -ls -uid 0 2 > /dev/null
6.对应措施
通过chkrootkit、rkhunter、Webshell check等手段得出以下对应措施:
1)根据进程、连接等信息关联的程序,查看木马活动信息。
2)假如系统的命令(例如netstat、ls等)被替换,为了进一步排查,需要下载一新的或者从其他未感染的主机拷贝新的命令。
3)发现可疑可执行的木马文件,不要急于删除,先打包备份一份。
4)发现可疑的文本木马文件,使用文本工具对其内容进行分析,包括回连IP地址、加密方式、关键字(以便扩大整个目录的文件特征提取)等。