实战-行业攻防应急响应
简介:
服务器场景操作系统 Ubuntu
服务器账号密码:root/security123
分析流量包在/home/security/security.pcap
相关jar包在/home/security/ruoyi/ruoyi-admin.jar应急主机: 192.168.0.211
网关: 192.168.0.1/24
其它傀儡机: 段内本次环境来自某次行业攻防真实环境,可以参考以上文章链接,说的非常清楚,WP+过程+应急响应步骤+攻击步骤都已写明,贴合现实实战+大赛环境,不放过每一处细节点
全程模拟,请勿利用工具进行非法对外攻击,违者后果自负
1、根据流量包分析首个进行扫描攻击的IP是
答案: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服务正是这两个端口
2、根据流量包分析第二个扫描攻击的IP和漏扫工具,以flag
答案: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的特征
3、提交频繁爆破密钥的IP及爆破次数,以flag{ip&次数}提交
答案 :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次
4、提交攻击者利用成功的密钥,以flag{xxxxx}提交
答案: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
5、提交攻击者获取到的所有服务的弱口令,多个以&提交,如flag
答案:flag{ruoyi123&admin123&123456}
流量中没有,在heapdump里可以找到
6、根据应急响应方法,提交利用漏洞成功的端口,多个以&连接,如:flag
答案: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密钥
7、根据流量包分析,提交攻击者利用密钥探测成功的dnslog地址
答案:flag{1dvrle.dnslog.cn}
攻击者利用密钥探测成功后一般会测视机器是否出网,往往会利用dnslog进行测试,过滤器筛选ip.src == 192.168.0.211 && dns
,排除掉正常的dns地址,即可找到dnslog的地址
8、根据流量包分析,提交攻击者反弹shell的地址和端口,以flag{x.x.x.x&port}提交
答案: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的地址和端口
9、攻击者在主机放置了fscan(已改名),经扫描拿下一台永恒之蓝漏洞主机,以此为线索进行提交fscan绝对路径
答案: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
,根据标志位进行过滤相应的流量包,然后查看明文操作
10、另类方法:提交此fscan工具的MD5值,以flag{xxxxxx}提交
答案:flag{b8053bcd04ce9d7d19c7f36830a9f26b}
问:万一他把result.txt文件删了呢,你怎么模糊搜索?这是 china-爱州 师傅提的新问题,一个新的角度定位fscan目录,用到md5值(工具md5sum)
将可执行文件的md5列出,输出到一个文件中,然后对比fscan的md5
find / -type f -executable -exec md5sum {} \; > out.txt
11、攻击者为了权限维持,在主机放置了仿真远控工具,需提交此远控工具的下载地址,以flag
答案:flag{http://zhoudinb.com:12345/qxwc.sh}
我们可以继续在流量里看到下载地址
但是我们如何从主机侧去查呢?通过排查计划任务可看到,可以看到每十分钟执行.qxwc.sh,查看这个文件即可
12、攻击者就知道你会这样找到,所以又创建了一条相关的脚本,使用其他方法进行下载,提交脚本的绝对路径
答案: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明显不是系统自启动项,我们查看即可找到路径
13、攻击者创建了一个隐藏用户,提交此用户的用户名,以flag{xxxx}提交
答案:flag{xj1zhoudi@kali}
cat /etc/passwd |grep bash
这条命令只看到两个拥有登陆权限的用户,再看可登录用户的/.ssh目录,并查看公钥文件,在/root/.ssh/.id_rsa.pub看到可疑用户名
其实在反弹shell的流量中也能看到下载这个公钥文件
PS:本题是由 china-爱州 师傅在一次实战中记录的,渗透部分讲解了黑客的攻击思路,可以去公众号看看,链接在这:https://mp.weixin.qq.com/s/2eYZGnDaD6M0sdrIVPhbhQ