使用HTML5和JS-Recon進行端口掃描

這是一個發表在BlackHat大會上的最新話題。HTML5有兩個API可以實現跨域的調用:Cross Origin Requests和WebSockets。JavaScript可使用其與任何IP、任意端口(被阻止的除外)進行連接,這使其成爲端口掃描的一個選擇。

這兩個API都包含readyState屬性,它表示在給定時間內的連接狀態。每個特定的readyState值的持續時長很大程度上是基於到目標端口連接的狀態。這表明,通過觀察這種行爲的不同,可以判斷端口是open、closed或filterd狀態。對於Cross Origin Requests來說readyState爲1的持續時間,WebSockets是readyState爲0的時間。

我對不同的端口狀態的持續時間做了標定,數據如下圖所示。這些數據只在內部網絡適用,當在掃描一個外網IP時,需要將網絡延時考慮進去。


因爲這種掃描不是發生在Socket級別,而是在應用層級別的掃描,因此成功率還依賴於目標端口上運行程序的特性。當請求被髮到一個特定類型的程序時,該程序會讀取該請求,保持靜默,並保持Socket的開放,可能是期待更多的輸入數據或是所期望格式的輸入。像這種類型的程序,它的端口狀態是無法確定的。

因爲即使是關閉狀態的端口也能夠識別,所以可以將這項技術擴展到實現網絡掃描和IP檢測中。我寫了一個叫JS-Recon的工具來完成這些事情。更多有關JS-Recon的工作可以點擊這裏。這些技術暫時只支持Windows系統,*nix系統上無法判斷關閉狀態的端口,時間特徵與Windows下有很大不同。


原文:http://blog.andlabs.org/2010/12/port-scanning-with-html5-and-js-recon.html

發佈了83 篇原創文章 · 獲贊 39 · 訪問量 70萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章