02 Metasploit基础

Metasploit基础

​ 在第一次使用Metasploit时,很重要的一点是:不光要关注于那些最新的渗透模块,而且应该关注Metasploit是如何进行攻击的,以及可以使用哪些命令来使得渗透成功实施。

一、专业术语

1.渗透攻击(Exploit)

​ 渗透攻击是指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。攻击者使用渗透攻击去入侵系统时,往往会造成开发者所没有预期到的一种特殊结果。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(比如SQL注入),以及利用配置错误等。

2.攻击载荷(Payload)

​ 攻击载荷是我们期望目标系统在被渗透攻击之后去执行的代码,在Metasploit框架中可以自由地选择、传送和植入。例如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令行shell的攻击载荷,而bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。攻击载荷也可能是简单的在目标操作系统上执行一些命令,如添加用户账号等。

3.Shellcode

​ Shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了Shellcode这一组指令之后,才会提供一个命令行 shell或者Meterpreter shell,这也是 Shellcode名称的由来。

4.模块(Module)

​ 在本文的上下文环境中,一个模块是指Metasploit框架中所使用的一段软件代码组件。在某些时候,你可能会使用个渗透攻击模块( exploit module),也就是用于实际发起渗透攻击的软件组件。而在其他时候,则可能使用一个辅助模块(auxiliary module),用来执行一些诸如扫描或系统查点的攻击动作。这些在不断变化和发展中的模块才是使Metasploit框架如此强大的核心所在。

5.监听器(Listener)

​ 监听器是Metasploit中用来等待连入网络连接的组件,举例来说,在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。

二、Metasploit的各种模块

​ 我们一起了解一下Metasploit的各种模块。Metasploit的工作界面如下:
Metasploit启动
​ 可以看到Metasploit的版本号为v6.1.14-dev。这个版本包含了2180个exploits、1155个auxiliary、399个post、592个payloads、45个encoders、10个nops和9个evasion。

​ Metasploit常用的模块可以分为7种,

  • 漏洞渗透模块(exploits):漏洞渗透模块是Metasploit最为重要的模块,这些模块是针对特定漏洞编写的,我们可以通过这些模块实现对目标的渗透。使用下面命令可以查看Metasploit的所有可用的漏洞渗透模块:
    msf >show exploits
  • 辅助模块(auxiliary):辅助模块用于进行信息收集,其中包括一些信息侦查、网络扫描类的工具。辅助模块本身不具备渗透功能,但是可以在渗透过程中起辅助作用。
  • 攻击载荷模块(payloads):这类模块可以理解为被控端程序,他们可以帮助我们在目标上完成远程控制操作。通常这些模块既可以单独执行,也可以和漏洞渗透模块一起执行。
    ​ Metasploit的攻击载荷模块可以分成三种类型——singles、stagers和stages.
    ​ ​ singles:独立型,这种攻击载荷可以直接传送到目标系统中并执行。
    ​ ​ stagers:传输器型,这种攻击载荷通常比较小,主要用来建立攻击系统与目标系统的连接通道,之后利用该通道传输stages类型的攻击载荷。stagers类型的攻击载荷分为reverse(反向)和bind(正向)两种。
    ​ ​ stages:传输体型,这种攻击载荷可以用来实现对目标的控制,比如常见的shell和Meterpreter都属于这种类型。
    所有的攻击载荷模块大体采用了三段式或者四段式的命名方式。例如android/,meterpreter/reverse_http,其中,第一部分android表示适用的操作系统,第二部分meterpreter表示控制的方式,第三部分reverse_http表示采用HTTP反向连接。
  • 编码工具模块(encoders):编码工具模块主要用来实现对攻击载荷进行编码,生成一个新的二进制文件,运行这个文件以后,msf编码器会将原始程序解码到内存中并运行。这样就可以在不影响程序运行的前提下绕过目标系统上的检查机制(主要是杀毒应用程序)。目前Metasploit包含45个编码工具模块,但是其中最为优秀的是x86/shikata_ga_nai,它是一种多态性编码,也就是说每一次使用x86/shikata_ga_nai为同一个攻击载荷编码,产生的新文件都是不同的,所以杀毒应用程序很难根据特征码对其进行查杀。在进行编码的时候,为了让产生的新文件更加隐秘,往往会采取多种编码、多次编码的方法。
  • 空指令模块(nops):为了避免在执行的过程中出现随机地址或者返回地址错误可以添加一些空指令。
  • 反杀软模块(evasion):通过反杀软模块可以快速轻松地创建反杀毒应用程序的被控端程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值