フレームワークの紹介
声明:ISFフレームワークは、オープンソースフレームワークに基づいてBeijing Andy Technologyによって開発された一連の産業制御浸透フレームワークであり、産業制御の安全教育と会社のラボボックス製品の安全性研究にのみ使用されます。会社は、このフレームワークを使用した違法な操作から生じる結果について責任を負いません。 。
フレームワークは主にPython言語を使用して開発され、ShadowBrokerによってリリースされたNSAツールであるFuzzbunch攻撃フレームワークを統合することにより、産業用制御の脆弱性の悪用に適したフレームワークが開発されます。 Fuzzbunch攻撃フレームワークはPython2.6にのみ適用可能であるため、多くのコア関数はDLLにカプセル化されます。DLLは関数を介して呼び出され、後で移植して使用するのに便利ではありません。ただし、Fuzzbunchのコマンドラインは実際に非常に使いやすいため、isfという名前の産業用制御の脆弱性の悪用に適したこのフレームワークがあります。
| 環境の説明 | ソフトウェア名/バージョン |
|---|---|
| オペレーティングシステム | Centos8x64 |
| ロケール | Python2.7.16 |
| ツール | pip2 |
| 依存ライブラリ | gnureadline |
| pycrypto |
注:他の2つの依存関係(pypiwin32、dnet == 1.12)に加えて、Windowsプラットフォームにインストールする場合は、WindowsプラットフォームとLinuxプラットフォームの使用に違いはありません。
ここに記載されているインストールは、実際にはツールに必要な環境のインストールと構成です。実行環境が構成されている場合は、Webサイト[https://github.com/w3h/isf]からツールをダウンロードし、プロジェクトディレクトリにダウンロードするだけです。 python2isf.pyを実行するだけです。次の図は、インストールが成功したことを示しています。

フレームワークは、コマンドラインだけでなく、WEBモードでも操作できます。WEBモードで操作することで、1つの環境と複数の人を同時に展開する効果が得られ、他の人がインストールして設定する必要がありません。 、ブラウザを介して産業用制御エージェントフレームワークのセットを持っている必要があるだけです。
WEB起動には2つのタイプがあります。1つはドッカーコンテナを介して展開する方法、もう1つは[ホスト](https://cloud.tencent.com/product/cdh?from=10680)で直接実行する方法です。2つの方法は基本的に同じですが、実行中のホストが異なります。
dockerがわからない場合は、ホスト展開の章をご覧ください。
mkdir -p /root/isfdockercd /root/isfdockerwget https://github.com/w3h/isf/raw/master/docker/Dockerfiledocker build -t isf:v1 . #isfを構築する:v1 dockerコンテナ、およびDockerfileを使用して関連する依存関係をインストールするdocker run--net=host isf:v1 butterfly.server.py --host='0.0.0.0' –unsecure#または、新しいバージョンのdockerは、次のコマンドdockerrunを使用します。--network=host isf:v1 butterfly.server.py --host='0.0.0.0' –unsecure
上記のコマンドを実行した後、次の図に示すように、ブラウザにhttp://192.168.223.129:57575と入力し(ここでは、ipを独自のパスワードに置き換えます)、デフォルトのパスワード123456を入力してログインします。

上記のdockerメソッドを使用してデプロイする場合は、コマンドを実行するだけで、必要なすべての依存関係がDockerfileを介してインストールされます。ホスト上で直接WEBコンソールを使用してアクセスする場合は、バタフライ依存関係をインストールする必要があります。コマンド** pip2 instllバタフライ**、インストール後、** batchfly.server.py —host =” 0.0を実行します。 0.0” —port =” 55555” ** WEBコンソールを起動します。次に、dockerと同じ方法でブラウザからアクセスします。
コードの説明:
—host =” 0.0.0.0”はすべてのネットワークカードで有効になっています
—port =” 55555”ポート55555を介したアクセス(デフォルトは57575)
dockerメソッドかhostメソッドかに関係なく、正常に実行できる限り、上記の章の「コマンドライン起動」メソッドとまったく同じように使用できます。さまざまなインストール方法を紹介した後、isfの特定の機能とその使用方法を見てみましょう。
ツールは大きくはありませんが、多くの機能を備えているため、1つの章ですべての機能を完全に把握することはできません。このツールの使用法を複数の章に分けて説明することにしました。
まず、helpコマンドを使用して、isfの機能を確認します。

それは嬉しい驚きでした、それはとても用途が広いです!心配しないでください、友達、次の章を通して、私たちは各コマンドの目的を一つずつ説明します。
今日は、例を使用して、このフレームワークの簡単な使用法と、産業用制御システムにおけるその実際的な役割を示します。
使用するタブキーを追加すると、使用可能なモジュールを表示できます。現在のバージョンには、9つの機能モジュールがあります。産業用セキュリティの専門家であれば、フレームワークにさまざまな経験値を提供することで、フレームワークの攻撃面を強化することもできます。

最初にplcscanを試してみましょう

use plcscanと入力すると、変数を設定するかどうかを確認するメッセージが表示されます。もちろん、targetIpの値はまだ設定されていないため、最初に「はい」を選択する必要があります。スキャンするターゲットをどのように知るのでしょうか。したがって、Enterキーを押すと、targetIpを入力するように求められます。

ここでは、自社開発の産業用制御実験ボックスを攻撃対象とし、実験ボックス内の標的システムの関連情報をスキャンします。次の図は、自社開発の産業用制御実験ボックスの概略図です。

次の図に示すように、ターゲットシステムのIPアドレス(192.168.1.100)を入力します。

現在、このツールはSiemensデバイスとmodbusデバイスのみを統合しているため、ターゲットデバイスのブランドを選択する必要があります。ここでは0を選択します。つまり、Enterキーを直接押します。

後でターゲットシステムのポート番号を設定する必要があります。Siemensのデフォルトは102です。ここでEnterキーを押すだけです。後ろにはさらにいくつかのパラメータがあり、おそらく多くの人がこれらのパラメータが何であるかを知らないでしょう。今のところ心配しないでください。後で、産業用制御システムを理解すると、各パラメータの意味がわかります。ここでは、すべてのデフォルトを選択します。 。
最後にEnterキーを押すと、入力したすべてのパラメーターが一覧表示されます。エラーがない場合は、Enterキーを押してスキャンを開始します。

スキャン結果の後、システムはターゲットデバイスの詳細情報を返すか、失敗します。

ここでは、ブランドがシーメンス、モデルがS7-200など、ターゲットシステムの詳細情報を特定することに成功しました。便利ですか?そういえば、対象システムの情報を特定した後、何ができるのかと聞かれる方もいらっしゃるかもしれません。セキュリティを行っていないようです。セキュリティを行っている人なら誰でも、早期の情報収集がいかに重要かを知っています。ターゲットシステムのブランド、モデル、その他の情報を知った後、オープンまたは非公開の脆弱性を使用して攻撃できます。
Recommended Posts