实战-行业攻防应急响应

实战-行业攻防应急响应

简介:

服务器场景操作系统 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​,看到疑似端口探测行为

image

再用过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.223 && tcp.flags.syn == 1​,可以看到端口探测有6万多条

image

然后我们查看http包,发现还有目录扫描的行为,扫描的两个端口 9988 和 12333 ,我们回到主机用netstat查看对外开放的web服务正是这两个端口

image

image

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服务的扫描行为

image

用过滤器过滤192.168.0.200的http包,ip.dst == 192.168.0.211 && ip.src == 192.168.0.200 && http​,可以看到有规律的web扫描,并且有 bxss.me 特征,是扫描器Acunetix,即AWVS的特征

image

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

image

过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.226​,追踪http流,可以看到第一次请求是确定存在shiro框架,后面均是在爆破key

image

image

过滤器过滤ip.dst == 192.168.0.211 && ip.src == 192.168.0.226 && http.request.uri == "/login"​,总计1071次,去除初次请求的握手和会话3次,共爆破shiro key 1068次

image

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

image

过滤器筛选ip.dst == 192.168.0.211 && ip.src==192.168.0.242​,key爆破不成功后,攻击者访问了/actuator/heapdump下载headdump后进行分析获得key,进行后续的攻击行为

image

我们可以分析jar包,在源码中src/classes/application.yml目录下找到key

image

当然站在攻击者的视角,如果是动态的key,我们也可以下载heapdump,使用相关工具提取密钥,此处我用的JDumpSpider

image

5、提交攻击者获取到的所有服务的弱口令,多个以&提交,如flag

答案:flag{ruoyi123&admin123&123456}

流量中没有,在heapdump里可以找到

image

image

image

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的地址

image

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反序列化攻击的过程

image

此处我们可从下往上逆推流量进行解密,因为前面爆破密钥,爆破构造链等多次,从上往下找不好定位

image

image

这里的命令base64解码后,可以看到反弹shell的地址和端口

image

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 # 根据关键字筛选

image

可以看到路径出了,可是为什么流量包里也有呢?来看下 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​,根据标志位进行过滤相应的流量包,然后查看明文操作

image

10、另类方法:提交此fscan工具的MD5值,以flag{xxxxxx}提交

答案:flag{b8053bcd04ce9d7d19c7f36830a9f26b}

问:万一他把result.txt文件删了呢,你怎么模糊搜索?这是 china-爱州 师傅提的新问题,一个新的角度定位fscan目录,用到md5值(工具md5sum)

将可执行文件的md5列出,输出到一个文件中,然后对比fscan的md5

find / -type f -executable -exec md5sum {} \; > out.txt

image

image

11、攻击者为了权限维持,在主机放置了仿真远控工具,需提交此远控工具的下载地址,以flag

答案:flag{http://zhoudinb.com:12345/qxwc.sh}

我们可以继续在流量里看到下载地址

image

但是我们如何从主机侧去查呢?通过排查计划任务可看到,可以看到每十分钟执行.qxwc.sh,查看这个文件即可

image

image

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

image

这里有一个happy.service明显不是系统自启动项,我们查看即可找到路径

image

13、攻击者创建了一个隐藏用户,提交此用户的用户名,以flag{xxxx}提交

答案:flag{xj1zhoudi@kali}

cat /etc/passwd |grep bash

image

这条命令只看到两个拥有登陆权限的用户,再看可登录用户的/.ssh目录,并查看公钥文件,在/root/.ssh/.id_rsa.pub看到可疑用户名

image

其实在反弹shell的流量中也能看到下载这个公钥文件

image

PS:本题是由 china-爱州 师傅在一次实战中记录的,渗透部分讲解了黑客的攻击思路,可以去公众号看看,链接在这:https://mp.weixin.qq.com/s/2eYZGnDaD6M0sdrIVPhbhQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781378.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

033.Vue3入门,多个插槽Slot的命名调用和#号简写

1、App.vue代码如下:<template><div><h3>插槽学习</h3><Slot001><!-- 插槽1--><template v-slot:s2><p>{{ msg1 }}</p></template><!-- 插槽2--><template #s1><p>{{ msg2 }}</p>…

个人Blog的第一篇博文

个人Blog的第一篇博文正式加入"博客园"大家庭了,希望以后可以一直坚持下去欸。

Day 15

今天留了个小遗憾......并没有学会已崩溃......啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!不驰于空想,不骛于虚声

032.Vue3入门,插槽Slot的作用域和默认内容

1、App.vue代码如下:<template><div><h3>插槽学习</h3><!-- 插槽1--><Slot001><p>{{ msg }}</p></Slot001><!-- 插槽2--><Slot001><!-- <p>{{ msg }}</p>--></Slot001>…

bugbountyhunter scope BARKER:第九滴血 存储型 Storage Cross-Site Scripting XSS 头像处SVG文件上传 报告

登录后来到My profile页面,页面里存在一个Edit Profile头像处可以上传SVG图片 检查 xss payload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSS Injection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f…

bugbountyhunter scope BARKER:第九滴血 存储型 Storage Cross-Site Scripting XSS SVG文件上传 报告

登录后来到My profile页面,页面里存在一个Edit Profile头像处可以上传SVG图片 检查 xss payload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSS Injection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f…

WPS Office 2023专业版 v12.8.2.17149v2 精简优化版

概述 WPS Office是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示等多种功能。具有内存占用低、运行速度快、体积小巧、强大插件平台支持、免费提供海量在线存储空间及文档模板、支持阅读和输出PDF文件、全面兼容微软Office97-2…

030.Vue3入门,父页面给子页面传递attribute属性

1、App.vue代码如下:<template><Father/> </template><script setup> import Father from ./view/Father.vue </script><style> </style>2、Father.vue代码如下:<template><h3>父页面</h3><p>父页面属性&…

C基础篇 文件操作

1. EOF宏,C语言EOF宏详解2. gets和fgets函数及其区别,C语言gets和fgets函数详解3. puts和fputs函数及其区别,C语言puts和fputs函数详解4. feof和ferror函数,C语言feof和ferror函数详解5. setbuf与setvbuf函数,C语言setbuf与setvbuf函数详解6. fseek、ftell和rewind函数,C…

029.Vue3入门,父页面自定义Event传给子页面,子页面通过此Event回传数据给父页面

1、App.vue代码:<template><Father/> </template><script setup> import Father from ./view/Father.vue </script><style> </style>2、Father代码如下:<template><h3>父页面</h3><p>搜索内容为: {{ msg …

Luckfox开发--SDK环境部署

前言 嵌入式Linux,在我的认识当中一直属于是嵌入式技术上最顶层的技术,之前一直有学习过相关的基础知识,这次打算系统性的记录学习过程,将完整的从零开始,一步步自学提高相关知识。 虚拟机安装 在学习嵌入式Linux,首先需要的是一个虚拟机,虚拟机软件我接触过两个,一个是…

交互题使用指南

一般 oi 场上的交互题都是使用 Grader 交互(cf 是 stdio 交互)。本文讲解一下怎么做交互题,评测交互题。 怎么做 基本知识 题目会给你几个函数接口,一般作为询问的方式。出题人会写一个 grader.cpp 里面就包含了这几个函数。 调用 grader 里面的函数的方法是:加上题目给的…