国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim System-Tutorial LINUX SFTP -Portweiterleitung: Erm?glichung unterdrückter Funktionen

SFTP -Portweiterleitung: Erm?glichung unterdrückter Funktionen

Mar 17, 2025 am 09:43 AM

SFTP -Portweiterleitung: Erm?glichung unterdrückter Funktionen

Einführung

Das SSH -Protokoll unterstützt drei Hauptkategorien von Remote -Server -Aktivit?ten: a) Befehlsausführung (einschlie?lich Anmeldeschale), b) Netzwerkweiterleitung und -betrieb sowie c) Dateiübertragung.

OpenSSH -Betreuer haben festgestellt, dass SFTP und SCP keinen rechtlichen Zweck für die Hafenweiterleitung haben (über die Optionen -l und -r). W?hrend der Dateiübertragung unter Verwendung dieser Dienstprogramme wird ein Flag, das diese Funktionen explizit deaktiviert, bedingungslos an die ausführbare SSH -SSH -Datei übergeben.

Einige Benutzer ben?tigen diese Funktionen m?glicherweise. Eine offensichtliche Teilmenge sind die Penetrationstester, deren Aufgabe es ist, zu überprüfen, ob diese Funktion auf einem ?ffentlichen SFTP -Server explizit deaktiviert ist.

Hier sind zwei Techniken, die diese unterdrückten Merkmale erm?glichen, indem die Zeichenfolge der SFTP -Bin?rdatei selbst ge?ndert oder durch eine Shell umgeleitet wird, die die Befehlszeile problemlos bearbeiten kann. Abh?ngig von der Funktionalit?t der Plattform ist m?glicherweise die Technologie erforderlich, um dieses Ziel zu erreichen.

Details unterdrücken

Erstens ist es wichtig, den laufenden Prozess des Interesses zu finden. In der unten stehenden Shell -Funktion werden die PID angezeigt, die dem Shell -Muster entspricht (Beachten Sie, dass dies kein regul?rer Ausdruck ist). Dies l?uft unter Debian Dash (und den meisten anderen gemeinsamen Schalen) und basiert auf der PS -Option von BSD:

 <code>pps () { local a= b= c= IFS=$'\r'; ps ax | while read -ra do [ "$b" ] || c=1; for b; do case "$a" in *"$b"*) c=1;; esac; done; [ "$c" ] && printf '%s\n' "$a" && c=; done; }</code>

Starten Sie eine traditionelle SFTP -Sitzung, um die damit verbundenen Prozesse zu überprüfen:

 <code>$ id uid=1001(aturing) gid=1001(aturing) groups=1001(aturing)... $ sftp aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

Wir gehen davon aus, dass der lokale UNIX -Benutzer oben das gleiche Benutzername -Konto auf dem Remote SFTP -Server hat.

Nachdem die Sitzung ausgeführt wurde, zeigt eine lokale Prozess Suche nach dem Benutzernamen den von SFTP generierten untergeordneten SSH -Prozess an:

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9666 pts/0 S 0:00 sftp aturing@sftp.victimandum.com 9667 pts/0 S 0:00 /usr/bin/ssh -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

Mit dem Parameter ClearallForwardings Yes oben wird jeder Weiterleitungsversuch unterdrückt, ohne Ma?nahmen zu ergreifen, um ihn zu brechen.

Die Flags -L- und -r -Port -Weiterleitung bestehen nicht als gültige Optionen für die SFTP -Befehlszeile. Wir k?nnen jedoch die Option -S verwenden, um sie explizit auszul?sen, um einen benutzerdefinierten SSH -Handler anzugeben, in diesem Fall der Mailserver:

 <code>$ cat portssh #!/bin/sh exec ssh -L2525:smtp.victimandum.com:25 "$@"</code>

Wenn die Weiterleitungsunterdrückung nicht vorhanden ist, reicht dieser SFTP -Aufruf aus, um eine Weiterleitungsverbindung herzustellen:

 <code>$ sftp -S ./portssh -oClearAllForwardings\ no aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

Jetzt sehen Sie weiterleitende Versuche im SSH -Prozess des Kindes:

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9897 pts/0 S 0:00 sftp -S ./portssh -oClearAllForwardings no aturing@sftp.victimandum.com 9898 pts/0 S 0:00 ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -o ClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

Der Versuch, den Remote -Mailserver über den lokalen Weiterleitungsport zu kontaktieren, ist jedoch aufgrund einer expliziten überschreibung erfolglos:

 <code>$ nc localhost 2525 $</code>

Diese bedingungslose Unterdrückung ist im Quellcode sichtbar:

 <code>$ sed -n /X11/,/Forwardings/p openssh-8.7p1/sftp.c addargs(&args, "-oForwardX11 no"); addargs(&args, "-oPermitLocalCommand no"); addargs(&args, "-oClearAllForwardings yes");</code>

Diese statischen Zeichenfolgen sind auch in kompilierten Bin?rdateien sichtbar:

 <code>$ strings /usr/bin/sftp | grep [-]o[CFP] -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -oForwardAgent no -oPort %d</code>

Schlie?lich besagt die Dokumentation eindeutig, dass diese Unterdrückung beabsichtigt ist und angemessene Gründe angibt:

 <code>$ man ssh_config | sed -n /ClearAllForwardings/,/default/p ClearAllForwardings Specifies that all local, remote, and dynamic port forwardings specified in the configuration files or on the command line be cleared. This option is primarily useful when used from the ssh(1) command line to clear port forwardings set in configura‐ tion files, and is automatically set by scp(1) and sftp(1). The argument must be yes or no (the default).</code>

?nderung kompilierte Saiten

Für diejenigen, die die Standardkonfiguration von ClearAllForwardings deaktivieren m?chten, besteht die M?glichkeit, SED zu verwenden, um die Saiten im SFTP-Binary direkt zu bearbeiten (vorausgesetzt, die SED der Plattform ist bin?r-safa):

 <code>$ sed 's/AllForwardings yes/AllForwardings no /' sftp.noclearforward</code>

Diese direkte ?nderung ist viel einfacher als das Kompilieren neuer Bin?rdateien.

Wir k?nnen best?tigen, dass die Zeichenfolge erfolgreich ge?ndert wurde:

 <code>$ strings ./sftp.noclearforward | grep [-]o[CFP] -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -oPort %d</code>

Obwohl der Inhalt und die Prüfsumme des modifizierten SFTP unterschiedlich sein werden, bleibt alle vorhandenen Linux Buildid SHA1 gleich (senden Sie jedoch keine Support -Tickets, wenn Sie bearbeitete SFTP verwenden):

 <code>$ file /usr/bin/sftp ./sftp.noclearforward /usr/bin/sftp: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d7e77e24d5fac0fdc89e62a4c9c656091f2c4a33, for GNU/Linux 3.2.0, stripped ./sftp.noclearforward: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d7e77e24d5fac0fdc89e62a4c9c656091f2c4a33, for GNU/Linux 3.2.0, stripped $ sha1sum /usr/bin/sftp ./sftp.noclearforward d8bdaf0b4642b9c324f9c2e0aeee2d9578fbe383 /usr/bin/sftp b12dda8ecfd7bd2847919b5531aea7c03364c123 ./sftp.noclearforward $ sha256sum /usr/bin/sftp ./sftp.noclearforward 986eecdfc654c9b3ff3fd0dce59690d47cf56be96a4b98a04a3682aef95d3f52 /usr/bin/sftp c8f99ce33fc129250c11dc6dbb8a01112e01124e470a92d0acefb955fd17d670 ./sftp.noclearforward</code>

Sie k?nnen den modifizierten SFTP -Binary aufrufen, um die Portweiterleitung zu aktivieren:

 <code>$ chmod 755 sftp.noclearforward $ ./sftp.noclearforward -S ./portssh aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

Jetzt k?nnen Sie die ge?nderten Einstellungen im untergeordneten Prozess sehen:

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9991 pts/0 S 0:00 ./sftp.noclearforward -S ./portssh aturing@sftp.victimandum.com 9992 pts/0 S 0:00 ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

Diese Funktion ist aktiviert und auf einem Remote -Server ausgeführt und kann Verbindungen in einer separaten Shell überprüfen:

 <code>$ nc localhost 2525 220 smtp.victimandum.com Microsoft ESMTP MAIL Service, Version: 1.2.3456.78901 ready at Sun, 1 Jan 2023 01:23:45 -0100 ^C</code>

Wenn die Weiterleitung auf dem Server deaktiviert ist, erh?lt der Client eine Benachrichtigung, die diesen Status angibt, wenn die Verbindung versucht:

 <code>channel 3: open failed: administratively prohibited: open failed</code>

Der SFTP -Administrator hat ein nicht vertrauenswürdiges Konto zugewiesen, um zu überprüfen, ob die Serverkonfiguration die Weiterleitung und Befehlsausführung explizit deaktiviert.

Jenseits von Possix Shell

W?hrend die Dash- und POSIX -Standards eingestellt sind - als M?glichkeit, Befehlszeilenparameter zurückzusetzen, werden erweiterte Funktionen in Bash und KSH93 bereitgestellt:

 <code>$ cat ynargs #!/bin/bash echo "${@//yes/no}"</code>

Schneller Test best?tigt eine erfolgreiche Bearbeitung:

 <code>$ ./ynargs -oForwardX11 no -oPermitLocalCommand yes -oClearAllForwardings yes -oForwardAgent no -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no</code>

Beachten Sie, dass das obige $ {@// .../...} kein gültiges POSIX ist und nicht in Dash oder eine von PDKSH abgeleitete Shell (Mksh, Oksh) ausgeführt wird. Viele Plattformen bündeln keine Shells mit dieser Funktion (wie Android und OpenBSD, obwohl es M?glichkeiten gibt, sie hinzuzufügen).

Um diese Funktion mit einer leistungsstarken Shell zu nutzen, erstellen wir ein Verzeichnis und erstellen dann einen SSH -Wrapper darin, um die Problemeinstellungen zu l?schen:

 <code>$ cat ~/switcharoo/ssh #!/bin/bash exec /usr/bin/ssh "${@//yes/no}"</code>

Setzen Sie dann das Verzeichnis vor System SSH in $ path:

 <code>$ export PATH=~/switcharoo:$PATH $ which ssh ~/switcharoo/ssh</code>

Dann nennen wir System SFTP in dieser modifizierten Umgebung:

 <code>$ /usr/bin/sftp -S ./portssh aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

Wir haben festgestellt, dass die Shell die Problemparameter zurücksetzt:

 <code>$ pps aturing PID TTY STAT TIME COMMAND 10058 pts/0 S 0:00 /usr/bin/sftp -S ./portssh aturing@sftp.victimandum.com 10059 pts/0 S 0:00 /usr/bin/ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

Best?tigte die lokale Verbindung zum Weiterleitungsanschluss neu:

 <code>$ nc localhost 2525 220 smtp.victimandum.com Microsoft ESMTP MAIL Service, Version: 1.2.3456.78901 ready at Sun, 1 Jan 2023 01:23:45 -0100 ^C</code>

Als endgültige Demonstration kann ein vollst?ndiger SMTP -Austausch mit dem folgenden Skript durchgeführt werden:

 <code>$ cat awkmail #!/bin/gawk -f BEGIN { smtp="/inet/tcp/0/localhost/2525"; ORS="\r\n"; r=ARGV[1]; s=ARGV[2]; sbj=ARGV[3]; # /bin/awkmail to from subj 0) print |& smtp print "." |& smtp; smtp |& getline j; print j print "quit" |& smtp; smtp |& getline j; print j close(smtp) } # /inet/protocol/local-port/remote-host/remote-port</code>

Wir k?nnen dieses Skript verwenden, um unsere eigene E -Mail an einen Remote -Empf?nger zu senden, auf den der Ziel SMTP -Server zugreifen kann:

 <code>$ ./awkmail jatanasoff@victimandum.com aturning@localhost awkmail Queued mail for delivery</code>

In stark kontrollierten Umgebungen ist das Vorhandensein dieser Funktionen nicht optimal.

Serverbeschr?nkungen

Es ist verst?ndlich, dass SFTP -Administratoren ihren Benutzern nicht erm?glichen m?chten, mit Hilfe des Servers willkürliche TCP -Verbindungen herzustellen, wodurch sensible Netzwerke gef?hrdet werden k?nnen. Die Begrenzung dieser Aktivit?t ist eine vorsichtige Sicherheitseinstellung.

Eine h?ufige restriktive Konfiguration besteht darin, einer Gruppe nicht vertrauenswürdige SFTP -Benutzer hinzuzufügen und dann die Aktivit?t dieser Gruppe in SSHD_CONfig einzuschr?nken:

 <code>Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no</code>

Diese empfohlene Konfiguration reicht normalerweise aus, um alle Weiterleitungsversuche zu verhindern.

Es wird empfohlen, deaktivierte Deaktivierung zu fügen. Ja:

 <code>$ man sshd_config | sed -n /DisableForwarding/,/configurations/p DisableForwarding Disables all forwarding features, including X11, ssh-agent(1), TCP and StreamLocal. This option overrides all other forwarding- related options and may simplify restricted configurations.</code>

Dies bleibt dem Administrator zur Praxis überlassen.

abschlie?end

Zu strenge SFTP -Client -Einstellungen k?nnen zu einem gewissen Grad an Blindheit der Serververwaltung führen. SFTP -Client -Beschr?nkungen k?nnen durch eine Vielzahl von Methoden leicht umgangen.

Für SFTP -Serveradministratoren ist es wichtig zu wissen, wo sie eingeschr?nkt sind und wo sie eingeschr?nkt sind, und verlassen sich nicht auf Clients, um den Server vor willkürlicher TCP -Steuerung zu schützen. Der Client wird vom Benutzer gesteuert, und wenn die Konfiguration falsch ist, ist es schwierig, TCP -Befehle auf den Server zu implementieren. Jeder Test sollte ohne umfangreiche Weiterleitung im Benutzer ssh_config abgeschlossen werden, achten Sie auf die Warnungen im Dokument.

W?hrend dieses Merkmal einen denkbaren rechtlichen Zweck hat, ist Missbrauch selten.

Diese Probleme sind nicht neu, da Varianten von Site Exec seit Jahrzehnten in Plaintext FTP vorhanden sind. SFTP ist keine einfache Alternative zur übertragung von Klartextdateien, sondern auch viele benutzerfreundliche Funktionen.

Hoffentlich k?nnen Administratoren diese Methoden anwenden, um die Sicherheit ihrer Server so zu überprüfen, um nicht überrascht zu werden.

Das obige ist der detaillierte Inhalt vonSFTP -Portweiterleitung: Erm?glichung unterdrückter Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

5 Beste Open Source Mathematical Equation Editoren für Linux 5 Beste Open Source Mathematical Equation Editoren für Linux Jun 18, 2025 am 09:28 AM

Suchen Sie eine gute Software, um mathematische Gleichungen zu schreiben? In diesem Fall enth?lt dieser Artikel die Top 5 Gleichungsdeditoren, die Sie problemlos auf Ihrer bevorzugten Linux -Verteilung installieren k?nnen. Zus?tzlich zu kompatibel mit verschiedenen Arten von Mathemata

SCP Linux -Befehl - übertragen Sie Dateien in Linux sicher SCP Linux -Befehl - übertragen Sie Dateien in Linux sicher Jun 20, 2025 am 09:16 AM

Linux-Administratoren sollten mit der Befehlszeilenumgebung vertraut sein. Da der GUI -Modus (GUI (Graphical User Interface) in Linux -Servern nicht allgemein installiert ist.

Gogo - Erstellen Sie Verknüpfungen zu Verzeichnispfaden unter Linux Gogo - Erstellen Sie Verknüpfungen zu Verzeichnispfaden unter Linux Jun 19, 2025 am 10:41 AM

Gogo ist ein bemerkenswertes Werkzeug, um Verzeichnisse in Ihrer Linux -Shell zu lese. Es hilft Ihnen, Abkürzungen für lange und komplexe Pfade unter Linux zu erstellen. Auf diese Weise müssen Sie nicht mehr langwierige Pfade unter Linux eingeben oder merken. Wenn es ein Verzeichnis gibt

Was ist ein PPA und wie füge ich Ubuntu einen hinzu? Was ist ein PPA und wie füge ich Ubuntu einen hinzu? Jun 18, 2025 am 12:21 AM

PPA ist ein wichtiges Tool für Ubuntu -Benutzer, um ihre Softwarequellen zu erweitern. 1. Bei der Suche nach PPA sollten Sie Launchpad.net besuchen, die offizielle PPA auf der offiziellen Website oder im Dokument der Projekte best?tigen und die Beschreibung und die Benutzerkommentare lesen, um den Sicherheits- und Wartungsstatus sicherzustellen. 2. Fügen Sie PPA hinzu, um den Terminalbefehl sudoadd-apt-Repositoryppa:/zu verwenden, und führen Sie dann sudoaptupdate aus, um die Paketliste zu aktualisieren. 3. Verwalten Sie PPAs, um die hinzugefügte Liste über den GREP -Befehl anzuzeigen. Verwenden Sie den Parameter -Remove, um die .List -Datei zu entfernen oder manuell zu l?schen, um Probleme zu vermeiden, die durch Inkompatibilit?t oder Stoppen von Updates verursacht werden. 4. Verwenden Sie PPA, um die Notwendigkeit abzuw?gen, und priorisieren Sie die Situationen, die der Beamte keine neue Version der Software bereitstellt oder verlangt.

Installieren Sie LXC (Linux Container) in Rhel, Rocky & Almalinux Installieren Sie LXC (Linux Container) in Rhel, Rocky & Almalinux Jul 05, 2025 am 09:25 AM

LXD wird als Container- und Virtual Machine Manager der n?chsten Generation beschrieben, der für Linux-Systeme, die in Containern oder als virtuelle Maschinen ausgeführt werden, ein immersives Anbieter bietet. Es bietet Bilder für eine überm??ige Anzahl von Linux -Verteilungen mit Unterstützung

Wie erstelle ich eine Datei mit einer bestimmten Gr??e zum Testen? Wie erstelle ich eine Datei mit einer bestimmten Gr??e zum Testen? Jun 17, 2025 am 09:23 AM

Wie generiere ich schnell Testdateien einer bestimmten Gr??e? Es kann mit Befehlszeilen -Tools oder grafischen Software erreicht werden. Unter Windows k?nnen Sie fsutilFilecresedew -Dateinamengr??e verwenden, um eine Datei mit einem angegebenen Byte zu generieren. MacOS/Linux kann ddif =/dev/zeroof = filebs = 1mcount = 100 verwenden, um reale Datendateien zu generieren, oder TRUNCATE-S100M-Dateien verwenden, um Sparse-Dateien schnell zu erstellen. Wenn Sie mit der Befehlszeile nicht vertraut sind, k?nnen Sie Fsutilgui, DummyFileGenerator und andere Toolsoftware ausw?hlen. Zu den Anmerkungen geh?ren: Achten Sie auf die Einschr?nkungen des Dateisystems (z.

Wie installiere ich Linux neben Windows (Dual -Boot)? Wie installiere ich Linux neben Windows (Dual -Boot)? Jun 18, 2025 am 12:19 AM

Der Schlüssel zur Installation von Dual -Systemen unter Linux und Windows sind die Einstellungen für die Partitionierung und Start. 1. Vorbereitung umfasst das Sicherungsdaten und die Komprimierung vorhandener Partitionen, um Platz zu schaffen. 2. Verwenden Sie Ventoy oder Rufus, um Linux -Start -USB -Festplatten zu erstellen, und empfehlen Sie Ubuntu. 3.. W?hlen Sie "Koexist mit anderen Systemen" oder partitionieren Sie w?hrend der Installation manuell ( /mindestens 20 GB, /Home Bleibender Platz, optional); 4. überprüfen Sie die Installation von Treibern von Drittanbietern, um Hardwareprobleme zu vermeiden. 5. Wenn Sie nach der Installation das Grub-Boot-Menü nicht eingeben, k?nnen Sie den Boot-Repair verwenden, um den Start zu reparieren oder die BIOS-Startsequenz anzupassen. Solange die Schritte klar sind und die Operation ordnungsgem?? durchgeführt wird, ist der gesamte Vorgang nicht kompliziert.

NVM - Installieren und verwalten Sie mehrere Node.js -Versionen unter Linux NVM - Installieren und verwalten Sie mehrere Node.js -Versionen unter Linux Jun 19, 2025 am 09:09 AM

Node Version Manager (NVM) ist ein einfaches Bash -Skript, mit dem mehrere Node.js -Versionen auf Ihrem Linux -System verwaltet werden k?nnen. Sie k?nnen verschiedene Node.js -Versionen installieren, verfügbare Versionen für die Installation anzeigen und bereits installierte Versionen überprüft.nv

See all articles