应急响应处理
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 日志分析工具
四、Windows 网络数据包分析工具
Linux
一、Linux进程排查排查工具
- GScan 是一款开源的 Linux 应急响应工具
二、病毒查杀
chkrootkit 工具(网址:http://www.chkrootkit.org)进行 Rootkit 查杀
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,病毒、用在线沙箱检测
|