【セキュリティ】FTPでサーバーに接続して他人のパスワードを拝借してみる練習


セキュリティの勉強に励んでいる寺です。
今回は表題の通り(うっかりしてる人の)FTPサーバーに接続して他人のパスワードを拝借してみます。

さすがに実際に試してみると大変なことになるので、仮想環境であるEnvaderのセキュリティ基礎コースでやってみました。

前回のあらすじ

前回はHydraというツールを使ってブルートフォース攻撃などを試してみました。
もちろん仮想環境下でやっているので誰にも迷惑はかけていません。

https://zenn.dev/terralien/articles/cdcae0e6379a72

ftpコマンドを使用してあれやこれやできる模様

ftpはプロトコルです。ファイルを転送できるなど便利なのですがセキュリティに結構難があります。
また、接続制限がされていないFTPサーバーにもセキュリティ上の問題があります。

  • ftpプロトコルは通信が暗号化されない
    ユーザー名・パスワード・通信内容全てが暗号化されていません。ノーガードです。

  • 接続制限がかかっていないFTPサーバー
    悪用目的で接続されまくることでしょう。

今はSSHやSFTPなど他のセキュアな通信が推奨されています。

FTPサーバーに接続してファイルを漁る

anonymousユーザーで接続できてしまうFTPサーバー
匿名FTP(anonymous FTP)といいます。ユーザーIDやパスワードなくても接続していいよという仕組みです。
目的があって使うのはともかく、「うっかりanonymous FTPサーバー」になってた場合どうなるか。

このような「うっかりanonymous FTPサーバー」を見つけたとして侵入してみましょう。

ftp FTPサーバーipを入力しNameにanonymous,passwordは無いのでenterです。

$ ftp 172.19.2.11
Connected to 172.19.2.11.
220 (vsFTPd 3.0.3)
Name (172.19.2.11:envader): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

コード引用:Envader FTPの設定について

サクッとFTPサーバーに入ることができました。
このFTPサーバーは「うっかりanonymous FTPサーバー」なので、中身は公開を前提にしたファイルではないでしょう。

FTPサーバーにある隠しファイルを探る

「うっかりanonymous FTPサーバー」の中にはいれたからには当然lsコマンドを使えます。
隠しファイルにしとけばバレへんやろ!というファイルやディレクトリの存在もあっさりバレてしまいます。

ls -aコマンドを実施すると隠しファイルも探すことができます。

秘蔵のファイルやディレクトリの中身も知られてしまうことでしょう。

FTPサーバーを隅々まで調べてパスワードゲット!

そうは言っても複雑な隠し方しとけばバレへんやろ!と思った方、残念ですね。
中にはいれてるわけですからありとあらゆる手段で探すことができます。

例えば個人の名前を冠したディレクトリがあったとします。
仮にterralienとしましょう。中身のファイルなどからこれはユーザー名のディレクトリなんだろうなと推測できます。

terralienディレクトリ内のpass.txtとかいう謎のファイルにパスワードを記載していた時は悲惨です。

この情報を元に正規の手順でFTP接続ユーザー名とパスワードで接続できてしまいます。

いわゆる踏み台攻撃ですね。

学んだこと

  • FTPサーバーの設定が適当でanonymous接続できてしまうと悲惨なことになる
  • anonymous FTPサーバーへの接続の仕方
  • そしてそれがうっかりとしたものならやりたい放題できること

FTPにかぎらずよくわからないことを適当にやってるとセキュリティがガバガバになることを学びました。

参考資料

https://www.kagoya.jp/howto/it-glossary/web/ftp/

https://wa3.i-3-i.info/word18234.html

無料画像拝借

https://pixabay.com/images/id-1944688/