護網自動化腳本

聲明

由於傳播、利用此文所提供的信息而造成的任何直接或者間接的後果及損失,均由使用者本人負責,雷神眾測以及文章作者不為此承擔任何責任。

雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用於商業目的。

前言

為了護網需要寫了這麼個小腳本,本文主要介紹下這個自動化工具的實現思路,以及這個工具的使用方法。

No.1 本文主要內容

1、Masscan與NMAP聯動

2、掃描結果解析工具

3、幾款開源工具 Eyewitness、tomcat-weak-password-scanner、漏洞發現、brutespray

NMAP是滲透測試人員廣泛使用的老牌開源工具,功能強大,但掃描速度較慢。Masscan號稱是世界上最快的掃描器,但功能較單一。很多經驗豐富的滲透大佬都會將這兩個東西結合在一起使用。

我們在紅隊前期充分收集目標企業的IP資產後,即可以使用CIDR等IP的表示方法導入掃描器。目前暫不支持目標域名的導入方式有兩個原因:

1、DNS信息收集的過程有點慢

2、為了儘量保證精準度,暫時不想加入太多功能

在開始之前先介紹一下Masscan的設置,--rate這個參數代表 packets/second 每秒發送的數據包,這個和帶寬沒啥關係。

Masscan -p1-65535 10.0.0.0/24 --rate 100000 -oX scan.xml

--rate : specifies the desired rate for trans‐

mitting packets. This can be very small numbers, like 0.1 for

transmitting packets at rates of one every 10 seconds, for very

large numbers like 10000000, which attempts to transmit at 10 mil‐

lion packets/second. In my experience, Windows and can do 250 thou‐

sand packets per second, and latest versions of Linux can do 2.5

million packets per second. The PF_RING driver is needed to get to

25 million packets/second.

那麼如何計算出適用於自己帶寬的--rate設置呢?我算了一下Masscan的掃描一個數據包是68byte:護網自動化腳本

Masscan的一個包是68字節,如果我們每秒鐘要發送10w/秒,就需要6.48M,68*100000/1024/1024=6.48M以上的帶寬。通常windows每秒能發25W/秒,linux250W/秒。PF_RING可以達到2500W/秒。我在腳本中使用的是--rate 30000,也就是需要1M的帶寬。

下面說說VPS的相關選擇,在國內的阿里雲/騰訊雲雖然帶寬足夠,但是我發現機房使用Masscan等發包太快的工具是會導致丟包的,效果一點不好。而國外的服務器過於擁擠,通常一般的線路丟包有點嚴重,但一般目標企業的網絡線路都還可以,所以我選擇了不限制使用Masscan的國外vps。

No.2 Masscan與NMAP聯動

BASH腳本:

sudo masscan -p1-65535 --rate 30000 --open -iL $TARGET -oX $NRESULTS_PATH/masscan.xml

sudo rm $WORKING_DIR/paused.conf

open_ports=$(cat $NRESULTS_PATH/masscan.xml | grep portid | cut -d """ -f 10 | sort -n | uniq | paste -sd,)

cat $NRESULTS_PATH/masscan.xml | grep portid | cut -d """ -f 4 | sort -V | uniq > $WORKING_DIR/nmap_targets.tmp

sudo nmap -sVC -p $open_ports --open -v -Pn -n -T4 -iL $WORKING_DIR/nmap_targets.tmp -oX $NRESULTS_PATH/nmap.xml

sudo rm $WORKING_DIR/nmap_targets.tmp

xsltproc -o $NRESULTS_PATH/nmap-bootstrap.html $WORKING_DIR/bootstrap-nmap.xsl $NRESULTS_PATH/nmap.xml

將Masscan的掃描結果中的端口提取出來放到放到變量open_ports,將IP地址提取放到臨時文件nmap_targets.tmp中。然後使用nmap -p -iL 調用端口/IP。最後使用xsltproc工具,根據bootstrap-nmap.xsl將nmap的掃描結果生成為方便查看/搜索的html格式。

No.3 掃描結果解析工具

有了nmap的xml,就可以提取出來裡面的信息,進行下一步自動化測試了。在自動化測試之前需要了解一下這個開源的nmap結果解析工具nmap-parse-output:

檢查並安裝Nmap-parse-output解析工具:

if [ -d "nmap-parse-output" ];then

echo -e "${BLUE}[-] Latest version of Nmap-parse-output already installed. Skipping...${RESET}"

else

echo -e "${GREEN}[+] Installing nmap-parse-output.${RESET}"

git clone https://github.com/ernw/nmap-parse-output

fi

提取http/https的url

nmap-parse-output nmap.xml http-ports護網自動化腳本nmap-parse-output nmap.xml tls-ports | awk '{print "https://"$1}'
護網自動化腳本

提取服務/產品名稱

nmap-parse-output nmap.xml service-names護網自動化腳本

nmap-parse-output nmap.xml product

護網自動化腳本

提取所有Tomcat URL

nmap-parse-output nmap.xml search-product "Apache Tomcat"護網自動化腳本

提取title

nmap-parse-output nmap.xml http-title"護網自動化腳本我們把nmap識別出來的http/https的端口、以及所有Apache Tomcat應用全部導入到臨時文件url.tmp和ip.txt/port.txt中方便下一步的Web自動化測試,再保存http-title、product、service-names方便查看,瞭解目標信息。

$WORKING_DIR/nmap-parse-output/nmap-parse-output $NRESULTS_PATH/nmap.xml http-ports | tee url.tmp

$WORKING_DIR/nmap-parse-output/nmap-parse-output $NRESULTS_PATH/nmap.xml tls-ports | awk '{print "https://"$1}'|tee -a url.tmp

cat url.tmp |sort|uniq >url_list && rm -rf url.tmp

$WORKING_DIR/nmap-parse-output/nmap-parse-output $NRESULTS_PATH/nmap.xml service-names > $NRESULTS_PATH/service-names.txt

$WORKING_DIR/nmap-parse-output/nmap-parse-output $NRESULTS_PATH/nmap.xml product > $NRESULTS_PATH/product.txt

IFS_old=$IFS;IFS=


分享到:


相關文章: