簡介

閑來沒事,做一個自動化recon的工具,簡化操作流程。可以對域名或ip進行whois查詢,dns記錄查詢,ip端口掃描,http屏幕快照。

最終生成markdown格式的報告,可使用Obsidian或vscode的markdown notes插件打開,借助雙向鏈接功能,方便跳轉查看。

依賴的程序

amass

子域名查找 下載地址

masscan

掃描全部端口,發現開放端口。

nmap

服務掃描,針對masscan發現的端口進行具體的服務掃描。

aquatone

屏幕快照,由于需要對每個目標(域名或ip)單獨進行快照,然后再合并,fork原版做了簡單的修改,提供了session保存與合并的功能,下載地址: aquatone

安裝程序

使用python3環境:

pip install norecon

使用ansible批量安裝

不喜歡手動安裝的話,可以使用ansible進行自動化安裝,使用這個playbooks倉庫:

git clone 項目到本地,配置好ansible,設置好主機項,然后執行:

ansible-playbook norecon.yml

即可在指定的主機上安裝好依賴程序及norecon包。

使用方法

命令行參數:

usage: norecon [-h] [—amass-timeout AMASS_TIMEOUT] [—ip-scan-timeout IP_SCAN_TIMEOUT]
[—screenshot-timeout SCREENSHOT_TIMEOUT] [—masscan-rate MASSCAN_RATE]
[—scan-cdn-ip] [—overwrite] [-ss SCREEN_SESSION] [-e [EXCLUDE]] -p
PROJECT_DIR [-t [TARGETS]] [-v [VERBOSE]]
[target [target …]]
針對目標進行recon
positional arguments:
target        
要掃描的目標,可以是域名或ip地址
optional arguments:
-h, —help      show this help message and exit
—amass-timeout AMASS_TIMEOUT
amass掃描超時時間(分) (default: 60)
—ip-scan-timeout IP_SCAN_TIMEOUT
ip掃描超時時間(秒) (default: 600)
—screenshot-timeout SCREENSHOT_TIMEOUT
屏幕快照超時時間(秒) (default: 1000)
—masscan-rate MASSCAN_RATE
masscan掃描速率 (default: 1000)
—scan-cdn-ip     
是否對cdn ip進行端口掃描 (default: False)
—overwrite      
是否強制重新掃描(如果為False,則掃描過的項目不再重新掃描) (default: False
)
-ss SCREEN_SESSION, —screen-session SCREEN_SESSION
輸出屏幕快照的session文件名 (default: screen)
-e [EXCLUDE], —exclude [EXCLUDE]
包含排除列表的文件,可以是域名或ip,支持glob格式匹配(*?)
-p PROJECT_DIR, —project-dir PROJECT_DIR
項目根目錄
-t [TARGETS], —targets [TARGETS]
輸入的目標
-v [VERBOSE], —verbose [VERBOSE]
日志輸出級別(0,1,2) (default: 0)

最簡單的用法:

norecon -p 項目保存目錄 域名或ip

如果域名比較多,可以增大—amass-timeout參數,以收集更多的子域名。

比如測試yahoo,支持一級域名或子域名。

norecon -v -p yahoo --amass-timeout 60 yahoo.com engadget.com login.aol.com

如果中途中斷,繼續執行以上命令,會自動跳過已經掃描的部分.可使用—overwrite強制重新掃描。

也可以在項目執行完畢后再添加ip或域名,或只進行ip掃描(支持cidr子網或ip范圍):

norecon -v -p yahoo 202.165.107.00/28 119.161.10.15-119.161.10.40 106.10.236.40

掃描完成后,結果在項目目錄下,按whois,domain,ip分類存放為json格式,可以自己進行分析,

也可以生成markdown格式的報告:

noreport -v yahoo

項目目錄下的screen/screen.html為aquatone的輸出報告,包含了所有屏幕快照的域名或ip。

報告截圖

生成報告后使用Obsidian打開項目目錄,查看報告結果 ,主要是方便跳轉和查看反向引用。

附帶的單獨工具

noresolvers

域名解析服務器查詢工具,根據可用性和超時時間獲取域名解析服務器列表.按響應時間排序。

使用方法,可用性為0.9,響應時間為3秒內,輸出解析服務器列表到resolve:

noresolvers -r 0.9 -t 3 -o resolve

domainvalid

檢測一級域名是否有效,即含有ns記錄,是正常使用的一級域名。

可以指定resolvers文件,即noresolvers輸出的域名解析服務器文件。

norecords

獲取一個域名的所有解析記錄。

wildomains

獲取一個通配域名的所有一級域名,比如baidu.*,會查找所有可能的tld后綴,找到還在使用的一級域名.

可以使用tld文件指定要查找的后綴,如果不指定,會查找大量tld,速度比較慢。

nosubsfinder

從網頁查詢子域名。

noamass

調用amass查詢子域名。

nowhois

whois查詢域名或ip。

nonmap

調用masscan和nmap進行服務掃描。

noffuf

調用ffuf進行路徑爆破。

noscreen

調用aquatone進行屏幕快照。

nowx

發送微信消息,借助微信消息推送服務發送消息,可以實現命令執行完畢后發送微信消息通知。

第一次運行輸入nowx執行,根據提示進行配置:

?  sub-domains git:(master) ? nowx
未發現token配置
訪問 http://wxpusher.zjiecode.com/admin/app/list 創建token.
輸入申請的APP_TOKEN:[粘貼頁面申請的token]

網頁打開下面的網址,微信掃碼關注以接收消息:
https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=xxxxxx

然后可以在執行時帶上消息參數發送消息:

nowhois bing.com  ; nowx whois執行完畢,返回代碼:$?

上面的命令在nowhois執行完畢后,由nowx發送微信消息,通知命令完成及nowhois的返回代碼.注意兩個命令之間使用;分割。

最后

項目頁面,歡迎issue或pr。