应急响应总结与心得分享

共 7916字,需浏览 16分钟

 ·

2021-05-27 21:11

作者:巧克力威化饼  编辑:白帽子社区运营团队




    "白帽子社区在线CTF靶场BMZCTF,欢迎各位在这里练习、学习,BMZCTF全身心为网络安全赛手提供优质学习环境,链接(http://www.bmzclub.cn/)

"    




点击链接参与白帽子社区赠书活动(5月29日上午12:00结束):https://mp.weixin.qq.com/s/D5vc4Mxn3NBF-_Uq56YlyA



前言
作为一个安全打工人,每次在摸鱼的时候,总会碰到一些突发情况,例如以下情况。
老板:那啥XX企业被打了,你去支撑一下吧,顺便出个报告。
老板:XX企业安全设备告警了,你去看一下,看能不能开拓一下市场,顺便出个报告。
我:???
回到正题,像上述影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的系统或业务在最短时间内恢复正常工作,并后续进一步查找入侵来源,还原入侵过程,同时输出文档及安全建议,这样才能接到项目(不,是为企业减少经济损失。)

应急思路及流程

那么问题又来了,应急前我们应该干嘛呢?应急时我们应该干嘛呢?应急后我们应该干嘛呢?

首先,我们应该有一个好的整体思路

信息收集:收集到发生安全事件的资产设备,整理时间线,是否存在恶意文件样本,是什么操作系统等。

判断事件类型:判断是否为安全事件,是web入侵,还是系统入侵,还是网络攻击。

深入排查:通过分析日志、启动项、系统用户、进程、恶意文件等找寻入侵来源。

清除处置:杀掉恶意进程、文件,配合运维人员打好补丁

输出文档:分析整体流程,产出报告。


附一些简单的思维图:

网上也找了一些特别详细的导图链接,下述自取
https://github.com/mrknow001/Mind_Map/blob/main/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94%E6%80%BB%E7%BB%93%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE.png

应急排查工具集

在了解事件的基础情况后,使用一些好的排查工具能让我们快速定位到突破口,节省大量的时间。正所谓工欲善其事,必先利其器,下述推荐一些常用的排查工具。


网络分析排查工具

当我们需要查看传输的数据包时,可能会经常用到下述这些网络排查工具


Wireshark

一款常用的网络分析排查工具,可用来分析网络攻击等事件。如下图,wireshark看出来主机正在遭受arp攻击。


Tcpview

微软内置工具集,网络连接查看工具,体积小,效果比较直观。


Tcpdump

如果系统是linux的话,推荐使用tcpdump,比较轻量,也更方便。

常用命令:

https://www.jianshu.com/p/d9162722f189



进程分析排查工具

有时候有些进程无法直接通过简单的命令查询到,这个时候我们可以借助下述工具对恶意进程进行分析和排查。


PChunter


ProcessHacker


启动项分析工具

一般是为了方便定位病毒启动项,常用的工具为AutoRuns(win上使用)。


AutoRuns


其它类型的工具

像有些特定的病毒,需要专杀工具去查杀和修复正常文件;再或者我们能Everything工具搜索关键字等;再或者用D盾或者河马查杀后门等。


综合查询工具

按照常规查询方向一个一个排查可能需要大量的时间,这个时候有个自动化脚本就显得尤为重要了,这里推荐两个好的的综合查询工具。

 

GScan

这款工具Checklist比较全面,检测速度相对来说也比较快。


dfirtriage

一款用于基于Windows的事件响应的数字取证工具,该工具将在执行时自动运行各种命令。所获取的数据将驻留在执行目录的根目录中。DFIRTriage可以从USB驱动器运行,也可以在目标上的远程外壳中执行。仅支持Windows。


工具集分享

网上有一些大佬将资源整合了,这里附上下载链接地址,请确保安全情况下使用。

tips:请确保安全情况下使用

https://github.com/theLSA/hack-er-toolshttps://www.52pojie.cn/thread-1315923-1-1.html



手动排查

在某些情况下,我们需要手动分析和排查,这个时候就需要掌握一些应急的命令和技巧,下述分别以linux和windows来阐述。

 

Windows

排查系统账号

查看服务器是否新增用户,是否存在弱口令,是否开了redis、远程桌面、ssh是否开启等。

 

测试方法:

可以通过咨询客户,或者通过命令行查询,再或者通过简单的扫描得到

查看服务器是否存在可疑账号、隐藏账户、新增账号

Win+R -> lusrmgr.msc

或通过注册表查看(记得赋予对SAM键的权限)

Win+R -> regedit.exeHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

如下图可以看出目标服务器被添加了隐藏账户test$


日志分析与排查

系统日志分析

Win+R>eventvwr.msc


导出Windows的安全日志,利用LogParser进行分析,或者通过手动分析。

Windows常见的日志事件ID附:Vista/Win7/Win8/Win10/Server2008/Server2012及之后的版本 事件ID   说明 1102    清理审计日志 4624    账号成功登录 4625    账号登录失败 4768    Kerberos身份验证(TGT请求) 4769    Kerberos服务票证请求 4776    NTLM身份验证 4672    授予特殊权限 4720    创建用户 4726    删除用户 4728    将成员添加到启用安全的全局组中 4729    将成员从安全的全局组中移除 4732    将成员添加到启用安全的本地组中 4733    将成员从启用安全的本地组中移除 4756    将成员添加到启用安全的通用组中 4757    将成员从启用安全的通用组中移除 4719     系统审计策略修改
LogParser常用命令https://www.jianshu.com/p/0f3ec2fb57a4

例:查看事件258的记录


Web日志分析

先找到中间件的web日志,打包到本地进行分析


检查异常进程、端口

攻击者如果入侵主机后一般会上传恶意文件,这个时候一般会有外联情况,所以我们需要查看主机是否存在异常进程、端口

netstat -anotasklist | find"PID"

如果找寻到恶意进程,可以使用以下命令获取系统进程详细信息

简单使用:

cmd >wmic process

复杂一点:

wmic process get caption,commandline,creationDate,executablepath,handle,handleCount> C:1.txtcaption:进程名commandline:进程名、进程执行参数、程序执行路径creationDate:进程启动时间(格式为:年月日时分秒)executablepath:程序执行路径handle:进程pidhandleCount:该进程的父pid

像有些比较难找出的恶意进程,可以尝试用上述工具集里的工具进行针对性的排查。

 

检查系统相关信息

通过检查系统版本和判断补丁信息,再回忆近期是否有什么重大型漏洞,或者是去提权辅助界面看看是否存在可利用的信息。

cmd > systeminfo


查看用户目录及文件,如果攻击者新建账号的话会生成一个用户目录,同时可以根据文件的事件排序,看看是否有可疑的文件夹

Win+R >cmd >%UserProfile%\Recent


检查计划任务、启动项、服务、环境变量

检查主机是否存在计划任务

Cmd > schtasks或at


检查主机是否存在异常启动项

Win+R >regedit

打开注册表,查看开机启动项是否正常,特别注意以下三个注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\runHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce


检查主机是否存在异常服务

Win+R >services.msc


检查主机环境变量是否存在异常

使用set命令将环境变量导出检查


恶意文件及病毒查杀

恶意病毒查杀:建议下载安全软件,对系统进行全盘扫描并查杀。

恶意文件查杀:像如果是webshell这种,可以使用D盾,河马等查杀工具进行查杀。


防火墙及杀毒软件排查

检查操作系统防火墙是否存在异常

windows操作防火墙配置着允许/拒绝通行的入站/出站规则,可根据防火墙配置判断该主机在同网段内的可攻击面积。

netsh firewall show state  //查看防火墙此时状态netsh advfirewall firewall show rulename=all dir=in //入站规则netsh advfirewall firewallshow rule name=all dir=out //出站规则


检查杀软是否检测出异常

如果目标主机安装了杀软,攻击者在入侵主机时杀软难免会记录到部分痕迹,这个时候我们可以对杀软日志记录进行分析。


Linux

如果是linux系统应急的话,可能需要掌握一些常见的排查命令

Uptime:查看当前系统时间,存在用户,负载等信息
Stat:会显示文件UID,文件名,文件属性,文件访问时间等Lsof:列出来当前系统打开文件Find:目录文件列出来,也可以查找文件md5sum:该命令用于生成和校验文件的md5值Ps:列举常用进程Netstat:查看网络连接及开放端口号Top:经常用来监控linux的系统状况

更多命令参数请查看下述链接:

https://www.hackjie.com/1402.html


在了解这些命令之后,才只是我们正式排查的开始,接下来我们可以按照下述方式进行排查。

排查系统账号

通过以下命令查看系统用户

/etc/passwd //该文件用于用户登录时校验 用户的口令/etc/shadow //存放相应的用户密码,又称为影子文件/etc/group   //记录组ID和组名的对应文件
查询特权用户:cat /etc/passwd | awk-F":" '$3==0{print $1}'查询可以远程登录的账号:cat /etc/shadow |awk'/\$1|\$6/{print $1}'查询具有sudo权限账号:more /etc/sudoers | grep -v "^#\|^$" | grep"ALL=(ALL)"


查看历史记录

一般是如下两个命令

history //记录执行过的命令.bash_history //记录执行过的命令

二者区别

history显示内存和~/.bash_history中的所有内容;内存中的内容并没有立刻写入~/.bash_history,只有当当前shell关闭时才会将内存内容写入shell。


检查异常进程、端口

netstat -antlp  //查看端口命令,a是查看所有ps -aux    //查看进程命令


检查开机启动项、定时任务、服务、异常文件

查看启动项常用方式

more /etc/rc.local/etc/rc.d/rc[0-6].dls -l /etc/rc.d/rc3.d

查看服务常用方式

chkconfig -list //列出chkconfig所知道的所有的服务的情况

 

查看定时任务

/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/*/etc/cron.daily/*

查看异常文件

可以查看临时目录下的文件,也可以查看. .. 等前缀 或关键字的异常文件

 

查看系统环境变量

Linux的系统级环境变量位于/etc/目录中,用户级环境变量位于~/目录中。

常看到的两个目录:

/etc/profile/home/用户/.bash.profile
env:该命令显示所有的环境变量set:该命令显示所有本地定义的Shell变量
tips:alias也可以实现隐藏指定程序的内容回显,应值得注意


日志分析与排查

Linux下的日志记录一般都在/var/log文件下,以下收集了一些常用的筛选方式

原文链接:https://mp.weixin.qq.com/s/bYVebbDIL18odT0ShA6s7Q


1、定位有多少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

 

2、登录成功的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}'


3、增加一个用户kali日志:

Jul 10 00:12:15 localhost useradd[2382]:new group: name=kali, GID=1001Jul 10 00:12:15 localhost useradd[2382]:new user: name=kali, UID=1001, GID=1001, home=/home/kali, shell=/bin/bashJul 10 00:12:58 localhost passwd:pam_unix(passwd:chauthtok): password changed for kali#grep "useradd" /var/log/secure


4、删除用户kali日志:

Jul 10 00:14:17 localhost userdel[2393]:delete user 'kali'Jul 10 00:14:17 localhost userdel[2393]:removed group 'kali' owned by 'kali'Jul 10 00:14:17 localhost userdel[2393]:removed shadow group 'kali' owned by 'kali'# grep "userdel" /var/log/secure


5、su切换用户:

Jul 10 00:38:13 localhost su:pam_unix(su-l:session): session opened for user good by root(uid=0)sudo授权执行:sudo -lJul 10 00:43:09localhost sudo:    good : TTY=pts/4 ;PWD=/home/good ; USER=root


防火墙及杀毒软件排查

检查操作系统防火墙是否存在异常

linux操作防火墙配置着允许/拒绝通行的入站/出站规则,可根据防火墙配置判断该主机在同网段内的可攻击面积。

不同的linux版本可能命令会不一样,这里以centos为例

Centos 6.x版本iptables:

service iptables status //查看防火墙状态service iptables start  //开启防火墙

Centos 7版本 firewall:

开放特定端口:

firewall-cmd  --zone=public  --add-port=8080/tcp  --permanent

查看防火墙状态:

firewall-cmd   --state

重启防火墙:

systemctl  restart firewalld

查看端口列表:

firewall-cmd --zone=public  --list-ports

 

二者的配置一般在/etc/sysconfig/iptables/etc/firewalld/zones/pulic.xml


检查杀软是否检测出异常

如果目标主机安装了杀软,攻击者在入侵主机时杀软难免会记录到部分痕迹,这个时候我们可以对杀软日志记录进行分析。

 

报告模板

相信通过上述方式排查后,或多或少会有些收获吧,这个时候我们需要输出报告文档,这里收集了网上的一些简单文档,总体格式都差不多,后续可以自行添加和删除。


https://www.uedbox.com/post/9816/


最后,望各位师傅项目接的多,漏洞一挖一个准,最好没有应急突发情况,文章写的不好,望多多担待,不喜勿喷,DD怕疼。

 

参考文章链接:

https://www.freebuf.com/articles/terminal/192859.htmlhttps://mp.weixin.qq.com/s/bYVebbDIL18odT0ShA6s7Q



往期精彩文章




通达OA漏洞整理
记一次日志分析
【干货导航】各大公众号优质文章分类导航,你想看的全都有
【Helen】stach4+Checkin 赛题实操




技术支持:白帽子社区团队
— 扫码关注我们 





浏览 101
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报