作者:風起
時間:2021年11月15日
項目地址:https://github.com/knownsec/Kunyu

更新至:2021年11月22日

中文文檔 | English

0x00 介紹

工具介紹

Kunyu (坤輿),名字取自 <坤輿萬國全圖> ,測繪實際上是一個地理信息相關的專業學科,針對海里的、陸地的、天上的地理信息進行盤點。同樣應用于網絡空間,發現未知、脆弱的資產也是如此,更像是一張網絡空間地圖,用來全面描述和展示網絡空間資產、網絡空間各要素及要素之間關系,以及網絡空間和現實空間的映射關系。所以我認為“坤輿”還是比較貼合這個概念的。

Kunyu(坤輿),旨在讓企業資產收集更高效,使更多安全相關從業者了解、使用網絡空間測繪技術。

應用場景

對于 kunyu 的使用,應用場景可以有很多,例如:

  • 企業內遺忘的,孤立的資產進行識別并加入安全管理。
  • 企業外部暴露資產進行快速排查,統計。
  • 紅藍對抗相關需求使用,對捕獲IP進行批量檢查。
  • 批量收集脆弱資產(0day/1day) 影響內的設備、終端。
  • 新型網絡犯罪涉案站點信息進行快速收集,合并,進行更高效的研判、分析。
  • 對互聯網上受相關漏洞影響的脆弱資產,進行統計、復現。
  • .......

0x01 安裝

需要Python3以上的支持

git clone https://github.com/knownsec/Kunyu.git
cd Kunyu
pip3 install -r requirements.txt

Linux:
    python3 setup.py install
    kunyu console

Windows:
    cd kunyu
    python3 console.py

PYPI:
    pip3 install kunyu

P.S. Windows同樣支持python3 setup.py install

0x02 配置說明

在第一次運行程序時通過輸入以下命令進行初始化操作,提供了其他登錄方式,但是推薦使用API的方式,因為用戶名/密碼登錄需要額外做一次請求,所以理論上API的方式會更加高效。

kunyu init --apikey <your zoomeye key> --seebug <your seebug key>

初次使用需要通過ZoomEye登錄憑證,才使用該工具進行信息收集。

ZoomEye訪問地址:https://www.zoomeye.org/

Seebug訪問地址:https://www.seebug.org/

可以通過以下命令自定義輸出文件路徑 ,默認輸出路徑為:C:\Users\active user\kunyu\output\

kunyu init --output C:\Users\風起\kunyu\output

0x03 工具使用

命令詳解

kunyu console

Kunyu Command

Global commands:
        info                                      Print User info
        SearchHost <query>                        Basic Host search
        SearchWeb <query>                         Basic Web search
        SearchIcon <File>/<URL>                   Icon Image search
        SearchBatch <File>                        Batch search Host
        SearchCert <Domain>                       SSL certificate Search
        SearchDomain <Domain>                     Domain name associated/subdomain search
        EncodeHash <encryption> <query>           Encryption method interface 
        HostCrash <IP> <Domain>                   Host Header Scan hidden assets
        Seebug <query>                            Search Seebug vulnerability information
        set <option>                              Set Global arguments values
        view/views<ID>                                 Look over banner row data information
        SearchKeyWord                             Query sensitive information by keyword
        Pocsuite3                                 Invoke the pocsuite component
        ExportPath                                Returns the path of the output file
        clear                                     Clear the console screen
        show                                      Show can set options
        help                                      Print Help info
        exit                                      Exit KunYu &

OPTIONS

ZoomEye:
    page <Number>    查詢返回頁數(默認查詢一頁,每頁20條數據)
    dtype <0/1>      查詢關聯域名/子域名(設置0為查詢關聯域名,反之為子域名)
    stype <v4/v6>    設置獲取數據類型IPV4或IPV6,默認為 ipv4,ipv6 全選
    btype <host/web> 設置批量查詢的API接口(默認為HOST)
    timeout <num>    設置Kunyu HTTP請求的超時時間

使用案例

Kunyu(坤輿)的使用教程如下所示

用戶信息

HOST 主機搜索

Web 主機搜索

批量 IP 搜索

Icon 搜索

在搜集企業資產時,我們可以使用這樣的方式進行檢索相同 ico 圖標資產,在關聯相關企業資產時,通常會有不錯的效果。但是需要注意的是如果某些站點也使用這個 ico 圖標,可能會關聯出無關資產(但是無聊用別人 ico 圖標的人總歸是少數吧)。支持url或本地文件的方式搜索。

命令格式:

SearchIocn https://www.baidu.com/favicon.ico

SearchIcon /root/favicon.ico

SSL證書搜索

通過 SSL 證書的序列號進行查詢,這樣關聯出來的資產較為精準,能搜索出使用相同證書的服務。碰到https站點時,可以通過這樣的方式。

特征搜索

通過HTTP請求包特征或網站相關特征可以進行更加精準的串并相同框架資產

多因素查詢

同樣kunyu也支持多因素條件查詢關聯資產,可以通過ZoomEye邏輯運算語法實現。

關聯域名/子域名搜索

對關聯域名以及子域名進行搜索,默認查詢關聯域名,可以通過設置 dtype 參數設置 關聯域名/子域名 兩種模式。

命令格式:SearchDomain Domain

設置獲取數據類型

在V1.6.1版本后,用戶可以通過stype參數設置獲取的數據類型為IPV4或者IPV6,實現應用場景,默認參數為v4。

命令格式:set stype = v6

查看Banner信息

用戶可以通過view命令查看指定序號對應信息的Banner,從而進一步分析前端代碼及Header頭,用戶可以截取banner信息進一步的關聯匹配。

命令格式: view ID

用戶也可以通過views命令查看指定序號的SSL證書信息,通過提取SLL證書信息中的敏感信息進一步關聯。

命令格式:views ID

敏感信息收集

在Kunyu v1.6.0版本后,增加了對banner中敏感信息的獲取,平時使用正常使用相關語法,設置頁數,Kunyu會自動收集上一次查詢結果banner信息中的敏感數據,然后通過SearchKeyWord命令查看結果。目前將持續測試關注該功能點

系統命令執行

在Kunyu v1.6.0后增加了對系統命令執行的支持,可以通過執行常用的一些系統命令進行更方便有效的調試測繪數據,具體可執行命令列表可見README文件Issue中第11條。

示例一

示例二

編碼哈希計算

在一些場景下,可以通過該命令進行常用的HASH加密/編碼,如:BASE64、MD5、mmh3、HEX編碼,通過這種方式進行調試。

命令格式:

EncodeHash hex 7239dcc9beb5c9cd795415f9
EncodeHash md5 https://www.baidu.com/favicon.ico
EncodeHash md5 /root/favicon.ico
EncodeHash mmh3 https://www.baidu.com/favicon.ico
EncodeHash mmh3 /root/favicon.ico
EncodeHash base64 dasdasdsa

Seebug漏洞查詢

通過輸入想要查找的框架、設備等信息,查詢歷史相關漏洞,但是需要注意僅支持英文,這里后期會進行改進,升級。

命令格式: Seebug tongda

設置參數

當設置set page = 2時,返回結果為40條,大家可以通過修改page參數,設置查詢的頁數,需要注意1 page = 20/條 ,可以根據需求修改該值,獲取更多返回結果。

通過show顯示可配置的參數,以及參數當前的值。

Pocsuite3 聯動

在v1.3.1之后的版本中,您可以使用kunyu進行聯動pocsuite3的console模式進行一體化的使用。

HOSTS頭碰撞

通過HOSTS碰撞,可以有效的碰撞出內網中隱藏的資產,根據中間件httpf.conf中配置的ServerName域名和IP捆綁訪問即可直通內網業務系統!后續通過設置本地hosts文件實現本地DNS解析,因為本地hosts文件優先級高于DNS服務器解析。支持通過ZoomEye域名庫反查或者讀取TXT文件獲取域名列表。

命令格式:

HostCrash C:\ip.txt C:\host.txt HostCrash C:\ip.txt baidu.com HostCrash 1.1.1.1 baidu.com HostCrash 1.1.1.1 G:\host.txt

示例一

示例二

數據結果

搜索的所有結果都保存在用戶根目錄下,并根據當前時間戳創建目錄。單次啟動的所有查詢結果都在一個目錄下,保存為Excel格式,給予更加直觀的體驗。可以通過ExportPath命令返回輸出路徑。

0x04 Loading

感謝各位用戶的支持,Kunyu也會堅持進行完善更新的,希望 Kunyu (坤輿)能夠讓更多安全從業者所知,工具框架有參考昆侖鏡、Pocsuite3,都是非常棒的作品。

感謝 KnownSec 404 Team 的全體小伙伴。

關于開發者 風起 相關文章:https://www.anquanke.com/member.html?memberId=148652

“ 看得清 ” 是能力的體現,是 “ 器 ” ,而 “ 看得見 ” 就是思想的體現,那最后關聯的是 “ 道 ”。 --SuperHei

0x05 Issue

1、多因素搜索

ZoomEye搜索可以使用多因素搜索,dork:cisco +port:80(注意空格) 可以搜索符合cisco以及port:80條件的所有數據,如果沒有中間的空格則為同一搜索條件,則為滿足cisco并且端口為80的所有數據。Kunyu的dork無需引號。

2、高精地理位置

ZoomEye給予特權用戶高精地理位置的數據,但是需要注意的是普通用戶,則不具備該功能,望周知。

3、用戶名/密碼登錄

如果您使用的是username/password作為初始化條件,那么所獲得token時效為12小時,如果發現您的搜索不能返回數據,那么不妨info一下,如果會話超時則會返回初始化命令提示。絕大多數情況下我們建議您使用API KEY的方式,則不存在失效問題。這樣的設計也是為了您賬號密碼的安全性,畢竟API KEY可以重置,token會失效,但是有了賬號密碼,則有可能登錄您的ZoomEye賬戶。

4、Cert證書搜索

需要注意的是,按照常規邏輯,您需要將目標ssl證書的序列號進行十六進制編碼后才能配合語句搜索,但是Kunyu則僅需要提供Domain地址則可以檢索。原理是對目標站做了一次請求獲取到了序列號并進行處理,但是如果您的主機無法訪問需要搜索的目標則無法檢索,這時您也可以按照常規方法配合語句搜索。

5、Favicon圖標搜索

ico圖標搜索既支持URL檢索,又支持本地ico圖標文件搜索,這樣有了更好的延展性,以及兼容性。

6、查詢數據保存路徑

默認情況下您的查詢數據在用戶目錄下的Kunyu文件夾中,您也可以在console模式中使用ExportPath命令查詢路徑。

7、自動補全

Kunyu的自動補全支持大小寫,命令記錄等,使用Tab進行補全,用法參見Metasploit即可。

8、關于pip install kunyu使用時報錯的問題

在使用pip install kunyu時報以下錯誤: File "C:\Users\風起\AppData\Local\Programs\Python\Python37\Scripts\kunyu-script.py", line 1 SyntaxError: Non-UTF-8 code starting with '\xb7' in file C:\Users\風起\AppData\Local\Programs\Python\Python37\Scripts\kunyu-script.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

解決方案: 修改C:\Users\風起\AppData\Local\Programs\Python\Python37\Scripts\kunyu-script.py文件,在文件開頭添加# encoding: utf-8 然后保存即可正常使用,該bug出現原因為用戶目錄路徑存在中文名,通常出現在windows上。

9、Pocsuite3模塊POC存放目錄

對于使用pocsuite3模塊時,如果想要新增POC模塊,則可以在 項目目錄/pocsuite3/pocs/ 添加POC文件。需要注意的是,當使用打包好的Kunyu console命令時應添加POC到該目錄,并重新打包kunyu程序才可以正常加載POC。

10、Pocsuite3模塊POC缺失問題

使用Pocsuite命令聯動時,如果是已經打包好的Kunyu版本,則poc已經被固定,這時修改poc目錄是無法新增模塊的,這時可以通過重新打包的方式,或者使用 項目目錄/kunyu/console.py 運行kunyu可實時更新poc模塊。

11、Kunyu可執行系統命令如下

Windows: OS_SYSTEM = ["ipconfig", "dir", "whoami", "ping", "telnet", "cd", "findstr", "chdir","find", "mysql", "type", "curl", "netstat", "tasklist", "taskkill", "tracert", "del", "ver"]

Linux/Mac:

OS_SYSTEM = ["ifconfig", "ls", "cat", "pwd", "whoami", "ping", "find", "grep", "telnet", "mysql", "cd", "vi", "more", "less", "curl", "ps", "netstat", "rm", "touch", "mkdir", "uname"]

12、Kunyu運行環境

這里建議使用Python3.2 — 3.9版本,Python3其他版本可能會有未知的報錯,Python2不可使用

13、設置超時時間

如果HTTP請求沒有得到及時響應,可以通過增大timeout時間解決,如:set timeout = 50

0x06 Contributions

風起@knownsec 404
wh0am1i@knownsec 404
fenix@knownsec 404
0x7F@knownsec 404

0x07 Events

WHC 2021 (補天白帽大會) 年度最佳兵器獎

KCON 2021 Arsenal

404星鏈計劃

Kunyu 現已加入 404星鏈計劃

0x08 Community

如果有問題可以在項目下提交issue,或通過以下方式聯系我們。

1、掃描一下微信二維碼添加ZoomEye運營微信,并備注坤輿,會把大家拉到ZoomEye網空測繪交流群中交流。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1758/