渗透测试工具 备忘录 -跳跃攻击-DNS爆破

渗透测试工具

渗透测试工具 暗网浏览器8.0

简介

渗透测试工具备忘录记录渗透测试时常用的命令,更深入的信息推荐参考特定工具的帮助文档或 本站 其他备忘录。

本目录关注网络底层相关的渗透测试,除了少量sqlmap的命令和一些Web服务枚举外,基本不包含Web应用渗透测试的内容。关于Web应用测试,建议参考《黑客攻防技术宝典》,这本书不管是用作专门学习还是参考手册都是很棒的。

文中缺漏之处欢迎 推特 私戳。

更新日志:

17/02/2017 :更新文章,增加VPN,DNS隧道,VLAN hopping(跳跃攻击) 等内容。

开始前

网络配置

设置IP 地址

[/crayon]

子网划分

[/crayon]

公开来源情报

被动信息收集

DNS

WHOIS 枚举

[/crayon]

查询DNS IP

[/crayon]

查询MX记录

[/crayon]

用DIG 查询域传送

[/crayon]

DNS 域传送

命令 解释
nslookup -> set type=any -> ls -d blah.com Windows DNS域传送
dig axfr blah.com @ns1.blah.com Linux DNS 域传送

邮件

Simply Email

使用Simply Email枚举所有所有网站(GitHub,目标站点等),配上代理或设置较长的访问间隔时间,这样就不会被Google发现是爬虫并用验证码拦住了。Simply Email还可以验证收集的邮件地址。

[/crayon]

半主动信息收集

基本指纹识别

手动指纹识别/banner抓取

命令 解释
nc -v 192.168.1.1 25
telnet 192.168.1.1 25
通过显示banner识别版本和指纹

使用NC抓取banner

[/crayon]

主动信息收集

DNS 爆破

DNSRecon
DNS Enumeration Kali – DNSRecon
root :~# dnsrecon -d TARGET -D /usr/share/wordlists/dnsmap.txt -t std –xml ouput.xml

端口扫描

Nmap命令

更多命令,详见 Nmap备忘录 。

基本Nmap 命令:

命令 解释
nmap -v -sS -A -T4 target 详细显示,syn探测,高速扫描,系统和服务版本信息,脚本扫描和路由跟踪
nmap -v -sS -p--A -T4 target 同上,且扫描所有TCP端口,耗时更长
nmap -v -sU -sS -p- -A -T4 target 同上,且扫描所有UDP端口,耗时巨长
nmap -v -p 445 --script=smb-check-vulns --script-args=unsafe=1 192.168.1.X 扫描可能包含漏洞的SMB服务
ls /usr/share/nmap/scripts/* | grep ftp 利用关键字搜索nmap脚本

别在外网采用 T4 扫描,使用 TCP 连接扫描时用 T2 比较合适。 T4 扫描用在低延迟高带宽的内部网络测试会更合适。但这也取决于目标设备,如果用 T4/T5 扫他们,结果就可能不准确。总的来说,扫描越慢越好,也可以先快速扫描1000个目标方便上手测试,然后再慢慢扫其余的。

Nmap UDP扫描

[/crayon]

UDP 协议扫描器

[/crayon]
扫描文件中IP地址的所有服务

[/crayon]
扫描特定UDP服务

[/crayon]

其他主机发现

不使用nmap发现主机的方法:

命令 解释
netdiscover -r 192.168.1.0/24 利用子网的地址解析协议发现同网段的IP,MAC地址和MAC厂商

枚举和攻击网络服务

用于识别/枚举网络服务的工具。

SAMB / SMB / Windows 域枚举

Samba枚举

SMB枚举工具

[/crayon]
当然也可参考本站的 nbtscan 的速查表

SMB 版本指纹识别

[/crayon]

寻找开放的SMB共享

[/crayon]

枚举SMB用户

[/crayon]

[/crayon]
RID循环(RID Cycling )

[/crayon]
Metasploit的RID循环攻击模块

[/crayon]

手动测试空会话

[/crayon]

NBTScan unixwiz

在Kali上安装使用:

[/crayon]

LLMNR / NBT-NS欺骗

从网络中窃取凭证

使用Metasploit进行 LLMNR / NetBIOS请求

欺骗/毒化 LLMNR / NetBIOS请求:

[/crayon]
抓取哈希

[/crayon]
最后会得到NTLMv2 哈希,可以使用john或者hashcat破解。

Responder.py

你也可以选择使用 responder

[/crayon]
注:整个渗透测试过程可以一直允许Responder.py

SNMP枚举工具

SNMP枚举工具有很多。

美化SNMP输出结果使易于阅读。

[/crayon]

命令 解释
snmpcheck -t 192.168.1.X -c public
snmpwalk -c public -v1 192.168.1.X 1 | grep hrSWRunName | cut -d -f
snmpenum -t 192.168.1.X
onesixtyone -c names -i hosts SNMP枚举
SNMPv3枚举工具

使用nmap识别SNMPv3服务器

[/crayon]
Rory McCune 的脚本可以帮助自动化枚举SNMPv3的用户名枚举。

[/crayon]
注意:下面的路径是Kali上Metasploit的SNMP v1和v2的攻击字典,更新的字典可以参考Daniel Miessler 在GitHub上的安全列表 。

[/crayon]

远程服务枚举

这已是老生常谈,但为了本文内容的全面还是包含如下。

nmap -A 会进行下面列举的所有远程服务的枚举,所以这里只是顺便提及。

RSH 枚举
RSH运行命令

[/crayon]

MetasploitRSH 登陆扫描

[/crayon]

使用rusers显示已登陆用户

[/crayon]

使用rlogin扫描整个子网

[/crayon]

使用finger枚举

[/crayon]

利用Solaris的bug显示所有已登录用户

[/crayon]

rwho

使用nmap识别运行rwhod服务(513端口,UDP协议)的机器。

TLS&SSL 测试

testssl.sh

测试单一主机并将结果输出的HTML文件:

[/crayon]

漏洞评估

在Kali Rolling上安装OpenVAS 8

[/crayon]
确认openvas 正在运行:

[/crayon]
通过 https://127.0.0.1:9392 登陆openvas,密码是在安装时设置好的。

数据库渗透测试

攻击暴露在互联网上的数据库。

Oracle

安装 oscanner:

[/crayon]
运行 oscanner:

[/crayon]

Oracle TNS版本指纹识别

安装 tnscmd10g :

[/crayon]
识别:

[/crayon]

爆破Oracle账户

验证默认账户

[/crayon]
对Oracle TNS 运行nmap脚本:

[/crayon]

Oracle权限提升

利用条件:

  • Oracle必须暴露在互联网上
  • 使用默认账户,如scott

简明流程:

  • 创建函数
  • 创建表 SYS.DUAL 的索引
  • 刚刚建立的索引执行了SCOTT.DBA_X 函数
  • 函数是被SYS用户执行的,因为表 SYS.DUAL 属于SYS用户
  • 创建具有DBA权限的账户

下面的展示使用SCOTT用户,但其他默认的Oracle用户也是可以的。

使用NMAP NSE脚本验证oracle数据库中的默认账户:

[/crayon]
使用脆弱账号登陆(假设你发现了一个)。

确认一个oracle用户的权限级别

[/crayon]

Oracle权限提升和访问DBA

运行netcat, netcat -nvlp 443 。

[/crayon]

运行查询语句

[/crayon]
这时你应该拥有一个DBA用户,可以重新运行上面的命令来验证自己是否拥有DBA特权。

移除利用痕迹:

[/crayon]

获取Oracle反弹shell:

[/crayon]

MSSQL

枚举/发现

Nmap

[/crayon]
Metasploit

[/crayon]

爆破 MSSQL登陆

[/crayon]

Metasploit MSSQL Shell

[/crayon]

网络

Plink.exe 隧道

PuTTY Link 隧道

转发运程端口到本地地址:

[/crayon]

跳板(Pivoting)

SSH 跳板(ssh Pivoting)

[/crayon]
需在 /etc/proxychains.conf 添加sock4  127.0.0.1 1010

利用SSH跳板跨越网络

[/crayon]
需在 /etc/proxychains.conf 添加sock4  127.0.0.1 1010

[/crayon]
/etc/proxychains.conf 添加sock4  127.0.0.1 1011

Meterpreter Pivoting

TTL 指纹识别

操作系统 TTL 值
Windows 128
Linux 64
Solaris 255
Cisco / Network 255

IPv4 速查

各类IP的地址范围

类别 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子网速查表

和渗透测试关系不太大,但确实很有用。

CIDR 十进制掩码 主机数量
/31 255.255.255.254 1 Host
/30 255.255.255.252 2 Hosts
/29 255.255.255.248 6 Hosts
/28 255.255.255.240 14 Hosts
/27 255.255.255.224 30 Hosts
/26 255.255.255.192 62 Hosts
/25 255.255.255.128 126 Hosts
/24 255.255.255.0 254 Hosts
/23 255.255.254.0 512 Host
/22 255.255.252.0 1022 Hosts
/21 255.255.248.0 2046 Hosts
/20 255.255.240.0 4094 Hosts
/19 255.255.224.0 8190 Hosts
/18 255.255.192.0 16382 Hosts
/17 255.255.128.0 32766 Hosts
/16 255.255.0.0 65534 Hosts
/15 255.254.0.0 131070 Hosts
/14 255.252.0.0 262142 Hosts
/13 255.248.0.0 524286 Hosts
/12 255.240.0.0 1048674 Hosts
/11 255.224.0.0 2097150 Hosts
/10 255.192.0.0 4194302 Hosts
/9 255.128.0.0 8388606 Hosts
/8 255.0.0.0 16777214 Hosts

VLAN hopping(跳跃攻击)

使用nccgroup 的脚本简化攻击过程

[/crayon]

VPN测试工具

识别VPN服务器

[/crayon]
扫描VPN服务器网段:

[/crayon]

IKEForce

使用IKEForce枚举或对 VPN 服务器进行字典攻击.

安装:

[/crayon]
使用IKEForce对IKE VPN 进行枚举:

[/crayon]
使用 IKEForce 爆破 IKE VPN:

[/crayon]

[/crayon]

IKE 激进模式 PSK 破解

  1. 验证VPN服务器
  2. 使用 IKEForce 枚举来获得组ID
  3. 使用 ike-scan 从IKE 终端抓取 PSK 哈希
  4. 使用 psk-crack 破解哈希
Step 1: 验证IKE服务器

[/crayon]

Step 2:使用IKEForce枚举组名

[/crayon]

Step 3: 使用ike-scan抓取PSK哈希

[/crayon]

Step 4: 使用psk-crack 破解PSK 哈希

[/crayon]
高级psk-crack 选项:

[/crayon]

PPTP Hacking

验证PPTP服务 ,它以TCP协议在1723端口监听

NMAP PPTP 指纹识别:

[/crayon]

PPTP字典攻击

[/crayon]

DNS 隧道

通过DNS传送数据来绕过防火墙。dns2cat支持和目标主机间 的上传和下载文件(数据或程序)操作。

攻击机器:

安装:

[/crayon]
运行dnscat2:

[/crayon]
目标机器:

https://downloads.skullsecurity.org/dnscat2/

https://github.com/lukebaggett/dnscat2-powershell/

[/crayon]

BOF / Exploit

Exploit 搜索

寻找枚举主机/服务的exp

命令 解释
searchsploit windows 2003 | grep -i local 从 exploit-db搜索EXP, 这里以WIndows2003本地提权为例
site:exploit-db.com exploit kernel <= 3 使用Google搜索exploit-db.com
grep -R "W7" /usr/share/metasploit-framework/modules/exploit/windows/* 用grep搜索metasploit的模块——因为msf的搜索有点差劲。

搜索EXP

安装exploit-db的本地备份:

[/crayon]

在Kali上编译WIndows的exp

[/crayon]

交叉编译Exploits

[/crayon]

利用通用漏洞

利用Shellshock漏洞

一个用来寻找和利用Shellshock漏洞的攻击

[/crayon]

[/crayon]

cat file (查看文件内容)

[/crayon]

Shell Shock 运行bind shell

[/crayon]

Shell Shock 反弹shell

[/crayon]

简单的本地Web服务器

使用Python命令运行本地Web服务,在接受反向shell和攻击目标机器是很方便。

命令 解释
python -m SimpleHTTPServer 80 运行一个基本的 http 服务,接受反弹shell等情况下很棒
python3 -m http.server 运行一个基本的 Python3 http 服务
ruby -rwebrick -e "WEBrick::HTTPServer.new(:Port => 80, :DocumentRoot => Dir.pwd).start" 运行一个基本的ruby http 服务
php -S 0.0.0.0:80 运行一个基本的 PHP http 服务

挂载文件共享

怎样挂载 NFS / CIFS以进行 Windows 和Linux 的文件共享。

命令 解释
mount 192.168.1.1:/vol/share /mnt/nfs 挂载NFS共享到  /mnt/nfs
[/crayon] 挂载Windows CIFS / SMB 共享到 Linux 的  /mnt/cifs 。如果不直接在命令里带密码,可以在询问后输入,这样就不会在bash命令历史里存储明文密码
[/crayon] 使用命令行在Windows间挂载共享文件
apt-get install smb4k -y 在Kali上安装smb4k,方便从Linux的GUI查看SMB共享

HTTP / HTTPS Web服务枚举

命令 解释
nikto -h 192.168.1.1 对目标使用 nikto 进行扫描
dirbuster 使用GUI配置,命令行不好使

数据包侦测

命令 解释
[/crayon] 将网卡eth0的80端口的流量导出到output.pcap

用户名枚举

一些用来枚举目标系统用户名的手法。

SMB 用户枚举

命令 解释
[/crayon] 枚举SMB用户
[/crayon] 利用RID cycle枚举SMB用户

SNMP 用户枚举

COMMAND DESCRIPTION
[/crayon]
[/crayon] 枚举 SNMP 用户
[/crayon] 使用nmap搜索SNMP服务器,然后用grep过滤输出

密码

字典

命令 解释
/usr/share/wordlists Kali 的字典存放路径

爆破服务

使用Hydra 爆破FTP

命令 解释
[/crayon] 使用Hydra 爆破FTP

使用Hydra 爆破POP3

COMMAND DESCRIPTION
[/crayon] 使用Hydra 爆破POP3

使用Hydra 爆破SMTP

COMMAND DESCRIPTION
[/crayon] 使用Hydra 爆破SMTP

使用  -t 限制并发连接数,如  -t 15

密码破解

渗透测试中用于密码破解的工具。

John The Ripper – JTR

命令 解释
[/crayon] JTR 破解密码
[/crayon] JTR 使用字典爆破解密
[/crayon] JTR 爆破解密

Windows 渗透测试命令

See Windows Penetration Testing Commands.【待原文补充】

Linux 渗透测试命令

参考本站的Linux 命令速查表 ,该表提供了很多有用的命令。

编译EXP

Some notes on compiling exploits.【待原文补充】

判断C代码适用于Windows平台还是Linux

通过 #include 的文件来判定

命令 解释
[/crayon]
Windows平台代码
[/crayon] Linux平台代码

使用GCC编译Exploit

命令 解释
gcc -o exploit exploit.c GCC基本用法

在64位的Kali上用GCC编译32位的EXP

很方便地在64位的攻击机器上交叉编译32位的二进制文件。

命令 解释
gcc -m32 exploit.c -o exploit 在64位的Linux上交叉编译32位的二进制文件

在 Linux上编译可运行于Windows的exe文件

COMMAND DESCRIPTION
[/crayon] 在 Linux上生成Windows的exe

SUID 二进制

通常具有SUID的 C二进制文件要求以超级用户登陆shell,您可以按需更新UID / GID和shell。

下面是一些可用的shell:

运行 /bin/bash的SUID C Shell

[/crayon]

运行 /bin/sh的SUID C Shell

[/crayon]

构建 SUID Shell 二进制

[/crayon]
32位

[/crayon]

反向Shells

参考 反向 Shell 速查表 。

TTY Shells  渗透测试工具

Tips / Tricks to spawn a TTY shell from a limited shell in Linux, useful for running commands like  sufrom reverse shells.

一些模拟出TTY终端窗口以突破shell限制的技巧,便于从反向shell上执行类似  su 的特殊命令。

用Python模拟 TTY Shell的技巧

[/crayon]

[/crayon]

用sh模拟交互式shell

[/crayon]

用Perl模拟 TTY Shell

[/crayon]

用Ruby模拟 TTY Shell

[/crayon]

用Lua 模拟TTY Shell

[/crayon]

从Vi模拟TTY Shell

[/crayon]

用NMAP模拟TTY Shell

[/crayon]

Metasploit 速查表

这是一个metasploit方便的速查手册。关于跳板技术可参看 Meterpreter Pivoting 。

Meterpreter Payloads

Windows 反向meterpreter payload

命令 解释
[/crayon] Windows 反向tcp payload

Windows VNC Meterpreter payload

命令 解释
[/crayon] Meterpreter Windows VNC Payload

Linux 反向Meterpreter payload

命令 解释
[/crayon] Meterpreter Linux 反向Payload

Meterpreter速查表

有用的meterpreter 命令。

命令 解释
upload file c:\\windows Meterpreter上传文件到 Windows 目标
download c:\\windows\\repair\\sam /tmp Meterpreter 从 Windows 目标下载文件
execute -f c:\\windows\temp\exploit.exe Meterpreter 在目标机器上执行.exe文件——用来执行上传的exp很方便
execute -f cmd -c 创建新的cmd shell通道
ps Meterpreter显示进程
shell Meterpreter获取目标shell
getsystem Meterpreter尝试提权
hashdump Meterpreter尝试导出目标机器上的哈希
portfwd add l 3389 p 3389 r target Meterpreter端口转发
portfwd delete l 3389 p 3389 r target Meterpreter删除端口转发

常用Metasploit 模块

最常用的metasploit 模块。

远程Windows Metasploit 模块(exploits)

命令 解释
[/crayon] MS08_067 Windows 2k, XP, 2003 远程攻击
[/crayon] MS08_040 Windows NT, 2k, XP, 2003 远程攻击
[/crayon] MS09_050 Windows Vista SP1/SP2 和Server 2008 (x86) 远程攻击

本地Windows Metasploit 模块(exploits)

命令 解释
use exploit/windows/local/bypassuac 绕过 Windows 7 上的UAC

辅助Metasploit 模块 渗透测试工具

命令 解释
use auxiliary/scanner/http/dir_scanner Metasploit HTTP 目录扫描
use auxiliary/scanner/http/jboss_vulnscan Metasploit JBOSS 漏扫
use auxiliary/scanner/mssql/mssql_login Metasploit MSSQL 认证扫描
use auxiliary/scanner/mysql/mysql_version Metasploit MSSQL 版本扫描
use auxiliary/scanner/oracle/oracle_login Metasploit Oracle 登陆模块

Metasploit Powershell 模块

命令 解释
use exploit/multi/script/web_delivery Metasploit powershell payload c传送模块
[/crayon] Metasploit通过会话上传和执行 powershell脚本
[/crayon] Metasploit JBOSS 部署
[/crayon] Metasploit MSSQL payload

Windows 后渗透Metasploit 模块

Windows Metasploit 提权模块。

命令 解释
run post/windows/gather/win_privs Metasploit 显示当前用户权限
use post/windows/gather/credentials/gpp Metasploit 提取 GPP 保存的密码
load mimikatz -> wdigest Metasplit 加载 Mimikatz
[/crayon] 检查当前用户是否对域内其他机器有管理员权限
run post/windows/gather/smart_hashdump 自动化导出sam 文件,尝试提权等。

ASCII表速查 渗透测试工具

对Web应用渗透测试很有用,或者你被困在火星而需要和NASA通信。(梗自《火星救援》)

ASCII 字符
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

CISCO IOS(网际操作系统) 命令

收集一些有用的Cisco IOS 命令.

命令 解释
enable 进入使能模式
conf t 配置终端
(config)# interface fa0/0 配置 FastEthernet 0/0
(config-if)# ip addr 0.0.0.0 255.255.255.255 添加IP到 fa0/0
(config-if)# line vty 0 4 配置 vty line
(config-line)# login 登陆
(config-line)# password YOUR-PASSWORD 设置 telnet 密码
# show running-config 显示内存中的运行配置
# show startup-config 显示启动配置
# show version 显示cisco IOS 版本
# show session 显示已打开的会话
# show ip interface 显示网卡
# show interface e0 显示网络接口细节
# show ip route 显示路由
# show access-lists 显示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 Bytes
SHA-1 20 Bytes
SHA-256 32 Bytes
SHA-512 64 Bytes

哈希例子

可以直接使用 hash-identifier 命令判断哈希类型,但这里还是举些例子。

哈希 例子
MD5 Hash Example [/crayon]
MD5 $PASS:$SALT Example [/crayon]
MD5 $SALT:$PASS [/crayon]
SHA1 Hash Example [/crayon]
SHA1 $PASS:$SALT [/crayon]
SHA1 $SALT:$PASS [/crayon]
SHA-256 [/crayon]
SHA-256 $PASS:$SALT [/crayon]
SHA-256 $SALT:$PASS [/crayon]
SHA-512 [/crayon]
SHA-512 $PASS:$SALT [/crayon]
SHA-512 $SALT:$PASS [/crayon]
NTLM Hash Example [/crayon]

SQLMap例子

小型 SQLMap 速查表: 渗透测试工具

命令 解释
[/crayon] 自动化sqlmap扫描
[/crayon] 指定目标的sqlmap scan
[/crayon] 使用联合查询技术扫描mysql后端的基于报错的注入 ,使用随机UA,导出数据库
[/crayon] 检测可能存在注入点表单
[/crayon] 导出指定数据库的user表并尝试破解哈希。
from