- 一、MSF介绍
- 1.简介
- 2.功能
- (1)渗透攻击(Exploit)
- (2)攻击载荷(Payload)
- (3)溢出代码(Shellcode)
- (4)模块(Module)
- (5)监听器(Listener)
- 二、MSF常用的命令词汇
- 1.基本命令
- 2.Exploits模块
- 3.Payloads模块
- 4.漏洞名称规则
- 5.漏洞名称规则
- 三、MSF命令讲解
- 1.查找
- 2.使用
- 3.退出
- 4.查询漏洞信息
- 5.配置
- 6.查看攻击载荷
- 7.修改参数
- 8.清空参数
- 四、结语
2.功能 (1)渗透攻击(Exploit)Metasploit就是一个漏洞框架。它的全称叫做The Metasploit
Framework,简称MSF。是一个免费、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数2000多个已知软件漏洞的专业级漏洞攻击工具。当H.D.
Moore在2003年发布MSF时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为MSF团队一直都在努力开发各种攻击工具,并将它们贡献给所有MSF用户。
(2)攻击载荷(Payload)渗透攻击是指由攻击者或者渗透测试者利用系统、应用或服务中的安全漏洞,所进行的攻击行为。
流行的攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击,以及利用配置错误等。
(3)溢出代码(Shellcode)攻击载何是我们期望目标系统在被渗透攻击后而执行的代码。在MSF框架中可以自由的选择、传送和植入。比如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令行shell的攻击载荷。bind
shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。
(4)模块(Module)shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令后,才会提供一个命令行shell或者Meterpreter
shell,这也是shellcode名称的由来。
(5)监听器(Listener)在MSF中,一个模块是指MSF框架中所使用的一段软件代码组件。在某些时候,你可能会使用一个渗透攻击模块(Exploit
module),也就是用于实际发起渗透攻击的软件组件。而在其它时候,则可能使用一个辅助模块(auxiliary
module),用来扫描一些诸如扫描或系统查点的攻击动作。
二、MSF常用的命令词汇 1.基本命令监听器是MSF中用来等待连入网络连接的组件。举例来说,在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
| 命令 | 介绍 |
|---|---|
| ? | 执行?命令:帮助菜单 |
| search | 搜索模块名和描述。 |
| use | 使用命令 |
| back | 从当前环境返回。 |
| Banner | 命令,显示一个MSF的banner。 |
| color | 颜色转换 |
| connect | 连接一个主机 |
| exit | 退出MSF |
| info | 显示一个或多个模块的信息 |
| irb | 进入irb脚本模式。 |
| jobs | 显示和管理作业(和windows任务管理器的进程作用一样) |
| kill | 杀死一个作业(和结束进程的作用一样)。 |
| loadpath | 加载一个模块的路径。 |
| quit | 退出MSF。 |
| load | 加载一个插件。 |
| load | 加载一个插件。 |
| route | 查看一个会话的路由信息。 |
| save | 保存动作 |
| set | 给一个变量赋值 |
| show | 显示给所有类型的模块 |
| setg | 把一个赋值给全局变量,例如上述set设置的IP,就会用到其他攻击模块的RHOST中 |
| sleep | 在限定的秒数内什么也不做 |
| unload | 卸载一个模块 |
| unset | 解出一个或多个变量。 |
| unsetg | 解出一个或多个全局变量 |
| version | 显示MSF和控制台库版本 |
| 命令 | 介绍 |
|---|---|
| RHOST | 目标主机IP地址 |
| RPORT | 目标主机连接端口 |
| Payload | 有效的载荷,成功后返回shell |
| LHOST | 攻击者的IP地址 |
| LPORT | 攻击者的端口 |
| 命令 | 介绍 |
|---|---|
| shell | 上传一个shell |
| dllinject | 注入一个dll到进程 |
| patchup*** | 修补漏洞 |
| upexec | 上传并执行一个文件 |
| meterpreter | 高级的payload |
| vncinject | 高级的payload |
| passive | 高级的payload |
| 命令 | 介绍 |
|---|---|
| shell_find_tag | 在一个已建立的连接上创建一个shell |
| shell_reverse_tcp | 反向连接到攻击者主机并创建一个shell |
| bind_tcp | 监听一个tcp连接 |
| reverse_tcp | 反向建立tcp连接 |
| reverse_http | 通过HTTP隧道通信并创建一个新用户添加到管理组 |
| add_user | 创建一个新用户并添加到管理组 |
| xxx_ipv6_tcp | 基于IPV6 |
| xxx_nonx_tcp | no execute或win7(NX是应用在CPU的一种可以防止缓冲区溢出的技术) |
| xxx_ord_tcp | 有序payload |
| xxx_tcp_allports | 在所有可能的端口 |
代码:search ms17-010
代码:use 0 这里的0指的是前面的序号也可以是1.2.3看你需要哪个
代码:back
代码:info + 漏洞名
(当我们不知道怎么去利用这个漏洞信息的时候通过这个代码进行查询)
代码:set +参数名
配置需要的参数
代码:show payloads
代码:set + 参数名称 +参数
前
修改之后,可以看到我们添加的rhosts添加上了
代码:unset +参数名
metasploit是渗透必须要学会和掌握的一个技术,现在大量在内网渗透中使用,各位小伙伴在学习技术的同时请理性使用MSF。



