关于Legba
Legba是一款功能强大的多协议凭证爆破与密码喷射枚举工具。该工具的目的就是在消耗更少资源的同时实现更好的性能和稳定性,可以帮助广大研究人员执行多种协议场景下的凭证爆破,以及密码喷射和枚举任务。
支持的协议和功能
AMQP(ActiveMQ、RabbitMQ、Qpid、JORAM和Solace)、Cassandra/ScillaDB、DNS子域枚举、FTP、HTTP(基本身份验证、NTLMv1、NTLMv2、多字段表单、支持CSRF的自定义请求、文件/文件夹枚举、虚拟主机枚举)、IMAP、Kerberos预身份验证和用户枚举、LDAP、MongoDB、MQTT、Microsoft SQL、MySQL、Oracle、PostgreSQL、POP3、RDP、Redis、Samba,SSH/SFTP、SMTP、Socks5、STOMP(ActiveMQ、RabbitMQ、HornetQ和OpenMQ)、TCP端口扫描、Telnet和VNC。
工具安装
Docker Hub安装
我们可以在Docker Hub上找到Legba的Docker镜像:
docker run -it evilsocket/legba -h
在使用字典文件时,请通过一个Docker卷来共享字典文件。如果你想使用网络主机来搜索目标,可以使用下列命令:
docker run
$(pwd):/data
host
evilsocket/legba:latest
ssh --username root --password /data/your-wordlist.txt --target 192.168.1.1
(向右滑动,查看更多)
Crates.io安装
Legba也托管在了crates.io上,安装好Cargo之后,可以直接使用下列命令
安装Legba:
cargo install legba
安装好的工具源码路径为“$HOME/.cargo/bin/legba”。
源码安装
由于该工具基于Rust开发,因此我们首先需要在本地设备上安装并配置好Rust环境。接下来,广大研究人员可以直接使用下列密令将该项目源码克隆至本地:
git clone https://github.com/evilsocket/legba.git
(向右滑动,查看更多)
然后在主机上安装libcrypto-dev和libsmbclient-dev,并运行下列命令构建项目代码:
cd legba
cargo build --release
编译构建好的代码可以在./target/release目录中找到。
Docker镜像构建
我们还可以构建一个Docker容器:
docker build -t legba .
然后通过下列命令运行容器:
docker run legba --help
工具命令选项
参数选项 |
默认值 |
命令描述 |
-L, --list-plugins |
枚举所有可用的协议插件 |
|
-T, --target <TARGET> |
设置单个目标主机、URL或IP地址、IP范围、CIDR、@filename或逗号分隔的目标 |
|
-U, --payloads, --username <USERNAME> |
#4-8 |
常量、文件名、表达式,例如@/some/path/*.txt、#min-max:charset / #min-max或[min-max] / [n, n, n] |
-P, --key, --password <PASSWORD> |
#4-8 |
常量、文件名、表达式,例如@/some/path/*.txt、#min-max:charset / #min-max或[min-max] / [n, n, n] |
-C, --combinations <COMBINATIONS> |
从该文件加载username:password组合 |
|
--separator <SEPARATOR> |
: |
使用--combinations/-C参数时的分隔符 |
-I, --iterate-by <ITERATE_BY> |
user |
根据用户或密码执行迭代,可选值为user或password |
-S, --session <FILENAME> |
从文件存储或恢复会话 |
|
-O, --output <OUTPUT> |
结果存储文件路径 |
|
--output-format <FORMAT> |
text |
输出文件格式,可选text或json |
--timeout <TIMEOUT> |
10000 |
连接超时时间(毫秒) |
--retries <RETRIES> |
5 |
请求失败后的尝试次数 |
--retry-time <TIME> |
1000 |
重试间隔时间(毫秒) |
--single-match |
第一次匹配到假阳性时退出 |
|
--ulimit <ULIMIT> |
10000 |
ulimit值(打开文件描述符的最大值) |
--concurrency <VALUE> |
10 |
并行线程数量 |
--rate-limit <LIMIT> |
0 |
每秒请求发送数量限制 |
-W, --wait <WAIT> |
0 |
每次登录尝试的等待间隔时间(毫秒) |
--jitter-min <VALUE> |
0 |
随机请求的发送最小时间间隔(毫秒) |
--jitter-max <VALUE> |
0 |
随机请求的发送最大时间间隔(毫秒) |
-Q, --quiet |
不报告统计数据 |
|
-h, --help |
帮助信息 |
|
-V, --version |
版本信息 |
工具使用
选择一个或多个目标
--target/-T参数支持设置一个或多个目标:
--target 127.0.0.1, --target www.google.com
--target 127.0.0.1:22
--target 127.0.0.1, 192.168.1.1:80
--target @targets.txt
--target 192.168.1.1-10, --target 192.168.1.1-10:22
--target 192.168.1.0/24, --target 192.168.1.0/24:22 CIDR
--target 10.0.0.1, 172.0.0.1:2222, @other-targets.txt, 192.168.1.1-10
(向右滑动,查看更多)
提供凭证
所有的命令逻辑都支持--username/--payloads和--password/--key参数:
legba <plugin name> --username admin --password data/passwords.txt
legba <plugin name> --username data/users.txt --password data/passwords.txt
legba <plugin name> --username admin
legba <plugin name> --username data/users.txt --password '@/some/path/*.key'
legba <plugin name> --username data/users.txt --password '#4-5:abcdef'
legba <plugin name> --username data/users.txt --password '[10-999]'
legba <plugin name> --username data/users.txt --password '[1, 2, 3, 4]'
(向右滑动,查看更多)
许可证协议
本项目的开发与发布遵循GNU General Public开源许可证协议。
项目地址
Legba:https://github.com/evilsocket/legba
【 原文始发于微信公众号(FreeBuf):Legba:一款功能强大的多协议凭证爆破与密码喷射枚举工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论