
kali工具笔记
nmap
Nmap 是一个强大的端口扫描工具,默认扫描端口范围 1-1024。
常用参数
选项 | 说明 |
---|---|
-sn 或 -sP |
进行主机探测(Ping 扫描)。 |
无参数 | 更详细的扫描,可以获取端口信息。 |
-p- |
扫描所有端口(有时 Ping 不一定能扫出)。 |
-p <端口> |
指定端口扫描,可与 --script=banner 或 -A 结合使用。 |
-sU |
扫描 UDP 端口,探测目标上的服务。 |
-A |
启用高级检测,包括操作系统检测、版本检测、脚本扫描和路由跟踪。 |
-sS |
进行半开放式(SYN)扫描,适用于快速端口扫描。 |
-sT |
进行完整连接(TCP 连接)扫描,适用于没有特权的用户。 |
-sV |
探测端口服务版本信息。 |
-O |
进行操作系统检测。 |
--script=<脚本> |
使用 Nmap 脚本引擎(NSE),如 --script=vuln 进行漏洞扫描。 |
-T<0-5> |
设置扫描速度,T0 最慢,T5 最快。 |
-Pn |
跳过 Ping 检测,直接扫描目标主机(适用于防火墙屏蔽 Ping 的情况)。 |
-p- 扫描所有端口(有时候直接ping一下不一定扫出来的) 这个服务和nmap扫出来的也不一定一样 | |
后面可以-p 指定端口之后 加上 –script=banner 或者-A | |
-sU 可以探测到服务 | |
-6 用ipv6 可以先用ping6 -I ff02::1 扫描出ipv6地址,然后用nmap -6 [ip] -p 22 确定,多用于绕过22端口的filter |
sqlmap
SQLMap 是一个自动化 SQL 注入漏洞检测工具
常用参数
选项 | 说明 |
---|---|
-u <URL> |
指定目标 URL,例如 -u "http://example.com?id=1" 。 |
--data "<参数>" |
用于 POST 请求的参数数据,例如 --data "user=admin&pass=123" 。 |
--cookie "<cookie>" |
指定请求的 Cookie,例如 --cookie "PHPSESSID=12345" 。 |
-p <参数> |
指定测试的参数,例如 -p id 只测试 id 参数。 |
--level=<1-5> |
设置测试强度,默认 1 ,5 最彻底但较慢。 |
--risk=<1-3> |
设置风险级别,1 为低,3 为高。 |
--dbs |
枚举目标数据库名称。 |
--tables |
列出目标数据库中的表,需要结合 -D <数据库名> 使用。 |
--columns |
列出表中的列名,需要结合 -D <数据库名> -T <表名> 使用。 |
--dump |
导出表中的数据,需要结合 -D <数据库名> -T <表名> 使用。 |
--batch |
跳过交互提示,自动选择默认选项,适用于脚本化操作。 |
--threads <N> |
设置扫描线程数,提高扫描速度(默认为 1 ,建议 3-5 )。 |
--os-shell |
获取操作系统 Shell(如果目标数据库具有命令执行权限)。 |
--tamper <脚本> |
使用 tamper 脚本(如 --tamper=space2comment )绕过某些安全防护。 |
使用示例
1 | sqlmap -u "http://example.com/index.php?id=1" --dbs |
John the Ripper
在 Kali Linux 中,John the Ripper 是一个强大的密码破解工具,用于测试密码强度
1 | john [选项] <文件> |
–wordlist=<文件>:指定密码字典。
默认字典位置:/usr/share/wordlists/rockyou.txt
破解结果存储在 ~/.john/john.pot。
常用参数
选项 | 说明 |
---|---|
--wordlist=<文件> |
使用指定的密码字典进行破解。 |
--rules |
启用规则扩展(对字典进行变形,提高成功率)。 |
--format=<格式> |
指定哈希格式,如 md5crypt 、sha512crypt 、nt 、zip 。 |
--show |
显示已破解的密码。 |
--incremental |
使用增量模式(自动生成候选密码)。 |
--session=<名称> |
指定会话名称,可暂停后续继续破解。 |
--restore=<名称> |
恢复指定会话的破解进度。 |
--fork=<N> |
启用 N 个进程进行并行破解,提高速度。 |
--single |
使用用户名作为密码的基础进行单模式破解。 |
--stdout |
仅生成候选密码,不进行破解(测试字典效果)。 |
使用示例
1 | john --wordlist=rockyou.txt --format=raw-md5 hashes.txt |
wpscan
WPScan 是一个专注于 WordPress 安全性的开源工具,用于扫描 WordPress 网站的安全漏洞。它可以帮助管理员识别网站中可能存在的安全问题,例如已知的插件或主题漏洞、弱密码、以及错误的配置
1 | wpscan --url <target_url> [选项] |
现在都需要到官网注册 然后得到api-token 才能获得扫描之后的详细结果
常用参数
参数 | 含义 |
---|---|
--url <URL> |
指定目标网站的 URL。 |
--enumerate <OPTION> |
枚举 WordPress 的用户、插件、主题等(详细选项见下方)。 |
--api-token <TOKEN> |
使用 WPScan API Token 获取更详细的漏洞数据。 |
--random-user-agent |
使用随机的 User-Agent 模拟真实用户访问,避免被目标网站屏蔽。 |
--passwords <FILE> |
指定密码字典文件,用于密码暴力破解。 |
--usernames <FILE> |
指定用户名字典文件,用于密码暴力破解。 |
--ignore-main-redirect |
忽略网站的 URL 重定向。 |
--verbose |
显示详细的输出信息。 |
通过 --enumerate
参数,可以枚举 WordPress 网站的不同组件:
枚举选项 | 含义 |
---|---|
u |
枚举用户(尝试查找用户名)。 |
p |
枚举插件及其漏洞信息。 |
t |
枚举主题及其漏洞信息。 |
vp |
枚举有漏洞的插件(需要 API 支持)。 |
vt |
枚举有漏洞的主题(需要 API 支持)。 |
ap |
显示所有插件。 |
at |
显示所有主题。 |
密码破解
1 | wpscan --url https://example.com -P passwords.txt -U users.txt |
wfuzz
WFuzz 是一款开源的 Web 应用模糊测试工具,专为渗透测试设计。它的主要功能是通过暴力破解和模糊测试技术,枚举和发现 Web 应用中的隐藏内容或漏洞,比如:
- 目录和文件枚举:发现网站的隐藏目录或敏感文件。
- 参数枚举:测试 Web 应用中可能存在的隐藏参数。
- 凭据爆破:用于暴力破解登录页面。
- 漏洞检测:检测 SQL 注入、XSS、命令注入等安全漏洞。
- HTTP 请求自定义:允许用户灵活自定义 HTTP 请求,实现高级模糊测试。
-u/--url
指定目标 URL,并在其中插入FUZZ
占位符,WFuzz 会用字典内容替换FUZZ
进行请求。wfuzz -u http://example.com/FUZZ
默认自带呢位置在/usr/share/wfuzz/wordlist
参数枚举的字典用/usr/share/seclists/Discovery/Web-Content/common.txt
常见的 -z
选项:
选项 | 说明 |
---|---|
file,文件路径 |
从字典文件加载数据 |
range,1-100 |
生成 1 到 100 的数字进行测试 |
hex,4 |
生成 4 位的十六进制数 |
alphanum,6 |
生成 6 位的字母 + 数字字符串 |
random,10 |
生成 10 位随机字符 |
过滤无效响应
WFuzz
可能会返回大量无效的 404 响应,可以使用以下参数进行过滤:
参数 | 作用 |
---|---|
--hc 404 |
隐藏 HTTP 状态码为 404 的响应 |
--hl 10 |
隐藏行数等于 10 的响应 |
--hw 5 |
隐藏单词数等于 5 的响应 |
--hh 200 |
隐藏字节数等于 200 的响应 |
(看过的一个用法是 –hc 404 –hl 3 –hw 1 | |
-d 可以同时多个FUZZ位置 |
1 | wfuzz -z file,users.txt -z file,passwords.txt -d "username=FUZZ&password=FUZ2Z" 'http://example.com/login' |
1 | 选项: |
binwalk
Binwalk 是一个用于分析文件的工具,常用于隐写分析。
1 | binwalk -e <文件> --run-as=root |
Dos2Unix
用于将 Windows 文本文件转换为 Unix 格式。
1 | dos2unix <文件> |
SearchSploit
SearchSploit 用于搜索 Exploit-DB 漏洞利用代码。
1 | searchsploit <漏洞或软件名> |
漏洞利用文件存放目录:
1 | /usr/share/exploitdb/exploits |
Metasploit (msfconsole)
msfconsole
是 Metasploit Framework 的命令行界面,Metasploit 是一个用于开发和执行漏洞利用代码的开源工具。它广泛用于渗透测试、安全评估以及漏洞分析。msfconsole
提供了一个强大的命令行环境,允许用户快速访问各种安全测试功能。
以下是一些常见的命令及其说明:
常用参数
命令 | 作用 |
---|---|
show |
列出可用的 payloads/exploits。 |
set <选项> |
设置攻击参数。 |
unset <选项> |
取消选项设置。 |
exploit |
运行漏洞利用。 |
sessions |
管理会话。 |
info |
查看模块详细信息。 |
search <名称> |
搜索漏洞。 |
use <模块> |
选择漏洞模块。 |
db_nmap |
运行 Nmap 并保存结果。 |
exit 或 quit |
退出 Metasploit。 |
使用示例
1 | # 1. 启动 Metasploit |
use auxiliary/scanner/ssh/ssh_login
:auxiliary
:Metasploit 中的辅助模块(不直接获取 shell,而是用于扫描、信息收集、登录尝试等)。scanner/ssh/ssh_login
:用于对目标 SSH 服务器进行用户名/密码组合爆破。
Cewl
Cewl 是一个爬虫工具,可以抓取网站内容并生成密码字典。
1 | cewl -w <输出文件> -d <深度> <URL> |
fcrackzip
使用frackzip破解压缩包
1 | fcrackzip -b -c 1 -l 1-6 -p 0 -u 1.zip |
-b:使用暴力破解模式。
-c 1:限制密码仅包含数字字符。
-l 1-6:限制密码长度在 1 到 6 个字符之间。
-p 0:初始化破解起点为 0。
-u:显示破解出来的密码。
hydra
Hydra 是一个多协议暴力破解工具。
1 | hydra -L <用户名列表> -P <密码列表> <协议>://<目标>:<端口> |
支持 SSH、FTP、HTTP 等协议。
常用参数
参数 | 描述 |
---|---|
-L <文件> |
指定包含多个用户名的文件。 |
-l <用户名> |
指定单个用户名。 |
-P <文件> |
指定包含多个密码的文件。 |
-p <密码> |
指定单个密码。 |
-t <线程数> |
指定线程数,默认为16。可以增加来提高破解速度,但过高可能会被目标封禁或造成网络问题。 |
-o <文件> |
将破解成功的结果保存到指定文件中。 |
-i
忽略密码字段,表示使用 SSH 私钥进行认证 -s 22
:指定 SSH 端口(默认 22) -p id_rsa
:指定 SSH 私钥(即 id_rsa
)
-V -I -e nsr nsr表示尝试空密码 尝试用户名本身 尝试用户名反转
gobuster
gobuster
是一个用 Go 语言编写的目录 / 文件扫描工具,常用于渗透测试和安全审计中,目的是通过暴力破解或字典攻击来发现 Web 服务器上的隐藏目录和文件。gobuster dir -u http://example.com -w /path/to/wordlist.txt
默认字典目录在/usr/share/wordlists/dirbuster/
下
-s 指定要显示的http状态码 -t指定线程 一般用50 60 -b 排除状态码
字典位置:/usr/share/wordlists/dirbuster/
一般是dirsearch没有发现有用的内容的时候用这个扫描器 用这个 medium字典
-b 可以排除状态码 -x要检查的类型 比如 txt php
Enum4Linux
enum4linux
是一款用于 Linux 系统上的 SMB(Server Message Block)协议枚举工具,常用于网络安全测试中进行 Windows 系统的枚举。它能够帮助渗透测试人员获取有关 Windows 系统的详细信息,例如共享资源、用户账户、操作系统版本、域名等。
功能和smbmap差不多
常用参数和示例
命令 | 说明 |
---|---|
enum4linux -S <target_ip> |
列出目标系统的共享资源。 |
smbmap -H <target_ip> |
列出目标系统的共享资源(替代 enum4linux -S )。 |
enum4linux -O <target_ip> |
获取目标 Windows 系统的操作系统版本。 |
enum4linux -U <target_ip> |
列出目标计算机上的所有用户账户。 |
enum4linux -P <target_ip> |
获取目标主机上用户的登录历史信息。 |
enum4linux -A <target_ip> |
请求更多的枚举信息,包括共享、用户等数据。 |
enum4linux -G <target_ip> |
获取目标系统上组的相关信息。 |
stegseek
Stegseek 是一款快速的 JPEG 隐写分析工具,专门用于破解 steghide
隐写的图片文件。它可以 高效爆破密码,并提取隐藏数据。
Stegseek 主要功能包括:
- 快速爆破密码:基于字典的攻击,速度极快。
- 提取隐藏数据:无需密码时,尝试默认密码或空密码提取。
- 检查图片是否含有隐写数据。
常用参数
参数 | 说明 |
---|---|
-sf , --stegofile |
选择隐写文件 |
-wl , --wordlist |
选择密码字典文件,用于暴力破解 |
-xf , --extractfile |
指定提取数据时的文件名 |
-t , --threads |
设定线程数量,默认为 CPU 核心数 |
-f , --force |
强制覆盖已存在的文件 |
-v , --verbose |
显示详细信息 |
-q , --quiet |
隐藏性能指标(可能提升性能) |
-s , --skipdefault |
不使用默认猜测(如空密码、文件名等) |
-n , --nocolor |
禁用终端输出的颜色 |
-c , --continue |
在找到结果后继续破解(可能存在多个嵌入文件) |
-a , --accessible |
简化输出,使其更适用于屏幕阅读器 |
一般指定rockyou字典就可以
steghide
steghide
是 Kali Linux 中常用的 隐写术工具,主要用于 JPEG、BMP、WAV、AU 格式的 数据隐藏与提取。它支持 密码加密,因此如果数据被加密嵌入,需要正确的密码才能提取。
Steghide 常用参数
参数 | 作用 |
---|---|
info |
查看文件信息,检查是否包含隐藏数据 |
extract |
提取隐藏数据 |
embed |
向文件中嵌入数据 |
-sf file |
指定载体文件(如图片、音频) |
-ef file |
指定要隐藏的文件 |
-p password |
指定密码(如果有加密) |
-cf file |
指定载体文件(用于嵌入数据) |
-v |
详细模式(verbose,显示更多信息) |
工具 | 作用 | 支持格式 | 加密支持 | 破解能力 |
---|---|---|---|---|
steghide | 数据隐藏 & 提取 | JPEG、BMP、WAV、AU | ✅ 支持密码加密 | ❌ 无法破解密码 |
stegseek | 快速破解 steghide 隐写密码 | 仅支持 JPEG | ✅ 破解加密的 steghide 文件 | ✅ 超快字典攻击 |
zsteg
zsteg
是 Kali Linux 中用于检测 PNG 和 BMP 图像中的 隐写数据(Steganography)的工具。它能够扫描图像的 RGB 通道、Alpha 通道,以及不同位深度 来查找隐藏信息,比如 文本、二进制数据、shellcode 等。
zsteg 常用参数
参数 | 作用 |
---|---|
-a |
对图像进行全面扫描(常用) |
-c X |
仅扫描通道 X (r =红,g =绿,b =蓝,a =透明度) |
-b X |
仅扫描第 X 位(如 -b 1 仅检测最低位 LSB) |
-v |
显示详细信息(verbose 模式) |
-p |
仅显示 有效结果 |
-E fmt |
以指定格式提取数据(如 -E bin 提取二进制) |
--lsb Y |
仅扫描 Y 位的 最低有效位(LSB) |
-o filename |
将提取的数据输出到文件 |
-q |
安静模式(只输出必要信息) |
--dump |
直接转储找到的数据 |
rax2
rax2
是 radare 框架中的一个小工具,其设计目的是为 shell 提供一个小型的表达式计算器。其可用于浮点数、十六进制字节的进制转换,十六进制转 ascii,八进制转整数等。若未传入任何参数还可作为一个计算器 shell 使用。
输入 rax2 -h 查看参数
tcpdump
tcpdump
是 Linux 和 macOS 上的网络抓包工具,用于抓取、分析和过滤网络数据包,类似于 Wireshark 的命令行版本。
1 | tcpdump -A -n icmp |
这个命令的作用是:
👉 监听 ICMP(Internet Control Message Protocol)流量,比如 ping
请求和回复,并以 ASCII 方式显示数据包内容。
-A 以 ASCII 格式 显示数据包内容,方便阅读(适用于明文协议)
-n 不解析 DNS,直接显示 IP 地址(加快速度)
icmp 只抓取 ICMP 流量,比如 ping
请求和响应
medusa
medusa
是另一个快速且并行的登录爆破工具。
常用参数
选项 | 说明 |
---|---|
-h <目标主机> |
指定目标 IP 或主机名(可以用 -H 传入包含多个目标的文件)。 |
-u <用户名> |
指定单个用户名。 |
-U <用户名文件> |
指定用户名列表文件。 |
-p <密码> |
指定单个密码。 |
-P <密码文件> |
指定密码列表文件。 |
-M <服务> |
指定要攻击的服务,如 ssh 、ftp 、http 等。 |
-t <线程数> |
指定并发线程数,提高爆破效率。 |
-n <端口号> |
指定目标服务的端口号(如果默认端口不同)。 |
-f |
找到有效凭据后立即停止攻击(可选)。 |
-v / -V |
设置输出详细程度。 |
ssh-keygen
ssh-keygen
是一个用于生成、管理和转换 SSH 认证密钥的命令行工具。它支持多种密钥类型,包括 RSA、DSA、ECDSA 和 Ed25519。该工具常用于为 SSH 连接创建公钥和私钥对,以实现安全的无密码登录。
参数 | 说明 |
---|---|
-t |
指定要创建的密钥类型,如 rsa 、dsa 、ecdsa 、ed25519 等。 |
-b |
设置密钥长度(以位为单位),例如 2048 或 4096。 |
-C |
添加注释,通常用于标识密钥所有者,例如邮箱地址。 |
-f |
指定密钥文件的保存路径和名称。 |
-N |
为私钥设置新密码。 |
-P |
提供旧密码,用于更改现有私钥的密码。 |
-q |
静默模式,在生成密钥时不显示提示和进度。 |
-y |
从私钥文件读取并输出对应的公钥。 |
-l |
显示指定公钥文件的指纹信息。 |
-e |
将 OpenSSH 私钥转换为 RFC 4716 格式。 |
-i |
将 RFC 4716 格式的密钥转换为 OpenSSH 格式。 |
-p |
更改现有私钥文件的密码。 |
-o |
强制使用新的 OpenSSH 格式保存私钥,提供更好的安全性。 |
-m |
指定密钥的显示或保存格式,如 PEM 。 |
-r |
生成用于 DNS 的 SSHFP 资源记录。 |
-B |
以 Bubble Babble 格式显示密钥指纹。 |
-F |
搜索指定的已知主机文件中的主机条目。 |
-R |
从已知主机文件中删除指定主机的所有条目。 |
所以要用私钥生成公钥就用ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
msf-pattern_create
msf-pattern_create
是 Metasploit Framework 中的一个工具,用于生成特定的模式字符串,通常用于缓冲区溢出漏洞测试中的模式创建。
它通过生成一组唯一的字节模式(通常是 ASCII 字符串),这些模式可以帮助你定位栈溢出时的返回地址或其他溢出点。常见的使用场景包括:
msf-pattern_offset
msf-pattern_offset
是 Metasploit Framework 中的一个工具,通常用于缓冲区溢出漏洞测试中,帮助调试人员确定输入模式的偏移量。简单来说,它用于分析程序崩溃时的栈,帮助你找出溢出数据到达返回地址或其他关键内存位置的精确偏移。
1 | msf-pattern_offset -q 0x6161616b |
msfvenom
msfvenom 是 msfpayload(攻击载荷)和 msfencode(编码加密)的组合。将这两个工具集成在一个框实例中。
进一步解释,msfvenom 是用来生成后门的软件,在目标机上执行后门,在本地监听上线,可以理解为一个远控木马。
msfvenom 基本参数
-p:–payload,指定特定的 Payload,如果被设置为,那么从标准输入流中读取。几乎支持全平台
-l:–list,列出所有可用的项目,其中值可以被设置为 payloads,encoders,nops,all
-n:–nopsled,指定 nop 在 payload 中的数量
-f:–format,指定 Payload 的输出格式 (–list formats: 列出所有可用的输出格式)
-e: –encoder,指定使用的 encoder
-a:–arch,指定目标系统架构
–platform: 指定目标系统平台
-s:–space,设置未经编码的 Payload 的最大长度 (–encoder-space: 编码后的 Payload 的最大长度)
-b:–bad-chars,设置需要在 Payload 中避免出现的字符,例如: 0f’lx00’等
-i:–iterations,设置 Payload 的编码次数
–smallest: 尽可能生成最短的 Payload
-o:–out,保存 Pavload 到文件
-c –add-code,指定一个附加的 win32 shellcode 文件
-x –template,指定一个特定的可执行文件作为模板
-k –keep,保护模板程序的功能,注入的 pavload 作为一个新的进程运行
最常用的参数就是 -p ,-f ,-x 和 -e
-f raw生成原始的shellcode
fscan
fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。
它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
简单用法
1 | fscan.exe -h 192.168.1.1/24 (默认使用全部模块) |
其他用法
1 | fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描) |