|
metasploit渗透学习笔记前三季讲解 一共五章灰鸽子下载www.huigezi.org
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的检测。
Metasploit渗透学习日记二
情报收集
情报收集是渗透测试流程中的第二个步骤。情报收集的目的是获取渗透目标的准确信息,以了解目标组织的动作方式,确定最佳的进攻路线。如果情报收集工作不够细致,那么你可能会与可利用的系统漏洞或可实施攻击的目标之交臂。
情报收集的工作可能会包含从网页中收集信息、google hacking、为特定的目标的网络拓扑进行完整的扫描映射等,这些工作往往需要较长的时间,会比较考验你的耐性。情报收集工作需要周密的计划、调研,而最重要的是要具备攻击者角度去思考问题的能力。
在开始收集情报工作之前,你应该考虑如何将每一步操作和得到的结果记录下来。
使用被动、间接的信息收集技巧,你可以在不接触到目标系统的情况下挖掘目标信息。举例来说,你可以使用这些技巧确定网络边界情况和网络运维人员,甚至了解到目标网络中使用的操作系统和网站服务器软件的类型。
1、whois查询
说明:查看域名的详细信息
命令格式:
whois 域名/IP
主动信息收集
在主动信息收集工作中,我们与目标系统直接交互,从而对其进行更深入的了解。举例来说,我们可以执行端口扫描来确定目标系统开放了哪些端口、运行了哪些服务。但是请注意:如果你在主动信息收集过程中不够小心,那么你很可能会被入侵检测系统(IDS)或入侵防御系统(IPS)给逮住。
使用Nmap进行端口扫描
通过被动信息收集确定了目标的IP范围后,我们可以开始使用端口扫描获取目标开放的端口。端口扫描的过程实际上是逐个对远程主机的端口发起连接,从而确定哪些端口是开放的。
Nmap是一款强大的扫描工具,其参数及应用技巧非常多,在这里,只用了一些常用的选项
1、-sS 这个选项是执行一次隐秘的TCP扫描,以确定某个特定的TCP端口是否开放
2、-Pn 这个选项是告诉nmap不要使用ping命令预先判断主机是否存活,而是默认所有主机都是存活状态。
在这里,我们可以发现,服务器运行是操作系统是window server 2003 SP1 数据库是mssql,其版本信息也一目了然。
高级Nmap扫描技巧:TCP空闲扫描
一种更加高级的nmap扫描方式是TCP空闲扫描,这种扫描能让我们冒充网络上另一台主机的IP地址,对目标进行更为隐秘的扫描(我可不可以认为是跳板技术的一种呢?)。进行这种扫描之前,我们需要在网络上定位一台使用递增IP帧标识(IP ID:用于跟踪IP包的次序的一种技术)机制的空闲主机(空闲是指该主机在一段特定的时间内不向网络发送数据包)。
我们可以使用Metasploit框架的auxiliary/scanner/ip/ipidseq模块,来寻找能够满足TCP空闲扫描要求的空闲主机,如下所示:
需要说明的是:ipidseq模块中的options设置:必设置的项为:RHOSTS 这个可是单个IP,也可以是一个IP段(如192.168.1.1-192.168.1.254)、CIDR地址(192.168.1.0/24),另外THREAD参数是设定扫描线程数的,默认为1单线程。增加参数值可提高扫描速度,降低参数值可减少网络上的数据流量。一般来说,在windows平台上运行metasploit这个参数值最好不要超过16,在类unix平台上运行不要超过128。
在这里,我们发现:192.168.1.110's IPID sequence class: Incremental!提示为incremental,这说明,这台主机满足空闲TCP扫描的要求,接下来,我们在nmap中增加选项 –sI 来进行一次空闲TCP扫描
使用空闲扫描,我们可以不用自身IP地址向目标主机发送任何数据包,就能获取到目标主机上开放的端口信息。
在MSF终端中运行Nmap
现在我们把nmap和metasploit结合起来使用。我的使用的BT5R3平台,所以对书里的一些设置命令,在这里根本用不上,所以就省略了,因为BT5R3默认已经做好这一切了。我们直接使用就可以。
终端中输入msfconsole进入MSF,使用db_namp开始进行扫描:
到这里,我们就已经收集到了很多服务器上面的信息了 |
|