场景 1 (APT):
本动手练习的重点将是 APT 场景和勒索软件场景。你假设爱丽丝·蓝鸟(Alice Bluebird)的角色,这位分析师最近被聘请来保护和捍卫Wayne Enterprises免受各种形式的网络攻击。
在此方案中,以下图形的报告来自您的用户社区,当他们访问 Wayne Enterprises 网站时,某些报告引用“P01s0n1vy”。如果您不知道,P01s0n1vy是一个针对Wayne Enterprises的APT组织。作为爱丽丝,你的目标是调查污损,着眼于通过杀戮链重建攻击。
场景 2(勒索软件):
在第二种情况下,您的一个用户在 Windows 桌面上看到此图像,该图像声称系统上的文件已加密,必须付款才能取回文件。Wayne Enterprises似乎有一台机器感染了Cerber勒索软件,您的目标是调查勒索软件,以期重建攻击。
https://cyberdefenders.org/blueteam-ctf-challenges/15#nav-overview
使用VMwareworkstation导入OVA虚拟机,开启虚拟机以后通过vagrant/vagrant登录到虚拟机,获取虚拟机IP地址。
访问splunk控制台,打开后自动适配浏览器语言显示中文
http://IP:8000/
谢谢Splunk赞助这个问题。根据提示制作比赛的公司是splunk
首先查看日志中存在什么内容,重点搜索http流量和suricata事件内容
index=*
| stats count by sourcetype
根据访问的地址进行过滤,并且过滤http请求,查看有2个IP地址,其中40.80.148.42请求数量最多
index=botsv1 imreallynotbatman.com sourcetype="stream:http" http_method="POST"
| stats count by src_ip
通过suricata告警进行查询,发现有40.80.148.42匹配到告警
index=botsv1 imreallynotbatman.com sourcetype="suricata" event_type="alert"
| stats count by src_ip
查看该IP地址攻击事件,提示存在有SQL注入攻击
index=botsv1 imreallynotbatman.com sourcetype="suricata" event_type="alert" src_ip="40.80.148.42"
通过查询攻击者的UA获取攻击工具为AWS
index=botsv1 imreallynotbatman.com sourcetype="stream:http" src_ip="40.80.148.42"
| stats count by http_user_agent
通过访问的URL进行排序,查看访问的URL地址,业务系统为joomla
index="botsv1" imreallynotbatman.com src_ip="40.80.148.42" 200
| stats count by uri
| sort - count
| head 10
查看攻击IP地址通信的目的IP地址信息,获取到2个IP地址,查看192.168.250.70请求数量比较多
index="botsv1" imreallynotbatman.com src_ip="40.80.148.42"
| stats count by dest_ip
通过查看通信信息可以确定WEB服务器地址是192.168.250.70
index="botsv1" imreallynotbatman.com src_ip="40.80.148.42" dest_ip="192.168.250.70"
| stats count by url
| sort - count
查看该服务器地址主动发起请求http数据的
index="botsv1" c_ip="192.168.250.70"
| stats count by url
根据2.5获取到的请求地址即为恶意域名
通过查询DNS记录,查看DNS解析的IP地址为23.22.63.114
index="botsv1" sourcetype="suricata" event_type=dns dns.type=answer dns.rrname=prankglassinebracket.jumpingcrab.com
通过VT进行IP地址查找,关联到域名信息
通过基于域名进行查找邮箱,获取到邮箱账号
通过匹配http中POST请求,频繁更改密码内容进行查询,获取到IP地址为23.22.63.114
index="botsv1" imreallynotbatman.com sourcetype="stream:http" http_method=POST "passwd=*"
| stats count by src, form_data, status
查看通过http进行上传数据内容,发现上传可执行程序名称为3791.exe
index="botsv1" sourcetype="stream:http" dest="192.168.250.70" "multipart/form-data"
查找文件的详情信息,查看在系统监控中存在文件
index=botsv1 3791.exe
| stats count by sourcetype
通过正则过滤匹配文件,获取到文件MD5信息
index=botsv1 3791.exe sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" CommandLine="3791.exe"
| rex field=_raw MD5="(?<md5sum>\w+)"
| table md5sum
2.12 GCPD 报告说,如果初始入侵失败,Po1s0n1vy APT 组的常见 TTP(策略、技术、程序)是发送鱼叉式网络钓鱼电子邮件,并将自定义恶意软件附加到其预期目标。该恶意软件通常连接到 Po1s0n1vy 的初始攻击基础设施。使用研究技术,提供此恶意软件的 SHA256 哈希
根据提供的IP地址,进入到VT进行搜索IP地址相关的信息,可以查看到有文件相关的信息
选择文件查看文件SHA256信息
在VT上查看文件关联信息,可以看到十六进制代码
根据历史域名查找恶意域名信息
https://www.whoxy.com/whois-history/demo.php
查看到公司名称和邮件地址
通过过滤出http的POST请求,并且在from_data字段中获取到的passw字段内容,通过基于时间从小到大的顺序,获取到第一个爆破的密码
index="botsv1" sourcetype="stream:http" http_method="POST" form_data=*username*passwd*
| rex field=form_data "passwd=(?<password>\w+)"
| table _time, password, user
| sort by _time
获取到歌曲列表,并过滤出6个字符的词
https://en.wikipedia.org/wiki/List_of_songs_recorded_by_Coldplay
grep -E '^[[:alpha:]]{6}$' songs
Aliens
Broken
Church
Clocks
Murder
Oceans
Shiver
Sparks
Voodoo
Yellow
通过上述获取到的关键字和长度进行密码过滤,经过测试为yellow
index="botsv1" "Aliens" OR "Broken" OR "Church" OR "Clocks" OR "Murder" OR "Oceans" OR "Shiver" OR "Sparks" OR "Voodoo" OR "Yellow" sourcetype="stream:http" http_method="POST" form_data=*username*passwd*
| rex field=form_data "passwd=(?<userpassword>\w+)"
| eval lenpword=len(userpassword)
| search lenpword=6
| eval password=lower(userpassword)
| table userpassword
通过查找密码登录次数是否大于1进行判断
index="botsv1" imreallynotbatman.com sourcetype="stream:http" http_method="POST"
| rex field=form_data "passwd=(?<pass>\w+)"
| stats count by pass
| where count>1
通过获取到密码字段的长度,进行平均计算,四合五入为6
index="botsv1" imreallynotbatman.com sourcetype="stream:http" http_method="POST" form_data=*username*passwd*
| rex field=form_data "passwd=(?<pass>\w+)"
| eval lpass=len(pass)
| stats avg(lpass) as av
通过搜索2次登录成功的账号耗费的事件进行计算
index=botsv1 imreallynotbatman.com sourcetype="stream:http" http_method="POST" form_data=*username*passwd*
| rex field=form_data "passwd=(?<pw>\w*)"
| search pw="batman"
| transaction pw
| eval dur=round(duration, 2)
| table dur
寻找与之前获得的密码匹配的查询,事务和评估持续时间 = round(X,2)
index=botsv1 imreallynotbatman.com sourcetype="stream:http" http_method="POST" form_data=*username*passwd*
| rex field=form_data "passwd=(?<pw>\w*)"
| dedup pw
| stats count
通过关键字进行模糊搜索,获取到主机IP地址
we8105desk AUG 2016 24
index=botsv1 sourcetype="suricata" Cerber
| stats count by alert.signature_id
| sort -count
基于时间针对上述的主机IP地址进行dns请求获取,过滤掉通用的DNS请求,查看其他的DNS请求信息,查看只有一个可以匹配到名称的请求
index=botsv1 src_ip="192.168.250.100" sourcetype="stream:dns" NOT query=*.local AND NOT query=*.arpa AND NOT query=*.microsoft.com AND query=*.*
| stats count by query
| sort by _timer asc
通过查看2016/08/24 16:48:12.267访问了恶意地址:solidaritedeproximite.org,在2016/08/24 17:15:12.668访问了一个地址cerberhhyed5frqa.xmfir0.win。
index=botsv1 src_ip="192.168.250.100" sourcetype=stream:dns record_type=A NOT (query{}="*microsoft.com" OR query{}="wpad" OR query{}="*.waynecorpinc.local" OR query{}="isatap" OR query{}="*bing.com" OR query{}="*windows.com")
| table _time, query{}
| sort by _time
查找以cmd命令启动vbs脚本,并获取到长度
index="botsv1" .vbs cmd.exe we8105desk
| eval length=len(cmdline)
| table _time, cmdline, length
通过过滤usb信息,获取内容
index=botsv1 sourcetype=winregistry friendlyname
| stats count by registry_value_data
基于工作站的连接的目的地址,查看通过SMB连接的地址,并且数据量比较大的主机
index="botsv1" sourcetype="stream:smb" src_ip=192.168.250.100
| stats count by dest_ip
| sort by count
查找pdf文件的日志类型
index="botsv1" *.pdf
| stats count by sourcetype
根据文件查找传输地址
index="botsv1" *.pdf sourcetype=wineventlog
| stats count by dest
获取传输的源地址
index=botsv1 *.pdf sourcetype=wineventlog dest="we9041srv.waynecorpinc.local"
| stats count by Source_Address
统计传输的文件数量
index=botsv1 sourcetype=wineventlog dest="we9041srv.waynecorpinc.local" Source_Address="192.168.250.100" Relative_Target_Name="*.pdf"
| stats dc(Relative_Target_Name)
经过查找发现测试为3968
index=botsv1 121214.tmp sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" CommandLine=*
| table _time, CommandLine, ProcessId, ParentCommandLine, ParentProcessId
| sort by _time
查找文件路径的日志索引
index=botsv1 host=we8105desk *.txt
| stats count by sourcetype
index=botsv1 host=we8105desk *.txt sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational"
| stats count by TargetFilename
查看文件名称
index=botsv1 host=we8105desk *.txt sourcetype="xmlwineventlog:microsoft-windows-sysmon/operational"
| stats count by TargetFilename
统计加密文件数量
index=botsv1 host=we8105desk sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" TargetFilename="C:\\Users\\bob.smith.WAYNECORPINC\\*.txt"
| stats dc(TargetFilename)
在问题24中看到有一个恶意的域,根据该域进行搜索发现访问url的jpg文件
sourcetype=suricata src=192.168.250.100 dest=solidaritedeproximite.org
| stats count values(url) BY dest
基于图片加密目前主流是隐写术