簡介
OWASP Amass 項目使用開源信息收集和主動偵察技術執行攻擊面網絡映射和外部資產發現。
此軟件包包含一個工具,可幫助信息安全專業人員使用開源信息收集和主動偵察技術執行攻擊面網絡映射并執行外部資產發現。
使用的信息收集技術
技術 | 數據來源 |
APIs(應用程序接口) | 360PassiveDNS, Ahrefs, AnubisDB, BeVigil, BinaryEdge, BufferOver, BuiltWith, C99, Chaos, CIRCL, DNSDB, DNSRepo, Deepinfo, Detectify, FOFA, FullHunt, GitHub, GitLab, GrepApp, Greynoise, HackerTarget, Hunter, IntelX, LeakIX, Maltiverse, Mnemonic, Netlas, Pastebin, PassiveTotal, PentestTools, Pulsedive, Quake, SOCRadar, Searchcode, Shodan, Spamhaus, Sublist3rAPI, SubdomainCenter, ThreatBook, ThreatMiner, URLScan, VirusTotal, Yandex, ZETAlytics, ZoomEye |
Certificates(證書) | Active pulls (可選), Censys, CertCentral, CertSpotter, Crtsh, Digitorus, FacebookCT |
DNS(域名系統) | Brute forcing, Reverse DNS sweeping, NSEC zone walking, Zone transfers, FQDN alterations/permutations, FQDN Similarity-based Guessing |
Routing(路由) | ASNLookup, BGPTools, BGPView, BigDataCloud, IPdata, IPinfo, RADb, Robtex, ShadowServer, TeamCymru |
Scraping(爬取) | AbuseIPDB, Ask, Baidu, Bing, CSP Header, DNSDumpster, DNSHistory, DNSSpy, DuckDuckGo, Gists, Google, HackerOne, HyperStat, PKey, RapidDNS, Riddler, Searx, SiteDossier, Yahoo |
Web Archives(Web 檔案庫) | Arquivo, CommonCrawl, HAW, PublicWWW, UKWebArchive, Wayback |
WHOIS((讀作“Who is”,而非縮寫)是用來查詢互聯網中域名的IP以及所有者等信息的傳輸協議。) | AlienVault, AskDNS, DNSlytics, ONYPHE, SecurityTrails, SpyOnWeb, WhoisXMLAPI |
安裝
二進制文件安裝
通過以下命令來獲取文件的壓縮包。
wget https://github.com/owasp-amass/amass/releases/download/v4.1.0/amass_Linux_amd64.zip
通過 ls 命令可以看到已經下載成功了,出現了一個 zip 的文件,解壓縮這個文件。解壓完成后會出現一個文件夾。
ls
unzip unzip amass_Linux_amd64.zip
ls
進入目錄并查看
cd amass_Linux_amd64/
ls
運行以下命令,如果出現這個界面,就說明安裝成功了。
./amass -h
Docker安裝
通過以下命令克隆項目源碼,建議請先提前掛好代理。
git clone https://github.com/owasp-amass/amass.git
進入目錄并查看
cd amass
ls
拉取 golang 鏡像
sudo docker pull golang:1.19-alpine
?
拉取?alpine 鏡像
sudo docker pull alpine
?
修改一下Dockerfile,添加上代理。建議加代理,不然可能會報錯不成功。
#用 vim 工具去編輯文件。
vim Dockerfile#在代碼
FROM golang:1.19-alpine as build
#后面添加上ARG HTTP_PROXY
ARG HTTPS_PROXYENV HTTP_PROXY=${HTTP_PROXY}
ENV HTTPS_PROXY=${HTTPS_PROXY}
ENV http_proxy=${HTTP_PROXY}
ENV https_proxy=${HTTPS_PROXY}
構建 Docker 鏡像
sudo docker build --build-arg HTTP_PROXY=http://ip地址:端口 --build-arg HTTPS_PROXY=http://ip地址:端口 -t amass .
輸入以下命令,如果出現這個界面的話,就說明安裝成功了。
sudo docker run -it amass -h
源碼安裝
確保您已正確配置 Go 1.14 及以上版本的環境。如果還未安裝的話,可以通過以下命令來進行安裝
sudo apt install golang -y
驗證版本
go version
克隆項目源碼并進入目錄
git clone https://github.com/owasp-amass/amass.git
cd amass
ls
為 go 配置國內代理
go env -w GOPROXY=https://goproxy.cn
go env
安裝
go install ./...
安裝完成后,生成的可執行文件在 go/bin 文件夾里面。
cd go/bin/
ls
運行以下命令,如果出現這個界面就說明安裝成功了。
./amass -h
APT 包管理器安裝
Kali Linux 默認已經安裝好 amass 工具了。如果還未安裝的話,也可以通過以下命令來進行安裝
sudo apt install amass
使用
1.?-h
顯示程序使用信息
amass -h
2. -help
顯示程序使用信息
amass -help
?
3. -version
打印此 Amass 二進制文件的版本號
amass -version
注意:amass的字典文件位于
amass/examples/wordlists
子命令
amass 包含 5 個子命令,換句話說,就是功能:
- amass intel——發現枚舉目標
- amass enum——執行枚舉和網絡映射
- amass viz——可視化枚舉結果
- amass track——跟蹤枚舉之間的差異
- amass db——操作 Amass 圖形數據庫
在某些情況下,Amass 的子命令可以結合使用,這允許您創建執行多個 Amass 操作的腳本。
作為其子域名發現和信息收集技術的一部分,它支持 55 個來源,例如 API 和網站。
它采用各種信息收集技術進行 DNS 枚舉
- 使用域名詞表和修改詞表對子域名進行暴力破解
- 通過讀取 SSL/TLS 證書、執行 DNS 區域傳輸或檢查證書透明度日志來識別子域名
- 在已識別的域名上進行遞歸子域名發現
- 使用 Hashcat 風格的掩碼對子域名進行暴力破解(如果您擁有關于命名約定等的內部信息,這將非常有用)
可以使用配置文件進行配置,這使得它易于維護、使用或與腳本集成
Amass Intel
Amass intel 子命令(或者說模塊)可以幫助收集有關該組織的開源情報,并允許你查找與該組織相關的更多根域名。要查看此子命令的可用選項,只需在終端中輸入:
amass intel
?
此時或許值得一提的是,Amass 的另一個重要優勢是所有子命令都會嘗試保持參數的一致性。
此子命令默認會使用多種信息收集技術和數據源,例如 WHOIS 和 IPv4Info,以獲取組織擁有的情報和父域名,除非在 Amass 的配置文件中明確禁用這些功能。
1.?-h
顯示程序使用信息
amass intel -h
2. -help
顯示程序使用信息
amass intel -help
3.?-active
嘗試獲取證書名稱
amass intel -active -whois -d kali.org
4.?-addr value
IP 地址和地址范圍 (192.168.1.1-254),以逗號分隔
5. -asn value
ASN 以逗號分隔(可多次使用)
6. -cidr value
CIDR 以逗號分隔(可多次使用)
amass intel -active -whois -d owasp.org -addr 104.22.26.77 -asn 14993 -cidr 104.22.26.0/24
7. -config string
YAML 配置文件的路徑。以下為更多詳細信息
amass intel -config examples/config.yaml -whois -d kali.org
8.?-d value
域名以逗號分隔(可多次使用)
amass intel -whois -d owasp.org,kali.org
9.?-demo
審查輸出以使其適合演示
amass intel -demo -whois -d owasp.org,kali.org
10.?-df value
提供根域名的文件路徑
amass intel -whois -df domains.txt
11.?-dir string
包含輸出文件的目錄路徑
amass intel -whois -d kali.org -dir output
12.?-ef string
提供要排除的數據源的文件路徑
amass intel -whois -d kali.org -ef exclude.txt
13.?-exclude value
要排除的數據源名稱以逗號分隔
amass intel -whois -d kali.org -exclude Shodan
14.?-if string
提供要包含的數據源的文件路徑
amass intel -whois -d kali.org -if include.txt
15.?-include value
要包含的數據源名稱以逗號分隔
amass intel -whois -d kali.org -include Shodan
16.?-ip
顯示已發現名稱的 IP 地址
amass intel -whois -d kali.org -ip
17.?-ipv4
顯示已發現名稱的 IPv4 地址
amass intel -whois -d kali.org -ipv4
18.?-ipv6
顯示已發現名稱的 IPv6 地址
amass intel -whois -d kali.org -ipv6
19.?-list
打印附加信息
amass intel -list
20.?-log string
將寫入錯誤的日志文件路徑
amass intel -whois -d kali.org -log errors.log
21.?-max-dns-queries int
最大并發 DNS 查詢數
amass intel -whois -d kali.org -max-dns-queries 10
22.?-o string
包含終端 stdout/stderr 的文本文件路徑
amass intel -whois -d kali.org -o result.txt
23.?-org string
針對 AS 描述信息提供的搜索字符串
amass intel -org "Bing"
24.?-p value
端口號(以逗號分隔)(默認值:80, 443)
amass intel -active -whois -d kali.org -p 80,443
25.?-r value
首選 DNS 解析器的 IP 地址(可多次使用)
amass intel -whois -d kali.org -r 114.114.114.114
26.?-rf value
提供首選 DNS 解析器的文件路徑
amass intel -whois -d kali.org -rf resolvers.txt
27.?-timeout int
退出前允許枚舉運行的分鐘數
amass intel -whois -d kali.org -timeout 3
28.?-v
輸出狀態/調試/故障排除信息
29.?-whois
所有提供的域名均通過反向 whois 查詢
amass intel -v -whois -d kali.org
Amass Enum
Amass 的大部分強大功能都集中于此。Amass 枚舉允許您執行目標的 DNS 枚舉和映射,以確定組織暴露的攻擊面。枚舉結果存儲在圖形數據庫中,該數據庫將位于 Amass 的默認輸出文件夾中,或使用“-dir”標志指定的輸出目錄中。其他 Amass 子命令也是如此。
Amass 枚舉可以在被動或主動配置模式下執行。被動模式速度更快,但 Amass 不會驗證 DNS 信息,例如通過解析子域名。您可以使用“-passive”標志被動運行它,但您將無法啟用許多技術或配置,例如 DNS 解析和驗證。有時選擇被動模式而不是主動模式有幾個原因,例如:
- 您需要了解所有已使用且將來可能重復使用的子域名,這可能是因為您需要持續監控目標的攻擊面以發現變化,或者因為您正在進行網絡釣魚攻擊并尋找子域名。
- 您的周邊安全測試流程會在后期驗證 DNS 信息,并且需要快速獲得 Amass 的結果。
- 由于安全活動的限制或要求,您只能執行被動信息收集。
1.?-h
顯示程序使用情況消息
2. -help
顯示程序使用情況消息
amass enum -h
3.?-active
嘗試區域傳輸和證書名稱抓取
4.?-addr value
IP 地址和地址范圍 (192.168.1.1-254),以逗號分隔
amass enum -d owasp.org -addr 192.168.174.1-255
5.?-alts
啟用更改名稱生成
amass enum -d owasp.org -alts
6.?-asn value
ASN 以逗號分隔(可多次使用)
amass enum -d owasp.org -asn 23333
7.?-aw value
用于更改名稱的不同詞表文件的路徑
amass enum -d owasp.org -aw /usr/share/amass/wordlists/subdomains.lst
8.?-awm value
用于名稱更改的“hashcat 風格”詞表掩碼
amass enum -d owasp.org -awm '?1?l?l?l?l'
9.?-bl value
不予調查的子域名黑名單
amass enum -d owasp.org -bl admin,kali.org
10.?-blf string
提供黑名單子域名的文件路徑
amass enum -d owasp.org -blf blacklisted.txt
11.?-brute
搜索后執行暴力破解
amass enum -d owasp.org -brute
12. -cidr value
CIDR 以逗號分隔(可多次使用)
amass enum -d owasp.org -cidr 104.22.27.0/24
13.?-config string
YAML 配置文件的路徑。更多詳細信息如下
amass enum -d owasp.org -config 桌面/amass/examples/config.yaml
14.?-d value
域名以逗號分隔(可多次使用)
amass enum -d owasp.org,kali.org
15.?-demo
審查輸出以使其適合演示
amass enum -d kali.org -demo
16.?-df value
提供根域名的文件路徑
amass enum -df domains.txt
17.?-dir string
包含輸出文件的目錄路徑
amass enum -d kali.org -dir output
18.?-dns-qps int
所有解析器每秒的最大 DNS 查詢數
amass enum -d kali.org -dns-qps 5
19.?-ef string
提供要排除的數據源的文件路徑
amass enum -d kali.org -ef exclude.txt
20.?-exclude value
要排除的數據源名稱以逗號分隔
amass enum -d kali.org -exclude Yahoo
21.?-if string
提供要包含的數據源的文件路徑
amass enum -d kali.org -if include.txt
22.?-iface string
提供用于發送流量的網絡接口
amass enum -d kali.org -iface eth0
23.?-include value
要包含的數據源名稱以逗號分隔
amass enum -d kali.org -include Yahoo,Shodan
24.?-list
打印所有可用數據源的名稱
amass enum -list
25.?-log string
將寫入錯誤的日志文件的路徑
amass enum -d kali.org -log error.log
26.?-max-depth int
最大數量用于暴力破解的子域名標簽數量
amass enum -d kali.org -max-depth 5
27.?-max-dns-queries int
已棄用標志,將在 4.0 版中由 dns-qps 取代
amass enum -d kali.org -max-dns-queries 5
28.?-min-for-recursive int
遞歸暴力破解前檢測到的子域名標簽(默認值:1)(默認 1)
amass enum -d kali.org -min-for-recursive 1
29.?-nf value
提供已知子域名(來自其他工具/來源)的文件路徑
amass enum -d kali.org -nf known-subdomains.txt
30.?-nocolor
禁用彩色輸出
amass enum -d kali.org -nocolor
31.?-norecursive
關閉遞歸暴力破解
amass enum -d kali.org -norecursive
32.?-o string
包含終端 stdout/stderr 的文本文件的路徑
amass enum -d kali.org -o result.txt
33.?-oA string
用于命名所有輸出文件的路徑前綴
amass enum -d kali.org -oA kali
34.?-p value
端口號以逗號分隔(默認值:80, 443)
amass enum -d kali.org -active -p 80,443
35.?-passive
已棄用,因為默認設置是 passive
amass enum -d kali.org -passive
36.?-r value
不受信任 DNS 解析器的 IP 地址(可多次使用)
amass enum -d kali.org -r 114.114.114.114
37.?-rf value
提供不受信任 DNS 解析器的文件路徑
amass enum -d kali.org -rf resolvers.txt
38.?-rqps int
每個不受信任解析器每秒的最大 DNS 查詢數
amass enum -d kali.org -rqps 8
39.?-scripts string
包含 ADS 腳本的目錄路徑
amass enum -d kali.org -scripts alterations.ads
40.?-silent
執行期間禁用所有輸出
amass enum -d kali.org -silent
41.?-timeout int
退出前允許枚舉運行的分鐘數
amass enum -d kali.org -timeout 3
42.?-tr value
受信任 DNS 解析器的 IP 地址(可多次使用)
amass enum -d kali.org -tr 8.8.8.8
43.?-trf value
路徑提供可信 DNS 解析器的文件
amass enum -d kali.org -trf trusted.txt
44.?-trqps int
每個可信解析器每秒的最大 DNS 查詢次數
amass enum -d kali.org -trqps 3
45.?-v
輸出狀態/調試/故障排除信息
amass enum -d kali.org -v
46.?-w value
用于暴力破解的不同字典文件的路徑
amass enum -d kali.org -w /usr/share/amass/wordlists/subdomains.lst
47.?-wm value
用于 DNS 暴力破解的“hashcat 風格”字典掩碼
amass enum -d kali.org -wm 'zzz-?l?l?l'
Amass Viz
注意:此子命令在新版本已被移出,老版本才有這個功能。我演示的時候用的是3.19.2的版本。
Amass viz 子命令允許您以多種方式可視化所有收集到的目標信息(存儲在 Amass 圖形數據庫中)。結果還可以導入 Maltego 進行進一步的 OSINT(開源情報)分析。
1.?-h
顯示程序使用信息
amass viz -h
2. -help
顯示程序使用信息
amass viz -help
3.?-config string
INI 配置文件的路徑。更多詳細信息請見下文
4.?-d value
域名以逗號分隔(可多次使用)
5. -d3
生成 D3 v4 強制模擬 HTML 文件
amass viz -d3 -d kali.org -config examples/config.ini
6.?-df string
提供根域名的文件路徑
amass viz -d3 -df domains.txt
7.?-dir string
包含圖形數據庫的目錄路徑
amass viz -d3 -d kali.org -config examples/config.ini -dir ./examples/
8.?-dot
生成 DOT 輸出文件
amass viz -dot -d kali.org
9.?-enum int
通過列表中的索引識別枚舉
amass viz -dot -enum 3
10.?-gexf
生成 Gephi 圖形交換 XML 格式 (GEXF) 文件
amass viz -gexf -d kali.org
11.?-graphistry
生成 Graphistry JSON 文件
amass viz -graphistry -d kali.org
12.?-i string
Amass 數據操作 JSON 文件
amass viz -gexf -d kali.org -i examples/indexes.bolt
13.?-maltego
生成 Maltego csv 文件
amass viz -maltego -d kali.org
14.?-nocolor
禁用彩色輸出
amass viz -maltego -d kali.org -nocolor
15.?-o string
生成輸出文件的目錄路徑
amass viz -maltego -d kali.org -o output
16.?-oA string
用于命名所有輸出文件的路徑前綴
amass viz -maltego -d kali.org -oA kali
17.?-silent
執行期間禁用所有輸出
amass viz -maltego -d kali.org -silent
Amass Track
注意:此子命令在新版本已被移出,老版本才有這個功能。我演示的時候用的是3.19.2的版本。
Amass track 是第二有用的子命令。它有助于比較針對同一目標和域名執行的枚舉結果。
1.?-h
顯示程序使用信息
amass track -h
2. -help
顯示程序使用信息
amass track -help
3.?-config string
INI 配置文件的路徑。更多詳細信息見下文
amass track -d kali.org -config examples/config.ini
4.?-d value
域名以逗號分隔(可多次使用)
amass track -d kali.org,owasp.org
5.?-df string
提供根域名的文件路徑
amass track -df domains.txt
6.?-dir string
包含圖形數據庫的目錄路徑
amass track -d kali.org -dir /home/ubuntu/.config/amass/
7.?-history
顯示所有枚舉對之間的差異
amass track -d kali.org -history
8.?-last int
要包含在跟蹤中的最近枚舉的數量
amass track -d kali.org -last 2
9.?-nocolor
禁用彩色輸出
amass track -d kali.org -nocolor
10.?-silent
執行期間禁用所有輸出
amass track -d kali.org -silent
11.?-since string
排除之前的所有枚舉(格式:01/02 15:04:05 2006 MST)
amass track -d kali.org -since "05/08 00:00:00 2025 UTC"
Amass DB
注意:此子命令在新版本已被移出,老版本才有這個功能。我演示的時候用的是3.19.2的版本。
您可以使用此子命令與 Amass 圖形數據庫進行交互,無論是默認數據庫還是使用“-dir”標志指定的數據庫。
1. -h
顯示程序使用信息
amass db -h
2. -help
顯示程序使用信息
amass db -help
3.?-config string
INI 配置文件的路徑。更多詳細信息如下
amass db -config examples/config.ini -list
4.?-d value
域名以逗號分隔(可多次使用)
amass db -d kali.org -names
5.?-demo
審查輸出以使其適合演示
amass db -d kali.org -names -demo
6.?-df string
提供根域名的文件路徑
amass db -df domains.txt -names
7.?-dir string
包含圖形數據庫的目錄路徑
amass db -d kali.org -names -dir /home/ubuntu/.config/amass
8.?-enum int
通過列表中的索引識別枚舉
amass db -d kali.org -names -enum 1
9.?-ip
顯示已發現名稱的 IP 地址
amass db -d kali.org -names -ip
10.?-ipv4
顯示已發現名稱的 IPv4 地址
amass db -d kali.org -names -ipv4
11.?-ipv6
顯示已發現名稱的 IPv6 地址
amass db -d kali.org -names -ipv6
12.?-json string
JSON 輸出文件的路徑
amass db -d kali.org -names -json output.json
13.?-list
根據提供的域名過濾的枚舉編號列表
amass db -list
14.?-names
打印剛發現的名稱
amass db -d kali.org -names
15.?-nocolor
禁用彩色輸出
amass db -d kali.org -names -nocolor
16.?-o string
包含終端 stdout/stderr 的文本文件的路徑
amass db -d kali.org -names -o output.txt
17.?-show
打印結果枚舉索引 + 提供的域名
amass db -d kali.org -names -show
18.?-silent
執行期間禁用所有輸出
amass db -d kali.org -names -silent
19.?-src
打印已發現名稱的數據源
amass db -d kali.org -names -src
20.?-summary
僅打印 ASN 表摘要
amass db -d kali.org -summary
總結
Amass 是一款功能強大的子域名枚舉和信息收集工具,適用于滲透測試和資產管理等多個安全場景。通過對 Amass 的使用與分析,我們不僅可以深入了解其模塊化設計和豐富的數據源,還能有效提升在實際工作中對目標域的掌控能力。總的來說,Amass 是信息收集階段不可或缺的重要利器。
在此特別強調,本教程僅在合法授權的情況下進行測試和研究,請勿用于其他用途。未經授權使用此類工具可能會侵犯他人隱私,觸犯相關法律,任何因此引發的法律或利益糾紛與本人無關。
歡迎各位大佬,小白來找我交流。