問題概要
picoCTFの「Super SSH」という問題の解説記事です。
- カテゴリ: General Skills
- 難易度: Easy
問題文
解説
ステップ1: SSH接続
問題文には以下のように記載されています。
Using a Secure Shell (SSH) is going to be pretty important.
Can you ssh as ctf-player to titan.picoctf.net at port xxxxx to get the flag?
You'll also need the password xxxxx. If asked, accept the fingerprint with yes.
If your device doesn't have a shell, you can use:https://webshell.picoctf.org
If you're not sure what a shell is, check out our Primer:https://primer.picoctf.com/#_the_shell
この指示に従い、SSHクライアントを使って指定されたサーバーに接続します。
$ ssh -p xxxxx ctf-player@titan.picoctf.net
※問題文中の
xxxxxは実際の問題で提供されるポート番号とパスワードに置き換えてください。今回のコマンドの形はこう読めます。
ctf-player@titan.picoctf.net:ctf-playerというユーザーでtitan.picoctf.netに接続する-p xxxxx:SSHの接続先ポート番号を指定する(SSHは通常22番ですが、CTFでは別ポートがよく指定されます)
初回接続時には、次のようなフィンガープリント確認(known_hosts登録)が表示されることがあります。
この場合は問題文の指示通り
yes を入力して進めます。This host key is known by the following other names/addresses:
~/.ssh/known_hosts:11: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])?
※この確認は「接続先が本当にそのサーバーか」を記録するためのもので、CTF環境では初回に出ることが多いです。
その後、問題文で提供されたパスワードを入力してログインします。
ctf-player@titan.picoctf.net's password:
ステップ2: フラグの取得
SSH接続が成功したら、フラグが表示されました。
Welcome ctf-player, here's your flag: picoCTF{xxxxx}
Connection to titan.picoctf.net closed.
※フラグはマスクしています。
使用したコマンドの軽い解説
ssh
ssh -p <port> <user>@<host>
SSHでリモートホストに接続します。
-p <port>: 接続先ポートを指定します<user>@<host>: 接続するユーザー名とホスト名です
まとめ
- SSHは「暗号化されたリモートログイン/操作」のための仕組み
- 今回は
ssh -p <port> ctf-player@titan.picoctf.netで接続し、ログイン直後に表示されるフラグを回収するだけ - CTFではSSHが頻出なので、この問題でコマンドの形に慣れておくと後が楽になります
閲覧ありがとうございました!
NEXT
次におすすめ
読み終わったら、そのまま次へ
【picoCTF】Commitment Issues - Gitコミット履歴からフラグを復元する
カテゴリ: General Skills難易度: Easy#picoCTF
次の記事へ →
同じカテゴリ/難易度/picoCTFでの表示順が近い記事を優先しておすすめしています。