metasploit渗透学习日记一
PTES标准中的渗透测试阶段是用来定义渗透测试过程,并确保客户组织能够以一种标准化的方式来扩展一次渗透测试。
1、情报收集
社交媒体网络
Google Hacking技术
目标系统踩点
最为重要的一项技术是对目标系统的探查能力,包括获知它的行为模式、运行机理,以及最终可以如何被攻击。
2、威胁建模阶段
威胁建模主要使用你在情报搜集阶段所获取到的信息,来标识出目标系统上可能存在的安全漏洞与弱点。在威胁建模时,你将确定最为高效的攻击方法、你所需要进一步获取到的信息,以及从哪里攻破目标系统。
3、漏洞分析阶段
一旦确定最为可行的攻击方法之后,你需要考虑你该如何取得目标系统的访问权。在漏洞分析阶段,你将综合从前面的几个环节中获取到的信息,并从中分析和理解哪些攻击途径会是可行的。特别是需要重点分析的端口和漏洞扫描结果。
4、渗透攻击阶段
渗透攻击的时候,最好是在你基本能确信特定渗透攻击会成功的时候,才真正对目标系统实施这次渗透攻击,不能进行大量漫无目的的渗透尝试,这种方式将会造成大量喧闹的报警。
5、后渗透攻击阶段
后渗透攻击阶段是一个关键环节,后攻击阶段将以特定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织最具价值和尝试进行安全保护的信息和资产。分析攻陷的服务器用途,寻找有价值的信息。
渗透测试类型
白帽测试
黑盒测试
漏洞扫描器
漏洞扫描器是用来找出指定系统或应用中安全漏洞的自动化工具。漏洞扫描器根据目标系统的指纹信息来判断其类型和版本,以及上面运行的所有服务。
Metasploit 基础
通用安全述语
渗透攻击(Exploit)
渗透攻击是指由攻击者或者渗透测试者利用系统、应该或服务中的安全漏洞,所进行的攻击行为。
流行的攻击技术包括:缓冲区溢出、Web应用程序漏洞攻击(SQL注入),以及利用配置错误等。
攻击载荷(Payload)
攻击载何是我们期望目标系统在被渗透攻击后而执行的代码。在Metasploit框架中可以*的选择、传送和植入。比如,反弹式shell是一种从目标主机到攻击主机创建网络连接,并提供命令行shell的攻击载荷。bind shell攻击载荷则在目标主机上将命令行shell绑定到一个打开的监听端口,攻击者可以连接这些端口来取得shell交互。
溢出代码(Shellcode)
shellcode是在渗透攻击时作为攻击载荷运行的一组机器指令。shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令后,才会提供一个命令行shell或者Meterpreter shell,这也是shellcode名称的由来。
模块(Module)
在Metasploit中,一个模块是指Metasploit框架中所使用的一段软件代码组件。在某些时候,你可能会使用一个渗透攻击模块(Exploit module),也就是用于实际发起渗透攻击的软件组件。而在其它时候,则可能使用一个辅助模块(auxiliary module),用来扫描一些诸如扫描或系统查点的攻击动作。
监听器(Listener)
监听器是Metasploit中用来等待连入网络连接的组件。举例来说,在目标主机被渗透攻击之后,它可能会通过互联网回连到攻击主机上,而监听器组件在攻击主机上等待被渗透攻击的系统来连接,并负责处理这些网络连接。
Metasploit用户接口
Metasploit软件为它的基础功能提供了多个用户接口,包括终端、命令行和图形化界面。除了这些接口之外,功能程序(utilities)则提供了对Metasploit框架中内部功能的直接访问,这些功能程序对于渗透代码开发,以及在一些你不需要的整体框架灵活性的场合中非常有价值。
MSF终端
MSF终端(msfconsole)是目前Metasploit框架最为流行的用户接口。
启动MSF终端
# cd /opt/framwork3/msf3
/opt/framwork/msf3# msfconsole
访问终端的帮助文件,输入help 并加上你感兴趣的metasploit命令
msf> help connect
MSF命令行
msfcli -h 显示帮助
msfcli -O 显示选项
msfcli -P 显示载荷
msfcli -E 执行
Armitage
Metasploit框架中的armitage组件是一个完全交互的图形化用户接口。
Metasploit功能程序
MSF攻击载荷生成器(msfpayload)
MSF攻击载荷生成器允许你能够生成shellcode、可执行代码和其他更多的东西,也可以让它们在框架软件之外的渗透代码中进行使用。
shellcode可以生成包括C、Javascript、甚至web应用程序中visual basic脚本在内的多种格式,每种格式在不同的场景中使用。
POC 概念验证代码
MSF编码器(msfencode)
由MSF攻击载荷生成器产生的shellcode是完全可以运行的,但是其中包含了一些null空字符,在一些程序进行解析时,这些空字符会被认为是字符串的结束,从而使得代码在完整执行之前被截断而终止运行。简单来说,这些\x00和\xff字符会破坏你的攻击载荷。
另外,在网络上明文传输的shellcode很可能被入侵检测系统和杀毒软件所识别,为了解决这一问题,metasploit的开发者们提供了MSF编码器,对原始攻击载荷进行编码,来避免坏字符以及逃避杀毒软件和IDS的检测。
上一篇: 子网划分的两个例子
下一篇: 推荐阅读博客九周年:稳中求胜 持续发展