分类难度
SOCEasy
Khalid 刚刚登录了一台主机,他和他的团队将其用作测试主机,用于许多不同的目的。它脱离了公司网络,但可以访问网络上的大量资源。该主机被公司很多人用作垃圾场,但它非常有用,所以没有人提出任何问题。哈立德对此一无所知;机器已被破坏,不应该存在的公司信息现在已被盗 - 您需要弄清楚发生了什么以及哪些数据被盗取。

Tasks

  1. Task1: 乍一看,这次攻击似乎可疑的是哪种协议?
  2. Task2: 我们的主机与另一台主机之间似乎存在大量流量,可疑主机的 IP 地址是多少?
  3. Task3: 攻击者向客户端发送的第一个命令是什么?
  4. Task4: 攻击者使用的 DNS 隧道工具的版本是什么?
  5. Task5: 攻击者试图重命名他们意外留在客户端主机上的工具。他们给它起什么名字?
  6. Task6: 攻击者尝试枚举用户的云存储。他们在云存储目录中找到了多少文件?
  7. Task7: 被盗 PII 文件的完整位置是什么?
  8. Task8: 到底有多少客户 PII 记录被盗?

推荐工具: wireshark, tshark, Brim Zui, zeek,suricata等

分析过程

下载完成解压后是一个pcap的流量包,使用wireshark 打开查看统计->协议分级,查看都有什么协议,在统计->端点中可以查看IP地址
使用wireshark 看发现大部分都为dns协议,用suricata配合jq进行数据分析

$ suricata -c /etc/suricata/suricata.yaml -r suspicious_traffic.pcap -l log
// 生成文件 eve.json  fast.log  stats.log  suricata.log
// 随便看一下第一个
$ cat eve.json | jq -s '.[0]'
{
  "timestamp": "2023-04-30T18:26:57.675436+0800",
  "flow_id": 367704534995173,
  "pcap_cnt": 21,
  "event_type": "dns",
  "src_ip": "192.168.157.144",
  "src_port": 59935,
  "dest_ip": "192.168.157.2",
  "dest_port": 53,
  "proto": "UDP",
  "pkt_src": "wire/pcap",
  "dns": {
    "type": "query",
    "id": 7728,
    "rrname": "buyadvupfor24.com",
    "rrtype": "A",
    "tx_id": 0,
    "opcode": 0
  }
}

event_type 为协议类型,dns下的rrname为请求的域名吧(应该)
统计一下协议的类型有哪些,并按照次数进行排序

$ cat eve.json | jq -s '.[] | .event_type' | sort | uniq -c | sort -nr
  12353 "dns"
   1439 "flow"
    361 "quic"
    289 "tls"
    122 "http"
    120 "fileinfo"
      5 "dhcp"
      2 "ssh"
      1 "stats"

dns 协议占大头,因此猜测这次可疑的攻击使用的是DNS协议(Task 1),后续还会有验证
接下来统计一下ip地址有哪些? 依旧是使用命令行:
因为使用的是DNS协议,目标主机的端口应该多为53

 $ cat eve.json | jq -s '.[] | if .dest_port == 53 then .dest_ip else empty end' | sort | uniq -c | sort -nr
   10894 "192.168.157.145"
   2161 "192.168.157.2"

这段命令的含义:

判断 目的端口是都为 53,如果是则输出对应的目的ip,否则不输出,然后再对这些ip地址进行去重,排序

最多的ip地址为192.168.157.145(Task 2),为可疑的IP主机
或者使用tshark进行统计

$ tshark -r suspicious_traffic.pcap -Y 'udp.dstport == 53' -T fields -e 'ip.dst' | sort | uniq -c | sort -nr
 5451 192.168.157.145
  750 192.168.157.2
   12 192.168.157.144,192.168.157.145

结果同上。
在分析过程中,发现dns的query中有很多类似于6bea00688135660021636f6d6d616e6420284445534b544f502d554d4e43.4245372900.microsofto365.com的域名,前面的十六进制是可以进行16进制解码的,提取一下:

$ for i in $(cat eve.json | jq -s '.[] | .dns | .rrname' | grep 'microsofto365' | tr -d '"' | rev | cut -d'.' -f3-|rev);do echo ${i:18} | xxd -p -r; done | tee -a cmd.txt

读取json文件,提取出域名进行处理,dns隧道前18个字符是固定的,没有含义,从第18个字符开始进行解码,另存为cmd.txt文件
或者使用tshark提取

$ tshark -r suspicious_traffic.pcap -Y 'dns' -T fields -e 'dns.qry.name' | tee -a dns.qry.name 
wpad.localdomain
clientservices.googleapis.com
clientservices.googleapis.com
....
$ cat dns.qry.name | grep 'microsofto365.com' >> dns.query
617d01661b600a8981.microsofto365.com
617d01661b600a8981.microsofto365.com
...
$ cat dns.query | rev | cut -d '.' -f3-|rev|tr -d '.' > hex.txt
2cea00661b600a0021636f6d6d616e6420284445534b544f502d554d4e434245372900
2cea00661b600a0021636f6d6d616e6420284445534b544f502d554d4e434245372900
...
$ for i in $(cat hex.txt );do echo ${i:18} | xxd -p -r;done | tee -a command2.txt
// 结果同cmd.txt

cmd.txt的内容就是命令行的输入与输出


C:\Users\test\Downloads>
C:\Users\test\Downloads>cmd.exe (DESKTOP-UMNCBE7)cmd.exe (DESKTOP-UMNCBE7)..Microsoft Windows [Version 10.0.19045.2846]
(c) Microsoft Corporation. All rights reserved.
(c) Microsoft Corporation. All rights reserved.
desktop-umncbe7\test
C:\Users\test\Downloads>whoami

攻击者发送的第一条命令就是whoami(Task 3)
在攻击者输入dir查看文件目录时,输出中有一个可疑的文件

28/05/2016  21:38           142,336 dnscat2-v0.07-client-win32.exe

dnscat的版本为0.07(Task 4)
下面有命令C:\Users\test\Downloads>ren dnscat2-v0.07-client-win32.exe win_installer.exe
通过查询可以知道,ren的作用是文件重命名,将文件dnscat2-v0.07-client-win32.exe重命名为win_installer.exe(Task 5)以达到隐藏的效果

C:\Users\test\OneDrive>dir
 Volume in drive C has no label.
 Volume Serial Number is 503A-D127
 Directory of C:\Usdir
 Volume in drive C has no label.
 Volume Serial Number is 503A-D127
 Directory of C:\Users\test\OneDrive
04/06/2021  08:52    <DIR>          .
04/06/2021  08:52    <DIR>         ers\test\OneDrive
04/06/2021  08:52    <DIR>          .
04/06/2021  08:52    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  24,470,171,648 byt ..
               0 File(s)              0 bytes
               2 Dir(s)  24,470,171,648 bytes free

通过这段命令执行的结果可以知道 OneDrive 云存储目录下没有文件,数量为 0(Task 6)
继续看cmd.txt,攻击者读取文件C:\Users\test\Documents\client data optimisation\user details.csv

C:\Users\test\Documents\client data optimisation>type "C:\Users\test\Documents\client data optimisation\user details.csv
0,Chief Tecence,current_location,blood_group,website,username,name,sex,address,mail,birthdate
0,Chief Technology Officer,Bennett Group,725-79-1073,"5021 Mary Glens
...
720,Ambulance person,"Smith, Collins and Brown",524-80-5753,"22",maria11@yahoo.com,1992-01-12
720,Ambulance person,"Smith, Collins and Brown",524-80-5753,"224 Randolph Mountain Suite 809

被查看的PII文件路径为C:\Users\test\Documents\client data optimisation\user details.csv (Task 8),
从第0行开始到第720行,共计721Task 9)条数据

总结

这个流量包大小为40MB左右,还是比较大的,用WireShark分析会有些乏力,个人感觉图形化工具配合命令行进行分析,效率和效果都挺不错的。这篇文章主要是使用suricata将流量包转化为json文件,配合jq进行数据分析。
使用WireShark + tshark 效果也不错。

Last modification:July 29, 2024
请我喝瓶冰阔落吧