天天看點

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代碼:

#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腳本的。然後我們在終端執行,如圖所示:

Metasploit滲透學習日記四

這個簡單的掃描器使用Msf::Exploit::Remote::Tcp Mixin處理TCP通信,使用Msf::Auxiliary::Scanner Mixin繼承掃描器所需的各個參數與執行方法。我們還可以通過info auxiliary/scanner/simple_tcp 和show options來進一步了解這個腳本代碼的編寫方法。

-------------------------------------Metasploit滲透學習日記四----------------------------------------