应急响应处理

Windows

Windows 系统安全事件应急响应 - 先知社区 (aliyun.com)

【应急响应】Windows应急响应入门手册 - fox-yu - 博客园 (cnblogs.com)

一、排查系统账号

  • 查看是否有新增用户
  • 查看服务器是否有弱口令
  • 查看管理员对应键值
  • lusrmgr.msc​ 查看账户变化
  • net user​列出当前登录账户
  • wmic UserAccount get​列出当前系统所有账户

二、排查可疑端口,进程

1
2
3
4
5
6
7
8
9
10
netstat -ano |findstr "3306" 查看是否打开了可疑端口
tasklist | findstr PID 查看是否有可疑进程

查看可疑的进程及其子进程。可以通过观察以下内容:
-没有签名验证信息的进程
-没有描述信息的进程
-进程的属主
-进程的路径是否合法
-CPU或内存资源占用长时间过高的进程
-可以获取进程关联的文件 MD5 值,然后发送到威胁情报平台上辅助检查。进程关联的文件也可以使用在线病毒检测平台上直接检测。

三、排查启动项,计划任务,服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
分析开机自启程序 
注册表中的关于开机启动的位置:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
(ProfilePath)\Start Menu\Programs\Startup 启动项

msconfig 启动选项卡
gpedit.msc 组策略编辑器

查看计划或定时任务
C:\Windows\System32\Tasks\
C:\Windows\SysWOW64\Tasks\
C:\Windows\tasks\
schtasks 查看计划任务
taskschd.msc 计划任务面板
compmgmt.msc 计算机管理面板

services.msc 查看启动服务

四、排查系统相关信息

1
2
3
4
5
6
7
8
9
10
11
12
13
1、查看系统版本以及补丁信息 
检查方法:
单击【开始】>【运行】,输入systeminfo,查看系统信息
2、查找可疑目录及文件
检查方法:
a、 查看用户目录,新建账号会在这个目录生成一个用户目录,查看是否有新建用户目录: Window 2003 C:\Documents and Settings和Window 2008R2 C:\Users\
b、单击【开始】>【运行】,输入%UserProfile%\Recent,分析最近打开分析可疑文件。
c、在服务器各个目录,可根据文件夹内文件列表时间进行排序,查找可疑文件。
d、回收站、浏览器下载目录、浏览器历史记录
e、修改时间在创建时间之前的为可疑文件
3、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
a、利用 Registry Workshop 注册表编辑器的搜索功能,可以找到最后写入时间区间的文件。
b、利用计算机自带文件搜索功能,指定修改时间进行搜索

五、系统查杀情况

1
2
3
4
5
6
1、病毒查杀 
检查方法:
下载安全软件,更新最新病毒库,进行全盘扫描。
2、webshell查杀
检查方法:
选择具体站点路径进行webshell查杀,建议使用两款webshell查杀工具同时查杀,可相互补充 规则库 的不足。

六、日志分析

1
2
3
4
5
6
7
8
9
10
1、系统日志 
分析方法:
a、前提:开启审核策略,若日后系统出现故障、安全事故则可以查看系统的日志文件,排除故障,追查入侵者的 信息等。
b、Win+R打开运行,输入“eventvwr.msc”,回车运行,打开“事件查看器”。
c、导出应用程序日志、安全日志、系统日志,利用Log Parser进行分析。

2、WEB访问日志
分析方法:
a、找到中间件的web日志,打包到本地方便进行分析。
b、推荐工具:Window下,推荐用 EmEditor 进行日志分析,支持大文本,搜索效率还不错。 Linux下,使用Shell命令组合查询分析

Linux

一、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
检查命令文件是否被替换:
rpm -Vf /usr/bin/*
rpm -Vf /usr/sbin/*
#rpm -Vf /usr/bin/xxx
#S 关键字代表文件大小发生了变化
#5 关键字代表文件的 md5 值发生了变化
#T 代表文件时间发生了变化

排查历史命令:hitstory
在 root账户下排查是否有黑客执行的命令
> cd /root
> cat .bash_history

ifconfig 查看网络转发,也可用于查看网络丢包
top -c 查看进程占用
md5sum filename 可用于判断系统命令是否被修改及查询文件威胁情报
tcpdump 抓包
who 查看当前登录用户
netstat 查看网络连接
ps 查看进程
skill -9 -t user 强制下线用户

二、启动项及计划任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
查看服务器的定时任务:
cd /var/spool/cron
cat root

/etc/init.d/ 查看linux开机启动程序
/etc/xinetd.d 网络守护进程服务,用于启动一些网络程序
查看rc.local文件(/etc/init.d/rc.local 将程序加入开机启动在 /etc/rc.local中的exit 0前加即可)
/etc/rc.d/rc[0~6].d 各个运行级别的脚本文件,基本都是/etc/init.d/下的软链接,ubuntu的启动级别:0关机1单用户2-5  多用户图形界面6重启
/etc/profile.d/ 应用程序所需的启动脚本
计划任务:
crontab -l 列出某个用户cron服务详细内容
crontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)
crontab -e 使用编辑器编辑当前的crontab文件

三、网络行为

1
2
3
4
5
6
7
8
9
10
11
排查网络连接:netstat -anpto
根据PID好查找程序位置:lsof -p PID

flsof -i -PnR 查看网络通信情况
iptables -A OUTPUT -d ip -j DROP 屏蔽网络ip
iptables -I INPUT -p tcp --dport 443 -m string --string "x.com" --algo bm -j DROP 用iptables封锁与之通信的域名x.com
cat /etc/services 查看网络服务
cat /etc/hosts 查看hosts是否修改
tcpdump 有时候直接抓包能少走很多弯路
例:客户被通报主机对外发起DDOS攻击,首先想到的是肉鸡,
但排查了半天没结果,后来抓包发现DDOS发出的包为NTP数据包,攻击行为是NTP Reply Flood Attack

四、文件检查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
查看文件状态:stat shell.elf

ls -alt 指定目录下文件按照时间排序
stat filename 查看文件信息
touch -t 时间戳 filename

find / -uid 0 -print 查找特权用户文件,即超级权限用户,如root,UID为0的帐号也不一定都是可疑帐号,Freebsd默认存在toor帐号,且uid为0
find / -name "username" -prin 查找特定用户名的文件
ls -al /tmp | grep "Feb 27" 根据确定时间去反推变更的文件
find / * .jsp -perm 4777 查找777的权限的文件
find / | xargs grep xxx 查看包含xxx字符串的文件

敏感目录的文件分析(类/tmp目录,命令目录/usr/bin /usr/sbin)

查找24小时内被修改的JSP文件: find / -mtime 0 -name "*.jsp"
查找72小时内新增的文件: find / -ctime -2

五、账号检查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
排查后门用户:who

查看特权账户:awk -F: '$3==0 {print$1}' /etc/passwd
查看是否存在空口令用户: awk -F: 'length($2)==0 {print $1}' /etc/shadow
查询可以远程登录的帐号信息: awk '/\$1|\$6/{print $1}' /etc/shadow

查看用户最近登录情况:
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'

less /etc/passwd 查看是否有新增用户
ls -l /etc/passwd 查看passwd最后修改时间,文件是否在不知情的情况下被修改

cat /etc/passwd | grep -E“/bin/bash$” 能够登录的帐号
usermod -L user 禁用帐号,帐号无法登录,/etc/shadow第二栏为!开头

last,查看系统的成功登录、关机、重启等情况,数据源为/var/log/wtmp,var/log/btmp
lastb,看登录失败的情况,本质是将/var/log/btmp二进制文件格式化输出
lastlog,查看用户上一次的登录情况,本质是将/var/log/lastlog二进制文件格式化输出
last -x reboot/shutdown 查看重启/关机的记录

查看历史命令: cat .bash_history
如果黑客使用history -c清理相关的日志,使用cat ~/.bash_history仍可查看相关的记录,
打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令

六、进程检查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
lsof -p PID               查看指定进程打开的文件
lsof /filepath/filename 查看调用文件的进程

进程隐藏及对应办法
1、命令替换 检查命令文件md5值
2、Hook系统调用:攻击者可以劫持getdents和libc中的readdir函数(修改内核中的系统调用代码或者修改lib中的函数代码)实现过滤特定进程名,从而实现进程隐藏。
3、动态库劫持,如通过环境变量LD_PRELOAD使恶意链接的动态库先于系统标准库加载
查看隐藏进程:
ls /proc | sort -n |uniq >2
可应对2和3方法,或查看/proc下进程相关信息
4、挂载目录到/proc下,原理为挂载一些空的路径到/proc对应进程号下面,ps等命令在遍历/proc时则没有办法找到该进程的信息
应对方法:
查看挂载情况: cat /proc/mount
5、内核态隐藏,劫持VFS接口层或劫持系统调用,这两个方法要么修改内核,要么新增内核模块,修改内核需要重启,加载内核模块不需要。
应对方法:
查看内核编译时间: uname -a
查看内核模块 : lsmod

进程内存检查
dump进程内存环境,可使用系统自带gdb调试,strace?
/proc/pid/maps 查看进程内存地址,堆中的信息比较全

gdb attach pid attach到pid对应的进程,
然后使用dump memory /filename start_address end_address将内存dump下来

筛选出长度大于10的字符串:kali
strings -n 10 filename

七、日志分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
日志默认存放位置 : 
/var/log/
/var/log/secure — 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH、VNC登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中,不过较新的linux系统已经弃用secure,改用auth.log记录
/var/log/cron — 记录了系统定时任务相关的日志
/var/log/auth.log — 包含系统授权信息,包括用户登录和使用的权限机制等。
/var/log/faillog – 包含用户登录失败信息,此外,错误登录命令也会记录在本文件中

定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么:
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
ssh免密登录 查看根目录下的.ssh/目录,另外查看ssh配置文件中的RSAAuthentication和PubkeyAuthencation是否为yes
增加用户的日志:grep "useradd" /var/log/secure
删除用户的日志:grep "userdel" /var/log/secure
/var/log/xferlog 主要记录FTP用户进行的一些上传下载行为
/var/log/vsftpd.log 主要记录用户的登录日志

工具

Windows

一、windows进程排查工具

  • ProcessHacker

  • Autoruns

  • Sysinternals Utilities

  • 火绒剑

二、windows webshell扫描工具

  • 河马

  • D盾

  • 深信服SfabAntiBot_X64查杀工具

  • 火绒查杀

三、Windows 日志分析工具

  • evtxLogparse1.3

四、Windows 网络数据包分析工具

  • wireshark

Linux

一、Linux进程排查排查工具

  • GScan 是一款开源的 Linux 应急响应工具

二、病毒查杀

  • rootkit查杀

chkrootkit 工具(网址:http://www.chkrootkit.org)进行 Rootkit 查杀

  • ClanAV

ClamAV 的官方下载地址为:http://www.clamav.net/download.html,安装使用如下

开源病毒扫描程序,主要应用于邮件服务器,采用多线程后台操作,可以自动升级病毒库。

、Webshell 查杀

Linux 系统:

在线情报社区

1
2
3
4
5
6
7
8
微步
https://x.threatbook.cn/](https://x.threatbook.cn/
VT
https://www.virustotal.com/gui/home/upload](https://www.virustotal.com/gui/home/upload
深信服勒索病毒查询平台
https://edr.sangfor.com.cn/#/information/ransom_search](https://edr.sangfor.com.cn/#/information/ransom_search

可疑木马shell,病毒、用在线沙箱检测