渗透测试工具 备忘录 -跳跃攻击-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.comWindows DNS域传送
dig axfr blah.com @ns1.blah.comLinux 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 hostsSNMP枚举
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 用户枚举

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

密码

字典

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

爆破服务

使用Hydra 爆破FTP

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

使用Hydra 爆破POP3

COMMANDDESCRIPTION
[/crayon]使用Hydra 爆破POP3

使用Hydra 爆破SMTP

COMMANDDESCRIPTION
[/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.cGCC基本用法

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

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

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

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

COMMANDDESCRIPTION
[/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:\\windowsMeterpreter上传文件到 Windows 目标
download c:\\windows\\repair\\sam /tmpMeterpreter 从 Windows 目标下载文件
execute -f c:\\windows\temp\exploit.exeMeterpreter 在目标机器上执行.exe文件——用来执行上传的exp很方便
execute -f cmd -c创建新的cmd shell通道
psMeterpreter显示进程
shellMeterpreter获取目标shell
getsystemMeterpreter尝试提权
hashdumpMeterpreter尝试导出目标机器上的哈希
portfwd add l 3389 p 3389 r targetMeterpreter端口转发
portfwd delete l 3389 p 3389 r targetMeterpreter删除端口转发

常用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_scannerMetasploit HTTP 目录扫描
use auxiliary/scanner/http/jboss_vulnscanMetasploit JBOSS 漏扫
use auxiliary/scanner/mssql/mssql_loginMetasploit MSSQL 认证扫描
use auxiliary/scanner/mysql/mysql_versionMetasploit MSSQL 版本扫描
use auxiliary/scanner/oracle/oracle_loginMetasploit Oracle 登陆模块

Metasploit Powershell 模块

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

Windows 后渗透Metasploit 模块

Windows Metasploit 提权模块。

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

ASCII表速查 渗透测试工具

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

ASCII字符
x00Null Byte 空字节
x08BS 退格
x09TAB 水平制表符
x0aLF 换行
x0dCR 回车
x1bESC
x20SPC 空格
x21!
x22
x23#
x24$
x25%
x26&
x27
x28(
x29)
x2a*
x2b+
x2c,
x2d-
x2e.
x2f/
x300
x311
x322
x333
x344
x355
x366
x377
x388
x399
x3a:
x3b;
x3c<
x3d=
x3e>
x3f?
x40@
x41A
x42B
x43C
x44D
x45E
x46F
x47G
x48H
x49I
x4aJ
x4bK
x4cL
x4dM
x4eN
x4fO
x50P
x51Q
x52R
x53S
x54T
x55U
x56V
x57W
x58X
x59Y
x5aZ
x5b[
x5c\
x5d]
x5e^
x5f_
x60
x61a
x62b
x63c
x64d
x65e
x66f
x67g
x68h
x69i
x6aj
x6bk
x6cl
x6dm
x6en
x6fo
x70p
x71q
x72r
x73s
x74t
x75u
x76v
x77w
x78x
x79y
x7az

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