POC-T插件化并发框架

admin 2022年5月23日10:22:55评论60 views字数 2225阅读7分25秒阅读模式

2.0版本经过一段时间的用户反馈,现已相对稳定。目前第一阶段以漏洞验证为核心的需求均已完成。本篇从解决问题的角度介绍这个框架,希望能得到大家的改进建议。


项目地址:   https://github.com/Xyntax/POC-T

Wiki里面提供了详细的文档


需求


安全技术人员经常遇到以下需求:

  1. 新漏洞爆发,想要批量扫描公网主机并评估该漏洞影响。

  2. 收集论坛内所有成员的公开信息。

  3. 利用SSRF漏洞扫描内网主机及端口信息。

  4. 对某C段IP反查域名


多次编码实现这些需求之后发现它们的共性——数据的并发处理


解决这个问题的三个关键点:

  • 数据:数据怎么来?

  • 处理:逻辑是什么?

  • 并发:如何实现?



设计


我尝试设计一个框架统一解决以上需求,它的实现逻辑很简单:

  1. 准备一个并发框架。

  2. 将数据扔到框架中。

  3. 将处理数据的逻辑扔到框架中。

  4. 运行,获取处理结果。


因为数据的获取方式不同,处理数据的逻辑也不同,从而能满足漏洞验证、爬虫、爆破、扫描等不同需求。


这个图片清晰的描述了程序的设计思路:


POC-T插件化并发框架


使用


接下来用实例说明该框架如何解决一开始我们提出的需求。

使用本框架,用户只需做两件事:

  1. 编写一个函数

  2. 执行一条命令


示例:Apache Solr 未授权访问漏洞批量验证


思路:使用Shodan搜索引擎采集的IP作为数据输入,编写漏洞验证脚本作为数据的处理逻辑。


函数:

# 判断给定的ip是否存在Solr未授权访问漏洞 def poc(ip):     g = requests.get('http://' + ip)     if g.status_code is 200 and 'Solr Admin' in g.content and 'Dashboard' in g.content:         return True # 漏洞存在     return False # 漏洞不存在


命令:

python POC-T.py -eT -s solr-unauth -aS "solr country:cn" --limit 10

  • -eT 使用多线程

  • -s solr-unauth 加载名为 solr-unauth 的脚本

  • -aS "solr country:cn" 指定 Shodan 搜索关键字

  • --limit 10 指定获取IP的数量:10条


结果:

POC-T插件化并发框架



示例:B站用户签名档爬虫


思路:将用户的ID作为数据输入,编写脚本下载该ID对应的用户签名作为数据的处理逻辑。


脚本:https://github.com/Xyntax/POC-T/blob/2.0/script/spider-example.py


命令:python POC-T.py -eC -s spider-example -iA 1-200000 -t 50

  • -eC : 使用单线程异步(协程)

  • -iA 1-200000 : 生成从1到200000的连续数字作为用户ID

  • -t 50 : 设置并发数量为50



示例:利用 WebLogic SSRF 漏洞扫描内网


思路:从外部文件中读取IP地址作为数据输入,编写脚本扫描指定IP的端口开放情况作为数据处理逻辑。


脚本:https://github.com/Xyntax/POC-T/blob/2.0/script/weblogic-ssrf-netmap.py


命令:python POC-T.py -s weblogic-ssrf -iF iplist.txt

  • -iF iplist.txt : 从外部文件加载目标



示例:利用 WebLogic SSRF 漏洞扫描内网


思路:生成IP地址作为数据输入,编写脚本调用Bing搜索引擎接口作为数据处理逻辑。


脚本:https://github.com/Xyntax/POC-T/blob/2.0/script/bingc.py


命令:python POC-T.py -s bingc -iN 139.129.132.0/24

  • -iN 139.129.132.0/24 : 根据指定地址段生成IP



PoC支持


针对漏洞验证,本项目中提供其它两项福利(详见Github项目介绍):

  • 公开PoC库:绝大部分为本人手工编写,均保证可用性、优化容错性,长期维护并更新。

  • PoC编写插件:根据以往的PoC编写经验,集成了实用的PoC插件,如:随机串生成,MD5生成,获取真实IP,Cloudeye接口等。



其他


与Pocsuite的差异

  1. Seebug+Pocsuite+ZoomEye 一条龙服务确实很好用。Pocsuite的所有PoC需要按模板要求使用Pocsuite指定的函数,这样的优点在于可以在HTTP请求层面直接做控制, 从而支持“全局代理”,“全局随机UA”等功能,同时保证了脚本的稳定性与规范性,对于不懂验证逻辑的客户或运维人员,直接运行脚本即可。

  2. 我在设计POC-T的初衷就是给脚本最大的自由度,可以引入第三方库,不需要任何模板和继承。这样既能够扩展其功能,又能保证效率的最大化,不用 每次写脚本都查文档格式,一个脚本一行命令,三五分钟即可完成任务。缺点就是脚本的稳定性需要自己的编码能力和经验来保证。此外,POC-T提供更多的输 入输出方式和第三方接口支持。


PoC相关

  1. 曾认为将大量PoC整合到一起即是最强大的“扫描器”。然而现状是PoC开发水平良莠不齐,大部分容错性很差,真正集成到扫描器中需要二次开发。

  2. 目前Bugscan收集了大量PoC,但是其编写者设置level的机制导致大部分PoC无法被获取。相比之下在Seebug付出一点时间就可以拿到自己想要的。

  3. 练习PoC编写可以多关注新鲜的漏洞资源,如:http://www.exploitalert.com


原文始发于微信公众号(乐枕迭代日志):POC-T插件化并发框架

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月23日10:22:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   POC-T插件化并发框架http://cn-sec.com/archives/943617.html

发表评论

匿名网友 填写信息