[工具使用] Metasploit技术

66 0
Honkers 3 天前 来自手机 | 显示全部楼层 |阅读模式

介绍

Metasploit由著名黑客H.D.moore开发,后被Rapid7收购,继续开源。

特点:1.简单易用,可安装在Windows、Linux、Macos等不同操作系统中2.漏洞库全面3.开源免费4.模块化设计:

1.Auxiliaries(辅助信息收集模块)

用于信息收集,能够执行漏洞扫描、数据嗅探、指纹识别等

2.Exploit(漏洞利用模块)

漏洞利用指渗透测试人员利用一个或者多个系统、应用或者服务中的安全漏洞进行攻击的行为,流行的渗透攻击技术包括缓冲区溢出、web应用程序攻击以及利用配置错误等,其中包括攻击者或者测试人员针对系统中的漏洞设计的各种POC验证程序,用于破坏系统安全性的攻击代码。每个漏洞都有对应的漏洞利用程序。Metasploit有超过 1700 个漏洞利用程序。

3.Payload(攻击载荷模块)

成功在目标系统上实施漏洞利用后,通过攻击载荷模块在目标系统上运行任意命令或者执行特定代码,同时,攻击载荷模块也能在目标操作系统上执行一些简单的命令,如添加用户账号、密码等。Metasploit有超过 500个有效攻击载荷。

4.Post(后期渗透模块)

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

5.Encoders(编码工具模块)

编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统,免杀功能,以防止相关代码、命令或工具被杀毒软件、防火墙、IDS及类似的安全软件检测出来。

6.evasion:躲避模块,用来生成免杀payload

7 nops:这里主要放着调整shellcode 前置nop指令长度的工具(不理解没关系)

安装

在Windows上安装Metasploit非常简单,直接从官方下载(http://www.metasploit.com/download).安装文件进行安装即可。

在安装的时候要关闭杀毒软件或者将安装目录添加到排除项。否则的话会导致杀毒软件和metasploit冲突,导致安装失败。

在控制面版——区域和语言选项——选择英文(美国)——高级选项卡中选择英文(美国)。因为在安装的时候,会进行检测,如果属于非英文地区会导致安装失败。

如果安装有杀毒软件,会经常提示在metasploit的安装目录下检测到病毒或木马。

添加环境变量将metasploit的bin目录添加到系统变量的Path里面,安装高版本的已经自动加进去了

windows打开方式:cmd里面直接输入msfconsole

或者双击bat文件C:\metasploit-framework\bin\msfconsole.bat

警告错误warning: Win32API is deprecated after Ruby 1.9.1; use fiddle directly instead”以及无法加载“reverse_ssh.rb”模块,具体如下,但是不影响我们使用,Windows上面装metasploit-framework有点报错很正常。

linux下安装Metasploit

在一般的linux中,默认是不安装MSF的。以下是在非kali的Linux下安装MSF步骤

centos安装

使用 wget 或 curl 命令下载 Metasploit 安装程序。

  1. curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
复制代码

提供安装程序脚本执行位。

  1. chmod +x msfinstall
复制代码

然后执行安装程序在 CentOS 8/CentOS 7 上安装 Metasploit Framework。

  1. $ ./msfinstall
复制代码

 首先安装ruby环境,因为MSF是用ruby语言编写的。

sudo yum install ruby

sudo yum install -y postgresql-server postgresql

postgresql-setup initdb

sudo systemctl start postgresql

sudo systemctl enable postgresql

su #切换到root用户

su postgres

#切换到数据库用户

createuser msf -P -S -R -D #创建用户 会提示输入密码

createdb -O msf msf #创建数据库 createdb -O msf msftest

查看数据库列表\l,查看用户列表\du,切换数据库\c DatabaseName查看表\d 退出数据库\q

使用psql msf -U msf -d msf -h localhost -W登录测试,可能由于防火墙等配置无法访问iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

卸载msfyum remove metasploit-framework

/opt/metasploit-framework/embedded/framework/config,编辑数据库配置文件database.yml

改数据库名字账号密码,就是刚刚创建的账号密码

ubuntu安装

先安装一些必备包,包括curl、postgresql和postgresql-contrib

 sudo apt install curl postgresql postgresql-contrib
运行以下命令下载 Metasploit 安装程序脚本并将其另存为 msfinstall:   

$ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall     
chmod 755 msfinstall
sudo ./msfinstall
Metasploit 需要一个数据库来存储渗透测试的结果和结果,例如目标主机数据、漏洞利用、系统日志、收集的数据和其他信息。为此,我们安装了 Postgresql(在步骤 1 中)。现在,我们需要通过以下命令启动其服务:
sudo systemctl start postgresql
通过以下命令创建并初始化数据库:
msfdb init
然后它会询问您是否要初始化网络服务。如果要初始化,请键入“yes”并按Enter。否则,请键入“no”。如果您已初始化 Web 服务,系统将要求您提供 Web 服务帐户用户名和密码。您可以输入任何用户名和密码,也可以通过按Enter键接受默认输入。

要验证 Metasploit 是否已连接到数据库,请在 msfconsole 中运行以下命令:

db_status

更新:apt update command”或“msfupdate”

卸载

sudo apt remove metasploit-framework

你可能会遇到这个情况:please run msfdb as a non-root user,命令行模式下root用户登不了postgres,但是可以用 postgres用户登陆

登陆 su - postgres
进入shell 执行 psql
新建用户 CREATE USER XXX WITH PASSWORD 'XXXX';
新建数据库 CREATE DATABASE XXXXX;

vim /opt/metasploit-framework/embedded/framework/config/database.yml

或/usr/share/metasploit-framework/config/database.yml

修改一下内容:

database: msf_dev

username: msf_dev

password: msf_dev

初始化msf的db进入msfconsole,输入db_connect可以看到很多连接方式

Examples:
      db_connect user@metasploit3
      db_connect user:pass@192.168.0.2/metasploit3
      db_connect user:pass@192.168.0.2:1500/metasploit3
      db_connect -y [path/to/database.yml]

连接postgres db_connect xxx:xxxx@127.0.0.1:3000/xxx

输入 db_status 查看连接状态

使用

本实验使用kali Linux自带的metasploit,kali以前的更新方式msfupdate现在已经弃用,用apt update; apt install metasploit-framework

kali的连接pgsql就非常简单了,首先确保pgsql服务已经启动,systemctl status postgresql

然后msfinit初始化

然后直接启动msf,查看就连接上了

kali下面msf的核心模块都放在/usr/share/metasploit-framework/modules/这个目录下

exploits:/usr/share/metasploit-framework/modules/exploits目录下全是攻击时的利用代码

plugins:这个模块需要用load加载,主要提供数据库连接插件 和 各种要用到的插件。

tools:包含一些有用的脚本和零散的工具。

scripts:目录里面存放都是meterpreter利用的脚本。

db:数据放在这个目录里

data:存放使用到的文件,比如密码字典、meterpreter、passivex、vnc、dlls等工具和一些用户接口代码,msfweb和一些其他模块用到的数据文件

lib:库文件都保存在这个目录里

paylodas:三种payload
    singles:all-in-one,各种功能都有的payload,占用空间比较大
    stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
    stages:利用stager建议的连接,下载后续payload

渗透步骤

  1. search xxx #搜索某个漏洞
  2. use xxx #使用某个漏洞利用模块
  3. show options #查看配置选项
  4. set payload #配置攻击载荷
  5. exploit #执行渗透攻击
  6. set #设置选项参数
  7. session: 操作msf session会话命令
  8. session -i id: 使用该session
  9. session -l: 列出所有session id
  10. 如果需要退出删除session会话可以使用session -k 会话号,同样使用-K可以删除全部session会话
  11. sessions -v #以详细模式列出会话
  12. sessions -u #在许多平台上将shell升级到meterpreter会话
  13. set ExitOnSession false #可以在接收到session后继续监听端口,保持侦听
  14. 后台持续监听
  15. 1.msf6 exploit(multi/handler) >exploit -j -z
  16. 使用exploit -j -z 可以在后台持续监听,-j为后台任务,-z为持续监听
  17. 2.
  18. msf6 > handler -H 192.168.1.1 -P 1122 -p windows/meterpreter/reverse_tcp
  19. show options #显示可选选项
  20. auxiliary #显示所有辅助模块
  21. exploits #显示所有漏洞利用模块
  22. payloads #显示所有有效载荷
  23. targets #显示所有可用目标
  24. advanced #显示更多高级选项
  25. encoders #显示可用编码器列表
  26. unset [Module Options] #清除Module Options
  27. set/unset – 设置/禁用模块中的某个参数
  28. setg/unsetg – 设置/禁用适用于所有模块的全局参数
  29. jobs: 查看msf后台监听选项
  30. jobs -K: 删除全部监听
  31. jobs -k 监听id: 删除指定监听
  32. 其他命令: cd, pwd, ls等等就等同于终端命令大部分都可以直接使用
  33. Ctrl+z 把会话放到后台
  34. Ctrl+c 结束会话
复制代码

1.创建工作区

默认工作区是default,输入workspace查看

输入workspace -h查看帮助

workspace                         List workspaces
workspace [name]             Switch workspace

-a, --add                Add a workspace.
-d, --delete            Delete a workspace.
-D, --delete-all                    Delete all workspaces.
-h, --help                            Help banner.
-l, --list                                List workspaces.
-r, --rename    Rename a workspace.
-S, --search            Search for a workspace.
-v, --list-verbose                  List workspaces verbosely.列出详细工作区

2.使用db_import导入外部工具数据,运行db_import查看支持的文件类型

msf6 > db_import
Usage: db_import [file2...]

Filenames can be globs like *.xml, or **/*.xml which will search recursively
Currently supported file types include:
    Acunetix
    Amap Log
    Amap Log -m
    Appscan
    Burp Session XML
    Burp Issue XML
    CI
    Foundstone
    FusionVM XML
    Group Policy Preferences Credentials
    IP Address List
    IP360 ASPL
    IP360 XML v3
    Libpcap Packet Capture
    Masscan XML
    Metasploit PWDump Export
    Metasploit XML
    Metasploit Zip Export
    Microsoft Baseline Security Analyzer
    NeXpose Simple XML
    NeXpose XML Report
    Nessus NBE Report
    Nessus XML (v1)
    Nessus XML (v2)
    NetSparker XML
    Nikto XML
    Nmap XML
    OpenVAS Report
    OpenVAS XML (optional arguments -cert -dfn)
    Outpost24 XML
    Qualys Asset XML
    Qualys Scan XML
    Retina XML
    Spiceworks CSV Export
    Wapiti XML

1.导入nmap扫描结果,先完成扫描,将结果保存为XML文档

nmap -Pn -A -oX report 192.168.x.x

2.执行db_impo

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

特级红客

关注
  • 3356
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行