
Kunyu、より効率的な企業資産収集
English | 中文文档

Kunyu(kunyu)は、その名前を『坤輿万国全図』から取っており、実際には地理情報に関連する専門的な分野で、海、陸、空の地理情報を集計します。これはサイバースペースにも同様に当てはまります。未知の脆弱な資産を発見することにも同じことが言えます。これはサイバースペースの地図のようなものであり、サイバースペースの資産、サイバースペースのさまざまな要素と要素間の関係、さらにサイバースペースと現実空間とのマッピング関係を包括的に記述し表示するために使用されます。そのため、「坤輿」という名前はこのコンセプトに合っていると考えています。
Kunyuは、企業の資産収集をより効率的にし、より多くのセキュリティ関連の実務者がサイバースペース調査技術を理解し使用できるようにすることを目指しています。
Kunyuの用途は多岐にわたります。例えば:
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 also supports python3 setup.py install.
# 0x02 設定手順
プログラムを初めて実行する際は、以下のコマンドを入力して操作を初期化してください。他のログイン方法も用意されていますが、API方式を推奨します(ユーザー名/パスワードログインは非推奨です)。```
kunyu init --apikey <your zoomeye key> --seebug <your seebug key>

初回使用時は、ZoomEyeのログイン認証情報を使用してツールで情報収集を行う必要があります。現在、ZoomEye APIは有料です。
ZoomEyeアクセスアドレス: https://www.zoomeye.org/
Seebugアクセスアドレス: https://www.seebug.org/
出力ファイルパスは以下のコマンドでカスタマイズできます、デフォルトの出力パスは: C:/Users/active user/kunyu/output/ or /active user/kunyu/output``` kunyu init --output C:\Users\风起\kunyu\output

# 0x03 ツールの説明
## 詳細なコマンド```
kunyu console

ZoomEye``` Global commands: info Print User Info Search Comprehensive Information Search SearchIcon / Query Based On Icon Image SearchBatch Batch Query Assets In Files SearchCert SSL Certificate Search SearchDomain Domain Name Associated/Subdomain Search EncodeHash Encryption Method Interface (Base64/HEX/MD5/mmh3) HostCrash Host Header Scan Hidden Assets show / Show Can Set Options Or Kunyu Config Seebug Search Seebug Vulnerability Information set Set Global Arguments Values view/views Look Over Banner Row Data Information Cscan / Scans Port Information About CobaltStrike PupilSearch / Example Query Sensitive Interfaces And Information CDNAnalysis Identify Whether The Domain Name Is a CDN Asset Pocsuite3 Invoke The Pocsuite Component ExportPath Returns The Path Of The Output File CreateMap Generate An IP Distribution Heat Map AliveScan The Viability Of The Last Retrieval clear Clear The Console Screen help Print Help Info exit Exit KunYu &
**オプション**```
ZoomEye:
page <Number> The number of pages returned by the query (default:1)
size <Number> Set the number of searches per page (default:10)
fields <fields> Set the response field information
dtype <0/1> Query associated domain name/subdomain name
stype <v4/v6> stype <v4/v6> Set to get data type IPV4 or IPV6
btype <host/web> Set the API interface for batch query
timeout <num> Set the timeout period of Kunyu HTTP request
thread Set PupilSearch Thread Number(default is 10)
deep Set PupilSearch Search Deep(default is 2)
all PupilSearch Add All Url To Check List
fuzz PupilSearch Add Api To Check List
proxy PupilSearch HTTP Proxy
Kunyuの使い方チュートリアルは次の通りです
ユーザー情報の検索

総合検索(新機能)

カスタム出力フィールド(新機能)
サポートされている具体的な出力カスタムフィールドについては、以下を参照してください:
デフォルト出力フィールドを変更する設定``` Set fields = ip,port

**バッチIP検索**

**アイコン検索**
企業資産を収集する際、この手法を用いて同一のicoアイコン資産を取得できます。関連する企業資産を関連付ける際に通常効果的です。ただし、一部のサイトがこのicoアイコンも使用している場合、無関係な資産が関連付けられる可能性があることに注意が必要です(ただし、他人のicoアイコンに興味を持つ人は常に少数派です)。URLまたはローカルファイル検索に対応しています。
**コマンド形式:**```
SearchIocn https://www.baidu.com/favicon.ico
SearchIcon /root/favicon.ico

SSL証明書検索
SSL証明書のシリアル番号を介してクエリを実行し、関連するアセットをより正確に特定し、同じ証明書を使用するサービスを検索できます。httpsサイトに遭遇した場合、この方法を使用できます。

複数要素クエリ
同様に、Kunyuは複数要素の条件付きクエリを使用した関連アセットの検索もサポートしており、ZoomEyeの論理演算構文を通じて実現できます。

特徴検索
HTTPリクエストパケットの特徴やウェブサイト関連の特徴を介して、同じフレームワークのアセットをより正確に結合できます。

関連ドメイン/サブドメイン検索
関連ドメイン名とサブドメインを検索し、デフォルトでは関連ドメイン名をクエリします。dtypeパラメータを設定することで、関連ドメイン名/サブドメインの2つのモードを設定できます。
コマンド形式: SearchDomain Domain

取得するデータタイプの設定
V1.6.1以降、ユーザーはstypeパラメータを介して取得するデータタイプをIPV4またはIPV6に設定し、アプリケーションシナリオを実現できます。デフォルトのパラメータはv4です。
コマンド形式: set stype = v6

バナー情報の表示
ユーザーはviewコマンドを使用して、指定されたシリアル番号に対応するバナーを表示し、フロントエンドコードとヘッダーヘッダーをさらに分析できます。また、バナー情報を取得してさらなる関連付けマッチングに利用できます。
コマンド形式: view ID

ユーザーはviewsコマンドを使用して、指定されたシリアル番号のSSL証明書情報を表示することもでき、そのSSL証明書情報内の機密情報を抽出してさらに関連付けることができます。
コマンド形式: views ID

CscanによるcobaltStrikeのポート情報スキャン
CscanはKunyuバージョン1.7.2の新機能で、このコマンドを使用してネットワークアセットがcobaltStrikeかどうかを識別し、設定ファイルの詳細を列挙できます。
コマンド形式:``` Cscan 1.1.1.1 443 Cscan 1.1.1.1 443,80

**CDNAnalysis(NEW)**
注意点:コードコンパイルでKunyuを使用する場合、この機能モジュールはデフォルトでは提供されません。この機能を追加する必要がある場合、自身でコンパイルし、Kunyuの実行パス下の/lib/cdn/パスに追加する必要があります。使用するオペレーティングシステムに応じて、**linux**、darwin**、windows.exe** という名前を付けます。
https://github.com/wikiZ/CDN-Discovery
**コマンド形式:**```
CDNAnalysis --file ip.txt
CDNAnalysis --domain www.baidu.com

PupilSearch 機密情報収集
Kunyu v1.7.0以降、KeyWordコマンドは削除され、機密データを抽出する機能であるPupilSearchに置き換えられました。もちろん、空間マッピングを介した過去のバナー情報の抽出もサポートしています。例えば、accesskeyのような、過去のデータのバナーが機密情報を漏洩している場合、現在サービスが変更されていても、AK/SKが期限切れでなければ直接使用できます。すべてを理解し、機密情報の抽出をサポートします (ID number, IP, JWT, API interface, appid, appkey, GithubAccessKey, default username \password, email, etc.)。
コマンド形式:
PupilSearch https://www.domain.com/
PupilSearch ID (空間マッピングから返されたバナーから機密情報を抽出する)



システムコマンド実行
Kunyu v1.6.0以降、システムコマンドの実行がサポートされました。一般的なシステムコマンドを実行することで、測量・マッピングデータをより便利かつ効果的にデバッグできます。実行可能なコマンドの一覧については、READMEファイルのIssueの記事11を参照してください。
例1

例2

エンコーディング/ハッシュ計算
一部のシナリオでは、このコマンドを使用して一般的な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

**アセット生存スキャン**
Kunyu V1.6.5以降、最後の取得結果の生存性スキャンが追加され、ポーリングによりリアルタイムで結果が出力されます。

**Seebug脆弱性クエリ**
検索したいフレームワークや機器に関する情報を入力することで、関連する過去の脆弱性を照会できます。ただし、現時点では英語のみ対応しており、今後改善・アップグレードが行われる予定です。
コマンド形式: **Seebug tongda**

**フィンガープリントファイルの読み込み**
Kunyu V1.6.4では、外部フィンガープリントライブラリを読み込む機能が追加されました。Kunyuはデフォルトで5つのフィンガープリントファイルを参考として提供しています。ユーザーは独自のフィンガープリントファイルを作成して読み込んだり共有したりでき、より柔軟に検索することが可能で、トレーサビリティとセキュリティに便利です。セキュリティ研究やレッドチームの攻防におけるリソース共有により、チームワークを強化します。
現在読み込まれているフィンガープリントライブラリの情報は、**show rule** コマンドで確認できます。

デフォルトのフィンガープリントファイル読み取りディレクトリは **project directory/kunyu/rule** にあります。読み取るフィンガープリントファイルのパス設定は **kunyu init --rule C:\风起\rule** でカスタマイズできます。
**show config** コマンドを使用して、Kunyu設定ファイルの情報を表示できます。

複雑なフィンガープリント情報に対処する場合、**project directory/kunyu/createrule.py** を使用してYAMLファイルを生成できます。

YAMLフィンガープリントファイルの形式は以下の通りです。以下の標準形式を厳守し、フィールドを欠かさないように注意してください。```bash
KXID: kx-2022-07
author: 风起
createDate: 2022-1-4
description: 查找公网部署的ngrok反向代理
kx_name: ngrok代理工具指纹
kx_query: '''Server: beegoServer:1.12.0'' +''<a href="/login/index">Found</a>.'''
source: https://github.com/wikiZ/Kunyu
パラメータの設定
page = 2 に設定すると、返される結果は 40 件になります。page パラメータを変更して、クエリするページ数を設定できます。1 ページ = 20 アイテムであることに注意してください。必要に応じて値を変更し、より多くの結果を取得できます。
設定可能なパラメータとその現在の値は、show によって表示されます。

Pocsuite 連携
v1.3.1 以降のバージョンでは、kunyu を使用して pocsuite3 のコンソールモードをリンクし、統合利用できます。

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
**例1**

**例2**

**サーバーレス HostCrash スキャン**
Kunyu v1.6.2 は、クラウド機能を組み合わせてターゲットに対して HOSTS 衝突を実行する興味深い機能を追加しました。これにより、スキャンされた IP は効果的に隠蔽され、ターゲットの状況認識による捕捉を防ぎ、また WAF による実際の IP のブロックを防ぎます。機能も隠蔽されます。以下のスキャン効果からわかるように、スキャンされた IP はすべてクラウドサービスベンダーであり、各スキャンはランダムな IP アドレスです。初期化時にクラウド機能アドレスを設定することで、有効にするかどうかを選択できます。
**設定ガイド:** [クラウド機能の設定方法](https://github.com/knownsec/kunyu/blob/HEAD/doc/Serverless_EN.md)
**関連技術:** https://www.anquanke.com/post/id/261551
**状況認識スキャン効果:**

**アセット分布図**
v1.6.2 は CreateMap コマンドを追加し、最後に取得したアセットの地理的位置分布図を生成し、ネットワーク空間と実空間のマッピング関係をより鮮明に表現します。これは Excel と同じ出力ディレクトリに配置され、生成されたアセットマップは最後の検索結果の数に関連しています。
**分布図の生成**

**Web ページ**

**データ結果**
すべての検索結果はユーザーのルートディレクトリに保存され、ディレクトリは現在のタイムスタンプに基づいて作成されます。1回の起動のすべてのクエリ結果は、1つのディレクトリの下に Excel 形式で保存され、より直感的な体験を提供します。出力パスは ExportPath コマンドで確認できます。

# 0x04 ローディング
実際には多くのアイデアがありますが、Alpha バージョンとしてはこれで、今後も改善を続けます。Kunyu がより多くのセキュリティ実践者に知られることを願っています。ご支援ありがとうございます。
ツールフレームワークは、Kunlun Mirror と Pocsuite3 を参考にしており、どちらも非常に優れた作品です。
開発者 Fengqi(风起) についての関連記事: https://www.anquanke.com/member.html?memberId=148652
KnownSec 404 チームのすべての友人に感謝します。
> "Seeing clearly" is the embodiment of ability, which is "tool", while "seeing" is the embodiment of thought, and the last thing it is related to is "Tao". ——SuperHei(黑哥)
# 0x05 問題
**1. マルチファクター検索**
ZoomEye 検索ではマルチファクター検索が使用できます。dork: cisco +port:80 (スペースに注意) は、cisco と port:80 の条件を満たすすべてのデータを検索できます。中間にスペースがない場合は、同じ検索条件、つまり cisco と port 80 を満たすすべてのデータになります。Kunyu の dork は引用符を必要としません。**新しいバージョン2.0の構文が変更されました。**
**2. 高精度な地理的位置**
ZoomEye は特権ユーザーに高精度な地理的位置データを提供しますが、一般ユーザーにはこの機能がないことに注意してください。
**3. ユーザー名/パスワードログイン**
ユーザー名/パスワードを初期化条件として使用する場合、取得されるトークンは12時間有効です。検索がデータを返さない場合、info コマンドで確認してみてください。セッションがタイムアウトした場合、初期化コマンドのプロンプトが返されます。ほとんどの場合、API KEY 方式を使用することをお勧めします。有効期限の問題はありません。この設計は、アカウントとパスワードのセキュリティのためでもあります。API KEY はリセット可能でトークンは無効になりますが、アカウントとパスワードを使用すると ZoomEye アカウントにログインできる可能性があります。
**4. SSL証明書検索**
従来のロジックでは、ターゲットSSL証明書のシリアル番号を16進数でエンコードしてから検索する必要がありますが、Kunyu は検索のために Domain アドレスを提供するだけで済みます。原理はターゲットサイトにリクエストを送信してシリアル番号を取得し処理することですが、ホストが検索対象にアクセスできない場合は取得できません。その場合は、従来の方法でステートメントを使用して検索することもできます。
**5. Faviconアイコン検索**
ico アイコン検索は、URL 検索とローカル ico アイコンファイル検索の両方をサポートしており、拡張性と互換性に優れています。
**6. クエリデータの保存パス**
デフォルトでは、クエリデータはユーザーディレクトリの Kunyu フォルダにあります。コンソールモードで 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 を追加します
保存後、正常に使用できます。このバグの原因は、ユーザーディレクトリパスに中国語名が含まれていることで、これは通常 Windows で発生します。
**9. Pocsuite3 モジュールの POC 保存ディレクトリ**
pocsuite3 モジュールを使用する場合、新しい POC モジュールを追加するには、**プロジェクトディレクトリ/pocsuite3/pocs/** に POC ファイルを追加します。パッケージ化された Kunyu コンソールコマンドを使用する場合は、POC をそのディレクトリに追加し、Kunyu プログラムを再パッケージ化して正常にロードする必要があることに注意してください。
**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","nmap","ls"**]
**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","nmap"**]
**12. Kunyu の実行環境**
Python3.2 から 3.12 を使用することを推奨します。他のバージョンの Python3 では未知のエラーが発生する可能性があります。**Python2 は使用できません。**
**13. タイムアウトの設定**
HTTP リクエストがタイムリーに応答されない場合は、タイムアウト時間を増やすことで解決できます。例: set timeout = 50
**14. Kunyu クライアントの起動時間が長い**
Kunyu2.0 は初期化フェーズで国内外のインターフェースを識別して使用するため、起動と使用に多少時間がかかる場合があり、時間は5〜10秒です。
**15. RULE フィンガープリントの保存場所**
RULE フィンガープリントの保存場所は ~/.kunyu.ini で設定および変更でき、デフォルトはコンパイルおよび実行された kunyu パスです。
**16. View 機能が使用できない**
view 機能は ZoomEye のアップデートにあり、通常使用するにはビジネスバージョンのメンバーシップが必要です。views 機能には影響ありません。
**17. 異常バグ**
テスト環境は MAC OS であるため、他のオペレーティングシステムでは互換性の問題が発生する可能性があります。ISSUE をフィードバックするか、オペレーションに連絡してください。
**18. アンチウイルスソフトウェアによるチェック**
Kunyu はアンチウイルスソフトウェアによるファイルチェックのために起動に失敗する可能性があります。この問題に注意してください。
**19. まだ決めていません ^_^**
# 0x06 貢献者
[风起@knownsec 404](https://github.com/wikiZ)
[wh0am1i@knownsec 404](https://github.com/wh0am1i)
[fenix@knownsec 404](https://github.com/13ph03nix)
[0x7F@knownsec 404](https://github.com/0x7Fancy)
# 0x07 イベント
**WHC 2021 (补天白帽大会) 年間最優秀武器賞**
**KCON 2021 Arsenal**
## 404Starlink
<img src="https://raw.githubusercontent.com/knownsec/404StarLink-Project/master/logo.png" width="30%">
Kunyu は [404Starlink](https://github.com/knownsec/404StarLink) に参加しました
# 0x08 コミュニティ
質問がある場合は、プロジェクトの下で issue を送信するか、以下の方法でお問い合わせください。
1、WeChat QRコードをスキャンしてZoomEye運用WeChatを追加し、Kunyuとコメントしてください。そうすると、ZoomEyeサイバースペース測量・地図作成交換グループに招待します。

| フィールド名 | タイプ | 説明 | 権限 |
|---|
| ip | string | IPアドレス(Web資産が不完全な場合に使用) | 全ユーザー |
| domain | string | ドメイン | 全ユーザー |
| url | string | 資産の完全URL(Web資産用) | 全ユーザー |
| ssl.jarm | string | SSL JARMフィンガープリント | 全ユーザー |
| ssl.ja3s | string | SSL JA3Sフィンガープリント | 全ユーザー |
| iconhash_md5 | string | アイコン画像のMD5値 | プロフェッショナルプラン以上 |
| robots_md5 | string | robots.txtファイルのMD5値 | ビジネスプラン以上 |
| security_md5 | string | セキュリティ設定ファイルのMD5値 | ビジネスプラン以上 |
| hostname | string | ホスト名情報 | 全ユーザー |
| os | string | オペレーティングシステム情報 | 全ユーザー |
| port | integer | ポート番号 | 全ユーザー |
| service | string | 提供されるアプリケーションプロトコル(例:HTTP、SSH) | 全ユーザー |
| title | list | Webページのタイトル | 全ユーザー |
| version | string | コンポーネントのバージョン情報 | 全ユーザー |
| device | string | デバイス名 | 全ユーザー |
| rdns | string | 逆DNS情報 | 全ユーザー |
| product | string | 製品コンポーネント情報 | 全ユーザー |
| header | string | HTTPレスポンスヘッダー情報 | 全ユーザー |
| header_hash | string | HTTPレスポンスヘッダーから計算されたハッシュ | プロフェッショナルプラン以上 |
| banner | string | サービスバナー情報 | 全ユーザー |
| body | string | HTML本文コンテンツ | ビジネスプラン以上 |
| body_hash | string | HTML本文から計算されたハッシュ | プロフェッショナルプラン以上 |
| update_time | string | 資産の更新時間 | 全ユーザー |
| header.server.name | string | HTTPレスポンスヘッダー内のサーバー名 | 全ユーザー |
| continent.name | string | 大陸名 | 全ユーザー |
| country.name | string | 国名 | 全ユーザー |
| province.name | string | 州・省の名前 | 全ユーザー |
| city.name | string | 都市名 | 全ユーザー |
| isp.name | string | ISP名 | 全ユーザー |
| organization.name | string | 組織名 | 全ユーザー |
| zipcode | integer | 郵便番号 | 全ユーザー |
| idc | string | IDCかどうか(0:いいえ、1:はい) | 全ユーザー |
| lon | string | 地理的な経度 | 全ユーザー |
| lat | string | 地理的な緯度 | 全ユーザー |
| asn | string | 自律システム番号 | 全ユーザー |
| protocol | string | トランスポート層プロトコル(例:TCP、UDP) | 全ユーザー |
| honeypot | integer | ハニーポットかどうか(0:いいえ、1:はい) | 全ユーザー |
| ssl | string | SSL x509証明書情報 | 全ユーザー |
| primary_industry | string | 主要産業情報 | ビジネスプラン以上 |
| sub_industry | string | サブ産業情報 | ビジネスプラン以上 |
| rank | integer | 資産の重要度ランク。スコアが高いほど重要。 | ビジネスプラン以上 |