15个版本 (9个稳定)
2.0.2 | 2024年4月15日 |
---|---|
2.0.1 | 2023年10月9日 |
2.0.0 | 2023年5月14日 |
1.2.22 | 2023年3月14日 |
0.1.8 | 2022年10月17日 |
#180 in 密码学
用于 2 crates
210KB
405 行
📚 文档
慈悲是一个开源的Rust包和CLI,用于构建网络安全工具、评估项目和测试。项目的目标是使Rust中的安全工具创建更加容易和可持续,无需复杂的算法。
用法
由于慈悲是一个标准包,它可以很容易地用于任何已经使用Cargo初始化的项目。只需将以下行添加到您的 Cargo.toml
文件中
mercy = "2.0.2"
更新 Cargo.toml
文件后,您可以通过运行 cargo run
来导入包并使用提供的方法。以下提供了许多不同的示例。
密码学过程
以下是一个使用base64协议进行解码和编码的快速示例
use mercy::{ decode, encode };
fn main() {
// Encode string "battleoverflow"
encode("base64", "battleoverflow");
// Decode string "YXphemVsbGFicw=="
decode("base64", "YXphemVsbGFicw==");
}
十六进制转储
以下是使用慈悲在单行中转储十六进制值的方法
use mercy::hex;
fn main() {
hex("hex_dump", "/Location/of/file");
}
恶意软件/恶意检测
您可以使用InQuest API检查域名(例如example.com)是否目前被分类为恶意
use mercy::malicious;
fn main() {
malicious("status", "example.com");
}
其他方法
包括一些额外的方法以帮助数据收集。您可以收集主机系统的内部IP地址,消除URL或IP地址的威胁,运行WHOIS域名查找,或转储由用户指定的主机系统信息。
use mercy::extra;
fn main() {
// Contains the internal ip address of the user's system
// Second parameter MUST be an empty string to work
extra("internal_ip", "");
// This method is extensive, but the "all" parameter allows the user to dump everything
extra("system_info", "all");
// Defang an ip address or domain
extra("defang", "example.com");
// Run a WHOIS lookup on a domain
extra("whois", "example.com");
// Attempt to identify an unknown string
extra("identify", "UCrlEbqe4ppk5dVIHzdxtC7g");
// Attempt to crack an encrypted string
extra("crack", "YXphemVsbTNkajNk");
}
您还可以使用以下参数,替换 system_info
下的 "all" 关键字
- hostname
- cpu_cores
- cpu_speed
- os_release
- proc
还有一个实验方法,这意味着您将通过stdout接收所有内容,而无需 println!()
use mercy::experimental;
fn main() {
// Shuffle a provided string to construct a domain name
experimental("domain_gen", "example.com");
}
现在您也可以在脚本或通过CLI提取zip文件。这是一种只打印到stdout的方法。
use mercy::experimental;
fn main() {
experimental("zip", "/Users/name/Downloads/archive.zip");
}
更多信息
如果有任何疑问,请随时运行此特殊函数以显示有关crate的更多信息。
use mercy::source;
fn main() {
source();
}
CLI
虽然Mercy可以作为crate提供,但它也兼职作为命令行界面。这允许您通过Cargo正常安装crate,并使用所有可用的方法,而无需构建自己的评估工具。
以下是一些使用CLI的示例。
您可以使用以下语法运行CLI工具
mercy -m <METHOD> -p <PROTOCOL> -i <STRING/FILE>
如果您需要刷新可用的参数,也可以运行帮助命令
mercy -h
以下列出了可用的选项
-i, --input Encoded/Plaintext string for decoding/encoding or location of the file for hex_dump
-m, --method Chosen method for data manipulation (ex: decode)
-p, --protocol Chosen protocol for data manipulation (ex: base64)
-e, --extended View every available option within Mercy
示例
以下是一些快速使用案例
如果您需要使用base64协议解码字符串。
mercy -m decode -p base64 -i <EncodedString>
打印主机系统信息,例如主机名、CPU核心等。
mercy -m sys -p system_info -i all
使用MD5散列将明文字符串进行编码。
mercy -m hash -p md5 -i <PlaintextString>
打印主机系统的内部IP地址。
mercy -m ip -p internal_ip
快速检查域名是否恶意。
mercy -m mal -p status -i "example.com"
提取zip文件。
mercy -m zip_e -p zip -i "/Users/name/Downloads/archive.zip"
如果您遇到困难,可以使用此选项从Mercy学习每个可用的命令。
mercy -e
依赖项
~29–43MB
~649K SLoC