Metasploit渗透测试框架软件(MSF)
一、专业术语:
1、渗透攻击Exploit:
由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(SQL注入),以及利用配置错误等。
2、攻击载荷Payload:
期望目标系统在被渗透攻击之后去执行的代码。可以在MSF框架中自由地选择、传送和植入。
Eg:
3、Shellcode:
作为攻击载荷运行的一组机器指令。
目标系统执行了shellcode之后,才会提供一个命令行或者Meterpreter shell。
4、模块Module:
MSF框架中所使用的一段软件代码组件。
渗透攻击模块exploit module–实际发起渗透攻击的软件组件。
辅助模块auxiliary module–执行注入扫描或系统查点的攻击动作。
5、监听器Listener:
等待连入网络连接的组件。
二、Metasploit用户接口
终端、命令行和图形界面
1、MSF终端–msfconsole
能够访问Metasploit框架中几乎每一个选项和配置。
启动MSF终端–命令行中输入msfconsole
访问帮助文件–help+metasploit命令
2、MSF命令行–msfcli
主要考虑脚本处理和其他命令行工具的互操作性。
在明确知道你使用哪个渗透攻击模块和所需要的配置参数时,它将是高效实施渗透攻击的绝妙工具。
显示基本的帮助文档使用如下命令:
msfcli -h
msfcli <exploit_name> <option=value> [mode]
使用实例:
(1)、在输入的字符串命令后面加上一个字符“O”,查看这个模块所提供的配置参数。
查看ms08_067_netapi模块的配置参数
msfcli windows/smb/ms08_067_netapi O
(2)、再加上一个字符”P“,检查可用的攻击载荷。
msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155 P
(3)、设置完成所有必须的配置选项,并选择了一个攻击载荷之后,通过msfcli命令参数字符串最后加上字符”E“,运行渗透测试代码。
msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155 PAYLOAD=windows/shell/bind_tcp E
3、Armitage–图形化用户接口~?目前已经是msfgui~~~~
三、Metasploit功能程序
在某些特定的场合下,对Metasploit框架中的一些特殊功能进行直接访问的接口。
1、MSF攻击载荷生成器
允许生成shellcode、可执行代码和其他更多的东西。
Shellcode可以生成包括C、JavaScript、甚至是Web应用程序中VB脚本等多种格式,每种输出格式在不用场景中使用。
//查看msfpayload需要哪些配置选项
msfpayload -h
//查看攻击载荷模块的配置选项
msfpayload windows/shell_reverse_tcp O
2、MSF编码器
MSF攻击载荷生成器产生的shellcode是完全可运行的,但是其中包含了一些null空字符,在程序解析时,会被认为是字符串的结束,从而终止了代码的完整运行。
\0x00 和 \0xff 字符会破坏攻击载荷。
MSF编码器–对原始的payload进行编码,避免坏字符,以及逃避杀毒软件和IDS的检测。
//查看MSF编码器的配置选项列表
msfencode -h
MSF中包含了一系列可以应用于不同场景下的编码器。
Excellent等级的编码器–x86/shikata_ga_nai编码器
//查看有哪些可用的编码器清单,并以可靠性的好坏进行排序显示
msfencode -1
3、Nasm Shell
nasm_shell.rb功能程序–了解汇编代码含义,对给定的汇编指令找出它的opcode操作码。
//运行工具,请求jmp esp命令的opcode操作码
root@bt:./nasm_shell.rb
nasm> jmp esp
//结果如下
00000000 FFE4 jmp esp
四、Metasploit Express 和 Metasploit Pro
商业化web接口软件。