从《metasploit魔鬼训练营》第三章整理
外围信息搜索
外围信息搜索也叫“公开渠道信息收集”,可以google(OSINT)
通过DNS和IP地址挖掘目标网络信息
- whois域名注册信息查询
可以通过whois查询得到域名所有者、服务商、管理员邮件地址、域名注册日期和过期日期等等
得到的Name Server也可以用于后面的nslookup和dig
- nslookup和dig域名查询
nslookup查询(得到的一般是非权威应答)
type=A(对IP地址进行解析)
type=MX(查找邮件转发服务器)
type=CNAME(别名记录)
type=TXT(某条记录的说明)
type=AAAA(指向IPv6的地址记录)
type=NS(域名服务器记录)
dig查询(权威记录)
用法:dig@<DNS服务器><待查询域名>
- IP2Location
通常把从IP地址到地理位置的方法叫做IP2Location
例如国外的maxmind
国内的QQ纯真数据库
- netcraft资料库
netcraft的searchdns服务可以查询子域名
链接–>(https://searchdns.netcraft.com)
查询65.61.137.117的结果:
还可以使用sitereport查看更详细的信息,比如地理位置,服务器OS,地址等等
链接–>(https://sitereport.netcraft.com/)
- IP2Domain反查域名
链接–>(http://www.ip-address.com)
不过现在被封了QWQ
链接–>(http://www.7c.com)
系统维护…
可以用webscan来反查
- traceroute进行路由侦查
用搜索引擎进行信息收集
- Google Hacking技术
推荐Johnny Long的《Google Hacking for Penertration》
知名数据库GHDB
- 搜索目录结构
有时候管理员不谨慎,将网站的目录展示了出来
可以在Google搜索parent directory site:testfire.net
也可以借助Metasploit的brute_dirs、dir_listing、dir_scanner等辅助模块来完成暴力猜解
- 检索特定类型的文件
google hacking语法:site:testfire.net filetype:xls
- 搜索网站中的E-mail地址
metasploit中就提供了一个aux模块用于搜索email,全称是 search_email-collector
- 搜索存在SQL注入点的页面
google hacking: site:testfire.net inurl:login
搜索到testfire.net的注入点
主机探测与端口扫描
活跃主机扫描
- ICMP Ping命令
1 | ping -c 5 www.dvssc.com |
- Metasploit的主机发现模块
这些模块位于modules/auxiliary/scanner/discovery中,主要有以下几个,arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6ghbor_router_advertisement、udp_probe、udp_sweep
两个常用模块主要的功能为:
- arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机
- udp_sweep通过发送UDP数据包探查指定主机是否活跃,并发现主机上的UDP服务
- 使用nmap进行探测
用法 nmap<扫描选项><扫描目标>
常用选项:
-PU 对开放的UDP端口进行探测以确定存活的主机
-O 对操作系统进行识别
-sV 服务探测
-sS 用SYN扫描
-Pn 不对主机使用Ping命令,假设主机存货
-n 不对主机使用dns解析,用于同一局域网的主机,节省时间
-oX 将扫描结果导出为xml格式,可用于导入metasploit数据库
-v 显示扫描步骤,等的时候有东西看
-p- 扫描所有端口
-p 扫描指定端口
-T4 加快扫描速度,一般用于主机发现
-A 使用服务探测、系统探测、脚本探测和路由跟踪
端口扫描与服务类型探测
- Metasploit中的端口扫描器
输入search portscan可以找到端口扫描器
ack:通过ACK扫描读防火墙上没有被屏蔽的端口进行探测
ftpbounce:通过FTP bounce攻击对TCP服务进行枚举
syn:使用TCP SYN标志的方式来判断端口是否开放,准确,但速度慢
xmas:更隐秘的扫描方式,发送FIN、PSH和URG标志
- nmap用于扫描端口的参数
-sT:TCP connect扫描,类似上面的tcp扫描模块
-sS:TCP SYN扫描,类似上面的syn扫描模块
-sF/-sX/-sN:这些扫描通过发送一些特殊的标志位以避开设备或软件的检测
-sP:通过ping命令发送数据包
-sU:探测主机上面的UDP端口
-sA:TCP ACK扫描,类似上面的ack扫描模块
服务器扫描与查点
确定开放端口之后,对相应端口上所运行服务的信息进行更深入的挖掘,通常称为服务查点
在Metasploit的Scanner模块中,用于服务扫描和查点的工具通常以[service_name]_version和[service_name]_login命名
- [service_name]_version可用于遍历网络中包含特定服务的主机,并且进一步确定服务的版本
- [service_name]_login可用于对特定的服务进行口令探测
例如:http_version可以用于查找网络中的Web服务器,http_login可以用于对需要身份验证的http协议进行口令探测
常见网络服务扫描
- Telnet服务扫描
虽然现在已经用更安全的SSH协议替代它,但是由于升级操作系统花费大等原因,部分系统还支持Telnet服务
可以使用telnet_version模块扫描
- SSH服务扫描
SSH采用了安全的加密信息传输方式
可以用ssh_version模块扫描
- Oracle数据库服务扫描
用tnslsnr_version模块扫描
Oracle SQL使用1521端口
- 开放代理探测与利用
Metasploit提供了open_proxy模块帮助判断代理服务器是否真实可用
使用代理可以防止攻击发起源被跟踪到
口令猜测与嗅探
- SSH服务口令猜测
使用Metasploit中的ssh_login模块
可以输入USERNAME,PASSWORD,也可以载入USER_FILE、PASS_FILE文件进行组合猜测
- psnuffle口令嗅探
psnuffle是Metasploit中唯一用于口令嗅探的工具,可以截获常见协议的身份认证过程,并将用户名和口令信息记录下来
最好的进入对方网络的初始访问点之后就开始保持嗅探器的运行,以增加截获口令的可能性
网络漏洞扫描
概念:
- 黑盒扫描:一般是通过远程识别服务的类型和版本,对服务是否存在漏洞进行判定。
- 白盒扫描:在具有主机操作权限的情况下进行漏洞扫描,比如说Microsoft的系统补丁
Tips:不要把漏洞扫描工具当做“hacker tools”,因为它会向目标发送大量的数据包,可能会导致目标系统拒绝服务或者被扫描数据包阻塞,比如说AWVS、APPScan
- OpenVAS漏洞扫描器
使用教程上网搜
- 查找特定服务的漏洞
使用漏洞扫描器存在几个不可避免的问题:
- 扫描过程过于粗暴
- 在一些特殊环境具有“杀伤性”
- 扫描结果存在漏报现象
解决方法:
使用Nmap的脚本扫描:
链接–>nmap脚本
渗透测试信息数据库与共享
Metasploit提供了渗透测试信息数据库以及数据导入接口
- 提供了db_nmap的命令,能够将扫描结果直接存入数据库中
- 提供了db_import的命令,能够导入20多种扫描器的扫描结果
- 提供了MSF RPC服务共享数据,能够和其他小组成员共享Metasploit数据
nmap与渗透测试数据库
1 | msf5 > db_nmap -sS -sV -Pn -v -n -p- 192.168.1.20 |
也可以用下面这个先存为demon.xml格式再转存进metasploit的workspace
1 | root@kali:~# nmap -sS -sV -Pn -v -n -p- -oX demon.xml 192.168.1.20 |
OpenVAS扫描结果导入metasploit
这部分信息需要时上网查
共享渗透渗透测试信息数据库
- 让多台Metasploit计算机连接同一个网络数据库
- 使用MSF RPC服务
使用网络数据库共享
使用Metasploit RPC服务共享
-U参数是指定用户名 —P参数是指定密码 -a参数是将RPC服务绑定到所有的网络地址
然后在另一台安装了同版本的metasploit的机器上输入armitage并输入账号密码就可以了
MSF不仅可以放共享渗透测试信息数据,同样还能够共享所有的Metasploit模块和payload