欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Metasploit渗透学习日记四

程序员文章站 2022-03-11 15:19:19
SSH服务器扫描 如果在扫描过程中遇到一些主机运行着SSH(安全shell),你应当对SSH的版本进行识别。SSH是一种安全的协议,但这里的安全仅指数据传输的加密。在Metasploit中可...
SSH服务器扫描

如果在扫描过程中遇到一些主机运行着SSH(安全shell),你应当对SSH的版本进行识别。SSH是一种安全的协议,但这里的安全仅指数据传输的加密。在Metasploit中可以使用ssh_version模块来识别目标服务器上运行的SSH版本。

Metasploit渗透学习日记四

这里我没有安装SSH,所以没扫描出来什么结果。

 

FTP扫描

FTP是一种复杂且缺乏安全性的应用层协议。FTP服务器经常是进入一个目标网络最便捷的途径。在Metasploit可以使用ftp_version模块进行扫描

Metasploit渗透学习日记四

FTP服务器的版本信息为:MiscrosoftFTP Service 5.0 现在我们使用Metasploit框架中的anonymous模块来检查一下这台FTP服务器是否允许匿名用户登录

Metasploit渗透学习日记四

可以看到允许匿名用户登录,而且具有READ权限。

 

简单网管协议扫描(SNMP)

简单网管协议(SNMP)通常用于网络设备中,用来报告带宽利用率、冲突率以及其它信息。然而,一些操作系统也包含SNMP服务器软件,主要用来提供类似CPU利用率、空闲内存以及其它系统状态信息。可访问的SNMP服务器能泄漏关于特定系统相当多的信息,甚至会导致设备被远程攻陷。如果你能得到具有可读/写权限的Cisco路由器SNMP团体字符串,便可以下载整个路由器的配置,对其进行修改,并把传回到路由器中。

Metasploit中包含一个内置的辅助模块scanner/snmp/snmp_enum,它是为SNMP扫描专门设计的。

Metasploit渗透学习日记四

利用scanner/snmp/snmp_login模块,你可以尝试对一个IP或一段IP使用字典来猜解SNMP团体字符串。

Metasploit渗透学习日记四

 

Metasploit渗透学习日记四

 

编写自己的扫描器

在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代码:

 

  1. #Metasploit   
  2.   
  3. require'msf/core'  
  4.   
  5. classMetasploit3 < Msf::Auxiliary  
  6.   
  7. includeMsf::Exploit::Remote::Tcp  
  8.   
  9. includeMsf::Auxiliary::Scanner  
  10.   
  11.     def initialize  
  12.   
  13.         super(  
  14.   
  15.              'Name' =>'My custom TCP scan',  
  16.   
  17.              'Version' =>'$Revision:1$',  
  18.   
  19.              'Description' =>'My quickscanner',  
  20.   
  21.              'Author' =>'Your namehere',  
  22.   
  23.              'License' =>MSF_LICENSE  
  24.   
  25.              )  
  26.   
  27.     register_options(  
  28.   
  29.              [  
  30.   
  31.                 Opt::RPORT(12345)  
  32.   
  33.              ],self.class)  
  34.   
  35.     end  
  36.   
  37.     defrun_host(ip)  
  38.   
  39.              connect()  
  40.   
  41.              sock.puts('helloserver')  
  42.   
  43.              data= sock.recv(1024)  
  44.   
  45.              print_status("Receviced:#{data}from#{ip}")  
  46.   
  47.              disconnect()  
  48.   
  49.      end  
  50.   
  51. end  

把这个保存一下,我这里按教程中定义的名字一样为simple_tcp.rb,下面我们来验证它:

我们在auxiliary/scanner目录下建立一个1.txt的文本文件,里面随便写点什么,我写的是hello metasploit,这个文件的作用是回复信息给simple_tcp.rb脚本的。然后我们在终端执行,如图所示:

Metasploit渗透学习日记四

这个简单的扫描器使用Msf::Exploit::Remote::Tcp Mixin处理TCP通信,使用Msf::Auxiliary::Scanner Mixin继承扫描器所需的各个参数与执行方法。我们还可以通过info auxiliary/scanner/simple_tcp 和show options来进一步理解这个脚本代码的编写方法