深度计划|第二系列更新的是渗透测试平台metasploit,内容是原创但是所有新手应该学习的方法与过程都可以在网上寻找的到。所以本系列会添加原创可能会被大家认为复制粘贴。本文是以深度计划为牵引进行撰写的文字基础教程,面向人群是新手。更新内容偏向基础。如果大家觉得写的不错就点个赞!
开始之前我发布了关于黑客必学的Linux基础技能知识“技能所指(常用命令)”。接下来要进行入门阶段接触渗透测试平台Metasploit 。
注释:Metasploit 详细资料可以去百度寻找。
零:为什么要学习Metasploit?
不得不说Metasploit 目前是世界领先的黑客框架。它在某种程度上被几乎每个黑客/渗透者使用。因此,如果您想进入网络安全/渗透测试行业并有所成就,您就必须要需要熟悉它。 Metasploit可用于web渗透 pc渗透 安卓渗透
一:什么是 Metasploit?Metasploit 是用于攻击性安全或渗透测试的标准化框架。在 Metasploit 之前,漏洞利用和 shellcode 将由各种开发人员以各种语言为各种系统开发。渗透测试人员必须依靠开发人员的工作性质,即它没有充满恶意代码,并了解开发人员打算如何利用漏洞/shellcode/工具工作。借助 Metasploit,渗透测试人员拥有一个标准化的框架,可以在这些工具的工作方式相似的地方工作,并且所有工具都使用相同的语言编写,从而使事情变得更加简单。
最初由 HD Moore 作为开源项目开发,现在归安全公司 Rapid7 所有(Rapid7 还拥有漏洞扫描程序 Nexpose)。尽管最初是作为一个开源项目开发的,Rapid7 现在已经开发了 Metasploit 的 Pro 版本,免费版的在 开源社区版仍然可供我们其他人使用,而无需花费数万美元购买 Pro 版(如果您是专业的测试人员,使用 Pro 版可以提高效率和节省时间)我目前使用就是Pro版,并且效率得到很大的提升。
最初的 Metasploit 是用 Python 编写的,然后移植到 Ruby。这意味着所有模块都必须编写或移植到 Ruby(Python 是最常见的漏洞利用脚本语言)。现在,随着 Metasploit 6 的开发和发布,Metasploit 现在支持用 Python 或 GO 编写的模块。
二:Metasploit 接口Metasploit 有多个接口,包括;
- msfconsole
- msfcli
- Armitage
- msfweb
使用 Metasploit 最常见的方法是通过 Metasploit 自己的交互式 shell,msfconsole。在关于 Metasploit 的这个系列中,我们将主要使用这个 msfconsole,
近年来,Metasploit 集成了其他工具,使其不仅仅是一个开发框架。nmap、Nessus、Nexpose等工具现已集成到Metasploit中,使得从端口扫描、漏洞扫描、利用到后期利用的整个过程都可以在一个工具上完成。此外,Metasploit 现在已经集成了一个postgresql数据库来存储从您的扫描和漏洞利用中收集的数据。
入门:在我们启动 Metasploit 之前,我们应该启动 postgresql 数据库。Metasploit 可以在没有postgresql 的情况下工作,但该数据库使 Metasploit 能够运行更快的搜索并存储您在扫描和利用时收集的信息。
打开Kali 并且在终端内输入以下命令 来激活metasploit 自带数据库postgresql 。如果你使用的不是root终端命令前必须添加“sudo”
sudosystemctlstartpostgresql(start=开始)
由于我们是第一次使用Metasploit ,第一件事情要做的就是初始化(init)数据库,命令如下:
sudo msfdb init
数据库初始化完成后我们就可以通过终端输入名字:Metasploit 进入Metasploit Framework控制中心 (过程很长需要30秒等待时间)
最新版 Metasploit 提供数据 漏洞 版本 如下图:
这样我们就成功的完成了使用Metasploit 第一步。激活并且初始化数据库。
如果你对命令行有点看不懂暂时没有记住Metasploit ,你可以选择GUI界面转到Metasploit 如图:
Metasploit 关键字
尽管 Metasploit 是一个非常强大的漏洞利用框架,但只需几个关键字就可以让您开始入侵几乎任何系统。当然是没有设置更高端防火墙的系统。
Metasploit 多种类型的模块;
- exploits
- payloads
- auxiliary
- nops
- post
- encoders
- evasion
我们先的说下Metasploit使用术语,exploits是利用系统或者应用程序漏洞模块。它通常会尝试在系统上放置payloads,这个payloads可以是见的命令行外壳或者全有的Meterpreter。在其他环境中你可以称它为“监听器” rootkit。具体的我会在后面简单的给大家做一个介绍。
接下里我们需要使用“帮助命令(help)”来查看下msf的命令列表。
help
如果你的目标是专业的渗透测试人员,那么这里的内容不说让你背下来,最低要求是全部知道意思并且熟记于心。在社区深度计划中渗透环节非Metasploit 莫属。
关键命令“USE”使用。如下列我们需要加载一个随机模块,假设我们已经发现对方系统上出现了Flas相关漏洞。就可以使用命令:
use exploit/windows/browser/adobe_flash_avm2
如果你输入无误就模块就会加载成功,模块类型是:exploit,模块相应是在红色字体区域。
关键命令“show”显示加载模块后,show命令对于收集有关模块的更多信息非常有用。最常使用的三个“显示"show options", "show payloads"、“show targets”和“show payloads”。我们先来看看“show options”。
show options
输入数显示命令 show后添加:options 就是显示options 命令如下:
show options
命令:show targets
show targets
此命令在运行漏洞利用时也非常有用。它将显示在运行模块之前需要设置的所有选项。这些选项包括 IP 地址、URI 路径、端口等。
一个不太常用的命令是“show targers”。每个漏洞利用都有一个它将针对的目标列表。通过使用“show targets”命令,我们可以获得它们的列表。在这种情况下,目标是自动的,但一些漏洞利用有多达 100 个不同的目标(不同的操
作系统、服务包、语言等),成功通常取决于选择合适的目标。这些目标可以通过操作系统、服务包和语言等来定义。
显示模块信息命令:info
info
该信息的命令很简单。当您在选择一个模块后键入它时,它会显示有关该模块的关键信息,包括需要设置的选项、有效负载(在有效负载部分中有更多相关信息)以及模块描述. 。
新手“搜索”Metasploit在初学的时候,最困难的就是寻找自己需要的模块,毕竟Metasploit现在大概有着3-5K的模块。几百个漏洞。如果不懂得如何搜索会严重影响效率。
使用搜索命令的时候一定要添加“:”然后在输入搜索内容。
search type:exploit
搜索系统指定漏洞
指定搜索 windows下的 flash漏洞 (我们要输入的是平台:windows 漏洞类型:flash)
search type:exploit platform:windows flash
我们搜索到的会在命令行反馈出来,并且添加了标注。添加背影颜色就是。
set此命令用于在您选择的模块内设置选项。例如,如果我们查看上面的show options命令,我们可以看到许多必须设置的选项,例如 URIPATH、SVRHOST和SVRPORT。我们可以使用 set 命令设置其中的任何一个,例如;
set SRVPORT 80
这会将默认 SVRPORT(服务器端口)从 8080 更改为 80。
如果我们在发现自己操作出问题了 需要取消上一步操作,我们使用使用取消设置命令。
unset SRVPORT
一旦我们加载了选择的漏洞并设置了所有必要的选项,最后的命令就是“ exploit ”。这会将漏洞利用发送到目标系统,如果成功,则安装有效负载。
正如您在此屏幕截图中看到的那样,漏洞利用开始并作为后台作业运行,并在端口 4444 上使用反向处理程序。然后它在端口 80 上的主机 0.0.0.0 上使用随机 URL (h07PSgsCHK) 启动了一个网络服务器。我们可以选择一个特定的 URL 并通过使用 set 命令更改 URIPATH 变量来设置。
如果我们不想用已选择的漏洞,我们可以输入命令”back“该命令会删除加载的漏洞利用。
back
结束以后我们需要进行退出,当然你可以选择直接关闭终端,但是推荐使用命令:exit
Metasploit第一部分到这里就结束;主要内容是新手接触的时候要做的是什么。包括如何选择漏洞 如何执行漏洞 如何取消 如何退出。深度的需要点击下方阅读原文进行查阅。
阅读原文:深度计划|黑客必须工具Metasploit 第1部分:Metasploit6 入门
,