
すべてのNPMおよびPypiパッケージのメンテナーをチェックし、ドメインの再登録によって乗っ取り可能なパッケージを検出します
このツールは、NPM および Python Pypi レジストリ内のすべてのパッケージのすべてのメンテナーについて、未登録のドメインまたはそれらのドメイン上の未登録の MX レコードをチェックします。ドメインが未登録の場合、そのドメインを取得し、2 要素認証が有効になっていなければアカウントのパスワードリセットを開始できます。これにより、パッケージをハイジャックして、そのパッケージに対して任意の操作を行うことができます。
違法な目的には使用しないでください。パッケージをチェックしてバグバウンティプログラムに提出するためだけに使用してください。
この種の脆弱性については NPM セキュリティチームに連絡しましたが、彼らは関心を示していません。
また、API から返されるメンテナーが実際のメンテナーを常に反映しているとは限らないことにも注意してください。ただし、運が良ければ一致することもよくあります。
まずパッケージインデックスをダウンロードしてください!サーバーが非常に遅いため、これには長い時間がかかる場合があります(30 分以上かかります):
wget https://skimdb.npmjs.com/registry/_all_docs
その後、./hijagger npm でツールを実行するだけです。すべてのオプションを確認するには --help スイッチを使用してください。出力は自動的に output.txt にも保存されます。このツールはパッケージ数が多いため、おそらく数日間実行されることになります。
出力内のヒットを簡単に見つけるには、HIT を grep してください。色分けは、パッケージの過去 1 年間のダウンロード数に基づいています。
このツールは多くの DNS および whois リクエストを行うため、プライベート IP がブロックされるリスクを避けるために、専用サーバーから実行することをお勧めします。
このモードは NPM モードとまったく同じように動作しますが、pypi API はパッケージのダウンロード数を返しません。このデータは google bigquery 経由でのみ利用可能ですが、これにより事態がかなり複雑になるため、ダウンロードカウンターとダウンロード数に基づく色分けは Pypi パッケージには実装されていません。
./hijagger pypi