
Jok3r - ネットワークとWebのペネトレーションテストフレームワーク
.. raw:: html
.. image:: ./pictures/logo.png
.. raw:: html
.. image:: https://img.shields.io/badge/python-3.6-blue.svg :target: https://www.python.org/downloads/release/python-366/ :alt: Python 3.6
.. image:: https://readthedocs.org/projects/jok3r/badge/?version=latest :target: https://jok3r.readthedocs.io/en/latest/ :alt: Documentation ReadTheDocs
.. image:: https://img.shields.io/docker/automated/koutto/jok3r.svg :target: https://hub.docker.com/r/koutto/jok3r/ :alt: Docker Automated build
.. image:: https://img.shields.io/docker/build/koutto/jok3r.svg :alt: Docker Build Status
.. raw:: html
Jok3r は、ネットワークインフラのペネトレーションテスターとブラックボックスWebセキュリティテストを支援することを目的としたPython3のCLIアプリケーションです。
主な目標は、ネットワーク/Web監査において自動化可能なすべての作業時間を節約し、より興味深く挑戦的なことに多くの時間を費やすことです。
これを実現するために、オープンソースの監査ツールを組み合わせて、すべての一般的なネットワークサービスに対してさまざまなセキュリティチェックを実行します。
ツール管理:
攻撃自動化:
ミッション管理 / ローカルデータベース:
Jok3r は、簡単かつ迅速にカスタマイズできるように構築されています。ツール、セキュリティチェック、サポートされるネットワークサービスなどは、理解しやすい構文で設定ファイルを編集することにより、簡単に追加/編集/削除できます。
Jok3r を使用する推奨方法は Docker コンテナ内です。さまざまな監査ツールをインストールする際の依存関係の問題を心配する必要はありません。
.. image:: https://raw.githubusercontent.com/koutto/jok3r/master/pictures/docker-logo.png
Docker Hub で Docker イメージが利用可能で、アップデートのたびに自動的に再構築されます: https://hub.docker.com/r/koutto/jok3r/。初期は Kali / Debian 公式 Linux Docker イメージ(kalilinux/kali-linux-docker)をベースにしています。
.. image:: https://images.microbadger.com/badges/image/koutto/jok3r.svg :target: https://microbadger.com/images/koutto/jok3r :alt: Docker Image size
Jok3r Docker イメージのプル:
.. code-block:: console
sudo docker pull koutto/jok3r
最新の Docker コンテナを実行:
.. code-block:: console
sudo docker run -i -t --name jok3r-container -w /root/jok3r --net=host koutto/jok3r
重要: --net=host オプションはホストのネットワークインターフェースを共有するために必要です。リバースコネクション(例:RCE テスト時の ping、リバースシェル取得)に必要です。
Jok3r ツールボックスはすぐに使用できます!
.. code-block:: console
sudo docker start -i jok3r-container
.. code-block:: console
sudo docker exec -it jok3r-container bash
すべてのツールを表示
.. code-block:: console
python3 jok3r.py toolbox --show-all
すべてのツールをインストール
.. code-block:: console
python3 jok3r.py toolbox --install-all --fast
すべてのツールを更新
.. code-block:: console
python3 jok3r.py toolbox --update-all --fast
サポートされているサービスのリスト
.. code-block:: console
python3 jok3r.py info --services
HTTP のセキュリティチェックを表示
.. code-block:: console
python3 jok3r.py info --checks http
ローカルデータベースに新しいミッションを作成
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" successfully added
[*] Selected mission is MiAuditoria
jok3rdb[MiAuditoria]>
URL に対してセキュリティチェックを実行し、結果をミッションに追加
.. code-block:: console
python3 jok3r.py attack -t https://www.sapos.com/webapp/ --add MiAuditoria
MSSQL サービスに対してセキュリティチェックを実行(ユーザー操作なし)、結果をミッションに追加
.. code-block:: console
python3 jok3r.py attack -t 190.212.190.133:1433 -s mssql --add MiAuditoria --fast
Nmap の結果からホスト/サービスをミッションのスコープにインポート
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission MiAuditoria
[*] Selected mission is now MiAuditoria
jok3rdb[MiAuditoria]> nmap results.xml
指定されたミッションのサービスに対してセキュリティチェックを実行し、結果をデータベースに保存
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria --fast
ミッション内のポート21/tcpと2121/tcpのFTPサービスのみセキュリティチェックを実行
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=21,2121;service=ftp" --fast
ミッション内のポート2121/tcpのFTPサービスと190.212.190.133のすべてのHTTPサービスのみセキュリティチェックを実行
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "port=2121;service=ftp" -f "ip=190.212.190.133;service=http"
複数のサーバーを含む監査を開始します。以下は JoK3r での一般的な例です:
対象サーバーに対して Nmap スキャンを実行します。
ローカルデータベースに新しいミッション(例:"MiAuditoria")を作成します:
.. code-block:: console
python3 jok3r.py db
jok3rdb[default]> mission -a MiAuditoria
[+] Mission "MiAuditoria" successfully added
[*] Selected mission is MiAuditoria
jok3rdb[MiAuditoria]>
3. Nmap スキャン結果をインポートします:
.. code-block:: console
jok3rdb[MiAuditoria]> nmap resultados.xml
4. すべてのサービスとホストの概要を素早く確認し、コメントを追加したり、ターゲットに関する既存の知識があれば資格情報を追加(グレーボックスペンテスト)したりできます。
.. code-block:: console
jok3rdb[MiAuditoria]> hosts
[...]
jok3rdb[MiAuditoria]> services
[...]
5. 次に、いくつかのターゲットに対してセキュリティチェックを実行します。例えば、Java-RMI サービスのチェックを実行するには、次のコマンドを実行します:
.. code-block:: console
python3 jok3r.py attack -m MiAuditoria -f "service=java-rmi" --fast
6. セキュリティチェックの結果は、ツール実行中にライブで表示されるか、後でデータベースから次のコマンドを使用して表示できます:
.. code-block:: console
jok3rdb[MayhemProject]> results
ドキュメントは以下で入手可能:近日公開...
実装すべきチェックはまだ多く、サービスも追加すべきです!作業中...
AJP (デフォルト 8009/tcp)_FTP (デフォルト 21/tcp)_HTTP (デフォルト 80/tcp)_Java-RMI (デフォルト 1099/tcp)_JDWP (デフォルト 9000/tcp)_MSSQL (デフォルト 1433/tcp)_MySQL (デフォルト 3306/tcp)_Oracle (デフォルト 1521/tcp)_PostgreSQL (デフォルト 5432/tcp)_RDP (デフォルト 3389/tcp)_SMB (デフォルト 445/tcp)_SMTP (デフォルト 25/tcp)_SNMP (デフォルト 161/udp)_SSH (デフォルト 22/tcp)_Telnet (デフォルト 21/tcp)_VNC (デフォルト 5900/tcp)_.. code-block:: console
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
| Name | Category | Description | Tool used |
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
| nmap-recon | recon | Recon using Nmap AJP scripts | nmap |
| tomcat-version | recon | Fingerprint Tomcat version through AJP | ajpy |
| vuln-lookup | vulnscan | Vulnerability lookup in Vulners.com (NSE scripts) and exploit-db.com (lots of false positive !) | vuln-databases |
| default-creds-tomcat | bruteforce | Check default credentials for Tomcat Application Manager | ajpy |
| deploy-webshell-tomcat | exploit | Deploy a webshell on Tomcat through AJP | ajpy |
+------------------------+------------+-------------------------------------------------------------------------------------------------+----------------+
.. code-block:: console