接着講上節的內容,上節中提到了一個時間優化的問題是使用參數-n,通過不解析地址來進行優化時間的,但是優化時間的方法還有很多,比如說我們可以通過時間優化(0-5),指定單位時間內的探針數,設置組的大小
時間優化(0-5)
時間優化的參數是(-T0~5),最快的掃描速度為-T5,最慢的掃描速度為-T0,實現的原理:通過設置各個端口的掃描周期,從而來控制整個掃描的時間,比如說T0各個端口的掃描周期大約為5分鍾,而T5各個端口的掃描周期為5ms,但是過快的掃描也是有缺點的,掃描的周期過快,會很容易被防火牆和IDS發現並記錄,因為防火牆大多數會將端口周期過段識別為掃描從而屏蔽掉,如果不對其進行設置的話,默認值為T4
--min-hostgroup/--max-hostgroup size 設置組的大小
--min-parallelism/--max-parellelism time指定時間內的探針數
具體的使用方法就不做介紹了,有興趣的話,可以試一試研究一下變知道怎樣使用了
在上節中還講漏了一個知識點獲取指定端口的參數(-p),這個參數的意義在於對於我們有時候只想監控某個特定的端口的狀態,這個參數是即為有用的,可以節約了不少的時間
例如:監控nmap.org的80端口的狀態
命令:nmap -p 80 nmap.org
接下來就進行這一節的主要內容,如果上節沒有了解清楚的同學,建議返回上節理解清楚再開始這一節
這一節我們就來講講怎樣規避被防火牆或IDS發現的風險以及操作的步驟
上節中我們假設的是在一個網絡安全較為薄弱的情況下就可以正常進行的,但是正常的網站或者個人都是對安全有一定的防范的,網站中基本上都會存在安全狗、防火牆等規避風險的措施,個人電腦也會安裝各種安全軟件,所以對於做掃描工作的人來說,我們不知道通過掃描獲取相關的信息,同時也要保護好自己的隱私,比如IP等信息,防止被防火牆或者是網絡日志所記錄下來
在講這節之前我們來了解一下什么事防火牆?
防火牆的原理圖:
防火牆是通過在客戶端與服務器端之間搭建一個監控(運行的原理有點像Fiddler),通過對特定開放的端口進行屏蔽掉,從而達到網絡安全的作用,防火牆在其功能上也會有一些其他的功能,這個要看防火牆的實際情況
規避的基本思路是:
1、通過偽造訪問的IP地址
2、通過對發送信息進行處理
3、將風險進行嫁接
4、其他的技術
偽造IP地址
偽造IP地址有很多種方法,可以通過下面的這幾種方法是我認為比較常見的希望大家能喜歡
一、誘餌掃描(-D)
誘餌掃描的工作原理是:通過偽造大量的IP與自己真實的IP一起訪問網站,從而混淆管理員的判斷,其中問你們使用ME來代表自己的真實地址
例子:虛構一個IP為203.88.163.34與自己的真實地址去掃描nmap.org
命令:nmap -F -D 203.88.163.34,ME nmap.org
運行的結果如下:
但是在使用偽造的IP的同時,我們要注意要對偽造的IP進行主機發現,來判斷主機是否存在,是否開啟,因為有些防火牆策略是有這樣規定的:如果訪問的IP主機是關閉或者是為空的話,就講所有的返回內容過濾掉。試想一下,如果主機關閉或者是不存在,那么怎么可能會發送掃描的命令給目標主機呢?
要找到開啟的目標主機理論上是沒有什么要求的,但是為了節約時間,我建議是直接使用某個網站的IP地址,這樣有一下的幾個好處
1、IP地址容易獲得,一般的網站是通過ping參數就可以直接獲取該網站的IP地址,除了一些不讓進行Ping操作的網站除外
2、容易保證IP的正常開啟,因為誰家的網站會經常關閉服務器,服務器一般是總是開啟的
二、源地址欺騙(-S)
源地址欺騙的原理是:通過將自己的IP偽裝成為其他的IP去掃描目標主機從而騙過目標主機的追蹤
假設要偽裝成為1.1.1.1:參數-S 1.1.1.1 使用1.1.1.1進行掃描,讓防火牆誤以為是來自1.1.1.1的掃描行為
在使用的時候要注意與-e進行使用,因為除了制定要偽裝成為的對象IP外,還要指定返回的IP地址
三、時間優化(-T)
通過時間優化也提高通過防火牆和IDS的通過率
發送信息處理
指定使用分片(-f)
分片的工作原理是:將可疑的探測包進行分片處理(例如將TCP包拆分成多個IP包發送過去),某些簡單的防火牆為了加快處理速度可能不會進行重組檢查,以此避開其檢查。
將風險責任進行嫁接
空閑掃描(-sI):
這里有一篇比較全面的文章http://www.2cto.com/Article/201505/396631.html 再次就不多做介紹
其他的相關技術:
有MAC偽造技術等
防火牆/IDS躲避和哄騙
-f; --mtu value 指定使用分片、指定數據包的MTU.
-D decoy1,decoy2,ME 使用誘餌隱蔽掃描
-S IP-ADDRESS 源地址欺騙
-e interface 使用指定的接口 -g/ --source-port PROTNUM 使用指定源端口 --proxies url1,[url2],... 使用HTTP或者SOCKS4的代理 --data-length NUM 填充隨機數據讓數據包長度達到NUM --ip-options OPTIONS 使用指定的IP選項來發送數據包 --ttl VALUE 設置IP time-to-live域 --spoof-mac ADDR/PREFIX/VEBDOR MAC地址偽裝 --badsum 使用錯誤的checksum來發送數據包