初めに
Linuxの学習目的でSadServersを始めました。
備忘のために使用したコマンドをアウトプットします。
SadServersとは
Linuxの学習サイト。
架空のサーバを題材とし、その管理者となって与えられた依頼をこなしていく。
実際にコマンドを使って作業をすることで、実践的なスキルが身につくことが期待できる。
今回のお題
タイトル
詳細
- サーバのポートノッキングを突破し、
curl localhostを実行できるようにする。
ポートノッキングとは
ポートの隠蔽技術の一つ。
あるポート(例えば80)を開くために別のポートを連続で叩く(1000, 2000, 3000)必要があるようにしておくことで、知っている人しかポートを利用できないようにする技術。パスワードみたいなイメージ。
この1ooo, 2000, 3000のような、解除するためのポートの連続を「ノックシーケンス」と呼ぶ。
作業の流れ
- ポートノッキングを突破するだけなので、思い当たるポートを連続で叩く
- 今回はノックシーケンスの長さが1なので、全部のポートをたたけば解決できる
使ったコマンド
nmapコマンド
- ポートスキャン用のコマンド
- 指定したIPとポートをスキャンすることができる
以下は、127.0.0.1に対し、200-1000の全てのポートをスキャン
$ nmap -p 200-1000 127.0.0.1
-p-で全てのポートを指定することができる
$ nmap -p- localhost
全てのポートを指定したところ、二回目の実行で80が開いたことが分かる。
ポートノッキングの解除が成功し、隠されていた80ポートを開くことができた。
$ nmap -p- localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-07 02:08 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0019s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE
22/tcp open ssh
6767/tcp open bmc-perf-agent
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 1.56 seconds
$
$
$ nmap -p- localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-07 02:08 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000071s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
6767/tcp open bmc-perf-agent
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
終わりに
ポートノッキングを知らなかったので最初は進め方がよく分かりませんでしたが、ヒントをみてなんとか理解することができました。実際はここまで短いノックシーケンスを使うことはないと思いますし、突破しないといけないケースもないと思うので役に立つかは分かりませんが、一応覚えておこうと思います。
ここまでご覧いただきありがとうございました!