分类 SecToolkit 下的文章

reCAPTCHA:一款自动识别图形验证码并用于Intruder Payload中的BurpSuite插件

首发:先知技术社区

0x01 简介

一个burp插件,自动识别图形验证码,并用于Intruder中的Payload。

项目主页:https://github.com/bit4woo/reCAPTCHA

0x02 使用

安装:

  1. 这里下载插件。
  2. 将它添加到burp。如果没有遇到错误,你将看到一个新的名为“reCAPTCHA”的tab。

准备:

  1. 通过burp代理访问目标网站的登录界面。
  2. 在proxy中找到获取图形验证码的请求,选中它并点击右键选择“Send to
    reCAPTCHA”,这个请求的信息将被发送到reCAPTCHA。

Send_to.png

  1. 切换到reCAPTCHA标签,并配置所需的参数。当参数配置好后,你可以点击“请求”按钮来测试配置。
  2. http://www.ysdm.net
    的API是目前唯一支持的接口,其中的各项参数需要自行注册帐号并填写,才能成功调用接口完成图片的识别。该API需要的参数如下,请用正确的值替换%s
    ,特别注意typeid值的设定(http://www.ysdm.net/home/PriceType)。

    username=%s&password=%s&typeid=%s

在Intruder中使用:

完成了配置并测试成功后,现在可以在Intruder中使用该插件生成的payload了。有2种情况:用户名或密码之一+验证码;用户名+密码+验证码;

情况一:只有密码或只有用户名需要改变,我们可以用Pitchfork 模式来配置。

比如,已知系统存在一个用户admin,来爆破该用户,插入点标记如下,

index_condition1_mark.png

payload 1我们从文件中加载,这个不必多说。

payload 2 选择“Extension-Generated”.

index_condition1_mark_payload2.png

运行效果如下:

index_condition1.png

情况二:用户名和口令都需要改变,这个稍微复杂点。我们还是使用Pichfork模式,但需要将用户名和密码一起标注为一个插入点。像这样:

index_mark.png

payload 1 使用“自定义迭代器(Custom interator)”。并在迭代器中组合用户名和密码。

在该例子中,即 position 1为用户名,position 2 为“&j_password=”,postion 3为密码。

index1.png

payload 2 的配置和情况一中的配置完全一样。

运行效果如图:

index_mark2.png

0x03 reCAPTCHA界面截图

screenshot.png

0x04 日志

2017-11-01:第一个demo版本发布。

交流群

微信图片_20171106144105.jpg

BurpSuite插件:利用BurpSuite Spider收集子域名和相似域名

前言

在我的域名收集知识体系中,利用爬虫来获取域名是其中的一部分(见文末思维导图,其他部分的实现请访问我的另外一个项目:https://github.com/bit4woo/Teemo ),由于使用频率,使用习惯等问题,而我最终决定使用BurpSuite的Spider来实现爬虫部分的自动化收集。所以有了这个BurpSuite插件:Domain Hunter。

原理

当使用了BurpSuite作为代理,或者使用它进行了安全测试,会就会记录相关的域名。其中,某个目标的子域名和相似域名很有价值,尤其是相似域名,往往有惊喜!插件的主要原理就是从BurpSuite的Sitemap中搜索出子域名和相似域名。也可以对已经发现的子域名进行主动爬取,以发现更多的相关域名,这个动作可以自己重复递归下去,直到没有新的域名发现为止。

项目地址

https://github.com/bit4woo/domain_hunter

Screenshot

screenshot1.png

Change Log

2017-07-28: Add a function to crawl all known subdomains; fix some bug.

Xmind Of Domain Collection

xmind.png

一个半自动化命令注入漏洞Fuzz工具

1. OCIFT是什么

一个半自动化命令注入漏洞Fuzz工具(One Semi-automation command injection vulnerability Fuzz tool)简写为:OCIFT

2. OCIFT有什么用

这是一种半自动化的黑盒测试工具,它可以帮助渗透测试人员或代码审计人员在愉快的上网的同时,深度挖掘目标应用系统存在的命令注入漏洞。

OCIFT有什么特点

  • Payload基于Commix生成方式修改而来(需要持续完善).
  • 基于浏览器代理的半自动化Fuzz.
  • 多线程Fuzz速度快,不影响正常浏览器访问使用.
  • 支持设置白名单限制Fuzz范围.
  • 支持设置黑名单避免带来不必要的麻烦.
  • 支持DNSLog辅助验证

4. 实现思路

基于Tornado的实现一个代理服务器,解析GET/POST请求提取Fuzz点,带入payload进行Fuzz测试。

文件结构说明
         |____run.py 主程序入口
         |____dnslog.py DNSLog SDK
         |____fuzz.conf 配置文件
         |____fuzz.py Fuzz线程
         |____make_payload.py Payload生成器
         |____readme.md 说明文档

5.配置文件说明

  • 配置各个参数,以逗号分隔

    [initconfig]

  • 黑名单HOST-为了避免带来不必要的麻烦

    black_hosts =.gov,localhost,127.0.0.1,google,gstatic,cnzz.com,doubleclick,police,mil.cn,gov.cn,gov.com

  • 静态文件黑名单-这些不做Fuzz

    url_ext_black =.ico,.flv,.css,.jpg,.png,.jpeg,.gif,.pdf,.ss3,.txt,.rar,.zip,.avi,.mp4,.swf,.wmi,.exe,.mpeg

  • 白名单HOST-为了限制Fuzz的范围, 默认为空-表示对除黑名单范围外的所有地址进行Fuzz.

    white_site =qunar

  • 请求超时-限制每次Fuzz请求超时时间

    timeout =10

  • 我的DnsLog地址

    my_cloudeye =ano1qu2j.xfkxfk.com

  • 判断是够注入命令执行成功的关键字

    checkkeys =110586256,/bin/bash,nameserver,IPv4,Windows IP

  • 用于测试命令注入的基本命令

    base_command =cat /etc/resolv.conf,echo 110586256,cat /etc/passwd,ipconfig,ping CommandInj.{my_cloudeye},echo 110586256<nul

  • Fuzz线程数

    fuzz_count =20

  • fuzz的payload类型, 默认False-表示使用自定义的规则

    commix_payload_type = False

  • DnsLog登录会话ID,我用的xfkxfk牛的dnslog.xfkxfk.com

    dnslog_sessionid =q6wva2e3skg79vkdegra2bygft0d1

  • Your Domain

    custom_domain =a2fta2j

  • 记录成功结果的Log文件

    Logfile =rce_success_results.txt

6.如何使用

1.安装模块

pip install tornado pip install requests

2.根据自己需要完成文件fuzz.conf的配置

3.启用主程序

python run.py 8089 如下图:

687474703a2f2f7777772e636f6666656568622e636e2f7a625f75736572732f75706c6f61642f323031372f30342f32303137303430393030333434313134393136363932383136393639342e6a7067.jpg

4.设置浏览器代理 然后会自动开始Fuzz

687474703a2f2f7777772e636f6666656568622e636e2f7a625f75736572732f75706c6f61642f323031372f30342f32303137303430393030333332343134393136363932303432313932372e6a7067.jpg

7.总结

  • 基本实现了想要的半自动化Fuzz功能
  • payload还需要不断优化

Github地址:https://github.com/coffeehb/OCIFT

Teemo:域名收集及枚举工具

项目主页

https://github.com/bit4woo/Teemo

About teemo

域名收集及枚举工具

提莫(teemo)是个侦察兵,域名的收集如同渗透和漏洞挖掘的侦察,故命名为提莫(Teemo)!

该工具主要有三大模块:

利用搜索引擎:

  • baidu
  • so.com (360搜索)
  • google (需要代理,可能被block)
  • bing (使用cn.bing.com)
  • yahoo
  • yandex (可能被block,替代方案xml.yandex.com)
  • dogpile
  • exaland (可能被block)
  • ask (需要代理)
  • googleCSE (需要API key)

利用第三方站点:

  • Alex
  • Chaxunla (图形验证码)
  • netcraft
  • DNSDumpster
  • Virustotal
  • ThreatCrowd
  • CrtSearch
  • PassiveDNS
  • GooglCT
  • ILink
  • sitedossier
  • threatminer
  • Pgpsearch

利用枚举

基本使用

运行环境:python 2.7.*

  • 查看帮助:

    python teemo.py -h

  • 枚举指定域名(会使用搜索引擎和第三方站点模块):

    python teemo.py -d example.com

  • 使用代理地址(默认会使用config.py中的设置):

    python teemo.py -d example.com -x "http://127.0.0.1:9999"

  • 启用枚举模式:

    python teemo.py -b -d example.com

  • 将结果保存到指定文件(默认会根据config.py中的设置保存到以域名命名的文件中):

    python teemo.py -d example.com -o result.txt

  • 收集域名并扫描指定端口 :

    python teemo.py -d example.com -p 80,443

参考

参考以下优秀的工具修改而来:

Thanks for their sharing.

优缺点

为什么要修改,相对以上优秀工具有什么优缺点?

优点:

  • 使用的搜索引擎和第三方站点更全面,经过实际测试,发现收集的域名会更多。
  • 添加了代理的支持,像google,ask等可以通过指定代理地址去访问,个人使用google较多,所以这个对我很重要。
  • 使用搜索引擎的模块,会收集邮箱地址。

缺点:

  • 初始版本,bug很多。但后续会持续更新改进。欢迎提bug。

To Do

  • 接入打码平台
  • 域名有效性判断,端口扫描并记录--json格式(`{domain:{ip:127.0.0.1,ports:{80,443},cdn:{yes
    or no,具体是谁}}}domain`)
  • 泛解析,dns轮询相关
  • 优化config.py
  • 模糊匹配,例如包含"qq"的所有域名,比如qqimg.com
  • 搜索引擎模块,使用google hacking 搜索

Done

  • 添加多线程支持。
  • 添加www.so.com 360搜索引擎
  • 修复ask页面参数不正确问题
  • 优化代理参数设置
  • 优化正则表达式,去除以“-”开头的非法域名
  • 随机请求参数,减小被block几率
  • 优化搜索引擎部分参数配置
  • 修复dnsdumpter访问出错问题

相关思维导图

687474703a2f2f692e696d6775722e636f6d2f5155747a6e6c4b2e706e67.png

免责声明

作者公开该工具代码,出于技术分享的目的,请不要用于非法用途。 任何使用该工具及代码,或者修改后的工具及代码,造成的任何问题,与本作者无关,特此声明!!!

利用Scapy造一个Passive DNS Collector 工具:Pdns_sniff

pdns_sniff是什么?

简单理解为一个记录你发起过的DNS请求的东西,利用了Passive DNS 思路,被动的记录发起过的DNS请求。

pdns_sniff有什么用?

利用这样的工具可以帮助我在愉快的上网的同时,轻松搜集到测试目标的各种子域名。

pdns_sniff原理是什么?

利用了python里的强大的scapy套件,运用它抓取,解析出DNS请求包从而得到各种域名。使用了mysql进行数据存储,利用了gevent协程进行并发进行数据包的分析和写入数据库(PS:刚学gevent,拿来用用。)

效果图

效果图一:数据库中记录1

20170205223502148630530254796.png

效果图二:数据库中记录2

20170205223524148630532412525.png

效果图三:工具输出记录

20170205223538148630533859265.png

效果图四:使用方法

20170205223434148630527450376.jpeg

需要安装的三方库

  • gevent
  • scapy
  • MySQLdb

需要修改的数据库配置

大概在第29行

conn = mysql.connect(user='root', passwd='yourpassword', host='127.0.0.1', db='dnslogsDB')

pdns_sniff的相关代码

https://github.com/coffeehb/tools/tree/master/pdns_sniff