分类 SecToolkit 下的文章

[更新支持图形界面] PassMaker:可以自定义规则的密码字典生成器

0x01 项目地址

https://github.com/bit4woo/passmaker

0x02目的

该脚本的主要目标是根据定制的规则来组合生成出密码字典,主要目标是针对企业,希望对安全人员自查“符合密码策略的若密码”有所帮助。

0x03 规则

程序的核心是密码规则的指定,比如:

  • domain+常规弱密码
  • domain+键盘弱密码
  • domain+特殊字符+常规弱密码
  • domain+特殊字符+年份
    ……等等

0x04 使用

方法一:通过config.py

通过修改config.py中的参数,然后直接运行python passmaker.py来生成密码字典。

screnshot_config.png

其实详细说明已经写在配置文件的注释中了,如下:

#第一步,定义种子(seed),密码的基本组成部分
domain= ["baidu.com","baidu","Baidu.com","BaiDu.com"]
year = ["2016","2017","2018"]
special_letter = ["!","@","#","$","%",]
common_weak_pass = open('./seed/weak_pass_top100.txt').readlines()
keyboard_walk = open('./seed/4_keyboard_walk.txt').readlines()
#domain_capitalize = False #域名首字母大写处理


#第二步,定义密码的组成规则,list中的一个元素代表一个规则
rule = ["domain+special_letter+year","domain+special_letter+keyboard_walk","domain+special_letter+common_weak_pass"]
keep_in_order = False #以上的规则,是否保持原顺序,如果为False 将对每个规则中的seed进行排列组合后生产密码。



#第三步,对以上生成的密码再进行一些变形处理
capitalize = True  #是否进行首字母大写处理
leet = False       #是否进行变形处理,即通过下方的字典进行对应的字母替换
leet2num = {"a":"4",
            "i":"1",
            "e":"3",
            "t":"7",
            "o":"0",
            "s":"5",
            "g":"9",
            "z":"2"}

leet2string ={
            "O" : "()",
            "U" : "|_|",
            "D" : "|)",
            "W" : "\/\/",
            "S" : "$",
            }


#第四步,根据以下密码规则约束,对以上生成的密码进行过滤处理,删除不满足条件的记录
min_lenth =8
need_upper_letter = False
need_lower_letter = True
need_special_char = False
need_nummber = False
#大写字母、小写字母、特殊符号、数字,四种包含三种---常见的密码要求
kinds_needed = 3  #四者包含其三

方法二:命令行交互

通过运行python passmaker.py -i来通过交互模式配置其中参数,然后生成密码字典。

screnshot.png

方法三:图形界面

通过运行python passmaker.py -g来启用图形界面配置其中参数,然后运行生成密码字典。

screnshot_gui.png

如果有好的建议,欢迎通过issue提交给我,谢谢!

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

免责声明

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