ネットワークペネトレーションテスト手法 ( 外部)

モジュール 05:
　ネットワーク侵入テスト方法 - 外部
演習 ２:
　リモート マシン上の誤って設定された FTP 接続へのアクセス

シナリオ
ファイル転送プロトコルを使用すると、認証されたユーザーは、クライアントとサーバーの間でファイルやフォルダーをアップロード/アクセスしたり、ダウンロードしたりできます。サーバー上で匿名アクセスが有効になっていると、誰でもサーバー上のファイルにアクセスできるため、機密情報のセキュリティが危険にさらされます。

ペンテスターは、匿名アクセスが有効になっているネットワーク内の FTP サーバーを見つけることができるはずです。このラボでは、匿名アクセスが有効になっている FTP サーバーを識別する方法を学習します。

前提
Parrot OS
対象:IP アドレス172.19.19.7

1,
コマンド ライン ターミナルを起動し、nmap 172.19.19.10と入力してEnterを押します。これにより、マシン上で Nmap の定期スキャンが実行され、スクリーンショットに示すように結果が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/39b0b8a9-4bd3-c91e-fae5-57b270844f2a.png)

2,
上のタスクでは、ポート 21、22、80 が開いていることが確認されました。ポート21から始めましょう。まず、マシン上の FTP に匿名でアクセスできるかどうかを確認します。そのために、ftp-anonスクリプトを使用して Nmap スキャンを実行し、マシン上で匿名ログインが有効になっているかどうかを確認します。
「nmap -p 21 --script ftp-anon 172.19.19.10」
と入力し、Enter キーを押してNmap スキャンを開始します。

FTP サーバー上で匿名 FTP ログインが有効になっていることがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/f2303d77-1894-0c74-970c-697a17d66f35.png)

3,
次に、FTP サーバーにログインし、FTP ディレクトリ内のコンテンツにアクセスします。
「ftp 172.19.19.10」
と入力し、Enter キーを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/f7be0e50-341f-730b-3e87-ae83cf3a14f8.png)

ログイン名の入力を求められます。「 anonymous 」と入力してEnterを押します。

４，
ログイン名を入力すると、FTP シェルが表示され、FTP ログインが成功したことが示されます。これは、FTP を使用してリモート マシンに正常にログインしたことを示しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/340ef985-b84c-8792-f813-9c40a103b87f.png)

５，
次に、FTP ルート ディレクトリ内のファイルとディレクトリを表示します。それらを表示するには、lsと入力してEnterを押します。これにより、以下のスクリーンショットに示すように、FTP ルート ディレクトリ内のすべてのディレクトリとファイルが、そのファイル/ディレクトリのアクセス許可とともに表示されます。「public」フォルダーのディレクトリ権限では、すべてのユーザー グループに対して読み取り、書き込み、実行アクセスが有効になっていることがわかります。今後のタスクでは、このディレクトリへのファイルのアップロードを試みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/74a113b2-54c4-d751-e076-1f2083a104a9.png)

６，
次に、パブリックフォルダーに移動して、その内容を表示します。移動するには、「 cd public 」と入力してEnterを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/c6ec74ad-9b08-9452-b9a4-82d6006442f6.png)

７，
「ls」と入力して Enter キーを押し、「 public 」フォルダー内のファイルとフォルダーを表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/07846da7-ed79-689e-4978-88664e69b691.png)
フォルダー内にSecret.txtという名前のファイルがあることがわかります。


８，
次に、サーバーからファイルをダウンロードできるかどうかを確認します。Secret.txtファイルをダウンロードするには、 「get Secret.txt」と入力してEnterを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/df18c88e-3d2a-a74d-a29e-e82c8e5e81cb.png)

９，
以下のスクリーンショットに示すように、ダウンロードしたファイルはホームフォルダーに保存されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/b26f12dc-a9e1-3712-de83-6af5625af78b.png)

10,
次に、ファイルを FTP サーバーにアップロードできるかどうかを確認します。Parrot マシンのホームフォルダーにファイルftptest.txt (例として)を作成し、FTP サーバーに送信します。ホームフォルダーを開いて右クリックし、 「ドキュメントの作成」に移動して「空のファイル」をクリックし、ファイルにftptest.txtという名前を付けます。ターミナルに戻り、 「put ftptest.txt」と入力してアップロードし、Enter キーを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/fc8514e9-86da-bd6d-7e82-87123beae017.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/1d4d0410-3465-75e8-8e49-95a649a2b639.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/e1acf83d-c495-e335-d07f-d8c6876d95a8.png)

11,
以下のスクリーンショットに示すように、ファイルはサーバーに正常にアップロードされました。これは、ファイル アップロード アクセスが Ubuntu サーバーで有効になっており、攻撃者が悪意のあるファイルをアップロードできる可能性があることを意味します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/41afdedc-08ef-30ee-b731-8d6322628aed.png)

12,
スクリーンショットで強調表示されているように、オプションanonymous_enable、anon_upload_enable、およびanon_mkdir_write_enableが有効になっており、匿名で FTP サーバーにログインしてファイルをアップロードできるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/c042f324-2a42-1e58-6c14-af70897c535c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3531099/f6459493-a9e7-26a9-a00b-a27df4358fef.png)