freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

afrog 进阶篇(实战)
2022-11-24 15:14:55
所属地 河北省

实战-进阶篇

这里举4个例子,耐心看完,无论对你日常渗透还是护网打比赛,都有帮助。

一、fofa 针对某个漏洞批量操作

适用于刷src排名,拿证书,某个漏洞深入利用。

比如redis未授权漏洞,可以直接拿shell。

①先利用fofa 导出1w条资产

查询条件:port="6379" && protocol="redis"

1669273036_637f15ccc34bfa24c0706.png!small?1669273037048

1669273048_637f15d8491142e8300c9.png!small?1669273048811

② *改线程,(资产量大,且只针对一个漏洞时)

C:\Users\yangjian\.config\afrog    #配置文件

1669273088_637f1600aae368852fb07.png!small?1669273088809

③再用afrog 批量操作

afrog -T redis.txt      #ip 一行一个

最终结果,真实存在redis未授权漏洞的有900多个

1669273107_637f1613bc1c81ad33771.png!small?1669273107878

然后你就可以挨个拿shell啦

再进一步利用的,可以去各大平台 提交漏洞刷排名,拿证书拿到手软。

二、端口

此处是我最喜欢的,最常用的。

*这里说下工具的构造思想,是自动识别http或s的,甚至加不加http都是可以的,也就是一个ip或域名都可以。并且url最后面的/,加不加也无所谓,也是自动识别的。

①获取资产 端口   (适合批量资产,外wei打点,注意只针对web服务哦~)

②带端口的txt (一行一个小朋友)

③开扫~捡洞!

1669273507_637f17a3ab24f00db78db.png!small?1669273507881

1669273524_637f17b410c663131ebf8.png!small


1669273534_637f17be41a44bcc8dae6.png!small


三、内网

有些鸡肋(已进入内网)

适用于本地提权失败,可以借此拿下更多web服务器,以扩展攻击面。

①先内网信息收集一波,存活ip,端口,服务啥的

②跟上面一样,把web服务的都弄到txt里,一行一个小朋友

③不用我说了吧  捡洞吧

1669273641_637f1829236468905680b.png!small?1669273641150

1669273666_637f18424173986f01d85.png!small?1669273666438

1669273683_637f185320aa83e65270f.png!small?1669273682946


四、编写POC

定制自己的poc是afrog的灵魂所在,如果你有0day或1day漏洞,只需爬取所需的资产,-P指定0day的poc,无论hvv还是打比赛你将无往不胜。

POC,全称 Proof of Concept 指验证漏洞的一段代码。

POC是用YAML语言编写的,YAML是什么,自行百度。

id: CVE-2022-22947
info:
  name: Spring Cloud Gateway Code Injection
  author: alex
  severity: critical
  description: |
    Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)发生在Spring Cloud Gateway...
    影响版本:Spring Cloud Gateway 3.1.x < 3.1.1 、Spring Cloud Gateway < 3.0.7
    官方已发布安全版本,请及时下载更新,下载地址:https://github.com/spring-cloud/spring-cloud-gateway
    FOFA:app="vmware-SpringBoot-framework"
  reference:
    - https://mp.weixin.qq.com/s/qIAcycsO_L9JKisG5Bgg_w  // 必须是列表(数组)形式

格式是固定的,接下来一一介绍各模块的功能。



id:

zhiyuan-oa-unauth公司-产品-漏洞名称或 CVE-2022-0202

name:

漏洞名称,尽量英文且官方用语

author:

作者 大名

severity:

漏洞等级,分为critical、high、mideum、low、info,请参考 [National Vulnerability Database]

description:(可选填)

包含漏洞描述、漏洞影响、网络测绘、修复建议等

reference:(可选填)

参考链接,必须数组形式,否则 poc 无法验证


rules:
  r0:
    request:
      method: GET
      path: /phpinfo.php
    exppression: response.status == 200 && response.body.bcontains(b'PHP Version')
    stop_if_match: true
  r1:
    before_sleep: 6
    request:
      method: GET
      path: /info.php
    expresssion: response.status == 200 && response.body.bcontains(b'PHP Version')
    stop_if_mismatch: true
expression: r0() || r1()


rules:

定义规则组

r0 / r1 :

子规则,自定义名称,不能重复

request:

表示 http request 请求

method:

表示 http request method 方法

path:

表示 http request URL 请求的 PATH

expresssion:

子规则的验证表达式,用于验证 r0 或 r1 是否匹配规则。比如:response.status == 200 && response.body.bcontains(b'PHP Version')表示 request 请求返回状态码必须是 200 且 源码必须含有PHP Version关键字

stop_if_match:

如果匹配就停止

stop_if_mismatch:

如果不匹配就停止

before_sleep:

顾名思义,http 请求前 sleep 6 秒钟

expression:

最外面的expression是rules的验证表达式,r0() || r1()表示r0和r1两个规则,匹配一个表达式就为true,代表漏洞存在。

注意:如果 rules 表达式都是||关系,比如:r0() || r1() || r2() … ,默认执行 stop_if_match动作。同理,如果表达式都是 &&关系,默认执行 stop_if_mismatch动作。


set:
  hostname: request.url.host
rules:
  r0:
    request:
      raw: |    //raw 顾名思义  支持原生 http 请求
        GET .//WEB-INF/web.xml HTTP/1.1
        Host: {{hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
    expression: response.status == 200 && response.body.bcontains(b'<web-app') && response.body.bcontains(b'</web-app>') && (response.raw_header.bcontains(b'application/xml') || response.raw_header.bcontains(b'text/xml'))
  r1:
    request:
      raw: |
        GET .//WEB-INF/weblogic.xml HTTP/1.1
        Host: {{hostname}}
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
    expression: response.status == 200 && response.body.bcontains(b'<weblogic-web-app') && response.body.bcontains(b'</weblogic-web-app>') && (response.raw_header.bcontains(b'application/xml') || response.raw_header.bcontains(b'text/xml'))
expression: r0() || r1()

//raw 顾名思义 支持原生 http 请求


总结:

afrog是一个扩展性很好的工具,并且速度和准确率达到了完美平衡。




# 漏洞 # 渗透测试 # 网络安全 # web安全 # 内网渗透
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录