简介:
服务器场景操作系统 Ubuntu
服务器账号密码:root/security123
分析流量包在/home/security/security.pcap
相关jar包在/home/security/ruoyi/ruoyi-admin.jar应急主机: 192.168.0.211
网关: 192.168.0.1/24
其它傀儡机: 段内本次环境来自某次行业攻防真实环境,可以参考以上文章链接,说的非常清楚,WP+过程+应急响应步骤+攻击步骤都已写明,贴合现实实战+大赛环境,不放过每一处细节点
全程模拟,请勿利用工具进行非法对外攻击,违者后果自负
答案:flag{192.168.0.223}
已知被攻击ip 192.168.0.211 ,我们用过滤器过滤 ip.dst == 192.168.0.211
,看到疑似端口探测行为
再用过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.223 && tcp.flags.syn == 1
,可以看到端口探测有6万多条
然后我们查看http包,发现还有目录扫描的行为,扫描的两个端口 9988 和 12333 ,我们回到主机用netstat查看对外开放的web服务正是这两个端口
答案:flag{192.168.0.200&Acunetix}
过滤器过滤ip.dst == 192.168.0.211 && ip.src != 192.168.0.223 && tcp.flags.syn == 1
,发现ip192.168.0.200有对两个web服务的扫描行为
用过滤器过滤192.168.0.200的http包,ip.dst == 192.168.0.211 && ip.src == 192.168.0.200 && http
,可以看到有规律的web扫描,并且有 bxss.me 特征,是扫描器Acunetix,即AWVS的特征
答案 :flag{192.168.0.226&1068}
过滤器过滤ip.dst == 192.168.0.211 && ip.src != 192.168.0.200 && ip.src != 192.168.0.211
,可以看到IP 192.168.0.226一直在请求12333端口,url为 /login ,可以推测是爆破密钥的ip
过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.226
,追踪http流,可以看到第一次请求是确定存在shiro框架,后面均是在爆破key
过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.226 && http.request.uri == "/login"
,总计1071次,去除初次请求的握手和会话3次,共爆破shiro key 1068次
答案:flag{c+3hFGPjbgzGdrC+MHgoRQ==}
过滤器筛选ip.dst == 192.168.0.211&&ip.src!=192.168.0.223&&ip.src!=192.168.0.200&&ip.src!=192.168.0.226
,可以看到192.168.0.242一开始就爆破key
过滤器筛选ip.dst == 192.168.0.211 && ip.src==192.168.0.242
,key爆破不成功后,攻击者访问了/actuator/heapdump下载headdump后进行分析获得key,进行后续的攻击行为
我们可以分析jar包,在源码中src/classes/application.yml目录下找到key
当然站在攻击者的视角,如果是动态的key,我们也可以下载heapdump,使用相关工具提取密钥,此处我用的JDumpSpider
答案:flag{ruoyi123&admin123&123456}
流量中没有,在heapdump里可以找到
答案:flag{9988&12333}
已知对外开放的端口为22、9988、12333端口,22端口为远程连接,9988端口在前期被192.168.0.223进行端口扫描和文件扫描,被192.168.0.200使用AWVS进行扫描,被192.168.0.242访问并下载heapdump进行后续利用。而12333端口是若依搭建的框架,被前面IP进行扫描且进行过爆破,最后一步在192.168.0.242这个IP获取到shiro密钥
答案:flag{1dvrle.dnslog.cn}
攻击者利用密钥探测成功后一般会测视机器是否出网,往往会利用dnslog进行测试,过滤器筛选ip.src == 192.168.0.211 && dns
,排除掉正常的dns地址,即可找到dnslog的地址
答案:flag{192.168.0.251:8888}
我们继续筛选获得正确密钥的ip,因为攻击的是若依框架,走的http协议,我们筛选http协议,过滤器语法ip.dst == 192.168.0.211 && ip.src == 192.168.0.242 && http
,这里借用下 chain-爱州 大佬的图来说明shiro反序列化攻击的过程
此处我们可从下往上逆推流量进行解密,因为前面爆破密钥,爆破构造链等多次,从上往下找不好定位
这里的命令base64解码后,可以看到反弹shell的地址和端口
答案:flag{/opt/.f/.s/.c/.a/.n}
过滤器过滤ip.dst==192.168.0.211 && ip.src==192.168.0.251 && tcp.port==8888
,定位反弹shell的流量
因为拿下了一台永恒之蓝漏洞主机,我们直接搜索 MS17-010,fscan执行默认会生成result.txt文件
grep -rl 'MS17-010' / 2>/dev/null # 根据关键字筛选
可以看到路径出了,可是为什么流量包里也有呢?来看下 chain-爱州 师傅是怎么说的: 在TCP/IP协议中,会话需要经过三次握手和四次挥手,流量包存在是因为SYN,ACK包中存在明文流量
过滤器过滤ip.dst192.168.0.211&&ip.src192.168.0.251 && tcp.port==8888 && tcp.flags.syn == 1 && tcp.flags.ack == 1
,根据标志位进行过滤相应的流量包,然后查看明文操作
答案:flag{b8053bcd04ce9d7d19c7f36830a9f26b}
问:万一他把result.txt文件删了呢,你怎么模糊搜索?这是 china-爱州 师傅提的新问题,一个新的角度定位fscan目录,用到md5值(工具md5sum)
将可执行文件的md5列出,输出到一个文件中,然后对比fscan的md5
find / -type f -executable -exec md5sum {} \; > out.txt
答案:flag{http://zhoudinb.com:12345/qxwc.sh}
我们可以继续在流量里看到下载地址
但是我们如何从主机侧去查呢?通过排查计划任务可看到,可以看到每十分钟执行.qxwc.sh,查看这个文件即可
答案:flag{/home/security/upload/.CCC/.happy.sh}
除了计划任务外,linux还有一个排查项开机自启,我们可以通过systemctl查看,他的执行文件路径在/etc/systemd/system/,创建任务是通过此目录下进行定位文件名创建任务名,使用以下命令可以按照最后改变时间进行排序,从下往上看可疑文件
ls -l --time-style=long-iso /etc/systemd/system/ | sort -k 6,7
这里有一个happy.service明显不是系统自启动项,我们查看即可找到路径
答案:flag{xj1zhoudi@kali}
cat /etc/passwd |grep bash
这条命令只看到两个拥有登陆权限的用户,再看可登录用户的/.ssh目录,并查看公钥文件,在/root/.ssh/.id_rsa.pub看到可疑用户名
其实在反弹shell的流量中也能看到下载这个公钥文件
PS:本题是由 china-爱州 师傅在一次实战中记录的,渗透部分讲解了黑客的攻击思路,可以去公众号看看,链接在这:https://mp.weixin.qq.com/s/2eYZGnDaD6M0sdrIVPhbhQ