Metasploit渗透框架

如何使用Metasploit框架

//Metasploit Framework下文用msf代替

什么是msf

msf是一个强大的开源工具,它允许管理员去测试网络中存在的漏洞。

A program that exploits a security problem and implements its own code is usually referred to as an exploit.//理解不了,等大神翻译

对缓冲区溢出的成功攻击需要很多繁琐的工作。开发人员必须尝试偏移地址,找到包含要编码的代码的有效载荷的空间,然后在被攻击系统的内存中创建它。

但是,即使对目标系统进行了微小的更改,代码也不再有效。例如,开发人员很少会在Windows的不同版本中使用一个“通用”存储地址,在那里他可以放置自己的shell code并通过缓冲区溢出来执行它。因此,在每个平台上都会出现不同的安全漏洞。

msf框架的体系结构

下面的图片显示了msf框架体系结构的示意图。模块化设计可以根据各自的需求进行框架的扩展和更改,因为已经存在的功能可以十分方便地重用。下面简要介绍各个组件。

Ruby扩展库(REX)

Ruby扩展库是框架的基本组件,它包含各种可以由底层或其他工具直接使用的类。库提供的功能包括各种网络协议的服务端和客户端程序。

MSF-Core

框架核心提供了事件处理和会话管理功能,为处理框架提供了重要的功能。

MSF-Base

框架允许更容易地访问核心,并形成外部接口。用户界面直接访问这个库。Metasploit的插件功能值得一提,它允许通过向现有组件添加新命令来灵活地扩展框架。

模块

模块中框架函数的结构允许对程序进行清晰的处理,因为模块名称也反映在程序的文件夹结构中。

利用模块

这个模块包含用于利用漏洞的程序和脚本

载荷
这里提供了有效载荷,可以在成功地利用目标系统漏洞之后使用。有效载荷是运行在目标上的实际恶意代码。

编码器和空指令

为了使有效载荷在IDS / IPS1系统或反病毒程序下能不被发现,这些模块提供了混淆载荷的功能。

辅助模块
辅助模块为信息检索提供各种扫描程序。其中包括登录扫描器、漏洞扫描器、网络嗅探和端口扫描器。

开始使用msf

使用msfconsole命令从Linux shell启动程序。开始:

msfconsole

如果出现错误,请遵循下面的步骤

1.错误信息

git-compat-util.h:280:25: fatal error: openssl/ssl.h ...

解决:

sudo apt-get install libssl-dev

2.错误信息

 "A database appears to be already configured, skipping initialization"
I run msfconsole but then the connection error shows up:
"Failed to connect to the database: could not connect to server:
Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?
could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) 
and accepting TCP/IP connections on port 5432?"

解决:

grep "port =" /etc/postgresql/9.6/main/postgresql.conf

如果你看到端口不是5432,就改成5432,如果你的端口是5433,使用这条命令去升级

sed -i 's/\(port = \)5433/\15432/' /etc/postgresql/9.6/main/postgresql.conf

重启 postgresql 服务

service postgresql restart

重新初始化msf数据库

msfdb reinit

1.错误信息

fatal: Not a git repository (or any of the parent directories): .git

现在必须添加git存储库。别担心,这需要一段时间

git clone git://github.com/gitster/git

第二步

cd git

第三步

make

第四步

make install

第五步

git init

1 如果你输入

help show 

或者

help search

你会得到你需要的大量命令帮助

确定一个远程主机

请注意正确的用法

db_nmap -v -sV host_or_network_to_scan

这是得到存活主机的方法.

列出开放端口:

search port-scan

列出所有找到的主机

hosts

将这些主机添加到远程目标列表:

host -R

确定漏洞,使用利用模块

一旦您了解了远程主机系统使用(nmap、lynix、maltego、wp - scan等),您可以选择一个利用模块并测试它。还有一种方法可以在msfconsole中搜索各种各样的漏洞:

search type:exploit
search CVE-XXXX-XXXX
search cve:2009
search platform:aix

看一下metasploit unleashed获取更多的搜索例子

从这一点开始,需要的选项根据你正在使用的利用模块改变,但是你可以得到可用的选项列表用:

show payloads

现在你得到了大量的payload列表

在你列出目标之前,你需要选择一个利用模块,然后:

show targets
2 个赞

以下操作均在root
我想补充一下,我使用msf的正确姿势是安装完毕应先使用检查是否创建数据库

msfdb init

创建数据库

开启msfconsole之前先打开数据库

msfdb start

然后

msfconsole
1 个赞
2 个赞

apt 包管理器:

安装

# apt install metasploit-framework

卸载

# apt purge metasploit-framework

最近的包长裤的msf有一些问题,安装后显示bundler版本太低,可以的话还是去官网下载安装

中间的那句翻译:
利用安全问题并实现自己代码的程序通常被称为利用。


服务器资源由ZeptoVM赞助

Partners Wiki Discord