vulnhub は私のお気に入りの遊び場の 1 つで、そこにあるすべてのターゲット ドローンはクールなゲームです。すべてのフラグを完全に見つけることは基本的なタスクにすぎず、権限昇格を達成することが最終的な目標です。私はフラッグの最速のキャプチャを追求しているのではなく、完全な攻撃チェーンを使用してターゲットのドローンに可能な限り侵入することを目的としているため、このガイドの一部の内容はフラッグのキャプチャに直接役立つものではない可能性がありますが、考慮する必要があります。実際のターゲットを扱うとき。
ターゲットのドローン「JIS-CTF: VulnUpload」には 5 つのフラグが含まれており、難易度は初級で、攻撃が完了するまでに平均 1.5 時間かかります。 virtualbox 形式のイメージは https://www.vulnhub.com/entry/jis-ctf-vulnupload,228/ から入手でき、インポート後すぐに再生できます:
JIS 仮想マシンは DHCP なので、その IP を調べる必要があります。 nmap の -sn オプションは、ホストの生存可能性を検出するために使用されます。
すぐに、4 つの生存 IP が見つかりました。このうち、56.1はメインシステムのIP、56.2はDHCPサーバー、56.5はローカルマシン(kali)としてlocalhost-responseを示しているので、JISのIPは192.168.56.6となります。
IP を取得する際の最優先事項は、もちろん分析サービスです。ここでは、nmap -O と -sV の 2 つのコマンド ライン パラメータを使用できます。
JIS がポート 22 と HTTP で SSH (OpenSSH 7.2p2) を開くことがわかります。ポート 80 (Apache httpd 2.4.18) と他の 2 つのサービス。また、OSはubuntuです。これら 3 つの情報が次の段階での主な攻撃対象になります。
SSH サービスについては、弱いパスワードとシステム脆弱性の 2 つの側面から攻撃することに慣れています。脆弱なパスワードについては、可能性は低いですが、一般的なユーザー名と一般的なパスワードを使用して解読してみました。
短時間では完了しないため、まずここに置いて、後で見てみましょう。
SSH サービスのシステムの脆弱性を見つけるという点では、searchsploit ツールをお勧めします。 OpenSSH 7.2p2 の完全検索:
ユーザー名列挙の脆弱性があります。念のため、有効なユーザー名を見つけると、SSH パスワードを破るのに役立ちます。早速経験値を使ってみます:
何度か試しましたが結果が異なり、この経験値は信頼できないと感じています。検索条件が厳しすぎる可能性があります。バージョン番号を指定せずに openssh を直接検索して、他の脆弱性があるかどうかを確認してください:
その中には、ローカル権限昇格の 2 つが考えられます。脆弱性とリモートコマンド実行の抜け穴。うーん、とても魅力的ですが、残念ながら使えません。前者については、現在拠点 (WebShell など) がなく、適切なエスカレーション操作がありません。現時点では、最初にリリースすることしかできず、後で使用される可能性があります。後者については、悪用の条件が非常に厳しいです。 、および攻撃者 あなたは転送されたエージェント ソケットの制御を取得する必要があり、ターゲットは攻撃者が転送されたエージェント ソケットを制御するマシンに SSH 接続する必要があります。その後でのみ、ターゲットは指定された *.so をロードしてリモート コマンドを実行できます。以上です。当面は SSH システムの脆弱性については詳しく説明しません。
Apache サービスをチェックして、悪用可能な脆弱性があるかどうかを確認します。
前回のサービス検出中に見つかった正確なバージョンは、Apache httpd 2.4.18 でした。そのため、メモリは 1 つだけです。リークの脆弱性があり、あまり価値がありません。
システムの脆弱性は現段階ではこの程度しか分析できません。配布パッケージが ubuntu であることはわかっていますが、具体的なバージョンやシステム アーキテクチャはわかりません。利用可能なオペレーティング システムの脆弱性を正確に見つけることは困難です。 . したがって、続行する必要はありません。システムの脆弱性レベルには時間がかかります。後で Web シェルを取得できれば、権限を昇格するときに詳細に分析します。次に、Web アプリケーション レベルに進みます。
アクセス前に見つかった Web ポートは自動的に http://192.168.56.6/login.php:
そこを読むHTML ソースコードをダウンロードする際に貴重な情報がない; ユーザー名を列挙することができない; 弱いパスワードを総当り攻撃できる可能性がある 先ほどの SSH 総当りはまだ終わっていないので、Web ログイン総当りを入れてみましょうまずは他にあるかどうかを確認してください。ページ。
2015 年頃までは、Web ポートのスキャン - Web バックエンドの検索 - 弱いパスワードでのバックエンドへのログイン - 文章のアップロードが成功率の高い一般的な攻撃手法でした。成功の鍵が見つかりました。言い換えれば、ウェブ上でより多くのコンテンツを発見する必要があるということです。具体的には、より多くのファイル、ページ、サブディレクトリを見つけたいと考えています。ソース コードがパッケージ化された機密ファイル、バックエンドの運用と保守のための管理ページ、攻撃対象領域を拡大するビジネス ロジックを格納するサブディレクトリを見つけるのが最善です。通常、私は列挙とクロールを組み合わせて Web コンテンツを検出します。
Web コンテンツを列挙するためのツールは数多くあります。実際、お持ちの burp には強力なサブディレクトリ列挙機能が組み込まれていますが、無視されることがよくあります。 http://192.168.56.6/ にアクセスすると、トラフィックが burp を通過すると、最初のサイト ディレクトリ構造がすぐに表示されます:
エンゲージメント ツールを使用してサブディレクトリ列挙機能を有効にする - コンテンツを検出します:
列挙する前に、Firefox プラグインの wappalyzer を使用して、バックエンド言語が php であることを確認します。
簡単な設定。burp は php タイプのページのみを列挙し、無視します。 aspx、jsp など。効率を向上させる言語:
すぐに、多くの新しいページが列挙されました:
ご覧のとおり、以前よりも多くのページとディレクトリがあります。ログアウト .php、server-status/ として。一つ一つ確認してみると、価値のあるものは何もありません。
次に、別のツールである dirsearch を使用してサブディレクトリを再度列挙し、burp を補完してより多くの Web コンテンツを取得しました。効率性と構成可能性は dirsearch の特性です。同様に、 --extension オプションを使用して、php タイプのページのみが列挙されるように設定し、aspx、jsp などの他の言語を無視します。出力結果 out.txt から HTTP 応答が成功したページが 5 つあります (200):
これらのページを順番に訪問し、トラフィックを burp に通過させます。サイトのディレクトリ構造は次のとおりです:
サブ ディレクトリの列挙はこれで終わりです。次に、サイトをクロールします。
ゲップを使用しながら、サイトにアクセスします:すぐにクロールが完了し、多くの新しいページが追加されました:
友達、遊んだ後あまりにも長い間、旗の影さえ見ていませんか?心配しないでください、それはやって来ます。 burp のサイト マップで flag キーワードを検索します。最初に一致する項目は http://192.168.56.6/admin_area/:
Get the first flag{7412574125871236547895214}; および Go to a set も取得しますアカウント admin/3v1l_H@ck3r の数。Web ログイン アカウントまたは SSH アカウントである可能性があります。後で試してください。 flag を検索して得られた 2 番目の一致は http://192.168.56.6/flag/:
得られた 2 番目の一致は {8734509128730458630012095} です。
4. Web アプリケーションの脆弱性分析 admin/3v1l_H@ck3r を使用して http://192.168.56.6/login.php にログインしてみます:正常にファイルアップロード機能があるので、ファイルアップロードの脆弱性がないか確認してください。
php webshell をアップロードして試してください:icesword.php は正常にアップロードされました。任意のファイルがアップロードされる脆弱性がありますが、アップロード ディレクトリはエコーされません。 Web コンテンツ検出中に見つかった、uploads/ ディレクトリとuploaded_files/ ディレクトリをまだ覚えていますか? http://192.168.56.6/uploads/icesword.php にアクセスしてみてください。エラー メッセージが報告されます。リソースが存在しません。http:/ にアクセスしてください。 /192.168.56.6/uploaded_files. /icesword.php、エラーは報告されませんが、ページにコンテンツがありません。大丈夫です。少なくとも、アップロード ディレクトリがuploaded_files/であることは明らかです。
msfvenom を使用して MSF の PHP リバウンド トロイの木馬 msf_private.php:MSF を起動してリッスンし、http://192.168.56.6/uploaded_files/msf_private.php にアクセスしてメータープリッター セッションをすぐに取得します:
ファイルをめくってください:
flag.txt、hint.txt が目に留まりました。確認してください。flag.txt にはアクセス権がありません。hint.txt では、3 番目のフラグ {7645110034526579012345670} とプロンプト メッセージが表示されます。flag.txt を表示したい場合は、まず technawi アカウントのパスワードを見つける必要があります。 :
次に、ユーザー technawi のパスワードを見つける必要があります。ファイル名とファイルの内容の両方の観点から、technawi に関連する情報を探す予定です。
meterpreter の組み込み検索コマンドを使用して、ファイル名にキーワード technawi を含むファイルを検索します。
「見つからない」と表示されます。奇妙なことに、technawi ユーザーがいる場合は /home/technawi/ があるはずですが、なぜそれらのユーザーが見つからないのでしょうか?シェルに入り、もう一度確認します:
これは正しいです。つまり、meterpreter の組み込み検索は信頼性がありません。一つ一つチェックしましたが、価値のあるものは見つかりませんでした。
ファイルの内容にキーワード technawi を含むファイルを検索します:
1 つずつ確認し、/etc/mysql/conf.d/credentials.txt で 4 番目のフラグ {7845658974123568974185412 を見つけます。 }、および一連のアカウント番号 technawi/3vilH@ksor:
アカウント番号 technawi/3vilH@ksor を使用して正常にログインします。システム:
flag.txt を再度確認し、5 番目のフラグを取得します{5473215946785213456975249}:
最初に言いました「このフラグはターゲットマシンでプレイするためのものではありません。唯一の目的はパワーを上げることです。これも非常に興味深いです。」カーネルのバージョンをチェックして、対応する exp を準備しようとしていたとき、technawi の home/ ディレクトリに .sudo_as_admin_いかに成功したかというファイルを見たことを思い出しました。 technawi は独自のパスワードを使用して Root ユーザーに切り替えることができます:
これで、すべてのフラグの収集が完了し、権限が正常に昇格されました。
以上がJIS-CTF_VulnUpload 対象ドローン戦略とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。