推动开源 推动网络安全

cowrie蜜罐

mrk阅读(177)

由于网站防护原因,请读者查看附件。

如有不懂请联系 admin@90gsd.com

Konan – 高级Web应用程序目录扫描程序

mrk阅读(144)

项目地址:https://github.com/m4ll0k/Konan

安装

通过克隆Git存储库来下载Konan

git clone https://github.com/m4ll0k/Konan.git konan

安装要求 pip

cd konan && pip install -r requirements.txt

运行程序

python konan.py

支持平台

  • Linux
  • windows
  • MacOSX

用法

基础:

  • python konan.py -u/--url http://example.com/
URL: http://testphp.vulnweb.com/

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.39%    - 01:32:50 -  200  -	GET	-  4958    - http://testphp.vulnweb.com/index.php 
0.43%    - 01:32:52 -  200  -	GET	-  4732    - http://testphp.vulnweb.com/search.php 
0.54%    - 01:32:57 -  200  -	GET	-  5523    - http://testphp.vulnweb.com/login.php 
0.81%    - 01:33:12 -  200  -	GET	-  4830    - http://testphp.vulnweb.com/logout.php 
8.77%    - 01:40:02 -  302  -	GET	-  14      - http://testphp.vulnweb.com/userinfo.php  -> login.php

注射点:

  • python konan.py -u/--url http://example.com/%%/index.php
URL: http://testphp.vulnweb.com/%%/index.php

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.39%    - 01:32:50 -  200  -	GET	-  4958    - http://testphp.vulnweb.com/test/index.php 
0.43%    - 01:32:52 -  200  -	GET	-  4732    - http://testphp.vulnweb.com/search/index.php 

  • python konan.py -u/--url http://example.com/test%% -w /root/numbers.txt
URL: http://testphp.vulnweb.com/test%%

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.39%    - 01:32:50 -  200  -	GET	-  4958    - http://testphp.vulnweb.com/test12
0.43%    - 01:32:52 -  200  -	GET	-  4732    - http://testphp.vulnweb.com/test34 

提供wordlist,默认/db/dict.txt

  • python konan.py -u/--url http://example.com/ -w/--wordlist /root/dict.txt

使用-e/--extension选项为每个wordlist条目提供扩展选项和强制扩展-f/--force

  • python konan.py -u/--url http://example.com/ -e/--extension php,html -f/--force
URL: http://testphp.vulnweb.com/

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.39%    - 02:00:21 -  200  -	GET	-  4958    - http://testphp.vulnweb.com/index.html 
0.43%    - 02:00:23 -  200  -	GET	-  4732    - http://testphp.vulnweb.com/search.php 
0.54%    - 02:00:30 -  200  -	GET	-  5523    - http://testphp.vulnweb.com/login.php 
0.81%    - 02:00:46 -  200  -	GET	-  4830    - http://testphp.vulnweb.com/logout.html 
0.87%    - 02:00:50 -  200  -	GET	-  6115    - http://testphp.vulnweb.com/categories.html

提供状态代码排除:

  • python konan.py -u/--url http://example.com/ -x/--exclude 400,403,401

仅提供输出的状态代码:

  • python konan.py -u/--url http://example.com/ -o/--only 200,301,302

Wordlist小写(isATest – > isatest)和大写(isAtest – > ISATEST):

  • python konan.py -u/--url http://example.com/ -w/--wordlist /root/dict.txt [-l/--lowercase OR -p/--uppercase]

Wordlist split(test.php – > to – > test):

  • python konan.py -u/--url http://example.com/ -w/--wordlist /root/dict.txt -s/--split

Wordlist忽略regexp(\w*.php|\w*.html^[0-9_-]+)提供的单词,字母,数字等.. : _

  • python konan.py -u/--url http://example.com/ -w/--wordlist -I/--ignore "\?+"

没有-I/--ignore选项的输出:

URL: http://testphp.vulnweb.com/

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.39%    - 02:06:31 -  200  -	GET	-  4958    - http://testphp.vulnweb.com/???.php 
0.43%    - 02:06:32 -  200  -	GET	-  4732    - http://testphp.vulnweb.com/??????????? 
0.54%    - 02:06:35 -  200  -	GET	-  5523    - http://testphp.vulnweb.com/admin/ 

输出-I/--ignore(在这种情况下\?+)选项:

 URL: http://testphp.vulnweb.com/

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.54%    - 02:06:35 -  200  -	GET	-  5523    - http://testphp.vulnweb.com/admin/ 

递归:

  • python konan.py -u/--url http://example.com/ -E/--recursive

找到的递归目录和目录提供者-D/--dir-rec

  • python konan.py -u/--url http://example.com/ -E/--recursive -D/--dir-rec "admin,tests,dev,internal"

Brute Force目录提供者-S/--sub-dir

  • python konan.py -u/--url http://example.com/ -S/--sub-dir "admin,test,internal,dev"

多种方法(检查GET,POST,PUT和DELETE以进行单词输入)

注意:很多Web应用程序如果没有用正确的方法发出请求返回404代码,这个选项测试所有方法

  • python konan.py -u/--url http://example.com/ -m/--methods"

内容大小过程(如果响应大小为“> [数字]”,“<[数字]”,“= [数字]”,则显示响应):

  • python konan.py -u/--url http://example.com/ -C/--lenght "<1000"
URL: http://testphp.vulnweb.com/

PERCENT	 -   TIME   - CODE  -   METHOD  - LENGHT - URL
-------------------------------------------------------
0.19%    - 02:11:46 -  301  -	GET	-  184     - http://testphp.vulnweb.com/admin  -> http://testphp.vulnweb.com/admin/
1.73%    - 02:12:37 -  301  -	GET	-  184     - http://testphp.vulnweb.com/images  -> http://testphp.vulnweb.com/images/

闲谈关于Git信息泄露

mrk阅读(147)

这段时间一直在测试,挖掘git信息泄露,发现%90程序员都把敏感信息公开。

下面讲一下黑客利用方式:

1、入侵服务器,获得相关权限进一步横向渗透。

2、公司相关敏感信息泄露,包括员工信息,老板信息等及其他。

3、太多太多敏感东西泄露。

PS:不要把相关敏感信息公布出来。不然损失两行泪。

用于渗透测试的四个nmap NSE脚本

mrk阅读(262)

今天,我将简单的博客文章写到我的4个nmap NSE脚本中进行渗透测试。

DNS-brute.nse

第一.子域搜索脚本dns-brute.nse 
这个nse 脚本找到了带有bruteforce的子域。

案例: nmap -p 80 –script dns-brute.nse baidu.com

http-enum和http-title

http *系列中的这些脚本非常有助于识别http服务和横幅

  • nmap –script http-enum 127.0.0.1

Vulscan&vulners

第三,这些脚本(vuldb,vulners)可以识别已知的漏洞。通过查询漏洞数据库网站,此NSE Scripts漏洞信息。

目前有以下预先安装的数据库:

 nmap -sV –script=vulscan/vulscan.nse baidu.com

如何安装 – vulscan

git clone https://github.com/scipag/vulscan

# for MacOS

$ ln -s `pwd`/vulscan /usr/local/share/nmap/scripts/vulscan

# for Linux

$ ln -s `pwd`/vulscan /usr/share/nmap/scripts/vulscan


何安装 – Vulners

$ wget https://raw.githubusercontent.com/vulnersCom/nmap-vulners/master/vulners.nse

# for MacOS

$ cp vulners.nse /usr/local/share/nmap/scripts/

# for Linux

$ cp vulners.nse /usr/share/nmap/scripts/

最后抓取NSE脚本

nmap 127.0.0.1 –script=banner-plus

如何安装 banner ?

$ wget https://raw.githubusercontent.com/hdm/scan-tools/master/nse/banner-plus.nse

# for MacOS

$ cp banner-plus.nse /usr/local/share/nmap/scripts/

# for Linux

$ cp banner-plus.nse /usr/share/nmap/scripts/

Sublert:自动化监控子域名变化的工具

mrk阅读(265)

Sublert 简介

证书透明度(CT)是一种新的互联网标准,使TLS/SSL证书颁发过程更加透明和公开。其旨在允许域所有者了解公共证书颁发机构(CA)颁发给域的TLS/SSL证书。

什么是Sublert?

证书透明度(CT)是一种新的互联网标准,可以使TLS / SSL证书颁发过程公开和公开。目的是允许域所有者了解公共证书颁发机构(CA)颁发给域的TLS / SSL证书。

Sublert是一种安全和侦察工具,使用Python编写以利用证书透明度,其唯一目的是监控特定组织部署的新子域并颁发TLS / SSL证书。该工具应该安排在固定的时间,日期或间隔(理想情况下每天)定期运行。新的已识别子域将通过通知推送发送到Slack工作区。此外,该工具执行DNS解析以确定工作子域。

Sublert主要是为了获取广泛范围的黑客赏金猎人,以加强他们的侦察游戏,并通过获得早期访问新的子域来击败竞争对手。但是,Sublert也可以在内部用作AppSec程序的一部分,以监控工程团队部署的各种子域。

Sublert 的优势

已有开源工具,如Cert SpotterFacebook监控工具,但这些工具主要是为组织监控网络钓鱼企图而设置的,每当有证书欺诈或错误地发布到域名时都会收到通知。这意味着,如果您正在监控拥有大量资产的组织,那么您将收到包含网络钓鱼域名和不感兴趣的超出范围资产以及每天数百封电子邮件的无关结果的垃圾邮件。

怎么设置?

要求

  • 在Unix上运行的虚拟专用服务器(VPS)。(我使用digitalOcean)
  • Python 2.x或3.x.
  • 免费Slack工作场所。

首先,您必须将工具从Github克隆到您的Web服务器:

$ git clone https://github.com/yassineaboukir/sublert.git&& cd sublert

现在,我们可以按如下方式安装所需的模块:

对于 Python 2

$ sudo pip install -r requirements.txt

或者,Python 3:

$ sudo pip3 install -r requirements.txt 

下一步是创建一个Slack工作区,以便将新子域发送到该工作区。只需浏览https://slack.com/并创建一个免费帐户即可。

然后,创建两个通道:一个用于子域,另一个用于错误记录,如下所示:

Sublert:自动化监控子域名变化的工具插图

接下来,我们需要为每个通道生成Webhook URL,以便我们可以利用Slack API。

浏览到https://api.slack.com/apps并创建一个新应用程序。

浏览到Incoming Webhooks并创建两个Webhook并将每个Webhook链接到之前形成的两个通道。

Sublert:自动化监控子域名变化的工具插图(1)

并将每个webhook与相应的Slack通道链接。

Sublert:自动化监控子域名变化的工具插图(2)

您将获得以下格式的链接:

https://hooks.slack.com/services/XXXXXXX/BF0XXXXME/XXXXXXXXXXXXX

复制两个webhook链接并编辑config.py

Sublert:自动化监控子域名变化的工具插图(3)

你差不多准备好了!现在有趣的部分是添加域来监控新的子域。目前,最好分别添加每个域。让我们添加PayPal例如:

$ python sublert.py -u paypal.com
Sublert:自动化监控子域名变化的工具插图(4)

您可以使用您想要监控的所有其他域名以相同的方式进行操作。完成目标添加后,下一步是配置Cron,以便在固定时间定期执行Sublert。

让我们制作Sublert.py可执行文件:

$ chmod u+x sublert.py

现在,我们需要添加一个新的Cron作业来安排在给定时间执行Sublert。为此,请输入:

$ Crontab -e

在Cron文件的末尾添加以下行:

0 */12 * * * cd /root/sublert/ && /usr/bin/python sublert.py -r -l >> /root/sublert/sublert.log 2>&1

你需要将/root/sublert/更改为Sublert的所在目录。

如果你使用的是python3,请将/usr/bin/python更改为/usr/bin/python3

0 */12 * * * → 表示每12小时运行一次Sublert。你可以使用https://crontab.guru/,来自定义你所希望的固定执行时间。

-r → 执行DNS解析。这是可选的,但建议使用。

– l →记录错误并将其推送到Slack channel。这是可选的,但建议使用。

/var/log/sublert.log 2>&1 → 将输出保存到/var/log/sublert.log。

您可以通过执行以下命令确保它已正确配置并顺利运行。你应该收到关于Slack的通知推送:

$ python sublert.py -l -r


Sublert将每12小时执行一次,如果有任何机会,您监控的域名列表部署了一个新的子域名,您将收到有关以下内容的Slack通知:

Sublert:自动化监控子域名变化的工具插图(5)

关于Slack的转租通知

如果Sublert被执行但未找到任何内容,您仍应该获得新的通知推送。看到:

Sublert:自动化监控子域名变化的工具插图(6)

Sublert找不到任何新的子域名

建议您在手机上安装Slack的移动版本,并禁用“ 请勿打扰”模式,以便随时随地获得通知。

Sublert:自动化监控子域名变化的工具插图(7)

您可以在任何给定时间使用Sublert添加新域名以监控或删除某些内容。以下是支持的各种参数:

将yahoo.com添加到受监控列表中。

$ python sublert.py -u yahoo.com

从列表中删除yahoo.com,它将不再受到监控。

$ python sublert.py -d yahoo.com

显示当前正在监控的所有域名。

$ python sublert.py -a

指定要使用的并发线程数(默认值:20)。如果需要,您还应该将参数添加到Cron作业中。

$ python sublert.py -t 30

指示Sublert执行DNS解析。

$ python sublert.py -r

启用基于Slack的错误记录。如果需要,您还应该将参数添加到Cron作业中。

$ python sublert.py -l

指示Sublert重置所有内容:将清理受监视的列表并删除所有本地存储的文件。只有在出现问题时才能使用。

$ python sublert.py -m


您必须只监控具有广泛和开放范围的bug赏金程序,以避免未经授权的监控和违反程序的安全策略。

项目地址:https://github.com/yassineaboukir/sublert

Wfuzz-用法

mrk阅读(188)

但相对FuzzDBSecLists来说还是不够全面不够强大的,当然如果有自己的字典列表最好~

在kali-linux安装SecLists:

apt -y install seclists
路径:/usr/share/seclists/ (看自己习惯)
Wfuzz爆破文件:wfuzz -w wordlist URL/FUZZ.php

Wfuzz爆破目录:wfuzz -w wordlist URL/FUZZ


遍历枚举参数值
e.g. 假如你发现了一个未授权漏洞,地址为:http://127.0.0.1/getuser.php?uid=123 可获取uid为123的个人信息

uid参数可以遍历,已知123为三位数纯数字,需要从000-999进行遍历,也可以使用wfuzz来完成:

wfuzz -z range,000-999 http://127.0.0.1/getuser.php?uid=FUZZ
使用payloads模块类中的range模块进行生成。

POST请求测试
e.g. 发现一个登录框,没有验证码,想爆破弱口令账户。

请求地址为:http://127.0.0.1/login.php

POST请求正文为:username=&password=

使用wfuzz测试:

wfuzz -w userList -w pwdList -d "username=FUZZ&password=FUZ2Z" http://127.0.0.1/login.php
-d参数传输POST请求正文。

Cookie测试
上文 遍历枚举参数值 中说到有未授权漏洞,假设这个漏洞是越权漏洞,要做测试的肯定需要让wfuzz知道你的Cookie才能做测试。

如下命令即可携带上Cookie:

wfuzz -z range,000-999 -b session=session -b cookie=cookie http://127.0.0.1/getuser.php?uid=FUZZ
-b参数指定Cookie,多个Cookie需要指定多次,也可以对Cookie进行测试,仍然使用FUZZ占位符即可。

HTTP Headers测试
e.g. 发现一个刷票的漏洞,这个漏洞需要伪造XFF头(IP)可达到刷票的效果,投票的请求为GET类型,地址为:http://127.0.0.1/get.php?userid=666。

那么现在我想给userid为666的朋友刷票,可以使用wfuzz完成这类操作:

wfuzz -z range,0000-9999 -H "X-Forwarded-For: FUZZ" http://127.0.0.1/get.php?userid=666
-H指定HTTP头,多个需要指定多次(同Cookie的-b参数)。

测试HTTP请求方法(Method)
e.g. 想测试一个网站(http://127.0.0.1/)支持哪些HTTP请求方法

使用wfuzz:

wfuzz -z list,"GET-POST-HEAD-PUT" -X FUZZ http://127.0.0.1/
这条命了中多了 -z list 和 -X 参数,-z list可以自定义一个字典列表(在命令中体现),以-分割;-X参数是指定HTTP请求方法类型,因为这里要测试HTTP请求方法,后面的值为FUZZ占位符。

使用代理
做测试的时候想使用代理可以使用如下命令:

wfuzz -w wordlist -p proxtHost:proxyPort:TYPE URL/FUZZ
-p参数指定主机:端口:代理类型,例如我想使用ssr的,可以使用如下命令:

wfuzz -w wordlist -p 127.0.0.1:1087:SOCKS5 URL/FUZZ
多个代理可使用多个-p参数同时指定,wfuzz每次请求都会选取不同的代理进行。

认证
想要测试一个需要HTTP Basic Auth保护的内容可使用如下命令:

wfuzz -z list,"username-password" --basic FUZZ:FUZZ URL
wfuzz可以通过--basec --ntml --digest来设置认证头,使用方法都一样:

--basec/ntml/digest username:password

递归测试
使用-R参数可以指定一个payload被递归的深度(数字)。例如:爆破目录时,我们想使用相同的payload对已发现的目录进行测试,可以使用如下命令:

wfuzz -z list,"admin-login.php-test-dorabox" -R 1 http://127.0.0.1/FUZZ
如上命令就是使用了自定义字典列表:

admin
login.php
test
dorabox	
递归深度为1也就是说当发现某一个目录存在的时候,在存在目录下再递归一次字典。

并发和间隔
wfuzz提供了一些参数可以用来调节HTTP请求的线程

e.g. 你想测试一个网站的转账请求是否存在HTTP并发漏洞(条件竞争)

请求地址:http://127.0.0.1/dorabox/race_condition/pay.php

POST请求正文:money=1

使用如下命令:

wfuzz -z range,0-20 -t 20 -d "money=1" http://127.0.0.1/dorabox/race_condition/pay.php?FUZZ
0x03

测试并发要控制请求次数,在这里为使用range模块生成0-20,然后将FUZZ占位符放在URL的参数后不影响测试即可,主要是用-t参数设置并发请求,该参数默认设置都是10。

另外使用-s参数可以调节每次发送HTTP的时间间隔。

保存测试结果
wfuzz通过printers模块来将结果以不同格式保存到文档中,一共有如下几种格式:

raw       | `Raw` output format
json      | Results in `json` format
csv       | `CSV` printer ftw
magictree | Prints results in `magictree` format
html      | Prints results in `html` format
将结果以json格式输出到文件的命令如下:

$ wfuzz -f outfile,json -w wordlist URL/FUZZ
使用-f参数,指定值的格式为输出文件位置,输出格式

DNS域传送漏洞的收集、检测与利用

mrk阅读(215)

一. DNS域传送

DNS :Domain Name System

一个保存IP地址和域名相互映射关系的分布式数据库,重要的互联网基础设施,默认使用的TCP/UDP端口号是53

常见DNS记录类型:

A       IP地址记录,记录一个域名对应的IP地址

AAAA    IPv6 地址记录,记录一个域名对应的IPv6地址

CNAME   别名记录,记录一个主机的别名

MX      电子邮件交换记录,记录一个邮件域名对应的IP地址,如root@xxxx.com

NS      域名服务器记录 ,记录该域名由哪台域名服务器解析

PTR     反向记录,也即从IP地址到域名的一条记录

TXT     记录域名的相关文本信息

域传送 :DNS Zone Transfer

二. 收集

1. 利用网络空间搜索引擎收集域名服务器 

比如:shodan、zoomeye、fofa

2. 利用MasScan收集dns服务器 

安装:

On Debian/Ubuntu:

$ sudo apt-get install git gcc make libpcap-dev

$ git clone https://github.com/robertdavidgraham/masscan

$ cd masscan

$ make

On Centos:

sudo yum install git gcc make libpcap-devel

git clone https://github.com/robertdavidgraham/masscan

cd masscan

make

扫描网段

./bin/masscan -p53 -oX ns.xml –rate 160000 101.0.0.0-110.0.0.0

-p表示需要端口

或者直接安装:

apt install masscan

获得开放53端口的潜在漏洞DNS服务器对象。

ns.xml结果去重

from lxml import etree

port = None

address = None

parsedServers = []

#Opens the file used to store single enteries.

outputFile = open(‘ns.txt’, ‘a’)

for event, element in etree.iterparse(‘ns.xml’, tag=”host”):

    for child in element:

        if child.tag == ‘address’:

            address = child.attrib[‘addr’]

        if child.tag == ‘ports’:

            for a in child:

                port = a.attrib[‘portid’]

        if port > 1 and address > 1:

            if address not in parsedServers:

                print address

                outputFile.write(address + ‘\n’)

                parsedServers.append(address)

            port = None

            address = None

    element.clear()

outputFile.close()

print ‘End’

———————

三. 检测与利用

原理

DNS服务器配置不当,导致匿名用户利用DNS域传送协议获取某个域的所有记录。

通过可以实现DNS域传送协议的程序,尝试匿名进行DNS域传送,获取记录。

危害

网络拓扑结构泄露给潜在的攻击者,包括一些安全性较低的内部主机,如测试服务器等。直接加快、助长攻击者的入侵过程。

———————

检测与利用

1. nslookup 
基本过程

1) 输入nslookup命令进入交互式shell;
2) server 命令参数设定查询将要使用的DNS服务器;
3) ls命令列出某个域中的所有域名;
4) exit命令退出

失败例子 

> nslookup

DNS request timed out.

    timeout was 2 seconds.

默认服务器:  UnKnown

Address:  114.114.114.114

> server ss2.bjfu.edu.cn

默认服务器:  ss2.bjfu.edu.cn

Address:  202.204.112.67

> ls bjfu.edu.cn

[ss2.bjfu.edu.cn]

*** 无法列出域 bjfu.edu.cn: Query refused

DNS 服务器拒绝将区域 bjfu.edu.cn 传送到你的计算机。如果这不正确,

请检查 IP 地址 202.204.112.67 的 DNS 服务器上 bjfu.edu.cn 的

区域传送安全设置。

———————

成功例子 

> nslookup

默认服务器:  public1.114dns.com

Address:  114.114.114.114

> server ring.cugb.edu.cn

默认服务器:  ring.cugb.edu.cn

Address:  202.204.105.1

> ls cugb.edu.cn

cugb.edu.cn.                   NS     server = ring.cugb.edu.cn

      cugb.edu.cn.                   A      127.0.0.1

      acm                            A      121.194.86.2

      bbs                            A      202.204.105.172

      bm                             A      202.204.105.179

———————

2. nmap

nmap –script dns-zone-transfer –script-args dns-zone-transfer.domain=xxx.edu.cn -p 53 -Pn dns.xxx.edu.cn

×
订阅图标按钮