Metasploit渗透学习日记
2015-06-09 22:43
615 查看
情报收集
情报收集是渗透测试流程中的第二个步骤。情报收集的目的是获取渗透目标的准确信息,以了解目标组织的动作方式,确定最佳的进攻路线。如果情报收集工作不够细致,那么你可能会与可利用的系统漏洞或可实施攻击的目标之交臂。
情报收集的工作可能会包含从网页中收集信息、google hacking、为特定的目标的网络拓扑进行完整的扫描映射等,这些工作往往需要较长的时间,会比较考验你的耐性。情报收集工作需要周密的计划、调研,而最重要的是要具备攻击者角度去思考问题的能力。
在开始收集情报工作之前,你应该考虑如何将每一步操作和得到的结果记录下来。
使用被动、间接的信息收集技巧,你可以在不接触到目标系统的情况下挖掘目标信息。举例来说,你可以使用这些技巧确定网络边界情况和网络运维人员,甚至了解到目标网络中使用的操作系统和网站服务器软件的类型。
1、whois查询
说明:查看域名的详细信息
命令格式:
whois 域名/IP
首先通过域名进行一次查询,所得到的结果如下:
在一些大机构中,DNS服务器往往部署在公司内部,可以被作为攻击点,使用针对DNS服务器的区域传送攻击以及其它类似的攻击,攻击者通常能够揭露出一个网络内部及外部的很多信息。在这里,我们可以看到Domain servers为:FIGINS1.DNSPOD.NET 和FIGINS2.DNSPOD.NET,不属于i0415.com所有,所以,我们不能对这些域名服务器进行攻击。但是我们通过whois命令可以得到很多关于这个域名相关的信息,比如域名注册人的信息等等,这在以后的渗透中也有一定的利用价值。
其次,我们获取一下i0415.com这个服务器的IP,然后针对这个IP再进行一次查询,其结果如下:
从这个结果中,我们发现,此服务器的提供商为XRNET,是息壤传媒文化有限公司。
NSLookup工具
为了获取关于服务器的附加信息,我们使用nslookup工具
我们可以看到i0415.com的邮件服务器的DNS指向5 mxdomain.qq.com. 说明邮件服务是由第三方运维的。
主动信息收集
在主动信息收集工作中,我们与目标系统直接交互,从而对其进行更深入的了解。举例来说,我们可以执行端口扫描来确定目标系统开放了哪些端口、运行了哪些服务。但是请注意:如果你在主动信息收集过程中不够小心,那么你很可能会被入侵检测系统(IDS)或入侵防御系统(IPS)给逮住。
使用Nmap进行端口扫描
通过被动信息收集确定了目标的IP范围后,我们可以开始使用端口扫描获取目标开放的端口。端口扫描的过程实际上是逐个对远程主机的端口发起连接,从而确定哪些端口是开放的。
Nmap是一款强大的扫描工具,其参数及应用技巧非常多,在这里,只用了一些常用的选项
1、-sS 这个选项是执行一次隐秘的TCP扫描,以确定某个特定的TCP端口是否开放
2、-Pn 这个选项是告诉nmap不要使用ping命令预先判断主机是否存活,而是默认所有主机都是存活状态。
现在来扫描一下
我们看到,主机i0415.com开放了很多端口以及对应的服务。
为了获取更多的信息,可以尝试使用-A选项,它将尝试进行深入的服务枚举和旗标获取,这些能够为你提供目标系统更多的细节信息。
下面加上-A选项再进行一次扫描,扫描结果除了上次的端口信息外,还多了以下关于服务器的更为详细的信息:
在这里,我们可以发现,服务器运行是操作系统是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开始进行扫描:
扫描结果我这里不作分析了,相信都能看的明白。
输入services来查看目标系统上运行的服务信息:
到这里,我们就已经收集到了很多服务器上面的信息了
今天复了一下昨天学习的空闲扫描,发现了一细节上的问题,那就是用Nmap扫描的时候,参数的顺序问题。
Nmap扫描的时候,参数-sI一定要写在最后面,也就是说-sI后面接的是满足空闲扫描条件的主机,否则会出现错误,如下图所示:
在这里,-sI参数写在了前面,所以出现错误了……
其实,昨天利用Nmap进行的只是端口和系统信息方面的扫描,都说Nmap强大,可是仅仅用来扫描端口和系统信息,真的是有点徒有虚名了,因为其它扫描工具也一样可以实现。巧的是,今天看了一个视频,里面讲到了关于Nmap利用漏洞脚本扫描目标主机。以前这个功能我也从没用过,所以亲自试验了一下,又多学会了nmap一项很重要功能。
命令格式:nmap-script=漏洞脚本ip(在-script=漏洞脚本后也可以接其它的参数,也可以不接)。有人就会问了,那么Nmap所使用的漏洞脚本在哪里找呢?这也是我开始的时候很迷惑的地方,但这个视频里提到了,Nmap所用的漏洞脚本在Metasploit的按装目录下,我的是bt5r3,所以我的目录为:/opt/metasploit/common/share/nmap/scripts里。如下图:
看到了吧,我用ls命令查看了一下,有好多漏洞脚本。在试验的过程中,我发现windows下基于smb的漏洞比较多,而且很多视频里讲metaspliot渗透实战中,也基本全都是利用smb漏洞做的演示……呵呵……无语吧?下图是我用Nmap扫描的结果:
上面的第二张图中,明确扫描出了很多可利用的漏洞,但是在实际利用过程中,我发现只有MS08-067可以成功,其它的几个都不行,不知道为什么,这也是很多视频里都用MS08-067来做演示的原因吧……
使用Metasploit进行端口扫描
在Metasploit中不仅能够使用第三方扫描器,而且在其辅助模块中也包含了几款内建的端口扫描器。这些内建的扫描器在很多方面与Metasploit框架进行了融合,在辅助进行渗透攻击方面更具有优势。
利用已攻陷的内网主机获取内网的访问通道并进行攻击,这样的渗透攻击过程通常称为跳板攻击,它使我们能够利用网络内部已攻陷的主机,将攻击数据路由到原本无法到达的目标。
举例来说,假设你攻陷了一台位于防火墙之后使用网络地址转换(NAT)的主机。这台主机使用的是无法从internet直接连接的私有IP地址。如果你希望能够使用metasploit对位于NAT后方的主机进行攻击,那么你可以利用已被攻陷的主机做为跳板,将流量传送到网络内部的主机上。
在Metasploit框架中搜索端口扫描工具的命令:
search portscan
上图中,显示出了扫描端口的模块。
根据需要,可以选择相应的扫描模块对目标进行扫描。我是参照教程来进行试验,教程中使用的是syn扫描模块。
结果也很明显,扫描到了一些开放的端口。
针对性扫描
在渗透测试工作中,我们还可以针对某个已知的可利用的漏洞来对目标系统进行扫描。
1、服务消息块协议扫描
metasploit可以利用它的smb_version模块来遍历一个网络,并获取windows的系统版本号。下面来演示一下:
在上面的结果中,我们可以看见目标系统的详细信息,包括系统类型、版本、机器名字等等……而且扫描结果将保存在metasploit的数据库中,以便后续使用,可以使用db_hosts命令查看数据库中保存的结果。由于我的bt版本是bt5r3,所以db_hosts这个命令被hosts这个命令取代了。
SSH服务器扫描
如果在扫描过程中遇到一些主机运行着SSH(安全shell),你应当对SSH的版本进行识别。SSH是一种安全的协议,但这里的安全仅指数据传输的加密。在Metasploit中可以使用ssh_version模块来识别目标服务器上运行的SSH版本。
这里我没有安装SSH,所以没扫描出来什么结果。
FTP扫描
FTP是一种复杂且缺乏安全性的应用层协议。FTP服务器经常是进入一个目标网络最便捷的途径。在Metasploit可以使用ftp_version模块进行扫描
FTP服务器的版本信息为:MiscrosoftFTP Service 5.0 现在我们使用Metasploit框架中的anonymous模块来检查一下这台FTP服务器是否允许匿名用户登录
可以看到允许匿名用户登录,而且具有READ权限。
简单网管协议扫描(SNMP)
简单网管协议(SNMP)通常用于网络设备中,用来报告带宽利用率、冲突率以及其它信息。然而,一些操作系统也包含SNMP服务器软件,主要用来提供类似CPU利用率、空闲内存以及其它系统状态信息。可访问的SNMP服务器能泄漏关于特定系统相当多的信息,甚至会导致设备被远程攻陷。如果你能得到具有可读/写权限的Cisco路由器SNMP团体字符串,便可以下载整个路由器的配置,对其进行修改,并把传回到路由器中。
Metasploit中包含一个内置的辅助模块scanner/snmp/snmp_enum,它是为SNMP扫描专门设计的。
利用scanner/snmp/snmp_login模块,你可以尝试对一个IP或一段IP使用字典来猜解SNMP团体字符串。
编写自己的扫描器
在Metasploit中缺少很多针对特定应用和服务的扫描模块。不过值得庆幸的是,Metasploit框架拥有很多建立自定义扫描器所需的实用功能。自定义扫描器可以使用Metasploit框架中全部的渗透攻击类和方法,框架还内建了代理服务器支持、安全套接字层(SSL)支持、报告生成以及线程设置等。
Metasploit框架软件的扫描器模块包括各种mixin(混入类),如用于TCP、SMB的渗透攻击mixin,以及集成在Metasploit框架中的辅助扫描mixin。Mixin是为你预定义的函数和调用的代码模块。Auxiliary::Scanner
mixin重载了Auxiliary基类的run方法,在运行时可以使用run_host(IP)、run_range(地址范围),或run_batch(IP)列表文件调用模块的方法,然后对IP地址进行处理。我们可以利用Auxiliary::Scanner调用额外的Metasploit内置功能。
教程中给出了一个简单的TCP扫描器的Ruby脚本,我也亲自测试了一下,脚本功能可以完全实现。需要说明的是我们自己定义的代码存放位置,按我的从教程中的理解是这个自己定义的脚本放在modules文件夹下所对应的各个子文件夹里,MSF就可以自动装载了。我是放在了modules下的Auxiliary/scanner文件夹里面了,进入到MSF里面后,提示Auxiliary从原来的499个变成了500个。下面我给出TCP扫描器的ruby代码:
#Metasploit
require'msf/core'
classMetasploit3 < Msf::Auxiliary
includeMsf::Exploit::Remote::Tcp
includeMsf::Auxiliary::Scanner
def initialize
super(
'Name' =>'My custom TCP scan',
'Version' =>'$Revision:1$',
'Description' =>'My quickscanner',
'Author' =>'Your namehere',
'License' =>MSF_LICENSE
)
register_options(
[
Opt::RPORT(12345)
],self.class)
end
defrun_host(ip)
connect()
sock.puts('helloserver')
data= sock.recv(1024)
print_status("Receviced:#{data}from#{ip}")
disconnect()
end
end
把这个保存一下,我这里按教程中定义的名字一样为simple_tcp.rb,下面我们来验证它:
我们在auxiliary/scanner目录下建立一个1.txt的文本文件,里面随便写点什么,我写的是hello metasploit,这个文件的作用是回复信息给simple_tcp.rb脚本的。然后我们在终端执行,如图所示:
这个简单的扫描器使用Msf::Exploit::Remote::Tcp Mixin处理TCP通信,使用Msf::Auxiliary::Scanner
Mixin继承扫描器所需的各个参数与执行方法。我们还可以通过info auxiliary/scanner/simple_tcp 和show options来进一步理解这个脚本代码的编写方法
今天的内容没什么实质性的东西,都是介绍工具的,而且介绍的也不多,不够全面。算是学习日记凑数吧~:(
漏洞扫描
漏洞扫描器是一种能够自动在计算机、信息系统、网络以及应用软件中寻找和发现安全弱点的程序。它通过网络对目标系统进行探测,向目标系统发送数据,并将找反馈数据与自带的漏洞特征进行匹配,进而列举出目标系统上存在的安全漏洞。
使用漏洞扫描器通常会在网络上产生大量流量,因此如果你不希望被别人发现渗透测试工作踪迹的时候,建议不要使用漏洞扫描器。无论你使用自动还是手工方式,漏洞扫描都是渗透测试工作流程中最为重要的步骤之一。
基本的漏洞扫描
nexpose
nessus
专用漏洞扫描器
当你想要在一个网络上查找某个特定的漏洞时,Metasploit自带的许多辅助模块可以帮助你完成这样的任务。
验证SMB登录(smb_login模块)
使用SMB登录扫描器对大量主机的用户和口令进行猜解。这种扫描会在被扫描的windows主机系统日志中留下痕迹。smb_login模块允许你指定用户名和口令的组合、用户名列表和口令列表的组,或者前两者中各要素的组合(用户名加口令列表,或用户名列表加口令)。
扫描开放的VNC空口令(vnc_none_auth模块)
当扫描到空口令后,可使用vncviewer来连接目标系统。
扫描开放的X11服务器(open_x11)
当扫描到有漏洞的主机后可使用xspy工具来对目标的键盘输入进行记录:/pentest/sniffers/xspy/xspy-display 192.168.230.130:0 -delay 100
利用扫描结果进行自动化攻击(autopwn)
在bt5r3中,已经没有了这个工具.
情报收集是渗透测试流程中的第二个步骤。情报收集的目的是获取渗透目标的准确信息,以了解目标组织的动作方式,确定最佳的进攻路线。如果情报收集工作不够细致,那么你可能会与可利用的系统漏洞或可实施攻击的目标之交臂。
情报收集的工作可能会包含从网页中收集信息、google hacking、为特定的目标的网络拓扑进行完整的扫描映射等,这些工作往往需要较长的时间,会比较考验你的耐性。情报收集工作需要周密的计划、调研,而最重要的是要具备攻击者角度去思考问题的能力。
在开始收集情报工作之前,你应该考虑如何将每一步操作和得到的结果记录下来。
使用被动、间接的信息收集技巧,你可以在不接触到目标系统的情况下挖掘目标信息。举例来说,你可以使用这些技巧确定网络边界情况和网络运维人员,甚至了解到目标网络中使用的操作系统和网站服务器软件的类型。
1、whois查询
说明:查看域名的详细信息
命令格式:
whois 域名/IP
首先通过域名进行一次查询,所得到的结果如下:
在一些大机构中,DNS服务器往往部署在公司内部,可以被作为攻击点,使用针对DNS服务器的区域传送攻击以及其它类似的攻击,攻击者通常能够揭露出一个网络内部及外部的很多信息。在这里,我们可以看到Domain servers为:FIGINS1.DNSPOD.NET 和FIGINS2.DNSPOD.NET,不属于i0415.com所有,所以,我们不能对这些域名服务器进行攻击。但是我们通过whois命令可以得到很多关于这个域名相关的信息,比如域名注册人的信息等等,这在以后的渗透中也有一定的利用价值。
其次,我们获取一下i0415.com这个服务器的IP,然后针对这个IP再进行一次查询,其结果如下:
从这个结果中,我们发现,此服务器的提供商为XRNET,是息壤传媒文化有限公司。
NSLookup工具
为了获取关于服务器的附加信息,我们使用nslookup工具
我们可以看到i0415.com的邮件服务器的DNS指向5 mxdomain.qq.com. 说明邮件服务是由第三方运维的。
主动信息收集
在主动信息收集工作中,我们与目标系统直接交互,从而对其进行更深入的了解。举例来说,我们可以执行端口扫描来确定目标系统开放了哪些端口、运行了哪些服务。但是请注意:如果你在主动信息收集过程中不够小心,那么你很可能会被入侵检测系统(IDS)或入侵防御系统(IPS)给逮住。
使用Nmap进行端口扫描
通过被动信息收集确定了目标的IP范围后,我们可以开始使用端口扫描获取目标开放的端口。端口扫描的过程实际上是逐个对远程主机的端口发起连接,从而确定哪些端口是开放的。
Nmap是一款强大的扫描工具,其参数及应用技巧非常多,在这里,只用了一些常用的选项
1、-sS 这个选项是执行一次隐秘的TCP扫描,以确定某个特定的TCP端口是否开放
2、-Pn 这个选项是告诉nmap不要使用ping命令预先判断主机是否存活,而是默认所有主机都是存活状态。
现在来扫描一下
我们看到,主机i0415.com开放了很多端口以及对应的服务。
为了获取更多的信息,可以尝试使用-A选项,它将尝试进行深入的服务枚举和旗标获取,这些能够为你提供目标系统更多的细节信息。
下面加上-A选项再进行一次扫描,扫描结果除了上次的端口信息外,还多了以下关于服务器的更为详细的信息:
在这里,我们可以发现,服务器运行是操作系统是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开始进行扫描:
扫描结果我这里不作分析了,相信都能看的明白。
输入services来查看目标系统上运行的服务信息:
到这里,我们就已经收集到了很多服务器上面的信息了
今天复了一下昨天学习的空闲扫描,发现了一细节上的问题,那就是用Nmap扫描的时候,参数的顺序问题。
Nmap扫描的时候,参数-sI一定要写在最后面,也就是说-sI后面接的是满足空闲扫描条件的主机,否则会出现错误,如下图所示:
在这里,-sI参数写在了前面,所以出现错误了……
其实,昨天利用Nmap进行的只是端口和系统信息方面的扫描,都说Nmap强大,可是仅仅用来扫描端口和系统信息,真的是有点徒有虚名了,因为其它扫描工具也一样可以实现。巧的是,今天看了一个视频,里面讲到了关于Nmap利用漏洞脚本扫描目标主机。以前这个功能我也从没用过,所以亲自试验了一下,又多学会了nmap一项很重要功能。
命令格式:nmap-script=漏洞脚本ip(在-script=漏洞脚本后也可以接其它的参数,也可以不接)。有人就会问了,那么Nmap所使用的漏洞脚本在哪里找呢?这也是我开始的时候很迷惑的地方,但这个视频里提到了,Nmap所用的漏洞脚本在Metasploit的按装目录下,我的是bt5r3,所以我的目录为:/opt/metasploit/common/share/nmap/scripts里。如下图:
看到了吧,我用ls命令查看了一下,有好多漏洞脚本。在试验的过程中,我发现windows下基于smb的漏洞比较多,而且很多视频里讲metaspliot渗透实战中,也基本全都是利用smb漏洞做的演示……呵呵……无语吧?下图是我用Nmap扫描的结果:
上面的第二张图中,明确扫描出了很多可利用的漏洞,但是在实际利用过程中,我发现只有MS08-067可以成功,其它的几个都不行,不知道为什么,这也是很多视频里都用MS08-067来做演示的原因吧……
使用Metasploit进行端口扫描
在Metasploit中不仅能够使用第三方扫描器,而且在其辅助模块中也包含了几款内建的端口扫描器。这些内建的扫描器在很多方面与Metasploit框架进行了融合,在辅助进行渗透攻击方面更具有优势。
利用已攻陷的内网主机获取内网的访问通道并进行攻击,这样的渗透攻击过程通常称为跳板攻击,它使我们能够利用网络内部已攻陷的主机,将攻击数据路由到原本无法到达的目标。
举例来说,假设你攻陷了一台位于防火墙之后使用网络地址转换(NAT)的主机。这台主机使用的是无法从internet直接连接的私有IP地址。如果你希望能够使用metasploit对位于NAT后方的主机进行攻击,那么你可以利用已被攻陷的主机做为跳板,将流量传送到网络内部的主机上。
在Metasploit框架中搜索端口扫描工具的命令:
search portscan
上图中,显示出了扫描端口的模块。
根据需要,可以选择相应的扫描模块对目标进行扫描。我是参照教程来进行试验,教程中使用的是syn扫描模块。
结果也很明显,扫描到了一些开放的端口。
针对性扫描
在渗透测试工作中,我们还可以针对某个已知的可利用的漏洞来对目标系统进行扫描。
1、服务消息块协议扫描
metasploit可以利用它的smb_version模块来遍历一个网络,并获取windows的系统版本号。下面来演示一下:
在上面的结果中,我们可以看见目标系统的详细信息,包括系统类型、版本、机器名字等等……而且扫描结果将保存在metasploit的数据库中,以便后续使用,可以使用db_hosts命令查看数据库中保存的结果。由于我的bt版本是bt5r3,所以db_hosts这个命令被hosts这个命令取代了。
SSH服务器扫描
如果在扫描过程中遇到一些主机运行着SSH(安全shell),你应当对SSH的版本进行识别。SSH是一种安全的协议,但这里的安全仅指数据传输的加密。在Metasploit中可以使用ssh_version模块来识别目标服务器上运行的SSH版本。
这里我没有安装SSH,所以没扫描出来什么结果。
FTP扫描
FTP是一种复杂且缺乏安全性的应用层协议。FTP服务器经常是进入一个目标网络最便捷的途径。在Metasploit可以使用ftp_version模块进行扫描
FTP服务器的版本信息为:MiscrosoftFTP Service 5.0 现在我们使用Metasploit框架中的anonymous模块来检查一下这台FTP服务器是否允许匿名用户登录
可以看到允许匿名用户登录,而且具有READ权限。
简单网管协议扫描(SNMP)
简单网管协议(SNMP)通常用于网络设备中,用来报告带宽利用率、冲突率以及其它信息。然而,一些操作系统也包含SNMP服务器软件,主要用来提供类似CPU利用率、空闲内存以及其它系统状态信息。可访问的SNMP服务器能泄漏关于特定系统相当多的信息,甚至会导致设备被远程攻陷。如果你能得到具有可读/写权限的Cisco路由器SNMP团体字符串,便可以下载整个路由器的配置,对其进行修改,并把传回到路由器中。
Metasploit中包含一个内置的辅助模块scanner/snmp/snmp_enum,它是为SNMP扫描专门设计的。
利用scanner/snmp/snmp_login模块,你可以尝试对一个IP或一段IP使用字典来猜解SNMP团体字符串。
编写自己的扫描器
在Metasploit中缺少很多针对特定应用和服务的扫描模块。不过值得庆幸的是,Metasploit框架拥有很多建立自定义扫描器所需的实用功能。自定义扫描器可以使用Metasploit框架中全部的渗透攻击类和方法,框架还内建了代理服务器支持、安全套接字层(SSL)支持、报告生成以及线程设置等。
Metasploit框架软件的扫描器模块包括各种mixin(混入类),如用于TCP、SMB的渗透攻击mixin,以及集成在Metasploit框架中的辅助扫描mixin。Mixin是为你预定义的函数和调用的代码模块。Auxiliary::Scanner
mixin重载了Auxiliary基类的run方法,在运行时可以使用run_host(IP)、run_range(地址范围),或run_batch(IP)列表文件调用模块的方法,然后对IP地址进行处理。我们可以利用Auxiliary::Scanner调用额外的Metasploit内置功能。
教程中给出了一个简单的TCP扫描器的Ruby脚本,我也亲自测试了一下,脚本功能可以完全实现。需要说明的是我们自己定义的代码存放位置,按我的从教程中的理解是这个自己定义的脚本放在modules文件夹下所对应的各个子文件夹里,MSF就可以自动装载了。我是放在了modules下的Auxiliary/scanner文件夹里面了,进入到MSF里面后,提示Auxiliary从原来的499个变成了500个。下面我给出TCP扫描器的ruby代码:
#Metasploit
require'msf/core'
classMetasploit3 < Msf::Auxiliary
includeMsf::Exploit::Remote::Tcp
includeMsf::Auxiliary::Scanner
def initialize
super(
'Name' =>'My custom TCP scan',
'Version' =>'$Revision:1$',
'Description' =>'My quickscanner',
'Author' =>'Your namehere',
'License' =>MSF_LICENSE
)
register_options(
[
Opt::RPORT(12345)
],self.class)
end
defrun_host(ip)
connect()
sock.puts('helloserver')
data= sock.recv(1024)
print_status("Receviced:#{data}from#{ip}")
disconnect()
end
end
把这个保存一下,我这里按教程中定义的名字一样为simple_tcp.rb,下面我们来验证它:
我们在auxiliary/scanner目录下建立一个1.txt的文本文件,里面随便写点什么,我写的是hello metasploit,这个文件的作用是回复信息给simple_tcp.rb脚本的。然后我们在终端执行,如图所示:
这个简单的扫描器使用Msf::Exploit::Remote::Tcp Mixin处理TCP通信,使用Msf::Auxiliary::Scanner
Mixin继承扫描器所需的各个参数与执行方法。我们还可以通过info auxiliary/scanner/simple_tcp 和show options来进一步理解这个脚本代码的编写方法
今天的内容没什么实质性的东西,都是介绍工具的,而且介绍的也不多,不够全面。算是学习日记凑数吧~:(
漏洞扫描
漏洞扫描器是一种能够自动在计算机、信息系统、网络以及应用软件中寻找和发现安全弱点的程序。它通过网络对目标系统进行探测,向目标系统发送数据,并将找反馈数据与自带的漏洞特征进行匹配,进而列举出目标系统上存在的安全漏洞。
使用漏洞扫描器通常会在网络上产生大量流量,因此如果你不希望被别人发现渗透测试工作踪迹的时候,建议不要使用漏洞扫描器。无论你使用自动还是手工方式,漏洞扫描都是渗透测试工作流程中最为重要的步骤之一。
基本的漏洞扫描
nexpose
nessus
专用漏洞扫描器
当你想要在一个网络上查找某个特定的漏洞时,Metasploit自带的许多辅助模块可以帮助你完成这样的任务。
验证SMB登录(smb_login模块)
使用SMB登录扫描器对大量主机的用户和口令进行猜解。这种扫描会在被扫描的windows主机系统日志中留下痕迹。smb_login模块允许你指定用户名和口令的组合、用户名列表和口令列表的组,或者前两者中各要素的组合(用户名加口令列表,或用户名列表加口令)。
扫描开放的VNC空口令(vnc_none_auth模块)
当扫描到空口令后,可使用vncviewer来连接目标系统。
扫描开放的X11服务器(open_x11)
当扫描到有漏洞的主机后可使用xspy工具来对目标的键盘输入进行记录:/pentest/sniffers/xspy/xspy-display 192.168.230.130:0 -delay 100
利用扫描结果进行自动化攻击(autopwn)
在bt5r3中,已经没有了这个工具.
相关文章推荐
- OSX10.10 Yosemite安装Metasploit
- 使用ASP.Net WebAPI构建REST服务——客户端
- 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
- C#语法糖之 session操作类 asp.net
- Aspose.Word 操作word表格的行 插入行 添加行
- Aspose.Word 操作word表格的行 插入行 添加行
- ASP.NET中使用Excel导入数据到数据库
- Aspose.Words.Tables.Row类操作word表格行
- Aspose.Words.Tables.Row类操作word表格行
- asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
- ASP.NET forms凭据设置和跳转的几种方法
- Asp.net mvc5开源项目"超级冷笑话"
- Visual Studio C#的winform/webform/asp.net控件命名规范
- asp.net页面去调用通过SSL加密的webservice报错
- asp.net mvc4 简单使用Autofac依赖注入小结
- A Reusable Aspect for Memory Allocation Checking
- ASP.NET 实现伪静态网页方法
- ASP.NET之控件
- asp.net MVC4.0中几种控制器的区别
- Asp.Net MVC 路由 - Asp.Net 编程 - 张子阳