根据pdf,总结自己认为比较重要的,欢迎大佬指错。
1.Metasploit基础
1.1专业术语
1.1.1渗透攻击(Exploit)
由攻击者或渗透测试者利用一个系统、应用或服务中心的安全漏洞进行的攻击行为。往往会造成开发者所没有预期到的一种特殊结果。
1.1.2攻击载荷(Payload)
目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入。
1.1.3Shellcode
渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
1.1.4模块(Module)
Metasploit框架里面包含了许多软件组件,代表的就是模块,比如渗透攻击模块、辅助模块等。
1.1.5监听器(Listener)
Metasploit框架中用来等来接入网络连接的组件,比如目标主机被渗透攻击之后,通过互联网进行连接。
1.2用户接口
Metasploit为用户提供了多种接口,包含终端、命令行、图形化界面等。
1.2.1 MSF终端
目前最流行的接口,灵活且功能丰富,后续的操作都基于此。启动命令:[msfconsole]
1.2.2MSF命令行
主要用于脚本和其他命令行工具的互操作性。在明确渗透工具和参数时,使用这个将会效率翻倍。(目前好像被废弃了emmm)
1.2.3Armitage
一个界面交互系统,不比命令那么酣畅淋漓,简单介绍下(以后补)。
#启动程序
armitage
1.3功能程序
1.3.1MSF攻击载荷生成器
简单就是把shellcode加入到各种文件中,js、html、py等等。
1.3.2 MSF编码器
简单来说就是加壳,给shellcode加点料,让别人(杀毒软件)看不懂。
1.3.3Nasm Shell
目前的理解就是把指令操作转化成汇编的工具。
2.情报收集
安全专家们都说是最重要的环节,用尽手段收集信息当然前提不能犯罪。比如渗透网站,就在网站的界面来回点,google该网站所属公司等碎片化信息,要想获取root权限,这些步骤必不可少。
2.1被动信息收集
不直接接触目标的情况下挖掘目标信息。比如接触运维人员,了解服务器的型号和系统等,也可以用whois工具在公开渠道获取情报。
2.1.1 whois查询
简单查询了下某个域名,发现这些游泳信息:①域名服务器:grs-whois.hichina.com(阿里云)②注册地址www.net.cn(阿里云)③更新时间,创建时间,创建者,注册商IANA编号④DNS服务器就是Name Server(ps:往往dns服务器部署在公司内部,解析域名和ip,所以看到很多对应关系)
2.1.2 Netcraft
这个网站是在线的直接搜索即可https://sitereport.netcraft.com/
这里查到了ipv4的地址信息,我们直接whois查询ip地址,获取了一些信息(emmm好像没啥用)。
2.1.3 NSLookup
获取服务器附加信息的工具。有比较多的命令行,这里简单介绍几个。
A:指的是用来指定主机名或域名对应的IPv4记录
AAAA:指的是用来指定主机名或域名对应的IPv6记录
MX:邮件交换记录,它指向一个邮件服务器,用于电子邮件系统
NS:用来指定该域名由那个DNS服务器来进行解析
SOA:起始授权机构记录,SOA记录说明了在众多NS记录里那一台才是主要的服务器
CNAME:别名记录,也称为规范名字。这种记录允许将多个名字映射到同一台计算机
TXT:一般指为某个主机名或域名设置的说明
Non-authoritative answer:表示未证实回答,说明是缓存读来的,不是向服务商请求获得的。
2.2主动信息收集
2.2.1 Namp端口扫描
#ping扫描,主机存活就扫描
nmap -sP <域名或ip>
#Tcp扫描,与扫描端口建立TCP连接(缺点会在目标主机留下日志溯源)
nmap -sT <域名或ip>
#半开扫描,SYN扫描需要要root(只建立第一次握手,失败就放弃一般不会被留痕)
nmap -sS <ip地址>
#路由追踪扫描,了解网络通行情况,各个节点花费的时间
nmap -traceroute <域名或ip>
#扫描网段下的ip(会根据地址搜索当前网段)
nmap ip地址/24
#扫描一个目标列表
nmap -iL [ip地址列表文件]
#非ping扫描不执行主机发现,可以跳过防火墙(-PA:ACK方式,-PS:SYN方式,-PU:UDP方式,-PY:SCTP INIT)
nmap -Pn <域名或ip>
#脚本扫描
nmap --script=[指令] [ip]
auth:绕过鉴权扫描
broadcast:在局域网探查更多服务开启情况
brute:对常见http/smtp提供暴力破解
dos:用于拒绝服务攻击
vuln:用于检查目标主机是否有常见漏洞
version:负责增强服务与版本扫描的功能的脚本
malware:探测目标机是否感染了病毒,开启后门等信息
fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞
#附加参数
-p:指定扫描端口
-A:全面系统检测,花费时间长
-vv:对扫描结果详细输出
-sV:探测打开对应的服务版本信息
-O:操作系统检测
-n:不进行域名解析
2.2.2 使用数据库
在实际的渗透场景中,可能需要多个主机,多个端口,所以比较好的方式就是将收集到的信息存入数据库统一管理。这里使用PostrgeSQL,因为这个是Metasploit默认的。
2.2.2.1 连接数据库
#启动数据库服务
service postgresql start
#初始化数据库
msfdb init
#启动msfconsole
msfconsole
#检测连接状态
db_status
#手动连接数据库
db_connect msf:admin@127.0.0.1/msf
#数据库配置文件
vi /usr/share/metasploit-framework/config/database.yml
连接成功
2.2.2.2 将nmap输出结果导入Metasploit
#扫描虚拟机网段(oX表示输出位xml格式,Subnet1就是文件名)
nmap -Pn -sS -A -oX Subnet1 192.168.48.0/24
#连接数据库
db_connect msf:admin@127.0.0.1/msf
#导入数据
db_import Subnet1
#显示数据库主机信息
db_hosts -C address
2.2.2.3 TCP空闲扫描
高级扫描,冒充内网中另一台电脑的ip地址对目标主机进行探测。递增ip帧标志理解成一个数值,如果局域网内的某台主机是空闲的,那么这个数值将可以预测,高级扫描就是找到这样一台主机来进行伪装扫描。
#使用scanner/ip/ipidseq框架
use auxiliary/scanner/ip/ipidseq
#参数说明
show options
该列表展示了执行扫描所需要的参数
RHOSTS:被扫描的目标,可以使用ip地址段(192.168.1.110-192.168.1.212)、CIDR地址块(192.168.1.48.0/24)、使用逗号分隔的多个CIDR地址块(192.168.1.0/24,192.168.5.0/24)、以及每行包含一个IP地址的IP列表文本文件
THREAD:所有扫描模块的默认线程数为1,增加参数可以提高扫描速度,一般windows平台不超过16,unix平台不超过128。
#指定cidr地址块
set RHOSTS 192.168.48.0/24
#线程数设置
set THREADS 50
这里捕获到两台空闲主机,133是我的xp,2就不知道是啥了,这里打算用空闲主机(192.168.1.2)对目标主机(192.168.1.133)进行扫描。这样我们就不需要通过自身ip发送任何数据包,就可以获取目标主机的端口信息。
nmap -PN -sI 192.168.1.2 192.168.1.133
2.2.2.4 在MSF客户端运行nmap
连接数据库后采用db_nmap,不仅可以扫描,还能把扫描到的数据存库。我这里只演示单主机,当然可以攻击多台。
db_nmap -sS -A 192.168.48.133
2.2.3 Metasploit进行端口扫描
metasploit不仅可以用第三方扫描器,还内建了一些扫描端口工具,搭配框架使用相得益彰。接下来会展示跳板攻击(内建工具和已攻陷主机,获取内网的访问通道并进行攻击)
SYN端口扫描器对单主机进行简单扫描
#搜索端口扫描模块
search portscan
#使用syn扫描
use auxiliary/scanner/portscan/syn
#设置目标ip
set rhosts 192.168.48.133
#设置线程数
set threads 50
#启动攻击
run
这个扫描有点慢,这里可以看到目前135端口是开放的。
2.3针对性扫描
如果有捷径肯定是要走的,没什么要羞愧的,所以针对性扫描是很有必要的,假如市场告诉你大部分机子都存在一个漏洞,你肯定优先扫描,比如MS08-067(著名的远程溢出漏洞,影响范文是Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,甚至还包括测试阶段的Windows 7 Pro-Beta)
2.3.1 服务器消息块协议扫描
SMB协议是微软和英特尔1987年制定的通信协议,大多运行在Windows系统上。Metasploit可以利用它的smb_version模块来遍历一个网络,并获取Windows系统的版本号。
#搜索端口扫描模块
search smb_version
#使用smb_version
use auxiliary/scanner/smb/smb_version
#设置目标ip
set rhosts 192.168.48.133
#启动
run
这里可以看到我靶机的版本xp sp3、中文、用户名等信息。
2.3.2 搜寻配置不当的Microsoft SQL Server(MS SQL)
这个数据库软件,很多系统因为装了Microsoft Visual Studio而被安装,因为SQL Server是先决条件。SQL Server一般不被使用和配置所以被忽视了,但是其存在安全隐患。
MS SQL安装后,默认监听在TCP端口1443或者使用随机的动态TCP端口。如果是随机的动态端口,只要简单的对1434(MS SQL开放的)这个udp端口进行查询,就能知道随机的tcp端口号,metasploit有一个mssql_ping模块可以帮我们完成。
#使用mssql_ping
use auxiliary/scanner/mssql/mssql_ping
#设置目标网段
set rhosts 192.168.48.0/24
#设置线程数(255提高扫描速度)
set threads 255
#启动
run
这里我没有安装,直接用书中的截图了。
2.3.3 SSH服务器扫描
识别ssh安全协议的版本,ssh很多版本中被发现存在漏洞,这是一种安全协议,这里的安全仅代表数据安全。
#使用ssh_version
use scanner/ssh/ssh_version
#设置线程数
set threads 50
#设置目标
set rhosts 192.168.48.0/24
#查看配置
show optitons
#启动扫描
run
我的虚拟机中有一台windows,一台kali,一台centos7。这里132是kali自身(连自己都不放过),128是centos7。
2.3.4 FTP扫描
FTP是一个复制且缺乏安全性的应用侧协议,其实就是个文件传输协议,在很多机房中采用光闸进行数据摆渡很多依靠的都是ftp协议。这里可以用ftp_version对xp虚拟机进行扫描。
准备:这里我没有这个服务,就只能连接iso进行安装,在添加程序里先把iis勾上,再点详细信息勾上ftp,安装完后重启。然后【控制面板-管理工具-internet信息服务】里面找到ftp
use scanner/ftp/ftp_version
set threads 50
set rhosts 192.168.48.133
run
成功识别到ftp服务器,接下来使用scanner/ftp/anonymous模块检查下是否允许匿名登陆。
use scanner/ftp/anonymous
set threads 50
set rhosts 192.168.48.133
run
结果可以看到允许匿名登陆,但是只有读的权限,没有写入权限。
2.3.5 简单网管协议扫描扫描
SNMP称为简单网管协议,设计之初是用来报告带宽利用率、冲突率以及其他一些信息。然而一些操作系统中也包含SNMP服务器软件,主要用来提供类似cpu利用率、空闲内存及其他系统信息。
书中介绍可访问的snmp服务器可以造成路由器的配置被下载,RO/RW的团体字符串将对设备信息的提取发挥重要作用。
我这里先部署一个snmp服务,跟ftp一样找到简单网管协议的服务,然后装完开启。
use scanner/snmp/snmp_enum
set rhosts 192.168.48.133
set threads 50
run
扫描完之后获取了非常庞大的信息,主机名、描述、端口开放情况、服务情况等。
3.漏洞扫描
这一章节主要就是介绍市面上常见的一些漏洞扫描工具,书比较旧了工具应该还不算旧。这里我以工具会单位介绍使用。
3.1NeXPose
这个工具通过对网络进行扫描,然后找到正在运行的设备,最终识别操作系统和应用程序上的安全漏洞,生成各种类型的报告。
3.1.1安装
可以直接在windows上安装,建议去官网下载,因为最后还是要用到官网的授权密钥。我这里蛮提供个下载链接 下载传送门
然后双击打开输入之前发到邮箱的密钥即可使用
注意事项:
1.安装的时候要注意,记得输入的账号和密码,后续登陆软件要用。
2.需要有个企业邮箱,要不然官网密钥没地方发,去zoho注册一个就好
3.去官网登陆网站注册一步步往下
3.1.2使用
先设置个中文,右上角点击账户选择用户偏好
创建扫描站点
这里输入要扫描的设备段或者单台ip,右侧的排除主要用于对网段扫描时,可能造成服务的正常运行(比如打印机,可能会自己抽风),就把这些设备排除在外
认证就是指你被授权扫描时,可以通过对方提供的部分服务的账户和密码在此处进行输入。
模版一般用默认的就好
最后右上角直接保存扫描,然后就开始扫描了
扫描还是要耐心等待的,扫描完成点击资产就可以看到扫描结果
资产评分,我这里是自己xp sp3 的靶机
这是扫描出来的漏洞,有Metasploit 标记的就说明可以被msf利用,点开有链接点进去甚至教你怎么用攻击载荷,因为这两个软件是同一款公司研发的所以十分友好。
这里算是对漏洞的描述。
3.1.2.1生成报告
还挺有模有样的
3.1.2.1导入
导入xml数据异常,以后再填坑。
3.1.3总结
这软件扫描动静非常大,开启了目标就会警觉所以适合授权扫描,感觉适合做等保。
3.2Nessus
说是当前世界上使用最广泛的扫描漏洞工具,安装很简单就是直接下载无脑下一步就好了(我挂了科学上网,好像被墙了) ,这个软件跟nexpose一样要激活码,提前自取哈。
下载传送门
激活码获取选最右边的会发到邮箱
3.2.1安装
又踩坑了,没有科学上网插件会一直编译非常慢,记得科学上网开起来。
3.2.2使用
之后就是输入激活码开始部署了,如果之前没有申请,在下一个界面也可以申请,申请了就直接跳过。
自己选一个要扫描的模块,这是针对性扫描,有的扫描需要输入目标主机的凭证,跟nexpose类似。
3.2.3总结
这软件相比于nexpose感觉差不多,可能就是专业一点受众大一点,做安服的或许会用到这里就不深入研究了。
3.3专用漏洞扫描器
本书的这个章节后续的还是介绍漏洞扫描工具
3.3.1验证SMB登陆
这就是个文件共享,比如windows系统是可以局域网共享文件的,还有nas系统群辉也有很多共享服务,我们可以针对进行扫描。
use auxiliary/scanner/smb/smb_login
set RHOSTS 192.168.48.133
set SMBUSER Administrator
set SMBPASS s3cr3t
run
这里直接引用书中的案例,懒得搭建环境,说是很多公司的系统都是镜像克隆安装的,所以拿到一个账号密码每个电脑都能smb访问了。
3.3.2VNC空口令
这是一个基于linux和unix的远程开源控制软件文章来源:https://www.toymoban.com/news/detail-400686.html
use auxiliary/scanner/vnc/vnc_none_auth
set RHOSTS 192.168.48.128
4.子标题
正文文章来源地址https://www.toymoban.com/news/detail-400686.html
在这里插入代码片
番外
#更新软件列表
apt-get update
#更新软件
apt-get upgrade
#更新内核
apt-get dist-upgrade
到了这里,关于白帽子学习——Metasploit渗透测试指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!