Metasploit是一款开源渗透测试平台软件,现在安全社区中的漏洞利用程序以Metasploit·模块的方式发布。Metasploit能够通过选择攻击渗透模块、载荷模块、编码器进行一次渗透测试。要学习Metasploit,必须了解一些术语以及Metasploit的模块,下文对这些基础的概念进行讲解。
1. 渗透攻击模块(Exploit)
利用发现的安全漏洞或配置弱点对远程目标进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问的代码组件。流行的渗透攻击技术包括缓存区溢出、Web应用程序漏洞攻击、用户配置错误等。
- 主动渗透攻击:发送网络数据,触发安全漏洞。比如web应用程序渗透攻击、SCADA工业控制系统服务渗透攻击等。
- 被动渗透攻击:浏览器软件漏洞攻击和文件格式漏洞攻击,引诱目标用户打开触发。
msfconsle中输入命令:show exploits;可以查看当前Metasploit支持的渗透攻击模块
2. 攻击载荷模块(Payload)
目标系统被渗透攻击之后需要执行的代码。比如反弹式shell、bind shell等。
在msfconsole界面输入:show payloads;可以查看当前系统支持的payloads
3. 空指令模块(Nops)
空指令是对一些程序运行状态不会造成任何实质影响的空操作或者无关操作指令,对于x86 CPU就是0x90。
在msfconsole中输入show nops;可以查看当前系统支持的空指令,如下图所示
4. 编码器模块(Encoders)
- 功能1:确保攻击载荷中不会出现渗透攻击过程中应加以避免出现的“坏字符”
- 功能2:对攻击载荷进行“免杀”处理
在msfconsole界面输入:show encoders;可以查看当前系统支持的编码器,如下图所示:
5. 后渗透攻击模块(posts)
后渗透攻击模块,在受控系统中进行各种各样的后渗透攻击动作,比如获取敏感信息、进一步拓展、实施跳板攻击等。
在msfconsole界面输入show post;可以显示当前系统支持的后渗透攻击模块,如下图所示
6. 其它一些重要术语:
- shellcode:是渗透攻击时作为攻击载荷运行的一组机器命令。
- 监听器(Listener):在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
7. Metasploit的三种用户接口
(1) 图形接口armitage
在终端输入命令以下命令启动数据库服务和Metasploit后台服务,否则容易出错:
- /etc/init.d/postgresql start
- service metasploit start
在终端输入命令:armitage,打开Metasploit的图形界面,如下图所示:
(2) 控制台终端
在终端输入命令:msfconsole,打开控制台命令。
MSF终端是Metasploit功能最强大、最丰富的用户接口。
后续文章将会详细讲解常见命令的使用比如:search、use、show等
(3) 命令行程序
能够在shell命令行中完成一次完整的渗透攻击过程。
例如:
- msfcli mult/samba/usermap_script PAYLOAD=cmd/unix/ bind_netcat RHOST=192.168.128.128 E