【picoCTF】Super SSH - SSH接続の基本操作でリモートからフラグ取得

問題概要

picoCTFの「Super SSH」という問題の解説記事です。

  • カテゴリ: General Skills
  • 難易度: Easy

問題文

picoCTF Super SSH

解説

ステップ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.netctf-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での表示順が近い記事を優先しておすすめしています。