banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban

dockerを使用してpikachuとburpを構築し、Tokenベースのフォームの暴力解読を行います。

事情起因#

ノートを整理し続けています。

参考記事:

Docker のインストール#

apt-get install docker.io -y

次にdocker -vコマンドを使用してインストールが完了したかどうかを確認します:

image

ミラーサイトの変更#

阿里クラウドで独自のミラーアクセラレータを設定することもできます:

まず、阿里開発者プラットフォームにログインし、ログイン後、Dockerイメージリポジトリに入ります。

アクセラレータタブを選択すると、システムが専用のアクセラレータアドレスを生成してくれます:

https://xxxxx.mirror.aliyuncs.com

vim /etc/docker/daemon.json

基本的な設定は以下の通りです:

{
    "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"],
    "graph": "/mnt/docker-data",
    "storage-driver": "overlay"
}

後の 2 つは私が使用中に遭遇した問題ですが、ソフトウェアドライバの問題のようです。

とにかく追加して、docker サービスを再起動します:

systemctl daemon-reload
service docker restart

これで完了です。

pikachu のインストール#

pikachuのターゲットには既存のイメージソースがないため、自分でbuildする必要があります。

git clone https://github.com/zhuifengshaonianhanlu/pikachu
cd pikachu
docker build -t "pikachu" .

現在のディレクトリで kerfile を使用してイメージを作成し、pikachuという名前を付けます。Dockerfile と同じディレクトリにある必要があります。コマンドの後ろにはドットがあります。

途中でlnmp環境を取得し、約200Mあります。

docker run -it -d -p 8082:80 pikachu
  • -i: インタラクティブモードでコンテナを実行します。通常は -t と一緒に使用します。
  • -t: コンテナに疑似入力ターミナルを割り当てます。通常は -i と一緒に使用します。
  • -d: コンテナをバックグラウンドで実行し、コンテナ ID を返します。
  • -- name:コンテナに名前を付けます。
  • -v /xxx:/yyy:ホストマシンの xxx ディレクトリをコンテナの yyy ディレクトリにマウントします。
  • -p: マッピングする IP とポートを指定しますが、指定したポートには 1 つのコンテナしかバインドできません。
  • コンテナのポートマッピングを設定する:docker run [-P][-p]
  • containerPort はコンテナのポートのみを指定し、ホストマシンのポートはランダムにマッピングされます:docker run -p 80 -i -t /bin/bash
  • hostPortはホストマシンのポートとコンテナのポートを同時に指定します:docker run -p 8080:80 -i -t /bin/bash0
  • ipは IP とコンテナのポートを指定します:docker run -p 0.0.0.0:80 -i -t /bin/bash
  • ip:hostPortは IP、ホストマシンのポート、およびコンテナのポートを同時に指定します:docker run -p 0.0.0.0:8080:80 -i -t /bin/bash

image

ホームページに初期化ボタンがあります。初期化をクリックすると、初期化が完了します。

image

image

burp の設定#

従来の方法に従って、ブラウザの設定でプロキシを検索し、カスタムローカルおよび LAN プロキシを127.0.0.1:8080に設定します。

または、ブラウザプラグインSwitchySharpを直接使用することもできます。

インストール後、オプションでburpsuiteモードをカスタマイズします。

image

その後、プラグインアイコンの右上にあるモードを簡単に切り替えることができます。

image

通常はシステムのプロキシ設定を使用し、burpをインターセプトする必要がある場合は、ワンクリックで切り替えることができます。

また、ターゲットのipがローカルの場合、burpはデフォルトで127.0.0.1:8080をインターセプトします。

私のようにターゲットがローカルにない場合は、burpをすべての ip でインターセプトする必要があります。

proxyタブのsettingsでデフォルトの127.0.0.1:8080を選択し、

左側のEditをクリックして、2 番目のオプションAll interfacesに変更します。

image

これにより、ローカル以外のipresponseもインターセプトできます。

pikachu ターゲットのトークンフォームのブルートフォース攻撃#

プロキシを設定した後、ブルートフォース攻撃のターゲットであるtoken防爆破?ターゲットを選択します。

インターセプトを開始し、任意のデータを入力し、burpがデータパケットをインターセプトします。

image

F12を押してソースコードを確認すると、token値がloginフォームの下に書かれていることがわかります。

image

右クリックしてリクエストパケットを Intruder に送信します。

token値はパスワードにのみ関連していると推測し、クリアしてから

passwordtoken値のみを選択し、攻撃モードAttack typePitchforkに設定します。

image

optionsタブでGrep - Extractを見つけて、Addをクリックします。

Refetch responseをクリックしてリクエストを行うと、レスポンスメッセージが表示され、抽出する文字列を選択します。

上記のフィールドには、開始および終了の識別子が自動的に入力されます。

image

payloadsタブに切り替えて、最初のpayloadSimple listに設定します(辞書モード)。

image

下部に辞書を追加し、2 番目のpayloadRecursive grepに設定します。

image

payloadRecursive grepオプションがある場合、スレッドはサポートされず、オプションでスレッドを 1 に変更します。

スレッドが 1 の場合、問題ありません。burpはパケットを高速に送信します。右上のAttackをクリックして攻撃を開始します。

image

ブルートフォース攻撃に成功しました!

本文終わり。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。