1 事宜分类
常见的安全事宜:
Web入侵:挂马、修改、Webshell
系统入侵:系统非常、RDP爆破、SSH爆破、主机漏洞
病毒木马:远控、后门、打单软件
信息泄露:拖裤、数据库登录(弱口令)
网络流量:频繁发包、批量要求、DDOS攻击
2 排查思路
一个常规的入侵事宜后的系统排查思路:
a) 文件日期、新增文件、可疑/非常文件、最近利用文件、浏览器下载文件
b) Webshell 排查与剖析
c) 核心运用关联目录文件剖析
进程剖析
a) 当前活动进程 & 远程连接
b) 启动进程&操持任务
c) 进程工具剖析
i. Windows:Pchunter
ii. Linux: Chkrootkit&Rkhunter
系统信息
a) 环境变量
b) 帐号信息
c) History
d) 系统配置文件
日志剖析
a) 操作系统日志
i. Windows: 事宜查看器(eventvwr)
ii. Linux: /var/log/
b) 运用日志剖析
i. Access.log
ii. Error.log
3 剖析排查
3.1 Linux系列剖析排查
3.1.1 文件剖析
敏感目录的文件剖析(类/tmp目录,命令目录/usr/bin /usr/sbin)
例如:
查看tmp目录下的文件: ls –alt /tmp/
查看开机启动项内容:ls -alt /etc/init.d/
查看指定目录下文件韶光的排序:ls -alt | head -n 10
针对可疑文件可以利用stat进行创建修正韶光、访问韶光的详细查看,若修正韶光间隔事宜日期靠近,有 线性关联,解释可能被修改或者其他。
新增文件剖析
例如要查找24小时内被修正的JSP文件: find ./ -mtime 0 -name \公众.jsp\"大众
(末了一次修正发生在间隔当前韶光n24小时至(n+1)24 小时)
查找72小时内新增的文件find / -ctime -2
PS:-ctime内容未改变权限改变时候也可以查出
根据确定韶光去反推变更的文件
ls -al /tmp | grep \"大众Feb 27\"大众
分外权限的文件
查找777的权限的文件 find / .jsp -perm 4777
隐蔽的文件(以 \公众.\"大众开头的具有隐蔽属性的文件)
在文件剖析过程中,手工排查频率较高的命令是 find grep ls 核心目的是为了关联推理出可疑文件。
3.1.2 进程命令
利用netstat 网络连接命令,剖析可疑端口、可疑IP、可疑PID及程序进程
netstat –antlp | more
利用ps命令,剖析进程
ps aux | grep pid | grep –v grep
将netstat与ps 结合,可参考vinc牛的案例:
(可以利用lsof -i:1677 查看指定端口对应的程序)
利用ls 以及 stat 查看系统命令是否被更换。
两种思路:第一种查看命令目录最近的韶光排序,第二种根据确定韶光去匹配。
ls -alt /usr/bin | head -10
ls -al /bin /usr/bin /usr/sbin/ /sbin/ | grep \"大众Jan 15\"大众
PS:如果日期数字
隐蔽进程查看
ps -ef | awk '{print}' | sort -n | uniq >1
ls /proc | sort -n |uniq >2
diff 1 2
3.1.3 系统信息
history (cat /root/.bash_history)
/etc/passwd
crontab /etc/cron
rc.local /etc/init.d chkconfig
last
$PATH
strings
查看剖析history (cat /root/.bash_history),曾经的命令操作痕迹,以便进一步排查溯源。运气好有可能通过记录关联到如下信息:
a) wget 远程某主机(域名&IP)的远控文件;
b) 考试测验连接内网某主机(ssh scp),便于剖析攻击者意图;
c) 打包某敏感数据或代码,tar zip 类命令
d) 对系统进行配置,包括命令修正、远控木马类,可找到攻击者关联信息…
查看剖析用户干系剖析
a) useradd userdel 的命令韶光变革(stat),以及是否包含可疑信息
b) cat /etc/passwd 剖析可疑帐号,可登录帐号
查看UID为0的帐号:awk -F: '{if($3==0)print $1}' /etc/passwd
查看能够登录的帐号:cat /etc/passwd | grep -E \公众/bin/bash$\公众
PS:UID为0的帐号也不一定都是可疑帐号,Freebsd默认存在toor帐号,且uid为0.(toor 在BSD官网阐明为root替代帐号,属于可信帐号)
查看剖析任务操持
a) 通过crontabl –l 查看当前的任务操持有哪些,是否有后门木马程序启动干系信息;
b) 查看etc目录任务操持干系文件,ls /etc/cron
查看linux 开机启动程序
a) 查看rc.local文件(/etc/init.d/rc.local /etc/rc.local)
b) ls –alt /etc/init.d/
c) chkconfig
查看系统用户登录信息
a) 利用lastlog命令,系统中所有用户最近一次登录信息。
b) 利用lastb命令,用于显示用户缺点的登录列表
c) 利用last命令,用于显示用户最近登录信息(数据源为/var/log/wtmp,var/log/btmp)
utmp文件中保存的是当前正在本系统中的用户的信息。
wtmp文件中保存的是登录过本系统的用户的信息。
/var/log/wtmp 文件构造和/var/run/utmp 文件构造一样,都是引用/usr/include/bits/utmp.h 中的struct utmp
系统路径剖析
a) echo $PATH 剖析有无敏感可疑信息
指定信息检索
a) strings命令在工具文件或二进制文件中查找可打印的字符串
b) 剖析sshd 文件,是否包括IP信息strings /usr/bin/.sshd | egrep '[1-9]{1,3}.[1-9]{1,3}.'
PS:此正则不严谨,但匹配IP已够用
c) 根据关键字匹配命令内是否包含信息(如IP地址、韶光信息、远控信息、木马特色、代号名称)
查看ssh干系目录有无可疑的公钥存在。
a) Redis(6379) 未授权恶意入侵,即可直接通过redis到目标主机导入公钥。
b) 目录: /etc/ssh ./.ssh/
3.1.4 后门排查
除以上文件、进程、系统 剖析外,推举工具:
chkrootkit rkhunter(www.chkrootkit.org rkhunter.sourceforge.net)
Ø chkrootkit
(迭代更新了20年)紧张功能:
检测是否被植入后门、木马、rootkit
检测系统命令是否正常
检测登录日志
详细参考README
Ø rkhunter紧张功能:
系统命令(Binary)检测,包括Md5 校验
Rootkit检测
本机警感目录、系统配置、做事及套间非常检测
三方运用版本检测
Ø RPM check检讨
系统完全性也可以通过rpm自带的-Va来校验检讨所有的rpm软件包,有哪些被修改了,防止rpm也被更换,上传一个安全干净稳定版本rpm二进制到做事器上进行检讨
./rpm -Va > rpm.log
如果统统均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。输出格式是8位长字符串, c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较结果 。 . (点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失落败:
5 MD5 校验码
S 文件尺寸
L 符号连接
T 文件修正日期
D 设备
U 用户
G 用户组
M 模式e (包括权限和文件类型)
借用sobug文章案例:如下图可知ps, pstree, netstat, sshd等等系统关键进程被修改了
Ø Webshell查找
Webshell的排查可以通过文件、流量、日志三种办法进行剖析,基于文件的命名特色和内容特色,相对操作性较高,在入侵后应急过程中频率也比较高。
可根据webshell特色进行命令查找,大略的可利用(当然会存在漏报和误报)
find /var/www/ -name \"大众.php\公众 |xargs egrep 'assert|phpspy|c99sh|milw0rm|eval|\(gunerpress|\(base64_decoolcode|spider_bc|shell_exec|passthru|\(\$\_\POST\[|eval \(str_rot13|\.chr\(|\$\{\\公众\_P|eval\(\$\_R|file_put_contents\(\.\\$\_|base64_decode'
Webshell的排查可以通过
Github上存在各种版本的webshell查杀脚本,当然都有自己的特点,可利用河马shell查杀(shellpub.com)
综上所述,通过chkrootkit 、rkhunter、RPM check、Webshell Check 等手段得出以下应对方法:
根据进程、连接等信息关联的程序,查看木马活动信息。
如果系统的命令(例如netstat ls 等)被更换,为了进一步排查,须要下载一新的或者从其他未传染的主机拷贝新的命令。
创造可疑可实行的木马文件,不要急于删除,先打包备份一份。
创造可疑的文本木马文件,利用文本工具对其内容进行剖析,包括回连IP地址、加密办法、关键字(以便扩大全体目录的文件特色提取)等。
3.1.5 日志剖析
日志文件 /var/log/message 包括整体系统信息 /var/log/auth.log 包含系统授权信息,包括用户登录和利用的权限机制等 /var/log/userlog 记录所有等级用户信息的日志。 /var/log/cron 记录crontab命令是否被精确的实行 /var/log/xferlog(vsftpd.log)记录Linux FTP日志 /var/log/lastlog 记录登录的用户,可以利用命令lastlog查看 /var/log/secure 记录大多数运用输入的账号与密码,登录成功与否 var/log/wtmp 记录登录系统成功的账户信息,等同于命令last var/log/faillog 记录登录系统不堪利的账号信息,一样平常会被黑客删除
1.日志查看剖析,grep,sed,sort,awk综合利用
2.基于韶光的日志管理:
/var/log/wtmp
/var/run/utmp
/var/log/lastlog(lastlog)
/var/log/btmp(lastb)
3.登录日志可以关注Accepted、Failed password 、invalid分外关键字
4.登录干系命令
lastlog 记录最近几次成功登录的事宜和末了一次不堪利的登录 who 命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机 w 命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息 users 用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名把显示相同的次数 last 命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户 finger 命令用来查找并显示用户信息,系统管理员通过利用该命令可以知道某个时候到底有多少用户在利用这台Linux主机。
5.几个语句 定位有多少IP在爆破主机的root帐号 grep \"大众Failed password for root\"大众 /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more 登录成功的IP有哪些 grep \公众Accepted \"大众 /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more tail -400f demo.log #监控末了400行日志文件的变革 等价与 tail -n 400 -f (-f参数是实时) less demo.log #查看日志文件,支持高下滚屏,查找功能 uniq -c demo.log #标记该行重复的数量,不重复值为1 grep -c 'ERROR' demo.log #输出文件demo.log中查找所有包行ERROR的行的数量
3.1.6 干系处置
kill -9
chattr –i
rm
setfacl
ssh
chmod
3.2 Windows系列剖析排查
3.2.1 文件剖析
1.开机启动有无非常文件
2.各个盘下的temp(tmp)干系目录下查看有无非常文件
3.浏览器浏览痕迹、浏览器下载文件、浏览器cookie信息
4.查看文件韶光,创建韶光、修正韶光、访问韶光。对应linux的ctime mtime atime,通过对文件右键属性即可看到详细的韶光(也可以通过dir /tc 1.aspx 来查看创建韶光),黑客通过菜刀类工具改变的是修正韶光。以是如果修正韶光在创建韶光之前明显是可疑文件。
5.查看用户recent干系文件,通过剖析最近打开剖析可疑文件
a) C:\Documents and Settings\Administrator\Recent
b) C:\Documents and Settings\Default User\Recent
c) 开始,运行 %UserProfile%\Recent
6.根据文件夹内文件列表韶光进行排序,查找可疑文件。当然也可以搜索指定日期范围的文件及文件件
Server 2008 R2系列
Win10 系列
7.关键字匹配,通过确定后的入侵韶光,以及webshell或js文件的关键字(比如博彩类),可以在IIS 日志中进行过滤匹配,比如常常利用:
8.
知道是上传目录,在web log 中查看指定时间范围包括上传文件夹的访问要求
findstr /s /m /I “UploadFiles” .log
某次博彩事宜中的六合彩信息是six.js
findstr /s /m /I “six.js” .aspx
根据shell名关键字去搜索D盘spy干系的文件有哪些
for /r d:\ %i in (spy.aspx) do @echo %i
```
3.2.2 进程命令
1.netstat -ano 查看目前的网络连接,定位可疑的ESTABLISHED
2.根据netstat 定位出的pid,再通过tasklist命令进行进程定位
3.通过tasklist命令查看可疑程序
3.2.3 系统信息
1.利用set命令查看变量的设置
2.Windows 的操持任务;
3.Windows 的帐号信息,如隐蔽帐号等
4.配套的注册表信息检索查看,SAM文件以及远控软件类
5.查看systeminfo 信息,系统版本以及补丁信息
例如系统的远程命令实行漏洞MS08-067、MS09-001、MS17-010(永恒之蓝)…
若进行漏洞比对,建议利用Windows-Exploit-Suggester
https://github.com/GDSSecurity/Windows-Exploit-Suggester/
3.2.4 后门排查
PC Hunter是一个Windows系统信息查看软件
http://www.xuetr.com/
功能列表如下:
1.进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能
2.内核驱动模块查看,支持内核驱动模块的内存拷贝
3.SSDT、Shadow SSDT、FSD、KBD、TCPIP、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和规复ssdt hook和inline hook
4.CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等Notify Routine信息查看,并支持对这些Notify Routine的删除
5.端口信息查看,目前不支持2000系统
6.查看钩子
7.内核模块的iat、eat、inline hook、patches检测和规复
8.磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除
9.注册表编辑
10.进程iat、eat、inline hook、patches检测和规复
11.文件系统查看,支持基本的文件操作
12.查看(编辑)IE插件、SPI、启动项、做事、Host文件、映像挟制、文件关联、系统防火墙规则、IME
13.ObjectType Hook检测和规复
14.DPC定时器检测和删除
15.MBR Rootkit检测和修复
16.内核对象挟制检测
17.WorkerThread列举
18.Ndis中一些回调信息列举
19.硬件调试寄存器、调试干系API检测
20.列举SFilter/Fltmgr的回调
PS:最大略的利用方法,根据颜色去辨识——可疑进程,隐蔽做事、被挂钩函数:赤色,然后根据程序右键功能去定位详细的程序和移除功能。根据可疑的进程名等进行互联网信息检索然后统一打消并关联注册表。
Webshell 排查
1.可以利用hm
2.也可以利用盾类(D盾、暗组盾),如果可以把web目录导出,可以在自己虚拟机进行剖析
3.2.5 日志剖析
1.打开事宜管理器(开始—管理工具—事宜查看/开始运行eventvwr)
2.紧张剖析安全日志,可以借助自带的筛选功能
3.可以把日志导出为文本格式,然后利用notepad++ 打开,利用正则模式去匹配远程登录过的IP地址,在界定事宜日期范围的根本,可以提高效率正则是:
4. ((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))).){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))) ```
强大的日志剖析工具Log Parser
#剖析IIS日志
LogParser.exe \"大众select top 10 time, c-ip,cs-uri-stem, sc-status, time-taken from C:\Users\sm0nk\Desktop\iis.log\"大众 -o:datagrid
有了这些我们就可以对windows日志进行剖析了 比如我们剖析域控日志的时候,想要查询账户上岸过程中,用户精确,密码缺点的情形,我们须要统计出源IP,韶光,用户名时,我们可以这么写(当然也可以结合一些统计函数,分组统计等等):
LogParser.exe -i:EVT \"大众SELECT TimeGenerated,EXTRACT\_TOKEN(Strings,0,'|') AS USERNAME,EXTRACT\_TOKEN(Strings,2,'|') AS SERVICE\_NAME,EXTRACT\_TOKEN(Strings,5,'|') AS Client_IP FROM 'e:\logparser\xx.evtx' WHERE EventID=675\"大众
事宜ID是很好的索引
Windows server 2008系列参考event ID:
4624 - 帐户已成功登录
4625 - 帐户登录失落败
4648 - 试图利用明确的凭据登录(例如远程桌面)
3.2.6 干系处置
1.通过网络连接锁定的可疑进程,进行定位恶意程序后删除(taskkill)
2.木马查杀,可合营pchunter 进行进一步专业剖析,利用工具功能进行逼迫停滞以及删除
3.末了清理后,统一查看网络连接、进程、内核钩子等是否正常。
3.3 运用类
Apache、tomcat、Nginx、IIS
无论任何web做事器实在日志须要关注的东西是同等的,即access_log和error_log。一样平常在确定ip地址后,通过:
find . access_log |grep xargs ip攻击地址
find . access_log| grep xargs 木马文件名
页面访问排名前十的IP
cat access.log | cut -f1 -d \"大众 \"大众 | sort | uniq -c | sort -k 1 -r | head -10
页面访问排名前十的URL
cat access.log | cut -f4 -d \公众 \公众 | sort | uniq -c | sort -k 1 -r | head -10
查看最耗时的页面
cat access.log | sort -k 2 -n -r | head 10
在对WEB日志进行安全剖析时,可以按照下面两种思路展开,逐步深入,还原全体攻击过程。
1.首先确定受到攻击、入侵的韶光范围,以此为线索,查找这个韶光范围内可疑的日志,进一步排查,终极确定攻击者,还原攻击过程。
2.一样平常攻击者在入侵网站后,常日会上传一个后门文件,以方便自己往后访问。我们也可以以该文件为线索来展开剖析。
4 应急总结
1.核心思路是“顺藤摸瓜”
2.碎片信息的关联剖析
3.韶光范围的界定以及关键操作韶光点串联
4.Web入侵类,shell定位很主要
5.假设与求证
6.攻击画像与路线确认
5 渗透反辅
1.密码读取
a) Windows: Mimikatz
b) Linux: mimipenguin
2.帐号信息
a) 操作系统帐号
b) 数据库帐号
c) 运用帐号信息
3.敏感信息
a) 配置信息
b) 数据库信息
c) 做事端口信息
d) 指纹信息
4.滚雪球式线性拓展
a) 密码口令类拓展(远控)
b) 范例漏洞批量利用
5.常见的入侵办法Getshell方法
a) WEB入侵
i. 范例漏洞:注入Getshell , 上传Getshell,命令实行Getshell,文件包含Getshell,代码实行Getshell,编辑器getshell,后台管理Getshell,数据库操作Getshell
ii. 容器干系:Tomcat、Axis2、WebLogic等中间件弱口令上传war包等,Websphere、weblogic、jboss反序列化,Struts2代码实行漏洞,Spring命令实行漏洞
b) 系统入侵
i. SSH 破解后登录操作
ii. RDP 破解后登录操作
iii. MSSQL破解后远控操作
iv. SMB远程命令实行(MS08-067、MS17-010、CVE-2017-7494)
c) 范例运用
i. Mail暴力破解后信息挖掘及漏洞利用
ii. VPN暴力破解后绕过边界
iii. Redis 未授权访问或弱口令可导ssh公钥或命令实行
iv. Rsync 未授权访问类
v. Mongodb未授权访问类
vi. Elasticsearch命令实行漏洞
vii. Memcache未授权访问漏洞
viii. 做事干系口令(mysql ldap zebra squid vnc smb)
6 资源参考
https://www.waitalone.cn/linux-find-webshell.html
http://vinc.top/category/yjxy/
http://www.shellpub.com/
http://linux.vbird.org/linux_security/0420rkhunter.php
https://cisofy.com/download/lynis/
https://sobug.com/article/detail/27?from=message&isappinstalled=1
http://www.freebuf.com/articles/web/23358.html
https://www.microsoft.com/en-us/download/details.aspx?id=24659
http://www.cnblogs.com/downmoon/archive/2009/09/02/1558409.html
http://wooyun.jozxing.cc/static/drops/tips-7462.html
http://bobao.360.cn/learning/detail/3830.html
https://yq.aliyun.com/ziliao/65679
http://secsky.sinaapp.com/188.html
http://blog.sina.com.cn/s/blog_d7058b150102wu07.html
http://www.sleuthkit.org/autopsy/
7 FAQ
1.应急需求有哪些分类:
a) 被谁入侵了? 关联 攻击IP 攻击者信息
b) 怎么入侵的? 关联 入侵韶光轴、漏洞信息
c) 为什么被入侵? 关联 行业特性、数据信息、漏洞信息
d) 数据是否被盗取? 关联 日志审计
e) 怎么办? 关联 隔离、排查剖析、删马(解密)、加固、新运营
2.关于windows的日志工具(log parser)有无图形界面版?
Log Parser Lizard 是一款用Vc++.net写的logParser增强工具。紧张有以下特点:
a) 封装了logParser命令,带图形界面,大大降落了LogParser的利用难度。
b) 集成了几个开源工具,如log4net等。可以对IIS logs\EventLogs\active directory\log4net\File Systems\T-SQL进行方便的查询。
c) 集成了Infragistics.UltraChart.Core.v4.3、Infragistics.Excel.v4.3.dll等,使查询结果可以方便的以图表或E. XCEL格式展示。
d) 集成了常见的查询命令,范围包含六大模块:IIS
e) 可以将查询过的命令保存下来,方便再次利用。
PS:软件是比较老的,对新系统兼容性不好,还是建议微软原生态log parser
3.在linux日志中,有无黑客入侵后的操作命令的统计
a) 可以根据history信息进行溯源剖析,但一样平常可能会被打消
b) 还有方法是须要结合accton 和 lastcomm
4. 3.2.3 提到了Windows-Exploit-Suggester,有无linux版?
Linux_Exploit_Suggester https://github.com/PenturaLabs/Linux_Exploit_Suggester
5.有无linux自动化信息网络的脚本工具?
LinEnum https://github.com/rebootuser/LinEnum
6.
7.有无综合的取证剖析工具
Autopsy 是sleuthkit供应的平台工具,Windows 和 Linux磁盘映像静态剖析、规复被删文件、韶光线剖析,网络浏览历史,关键字搜索和邮件剖析等功能
http://www.sleuthkit.org/autopsy/
8.关于业务逻辑的排查方法解释
新型业务安全中安全事宜,例如撞库、薅羊毛、支付、逻辑校验等敏感环节,未在本文体现,所往后续有必要针对业务侧的应急排查方法归纳。
雷锋网再次声明:本文作者sm0nk@猎户攻防实验室,雷锋网宅客频道授权转载,先知技能社区拥有全部内容版权。媒体或商业转载必须得到授权,违者必深究法律任务。