編寫漏洞掃瞄器
一、漏洞掃瞄器基本原理:
編寫漏洞掃瞄器探查遠端伺服器上可能存在的具有安全隱患的檔案是否存在,它的socket建立過程和上面的埠掃瞄器是相同的,所不同的是漏洞掃瞄器通常使用80埠,然後對這個埠傳送乙個get檔案的請求,伺服器接收到請求會返回檔案內容,如果檔案不存在則返回乙個錯誤提示,通過接收返回內容可以判斷檔案是否存在。傳送和接收資料需要使用函式send()和recv(),另外對流中存在的字串進行判斷需要使用函式strstr(),這除了需要具備socket函式庫的知識以外,還需要一些有關string函式庫的知識。
二、簡單的漏洞掃瞄源**:
/********************/
/* 埠掃瞄器 源***/
這段**可以檢測六個漏洞,讀者可以根據自己的需要增加漏洞掃瞄的數量。程式實現的很簡潔,概括起來這段程式完成了一下四項工作:
1、連線目標主機server;
2、向目標主機傳送get請求;
3、接收目標返回資料;
4、根據返回資料判斷檔案是否存在。
三、返回數值:
讀者也許不明白,程式究竟依靠返回的什麼數值判斷檔案是否存在的呢?現在讓我們修改一下程式,仔細看一下返回來的究竟是什麼內容,對上面的程式進行如下修改:
/************************/
/* 檢測檔案頭內容 源***/
}程式將檢測檔案進行了修改,指對「/index.htm」和「/noindex.htm」進行判斷,因為index.htm是預設的頁面,所以大多數情況下是存在於伺服器上的,而noindex.htm則是沒有找到檔案的情況,通過對接收回來的流buff的printf()可以清楚地看到返回來的究竟是什麼東西。
通過執行程式讀者會看到類似下面的內容:
這個htm程式的頭部說明,返回內容還會有很多,不過下面的內容就是正常的htm檔案了,這個頭是被隱藏的,所以大多數使用者在平時使用電腦過程中,不會發現htm檔案的開始部位,還有乙個這樣的內容說明。這個頭裡面包含了很多資訊,例如第一行的200 ok就是檔案存在的意思,如果是404 not found那麼就是檔案不存在,也就是這個內容才能夠讓漏洞掃瞄器正常工作,現在讀者應該明白為什麼我們編寫的漏洞掃瞄器裡面由foundmsg=http/1.1 200 ok的語句了吧。
通過這個頭還可以了解到對方伺服器使用的是什麼系統,例如:server: apache/1.3.12 (unix)就是我們掃瞄的伺服器使用的系統型別。
編寫自己的掃瞄器
1 先cd到scanner目錄 cd usr share metasploit framework modules auxiliary scanner 2.寫簡單的tcp掃瞄指令碼,以下是用ruby語言寫的 意思是連線遠端的12345埠,並傳送hello world字串 metasploit req...
Python打造漏洞掃瞄器 10
這是掃瞄器的最後一章,主要說說掃瞄器的使用方式以及對未來的展望。這個掃瞄器是python 2.7寫的,開發在windows平台上,測試在linux上 實驗樓的實驗平台 經過測試,在這兩個系統上都能夠執行。另外,只需要python安裝兩個庫就可以。在pip上的安裝指令 pip install requ...
埠掃瞄器編寫 python
今天來編寫乙個 埠掃瞄器,掃瞄某個主機 開放的埠 對某個埠進行 socket 連線,如果連線成功,則代表 該埠有效,可以根據埠,判斷 是 哪個服務,很多情況下,都是很準確的。一共有 1 65535 個埠 其實0也可以用 coding utf 8 import socket socket.setdef...