白帽子学习——Metasploit渗透测试指南

根据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的远程开源控制软件

use auxiliary/scanner/vnc/vnc_none_auth
set RHOSTS 192.168.48.128

4.子标题

正文

在这里插入代码片

番外

#更新软件列表
apt-get update

#更新软件
apt-get upgrade 

#更新内核
apt-get dist-upgrade
  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值