Metasploit基础(MSF)
专业术语:
1.渗透攻击(Exploit)
指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。流行的渗透攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击、利用配置错误等
2.攻击载荷(Payload)
是期望目标系统在被渗透攻击之后去执行的代码,也可能是简单的在目标系统上执行一些命令。
3.Shellcode
在渗透攻击时作为攻击载荷运行的一组机器指令,通常由汇编语言编写
4.模块(Module)
一个模块是指Metasploit框架中所使用的一段软件代码组件
5.监听器(Listener)
Metasploit中用来等待连入网络连接的组件
Metasploit用户接口:
Metasploit提供了多个用户接口,包括终端、命令行(msfcli已废弃)、图形化界面
1.MSF终端
以一种友好的模式提供交互方式,用于访问软件所有的功能特性
msfconsole 启动MSF终端
2.Armitage
完全交互式的图形化用户接口,须安装jdk
Metasploit功能程序:
1.MSF攻击载荷生成器(msfpayload)
能够生成shellcode、可执行代码和其他东西,可以在框架软件之外的渗透代码中使用。
Shellcode可以生成包括C、JavaScript等格式
(msfpayload已移除,可使用msfvenom,集成了msfpayload和msfencode功能)
2.MSF编码器(msfencode)
由MSF攻击载荷生成器产生的shellcode是完全可行的,但在其中包含了一些空字符,在一些程序进行解析时,空字符会被认为是字符串的结束,从而使得代码在完整执行之前被截断而终止运行
MSF编码器可以通过对原始攻击载荷进行编码的方式,来避免坏字符,以及逃避杀毒软件和IDS的检测
3.Nasm Shell
nasm_shell.rb功能程序在尝试了解汇编代码含义是有用,可以对给定的汇编命令找出其opcode操作码
(该程序位于 metasploit安装目录/tools/exploit 中)
Msfvenom用法:
-l <type> 列出指定类型的所有模块,类型包括:payloads、encoders、nops、platforms、archs、all
-p <payload> 指定需要使用的payload(可通过-l payloads的到payload列表)
-f <format> 指定输出格式(-l formats 列出所有格式)
-e <encoder> 要使用的编码(-l encoders 列出所有编码)用于编码加密
-a <arch> 指定payload的目标CPU架构(-l archs列出所有CPU架构)
-o <path> 将payload保存到文件
-b <list> 指定不使用的字符集
-n <length> 在payload上添加指定长度的nop指令
-s <length> 设定payload的最大长度,即生成文件大小
-i <count> 对payload进行编码的次数
-c <path> 指定一个自己的win32 shellcode文件
-x <path> 指定一个可执行程序,将payload捆绑其中
-k 针对-x的捆绑程序,将创建新线程执行payload,同-x一起使用
-v <value> 指定用于某些输出格式的自定义变量名称
-t <second> 从STDIN读取有效负载时等待的次数(默认30,0为禁用)