1分钟教你学会Metasploit 安装与部署

李志宽
• 阅读 1324

前言

Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。(来自百度百科)

总之是一款非常优秀的开源渗透测试框架。

安装Metasploit

本文只讨论在Linux系统下的安装, 包括Ubuntu、Centos、Deepin等, 读者可以直接安装Kali操作系统, 上面集成了许多工具, 就不用一个个去安装了。

安装方式两种:

1. 一键安装

这也是官方推荐的安装方法, 基本上一步到位:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
  chmod 755 msfinstall && \
  ./msfinstall

假如下载速度非常慢,也可以尝试下面的方法:

chmod a+x metasploit-latest-linux-installer.run
./metasploit-latest-linux-installer.run

也可以(举例Ubuntu下):

vim /etc/apt/sources.list
  添加这两行
  deb http://http.kali.org/kali kali-rolling main contrib non-free
  deb-src http://http.kali.org/kali kali-rolling main contrib non-free
sudo apt-get update
sudo apt-get install metasploit-framework

2. 源码编译安装

先安装依赖:

sudo apt install -y autoconf build-essential libpcap-dev libpq-dev zlib1g-dev libsqlite3-dev

接着从github上clone项目到本地目录:

git clone git@github.com:rapid7/metasploit-framework.git

由于msf是基于Ruby开发的, 所以还需要安装Ruby和Gem。

Ruby 是一种语言,是某些软件包代码的执行环境。而Gem是管理这些基于Ruby程序的程序。

进入刚刚clone下来的项目中, 并查看Ruby版本:

cd metasploit-framework-5.0.74/

cat .ruby-version 

我的系统自带了Ruby和Gem, 安装过程就不再赘述了。

紧接着, 安装 Bundler 来打包安装源代码:

Bundler 能够跟踪并安装所需的特定版本的 gem,以此来为 Ruby 项目提供一致的运行环境。

Bundler 是 Ruby 依赖管理的一根救命稻草,它可以保证你所要依赖的 gem 如你所愿地出现 在开发、测试和生产环境中。 利用 Bundler 启动项目简单到只用一条命令:bundle install。

安装Bundle:

language
  sudo gem install bunlder

sudo apt-get install bundler  (非必须)

然后在源代码目录下执行即可: (之后是需要一个漫长的安装时间)

  bundle install

bundle命令需要有Gemfile来引导执行, 可以在项目目录下看到Gemfile文件。

1分钟教你学会Metasploit 安装与部署

1分钟教你学会Metasploit 安装与部署

过程中遇到的问题

说一下我这里遇到的坑, 在执行bundle install命令的时候, 报出了如下错误:

1分钟教你学会Metasploit 安装与部署

关键错误如下:

 Traceback (most recent call last):
    1: from /usr/local/bin/bundle:23:in `<main>'
/usr/local/bin/bundle:23:in `load': cannot load such file -- /usr/share/rubygems-integration/all/gems/bundler-1.17.3/exe/bundle (LoadError)

看起来是bundler文件损坏导致的不能正确执行,

Google了一下得到两种解决方法:

  • Gem版本过旧

1分钟教你学会Metasploit 安装与部署

于是升级了一下, 还是出现同样的错误。

  • bundle损坏

用命令: gem uninstall bundle 来卸载并重新安装bundle。

发现还是没有解决, 可能是bundle没有复原成功, 更新后的gem未与bundle完成整合。

于是再用:

gem update --system

gem pristine bundle

即可完成复原bundle为初始状态, 这样就可以对应上gem update后的system了。

安装postgresql

安装postgresql数据库:

安装数据库的时候会自动创建系统用户postgres,数据库用户postgres,数据库postgres

然后再启动它


  sudo systemctl start postgresql

切换到postgres用户(需要root), 登陆postgresql数据库,首次登陆没有密码

 sudo su - postgres  # 切换用户

psql -h localhost -p 5432 -U postgres -W

修改数据库用户postgres的密码为postgres:

password postgres

然后创建一个metasploit专用的数据库msf:

CREATE DATABASE msf;  # 创建数据库msf

\l;  # 查看所有数据库

1分钟教你学会Metasploit 安装与部署)1分钟教你学会Metasploit 安装与部署

配置及启动

然后退出postgres用户, 到metasploit目录下配置文件 database.yml:

  adapter: postgresql
  database: msf 
  username: postgres
  password: postgres
  host: localhost
  port: 5432
  pool: 200
  timeout: 5

然后启动metasploit:

msfconsole

1分钟教你学会Metasploit 安装与部署

【配套工具&源码】

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
李志宽 李志宽
2年前
1分钟教你学会Metasploit 安装与部署
前言Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。(来自百度百科)总之是一款非常优秀的开源渗透测试框架。安装Metasploit本文只讨论在Linux系统下的安装,包括Ubuntu、Centos、Deepin等,读者可以直接安装Kali操作系统,上面
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
5个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43