Metasploit入门用法

摘要:
我们渗透的目标是Metasploitable 2。(稍后,我可能会提出一个Metasploit二级开发程序,它可以通过使用脚本轻松快速地渗透进来,并解决许多低级模块和缓慢手动工作的问题。

1、 使用nmap进行端口扫描
2、 使用search命令查找相关模块
3、 使用use调度模块
4、 使用info查看模块信息
5、 选择payload作为攻击
6、 设置攻击参数
7、 渗透攻击
如果第二次看我文章,建议通过以上七个步骤回忆操作,实在记不住再看后面步骤详解,以达到掌握的效果。

详解:
首先是安装metasploit和nmap(后期也会出一个这个工具的学习笔记),至于安装方法,请根据您使用的系统来百度。百度是初学者必备,如果深入建议使用Google。我们这次渗透的靶机,是metasploitable2。

1. 使用nmap进行端口扫描,

由于本人技术初级阶段,所以只能检测系统漏洞。检查系统漏洞的关键,就是检测端口的开放,这个也是metasploit种exploit模块经常要设置参数的原因,所以nmap很好的解决了这个需求,通常使用:nmap –sV IP(或者域名),如果机器设置有防火墙禁ping,可以使用nmap -P0(或者-Pn) –sV IP(或者域名),通过这两个命令可以查看主机的开放情况:
这里写图片描述
如图,可以看到靶机开放的端口,开放状态,服务类型,和版本号,其中渗透最重要的两个参数是开放状态和版本号。如果端口是关闭的,那就不可能渗透了,一般是防火墙过滤了,但如果是过滤的话,还是可以尝试攻击(我没成功过,应该有一定可能成功);版本号也就是系统扫描中,在开发安全扫描件里经常提及的漏洞指纹,因为大部分漏洞的产生就是某一版本的问题。
我们此次攻击的139端口,如图中,可以看到服务的指纹信息,主要就是服务名称和版本号,是叫samba的服务,处于3.X-4.X版本。

此步强调:

a、 nmap的参数居多,但是可以通过英语简写记,比如:-sV :s 技术scan ,V就是version。(我英语不好,也不知道是不是对的)
b、 通过nmap主要是知道端口开放情况(STATE)和指纹信息(服务名称和版本号),然后可以根据指纹信息百度,该版本是否存在漏洞,然后按百度操作证明。

2.使用search命令查找相关模块

就刚才我们锁定的139端口的版本信息,我们可以通过search命令查找相关的扫描脚本。命令格式:search Name。本例就是:search samba
这里写图片描述
如图,加班也有很多属性,其中最重要的就是他的等级,一般有限选择excellent和great两种等级,因为稳定且效果明显,其次重要的就是后面的描述是否和我们攻击的服务有关,最后记住需要的模块,在后面攻击是使用。

此步强调:

a、 攻击模块的等级很重要,依次选择excellent和great,其他模块并不是很好或者效果不明显。(后期我可能出一个metasploit二次开发的编程,使用脚本,可以简单快速的进行渗透,并且解决低等级模块多,手工慢的特点。)
b、 英语非常重要,但是要求也不高,能把提示看懂就行,这个对渗透帮助巨大,因为大部分好的开源工具都是英文提示。
c、 还有图中第二行没有标明的一个问题,说我没有建立数据库,建议大家在使用metasploit以前,打开postgresql数据库,有很多难度姿势需要依赖,在此我就不举例了。

3.使用use调度模块

找到了我们需要攻击的目标模块,我们就使用它,通过命令:use ExploitName 。该例就是:use exploit/multi/samba/usermap_script。

这里写图片描述如图,出现第二行,就是说明模块加载成功。
技巧:如果是知道使用哪个模块,可以输入每个 / 后的前2-4个字母使用table补齐,或者直接复制刚才找到模块。(建议大家都使用Linux操作系统,只需要命令就能解决很多问题,而且本人偏开发,在开发的时候,Linux使用也会比Windows多些优势)

4.使用info查看模块信息

这步最简单,就是在上步的基础上,输入info就行:
这里写图片描述
主要就是看图中标红的描述,确定是否针对漏洞(该步基本可省略,但是为了了解学习,还是建议看看)

5.选择payload作为攻击

选择payload,首先我们要看能使用哪些参数,通过命令:show payloads:
这里写图片描述
在选择攻击载荷的时候,建议选用和meterpreter和reverse相关的载荷,本次攻击就选用图中标红的。
通过使用命令:set payload PayloadName。该例为:set payload cmd/unix/reverse:
这里写图片描述
出现第二行,表示设置成功。
技巧:
a、 meterpreter在metasploit中有什么瑞士尖刀的称呼,可以很好的做到后渗透攻击以及内网渗透,可以参看meterpreter使用。
b、 reverse解释是反弹,由于你攻击的目标机可能处在内网里,所以你攻击的时候存在端口映射等方面的问题,所以如果使用反弹,这个可以更稳定。(我是这么理解的,建议百度反弹shell,玄魂的解释挺不错)

6.设置攻击参数

首先通过show options或者options,查看需要填写的参数:
这里写图片描述
其中标红处如果是yes,表示这行参数必须填写,如果是no,就是选填,其中有LHOST和RHOST是空,我们根据后面的描述,填上靶机和本地主机的信息。
这里写图片描述
RHOST 填写目标机IP,LHOST填写本机IP。
技巧:
a、 在真实的环境中,RPORT可能并不是默认的参数,由于一个服务是放在内网当中,他通过路由器转发,可能会出现端口的变化(端口映射),比如我们刚才扫描出该服务的端口可能就不是139,而是XXX,这个时候,我们就要设置RPORT为XXX,这点非常重要。
b、 exploit target也是非常重要的参数,在你确切的知道目标的系统的时候,可以通过show targets,查看目标系统有哪些:
这里写图片描述
查看目标的系统,可以使用:nmap –O IP,然后使用set target ID选择目标类型,主要用于增加成功率。
c、 由于本机的IP在内网,所以基本不会变,可以使用setg代替set,这样在手工的时候换攻击模块,少输入几个字母。

7.渗透攻击

上面参数填好后,应该是如下情况:
这里写图片描述
就是参数完整,然后使用exploit或者run就行了,对于部分攻击模块,可以使用check来判断:
这里写图片描述
图中的靶机ip由于我是通过虚拟机主机模式做的,所以ip和端口都是原生的,但如果是渗透到内网的某个主机,那显示的本地地址可能和你的攻击地址产生不同,这个时候就恭喜你的渗透到内网,你可以通过使用添加路由的方式,进行内网渗透(后面看情况出该章节)。
技巧:使用check判断,不会生成session,这样就不会暴露自己的ip地址,但是也就不能getshell。

8.后渗透攻击

这一部分主要是meterpreter模块的使用,以及部分提权,由于和这章关系不大,所以就没列入最前面的列表,后期会出一个相关学习笔记。

总结(非常重要):

a、 英语很重要,就算不学太多单词,在使用工具中出现的单词,建议查找记忆。
b、 在文章中没提出在计算机中用的最常见的一个参数 “-h”,就算help,很多操作都可以通过帮助来使用,所以再次说明英语重要。
c、 参数众多的情况下,就记住主要的参数,比如本文针对exploit模块,基本常用的命令(除了show advanced 和设置其中的参数)

免责声明:文章转载自《Metasploit入门用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle 11c下载 及连接到OracleDB的简单程序BZOJ 3098: Hash Killer II(新生必做的水题)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

部署与管理ZooKeeper(转)

本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这方面,可以查看《ZooKeeper快速搭建》。 1.部署 本...

SHELL脚本编程配置环境

SHELL脚本编程配置环境 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.bash如何展开命令行 1>.bash的优先级 把命令行分成单个命令词   展开别名 展开大括号的声明({}) 展开波浪符声明(~) 命令替换$() 和 ``) 再次把命令行分成命令词 展开文件通配(*、?、[abc]等等) 准备I/0重导...

Linux学习笔记(17)Linux防火墙配置详解

目录 【1】简单实例【1.1】查看修改目前防火墙状态 【2】实例分析 【2.1】基本释义 【2.2】最佳实践案例 【2.3】防火墙常用命令 【3】Centos7常用操作 【4】其他参考 回到顶部 【1】简单实例 【1.1】查看修改目前防火墙状态 service iptables status 修改防火墙规则   下面的配置是让端...

Linux-第六章:Linux常用命令

6.Linux命令 ls 查看目录的内容 常用ls -la/home 显示目录下的所有文件的详细信息,详细信息第一个内容有四块,d或者-开头rwx clear 清屏 cd 切换文件路径 pwd 显示当前文件夹 mkdir 创建文件夹 touch 创建文件 rm 删除文件或者文件夹 mv 移动文件或者对文件重命名 ">" 输出重定向 "|" 管道 c...

bcp命令详解转载

bcp命令详解 bcp 实用工具在 Microsoft? SQL Server? 2000 实例和数据文件之间以用户指定的格式复制数据。 语法 bcp {[[database_name.][owner].]{table_name | view_name} | "query"}       {in | out | queryout | format} da...

LFI-labs

CMD-1 查看源代码: <?php system($_GET["cmd"]); ?> 这个没有任何过滤,直接命令执行即可。payload: ?cmd=whoani CMD-2 这题和上面一样,只不过改成了POST请求。 CMD-3 查看源码: <?php system("/usr/bin/whois " . $_G...