Metasploit 介绍及安装(MSF)

Metasploit是The Metasploit Framework的简称,也可以叫做MSF(美少妇?)! MSF高度模块化即框架由多个module组成,是全球最受欢迎的工具。

Metasploit Framework(MSF)远远不仅仅是一个漏洞的集合。这是您可以建立和利用您的自定义需求的基础架构。这使您可以专注于您独特的环境,而不必重新发明轮子。

官网地址:Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit

项目地址:https://github.com/rapid7/metasploit-framework/

》》》MSF模块框架介绍《《《

初识Metasploit

1.1:模块介绍

模块名称

模块作用

Auxiliary

负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块

Exploits

利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)

Payloads

成功exploit之后,真正在目标系统执行的代码或指令。

payload 分为 3 种类型 ,分别是 singles、stages 和 stagers。shellcode 是特殊的 payload,用于拿shell

  • singles:all-in-one。完整的 payload,这些 payload 都是一体化的,不需要依赖外部的库和包。
  • stagers:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
  • stages:利用 stagers 建立的连接下载后续 payload

Post

后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作

Encoders

对payload进行加密,躲避AntiVirus检查的模块

Nops

提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。

evasion

混淆模块 , 自带windows denfender的混淆 , 效果一般 早不免杀了 , 总比没有好 自己配合其他手段免杀

注意:MSF默认存放模块目录如下...目录下的6个子文件夹对上面6个模块一一对应....

# MSF程序文件
/usr/share/metasploit-framework/

# MSF模块文件
/usr/share/metasploit-framework/modules/

# MSF数据文件
/usr/share/metasploit-framework/data
存放 meterpreter、passivex、vnc、dlls等工具和一些用户接口代码,msfweb和一些其他模块用到的数据文件

# MSF插件目录
/usr/share/metasploit-framework/plugins
这个模块需要使用 load 加载,提供数据库连接插件,和各种要用到的插件。即插件目录

# MSF脚本目录
/usr/share/metasploit-framework/scripts
这个目录下的文件都是meterpreter利用的脚本

1.2:MSF接口

接口命令

接口介绍

Msfconsole

命令行控制台用户界面

Armitage

基于Msf的可视化高级后渗透工具

Web View

MSF网页界面,存在MAC OS中...

msf5版本以前启动 Metasploit 框架需要运行 Postgresql 数据库,msf5以后只要运行 Metasploit 时都会自动启动 Postgresql 数据库。如果数据库没启动的话,可以手动开启,下面时管理数据库的一些命令。
root@kali:~# netstat -pantu | grep 5432         #查看数据库是否被启动                 
root@kali:~# systemctl start postgresql         #手动启动数据库                      
root@kali:~# systemctl enable postgresql        #设置成开机启动数据库

┌──(xhonger㉿xhonger)-[~]
└─$ msfconsole -v     #查看MSF的版本
Framework Version: 6.4.9-dev 
┌──(xhonger㉿xhonger)-[~]
└─$ msfconsole -q    # -q是指quite , 静默输出 , 不会打印banner信息
msf6 >   

1.3:MSF更新

步骤一:编辑Kali的软件源文件并使用apt管理更新源!

# 更换kali自带的源,改为国内的源,这样下载比较快
# 编辑源文件
vim  /etc/apt/sources.list

# 添加中科大源
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

步骤二:更新软件源并更新Metasploit!

# 更新软件包与软件包
apt-get update && apt-get upgreade 

# 更新msf框架
apt-get  install metasploit-framework
apt install metasploit-framework
# 历史版本
kali 2019--> 5.*   
kali 2020--> 6.*

步骤三:如果更新安装完后出现以下问题就可以通过以下方式解决!

root@kaliew:~# msfconsole 
Could not find reline-0.1.5 in any of the sources
Run   bundle install  to install missing gems.
# 解决办法
root@kali:~# sudo gem install bundler
root@kali:~# bundle update celluloid

1.4:MSFDB管理

》》》基础操作《《《

msfdb init     # 启动并初始化数据库
msfdb reinit   # 删除并重新初始化数据库
msfdb delete   # 删除数据库并停止使用它
msfdb start    # 启动数据库
msfdb stop     # 停止数据库
msfdb status   # 检查服务状态
msfdb run      # 启动数据库并运行msfconsole

》》》扩展操作《《《

操作命令

命令解释

db_status

  • 查看MSF有没有连接上后台数据库。如果没有连上数据库,在终端输入msfdb start后再启动MSF。没有连接上数据库MSF也是可以使用的,只是连接上了的话,我们渗透过程中获取的一些信息可以保存下来,比如目标机器的账号密码信息等。

db_rebuild_cache

  • 这个命令将所有模块信息缓存到数据库中,通过数据库检索效率就高很多了。

db_disconnect

  • 断开数据库连接。

db_connect

  • msf默认连上postgresql的msf数据库。可以用db_connect连接我们指定的数据库。如果要使用配置文件进行连接,默认的数据库配置文件为/usr/share/metasploit-framework/config/database.yml,可以参考这个文件进行编写。

db_nmap

  • 集成在msf中的namp扫描命令。不同的是db_nmap扫描的结果会自动保存到数据库中。
  • 可以输入hosts查看扫描到的主机信息
  • 如果数据多,可以用 hosts IP 进行过滤;hosts -u 查看up状态的机器;使用 hosts -c 列名[,列名] 指定要看的列;使用 hosts -S 进行搜索,比如hosts -S windows。
  • 输入services可以查看主机开放的端口情况

creds

  • 查看扫描出来的密码信息

vulns

  • 查看扫描出来的漏洞信息

loot

  • 有些账号密码我们可能没有获取到明文信息,可是经过加密的hash值,可以用这个显示

hosts、services

  • 查询扫描到的数据

db_export/db_import

  • 数据库的导入和导出
  • db_export -f /root/msfbak.xml
  • nmap导出的也可以导入到msf中
  • nmap -A 192.168.1.113 -oX nmap.xml => db_import -f /root/nmap.xml

1.5:MSF基础操作

控制台命令支持TAB补全,支持外部命令的执行(系统命令)

操作命令

命令解释

help或?

  • 显示msfconsole可以使用的命令。help <command>,显示某一命令的用法。

banner

  • 查看当前msf的版本信息和模块数量

connect

  • 可以理解成MSF中的nc命令,可以使用connect -h查看详细用法。
  • connect 192.168.111.131 4444 类似nc的小工具(这里是正向连接)

show

  • 用show命令查看msf提供的资源。在根目录下执行的话,由于有些模块资源比较多,需要执行show命令要较长的时间
  • show exploits:查看可以使用的exploit
  • 除了exploits,还支持all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options。有些选项需要用use使用一个模块后才能使用,比如给show targets。

search

  • 搜索模块
  • 简单搜索:seach ms17_010
  • 多条件搜索缩小范围:search name:mysql type:exploit platform:linux

info

  • 查看模块的信息
  • info <module name>
  • 如果用use使用了一个模块,直接输入info即可查看

use

  • search找到模块后,用use使用模块
  • use exploit/windows/smb/ms08_067_netapi
  • 用use使用一个模块后,可以使用 show options查看我们需要配置的选项、使用show targets选择目标主机系统、使用show payloads选择payload、使用show advanced查看高级参数、使用show evasion查看用来做混淆、逃避的模块。

set/setg

  • 设置参数,比如要渗透的主机IP、payload等。我们可以用show missing查看没有设置的参数
  • setg是设置全局变量,避免每个模块都要输入相同的参数

unset/unsetg

  • 取消设置参数。unsetg是取消设置的全局变量

save

  • 设置的参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。

check

  • 检查目标是否真的存在这个漏洞,大部分模块没有check功能

back

  • 回到msfconsole根目录

run或exploit

  • 开始使用模块
  • exploit -j:以后台的方式运行

sessions

  • 查看当前已经建立的sessions,说明已经拿到了shell
  • sessions -i id 可以进入一个session交互

load/unload

  • 调用外部的扫描命令,比如openvas

loadpath

  • 加载自己的模块 --->autopwn

route

  • 添加一条路由。比如发往某个子网的流量都通过攻陷的机器发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值