Praktische tips, voorbeelden en SSH-tunnels

Praktische tips, voorbeelden en SSH-tunnels
Praktijkvoorbeelden SSH, waarmee uw vaardigheden als systeembeheerder op afstand naar een nieuw niveau worden getild. Commando's en tips helpen niet alleen om te gebruiken SSH, maar ook competenter door het netwerk navigeren.

Een paar trucjes kennen ssh nuttig voor elke systeembeheerder, netwerkingenieur of beveiligingsspecialist.

Praktische SSH-voorbeelden

  1. SSH-sokkenproxy
  2. SSH-tunnel (port forwarding)
  3. SSH-tunnel naar derde host
  4. Omgekeerde SSH-tunnel
  5. SSH omgekeerde proxy
  6. VPN via SSH installeren
  7. Een SSH-sleutel kopiëren (ssh-copy-id)
  8. Uitvoering van opdrachten op afstand (niet-interactief)
  9. Pakketten op afstand vastleggen en bekijken in Wireshark
  10. Een lokale map kopiëren naar een externe server via SSH
  11. Externe GUI-applicaties met SSH X11 Forwarding
  12. Bestanden op afstand kopiëren met rsync en SSH
  13. SSH via Tor-netwerk
  14. SSH naar EC2-instantie
  15. Tekstbestanden bewerken met VIM via ssh/scp
  16. Koppel externe SSH als lokale map met SSHFS
  17. SSH multiplexen met ControlPath
  18. Stream video via SSH met VLC en SFTP
  19. Twee-factor-authenticatie
  20. Jumping hosts met SSH en -J
  21. SSH brute force-pogingen blokkeren met behulp van iptables
  22. SSH Escape om port forwarding te wijzigen

Eerst de basis

De SSH-opdrachtregel parseren

In het volgende voorbeeld worden algemene parameters gebruikt die vaak voorkomen bij het verbinden met een externe server SSH.

localhost:~$ ssh -v -p 22 -C neo@remoteserver

  • -v: Het debuggen van uitvoer is vooral handig bij het analyseren van authenticatieproblemen. Kan meerdere keren worden gebruikt om aanvullende informatie weer te geven.
  • - p 22: verbindingspoort naar een externe SSH-server. 22 hoeft niet te worden gespecificeerd, omdat dit de standaardwaarde is, maar als het protocol zich op een andere poort bevindt, specificeren we dit met behulp van de parameter -p. De luisterpoort wordt gespecificeerd in het bestand sshd_config in het formaat Port 2222.
  • -C: Compressie voor verbinding. Als je een langzame verbinding hebt of veel tekst bekijkt, kan dit de verbinding versnellen.
  • neo@: De regel vóór het @-symbool geeft de gebruikersnaam aan voor authenticatie op de externe server. Als u dit niet opgeeft, wordt standaard de gebruikersnaam gebruikt van het account waarop u momenteel bent ingelogd (~$whoami). De gebruiker kan ook worden opgegeven met behulp van de parameter -l.
  • remoteserver: naam van de host waarmee verbinding moet worden gemaakt ssh, kan dit een volledig gekwalificeerde domeinnaam, een IP-adres of een willekeurige host in het lokale hosts-bestand zijn. Om verbinding te maken met een host die zowel IPv4 als IPv6 ondersteunt, kunt u de parameter aan de opdrachtregel toevoegen -4 of -6 voor de juiste resolutie.

Alle bovenstaande parameters zijn optioneel, behalve remoteserver.

Het configuratiebestand gebruiken

Hoewel velen bekend zijn met het bestand sshd_config, is er ook een clientconfiguratiebestand voor de opdracht ssh. Standaardwaarde ~/.ssh/config, maar het kan worden gedefinieerd als een parameter voor een optie -F.

Host *
     Port 2222

Host remoteserver
     HostName remoteserver.thematrix.io
     User neo
     Port 2112
     IdentityFile /home/test/.ssh/remoteserver.private_key

Er zijn twee hostvermeldingen in het bovenstaande voorbeeld van een ssh-configuratiebestand. De eerste betekent alle hosts, die allemaal de configuratieparameter Poort 2222 gebruiken. De tweede zegt dat voor de host externe server er moet een andere gebruikersnaam, poort, FQDN en IdentityFile worden gebruikt.

Een configuratiebestand kan veel typtijd besparen doordat geavanceerde configuratie automatisch kan worden toegepast bij het verbinden met specifieke hosts.

Bestanden kopiëren via SSH met behulp van SCP

De SSH-client wordt geleverd met twee andere zeer handige tools voor het kopiëren van bestanden gecodeerde ssh-verbinding. Zie hieronder voor een voorbeeld van standaardgebruik van de scp- en sftp-opdrachten. Merk op dat veel van de ssh-opties ook op deze opdrachten van toepassing zijn.

localhost:~$ scp mypic.png neo@remoteserver:/media/data/mypic_2.png

In dit voorbeeld is het bestand mijnpic.png gekopieerd naar externe server naar map /media/gegevens en hernoemd naar mijnpic_2.png.

Vergeet het verschil in de poortparameter niet. Dit is waar veel mensen betrapt worden wanneer ze lanceren scp vanaf de opdrachtregel. Hier is de poortparameter -PEn niet -p, net als in een ssh-client! Je zult het vergeten, maar maak je geen zorgen, iedereen vergeet het.

Voor degenen die bekend zijn met consoles ftp, veel van de opdrachten zijn vergelijkbaar in sftp. Je kunt het doen duwen, zetten и lszoals het hart begeert.

sftp neo@remoteserver

Praktijkvoorbeelden

In veel van deze voorbeelden kunnen de resultaten worden bereikt met behulp van verschillende methoden. Zoals in al onze schoolboeken en voorbeelden, de voorkeur gaat uit naar praktijkvoorbeelden die eenvoudigweg hun werk doen.

1. SSH-sokkenproxy

De SSH Proxy-functie staat niet voor niets op nummer 1. Het is krachtiger dan velen beseffen en geeft u toegang tot elk systeem waartoe de externe server toegang heeft, met behulp van vrijwel elke applicatie. Een ssh-client kan met één eenvoudige opdracht verkeer door een SOCKS-proxy tunnelen. Het is belangrijk om te begrijpen dat verkeer naar externe systemen afkomstig is van een externe server; dit wordt aangegeven in de webserverlogboeken.

localhost:~$ ssh -D 8888 user@remoteserver

localhost:~$ netstat -pan | grep 8888
tcp        0      0 127.0.0.1:8888       0.0.0.0:*               LISTEN      23880/ssh

Hier draaien we een sokkenproxy op TCP-poort 8888, het tweede commando controleert of de poort actief is in de luistermodus. 127.0.0.1 geeft aan dat de service alleen op localhost draait. We kunnen een iets ander commando gebruiken om op alle interfaces te luisteren, inclusief ethernet of wifi. Hierdoor kunnen andere applicaties (browsers, enz.) op ons netwerk verbinding maken met de proxyservice via de ssh-sokkenproxy.

localhost:~$ ssh -D 0.0.0.0:8888 user@remoteserver

Nu kunnen we de browser configureren om verbinding te maken met de sokkenproxy. Selecteer in Firefox Instellingen | Basis | Netwerkinstellingen. Geef het IP-adres en de poort op waarmee u verbinding wilt maken.

Praktische tips, voorbeelden en SSH-tunnels

Let op de optie onderaan het formulier om de DNS-verzoeken van uw browser ook via een SOCKS-proxy te laten verlopen. Als u een proxyserver gebruikt om webverkeer op uw lokale netwerk te coderen, wilt u waarschijnlijk deze optie selecteren, zodat DNS-verzoeken via de SSH-verbinding worden getunneld.

Sokkenproxy activeren in Chrome

Als u Chrome start met bepaalde opdrachtregelparameters, wordt de sokkenproxy ingeschakeld, evenals het tunnelen van DNS-verzoeken vanuit de browser. Vertrouw maar controleer. Gebruik tcpdump om te controleren of DNS-query's niet langer zichtbaar zijn.

localhost:~$ google-chrome --proxy-server="socks5://192.168.1.10:8888"

Andere applicaties gebruiken met een proxy

Houd er rekening mee dat veel andere toepassingen ook sokkenproxy's kunnen gebruiken. De webbrowser is simpelweg de meest populaire van allemaal. Sommige applicaties hebben configuratieopties om een ​​proxyserver in te schakelen. Anderen hebben wat hulp nodig met een helperprogramma. Bijvoorbeeld, proxyketens Hiermee kunt u een sokkenproxy van Microsoft RDP doorlopen, enz.

localhost:~$ proxychains rdesktop $RemoteWindowsServer

De configuratieparameters van de Socks-proxy worden ingesteld in het proxychains-configuratiebestand.

Tip: gebruik je extern bureaublad van Linux op Windows? Probeer de klant Gratis RDP. Dit is een modernere uitvoering dan rdesktop, met een veel soepelere ervaring.

Optie om SSH te gebruiken via sokkenproxy

Je zit in een café of hotel - en wordt gedwongen om tamelijk onbetrouwbare wifi te gebruiken. We starten lokaal een ssh-proxy vanaf een laptop en installeren een ssh-tunnel in het thuisnetwerk op een lokale Rasberry Pi. Met behulp van een browser of andere applicaties die zijn geconfigureerd voor een sokkenproxy, hebben we toegang tot alle netwerkdiensten op ons thuisnetwerk of hebben we toegang tot internet via onze thuisverbinding. Alles tussen uw laptop en uw thuisserver (via Wi-Fi en internet naar uw huis) wordt gecodeerd in een SSH-tunnel.

2. SSH-tunnel (port forwarding)

In de eenvoudigste vorm opent een SSH-tunnel eenvoudigweg een poort op uw lokale systeem die verbinding maakt met een andere poort aan het andere uiteinde van de tunnel.

localhost:~$ ssh  -L 9999:127.0.0.1:80 user@remoteserver

Laten we naar de parameter kijken -L. Je kunt het zien als de lokale kant van luisteren. Dus in het bovenstaande voorbeeld luistert poort 9999 aan de localhost-kant en wordt via poort 80 doorgestuurd naar de externe server. Houd er rekening mee dat 127.0.0.1 verwijst naar localhost op de externe server!

Laten we de trap opgaan. In het volgende voorbeeld worden luisterpoorten gecommuniceerd met andere hosts op het lokale netwerk.

localhost:~$ ssh  -L 0.0.0.0:9999:127.0.0.1:80 user@remoteserver

In deze voorbeelden maken we verbinding met een poort op de webserver, maar dit kan een proxyserver of een andere TCP-service zijn.

3. SSH-tunnel naar een externe host

We kunnen dezelfde parameters gebruiken om een ​​tunnel van een externe server te verbinden met een andere service die op een derde systeem draait.

localhost:~$ ssh  -L 0.0.0.0:9999:10.10.10.10:80 user@remoteserver

In dit voorbeeld leiden we een tunnel om van de externe server naar een webserver die draait op 10.10.10.10. Verkeer van externe server naar 10.10.10.10 niet meer in de SSH-tunnel. De webserver op 10.10.10.10 beschouwt de externe server als de bron van webverzoeken.

4. Omgekeerde SSH-tunnel

Hier zullen we een luisterpoort op de externe server configureren die verbinding maakt met de lokale poort op onze localhost (of een ander systeem).

localhost:~$ ssh -v -R 0.0.0.0:1999:127.0.0.1:902 192.168.1.100 user@remoteserver

Deze SSH-sessie brengt een verbinding tot stand vanaf poort 1999 op de externe server naar poort 902 op onze lokale client.

5. SSH omgekeerde proxy

In dit geval stellen we een sokkenproxy in op onze ssh-verbinding, maar de proxy luistert op het externe uiteinde van de server. Verbindingen met deze externe proxy verschijnen nu vanuit de tunnel als verkeer van onze localhost.

localhost:~$ ssh -v -R 0.0.0.0:1999 192.168.1.100 user@remoteserver

Problemen oplossen met externe SSH-tunnels

Als u problemen ondervindt met de werking van externe SSH-opties, neem dan contact op met netstat, op welke andere interfaces de luisterpoort is aangesloten. Hoewel we in de voorbeelden 0.0.0.0 hebben aangegeven, maar als de waarde Gatewaypoorten в sshd_config ingesteld op geen, dan is de luisteraar alleen gebonden aan localhost (127.0.0.1).

Veiligheidswaarschuwing

Houd er rekening mee dat door het openen van tunnels en sokkenproxy's interne netwerkbronnen toegankelijk kunnen zijn voor niet-vertrouwde netwerken (zoals internet!). Dit kan een ernstig veiligheidsrisico vormen, dus zorg ervoor dat u begrijpt wat de luisteraar is en waartoe deze toegang heeft.

6. VPN installeren via SSH

Een veel voorkomende term onder specialisten in aanvalsmethoden (pentesters, enz.) is ‘een steunpunt in het netwerk’. Zodra er op één systeem een ​​verbinding tot stand is gebracht, wordt dat systeem de gateway voor verdere toegang tot het netwerk. Een steunpunt waarmee je in de breedte kunt bewegen.

Voor zo'n houvast kunnen we een SSH-proxy en proxyketens, er zijn echter enkele beperkingen. Zo zal het niet mogelijk zijn om direct met sockets te werken, waardoor we geen poorten binnen het netwerk kunnen scannen via Nmap SYN.

Met behulp van deze meer geavanceerde VPN-optie wordt de verbinding teruggebracht tot niveau 3. Vervolgens kunnen we het verkeer eenvoudig door de tunnel routeren met behulp van standaard netwerkroutering.

De methode gebruikt ssh, iptables, tun interfaces en routering.

Eerst moet u deze parameters instellen sshd_config. Omdat we wijzigingen aanbrengen in de interfaces van zowel de externe als de clientsystemen, kunnen we hebben aan beide kanten wortelrechten nodig.

PermitRootLogin yes
PermitTunnel yes

Vervolgens zullen we een ssh-verbinding tot stand brengen met behulp van de parameter die de initialisatie van tun-apparaten aanvraagt.

localhost:~# ssh -v -w any root@remoteserver

We zouden nu een tun-apparaat moeten hebben bij het tonen van interfaces (# ip a). In de volgende stap worden IP-adressen aan de tunnelinterfaces toegevoegd.

SSH-clientzijde:

localhost:~# ip addr add 10.10.10.2/32 peer 10.10.10.10 dev tun0
localhost:~# ip tun0 up

SSH-serverkant:

remoteserver:~# ip addr add 10.10.10.10/32 peer 10.10.10.2 dev tun0
remoteserver:~# ip tun0 up

Nu hebben we een directe route naar een andere host (route -n и ping 10.10.10.10).

U kunt elk subnet via een host aan de andere kant routeren.

localhost:~# route add -net 10.10.10.0 netmask 255.255.255.0 dev tun0

Aan de externe kant moet u inschakelen ip_forward и iptables.

remoteserver:~# echo 1 > /proc/sys/net/ipv4/ip_forward
remoteserver:~# iptables -t nat -A POSTROUTING -s 10.10.10.2 -o enp7s0 -j MASQUERADE

Boom! VPN via SSH-tunnel op netwerklaag 3. Dat is een overwinning.

Als er problemen optreden, gebruik dan tcpdump и pingom de oorzaak vast te stellen. Omdat we op laag 3 spelen, gaan onze icmp-pakketten door deze tunnel.

7. Kopieer de SSH-sleutel (ssh-copy-id)

Er zijn verschillende manieren om dit te doen, maar deze opdracht bespaart tijd doordat bestanden niet handmatig worden gekopieerd. Het kopieert eenvoudigweg ~/.ssh/id_rsa.pub (of de standaardsleutel) van uw systeem naar ~/.ssh/authorized_keys op een externe server.

localhost:~$ ssh-copy-id user@remoteserver

8. Uitvoering van opdrachten op afstand (niet-interactief)

team ssh Kan worden gekoppeld aan andere commando's voor een gemeenschappelijke, gebruiksvriendelijke interface. Voeg gewoon de opdracht die u op de externe host wilt uitvoeren toe als de laatste parameter tussen aanhalingstekens.

localhost:~$ ssh remoteserver "cat /var/log/nginx/access.log" | grep badstuff.php

In dit voorbeeld grep uitgevoerd op het lokale systeem nadat het logboek is gedownload via ssh-kanaal. Als het bestand groot is, is het handiger om het uit te voeren grep aan de externe kant door beide opdrachten simpelweg tussen dubbele aanhalingstekens te plaatsen.

Een ander voorbeeld vervult dezelfde functie als ssh-copy-id uit voorbeeld 7.

localhost:~$ cat ~/.ssh/id_rsa.pub | ssh remoteserver 'cat >> .ssh/authorized_keys'

9. Pakketten op afstand vastleggen en bekijken in Wireshark

Ik heb er één van ons meegenomen tcpdump-voorbeelden. Gebruik het om op afstand pakketten vast te leggen en de resultaten rechtstreeks in de lokale Wireshark GUI weer te geven.

:~$ ssh root@remoteserver 'tcpdump -c 1000 -nn -w - not port 22' | wireshark -k -i -

10. Een lokale map kopiëren naar een externe server via SSH

Een leuke truc om een ​​map te comprimeren met behulp van bzip2 (dit is de -j optie in de opdracht tar), en haalt vervolgens de stream op bzip2 aan de andere kant, door een dubbele map op de externe server te maken.

localhost:~$ tar -cvj /datafolder | ssh remoteserver "tar -xj -C /datafolder"

11. GUI-applicaties op afstand met SSH X11 Forwarding

Als X op de client en de externe server is geïnstalleerd, kunt u op afstand een GUI-opdracht uitvoeren met een venster op uw lokale bureaublad. Deze functie bestaat al een tijdje, maar is nog steeds erg handig. Start een externe webbrowser of zelfs de VMWawre Workstation-console zoals ik in dit voorbeeld doe.

localhost:~$ ssh -X remoteserver vmware

Vereiste tekenreeks X11Forwarding yes in bestand sshd_config.

12. Bestanden op afstand kopiëren met rsync en SSH

rsync veel handiger scp, als u periodieke back-ups nodig heeft van een map, een groot aantal bestanden of zeer grote bestanden. Er is een functie voor het herstellen van een overdrachtsfout en het kopiëren van alleen gewijzigde bestanden, wat verkeer en tijd bespaart.

In dit voorbeeld wordt compressie gebruikt gzip (-z) en archiveringsmodus (-a), die recursief kopiëren mogelijk maakt.

:~$ rsync -az /home/testuser/data remoteserver:backup/

13. SSH via het Tor-netwerk

Het anonieme Tor-netwerk kan SSH-verkeer tunnelen met behulp van de opdracht torsocks. Met de volgende opdracht wordt de ssh-proxy via Tor doorgegeven.

localhost:~$ torsocks ssh myuntracableuser@remoteserver

Torsokken zal poort 9050 op localhost gebruiken voor proxy. Zoals altijd moet je bij het gebruik van Tor serieus controleren welk verkeer wordt getunneld en welke andere operationele veiligheidsproblemen (opsec) er zijn. Waar gaan uw DNS-query's naartoe?

14. SSH naar EC2-instantie

Om verbinding te maken met een EC2-instantie heeft u een privésleutel nodig. Download het (.pem-extensie) via het Amazon EC2-configuratiescherm en wijzig de rechten (chmod 400 my-ec2-ssh-key.pem). Bewaar de sleutel op een veilige plaats of plaats deze in uw eigen map ~/.ssh/.

localhost:~$ ssh -i ~/.ssh/my-ec2-key.pem ubuntu@my-ec2-public

Parameter -i vertelt de ssh-client eenvoudigweg deze sleutel te gebruiken. Bestand ~/.ssh/config Ideaal voor het automatisch configureren van sleutelgebruik bij verbinding met een ec2-host.

Host my-ec2-public
   Hostname ec2???.compute-1.amazonaws.com
   User ubuntu
   IdentityFile ~/.ssh/my-ec2-key.pem

15. Tekstbestanden bewerken met VIM via ssh/scp

Voor alle liefhebbers vim Deze tip zal wat tijd besparen. Door het gebruiken van vim bestanden worden via scp bewerkt met één commando. Met deze methode wordt het bestand eenvoudigweg lokaal aangemaakt /tmpen kopieert het vervolgens terug zodra we het hebben opgeslagen vim.

localhost:~$ vim scp://user@remoteserver//etc/hosts

Let op: het formaat wijkt iets af van gebruikelijk scp. Na de gastheer hebben we het dubbele //. Dit is een absolute padreferentie. Eén schuine streep geeft een pad aan ten opzichte van uw thuismap users.

**warning** (netrw) cannot determine method (format: protocol://[user@]hostname[:port]/[path])

Als u deze fout ziet, controleer dan het opdrachtformaat. Dit betekent meestal een syntaxisfout.

16. Een externe SSH koppelen als een lokale map met SSHFS

Door middel van sshfs - bestandssysteemclient ssh - we kunnen een lokale map verbinden met een externe locatie met alle bestandsinteracties in een gecodeerde sessie ssh.

localhost:~$ apt install sshfs

Installeer het pakket op Ubuntu en Debian sshfsen koppel vervolgens eenvoudigweg de externe locatie aan ons systeem.

localhost:~$ sshfs user@remoteserver:/media/data ~/data/

17. SSH-multiplexing met ControlPath

Standaard wordt, als er een bestaande verbinding met een externe server is, gebruik gemaakt van ssh tweede verbinding gebruikt ssh of scp brengt een nieuwe sessie tot stand met aanvullende authenticatie. Keuze ControlPath maakt het mogelijk dat de bestaande sessie wordt gebruikt voor alle volgende verbindingen. Dit zal het proces aanzienlijk versnellen: het effect is zelfs merkbaar op een lokaal netwerk, en nog meer bij het verbinden met externe bronnen.

Host remoteserver
        HostName remoteserver.example.org
        ControlMaster auto
        ControlPath ~/.ssh/control/%r@%h:%p
        ControlPersist 10m

ControlPath specificeert de socket om te controleren op nieuwe verbindingen om te zien of er een actieve sessie is ssh. De laatste optie betekent dat zelfs nadat u de console verlaat, de bestaande sessie nog 10 minuten open blijft, zodat u gedurende deze tijd opnieuw verbinding kunt maken op het bestaande stopcontact. Zie de help voor meer informatie. ssh_config man.

18. Stream video via SSH met VLC en SFTP

Zelfs langdurige gebruikers ssh и vlc (Video Lan Client) zijn zich niet altijd bewust van deze handige optie als u echt een video via het netwerk wilt bekijken. Bij instellingen Bestand | Open Netwerkstream programma's vlc U kunt de locatie invoeren als sftp://. Als er een wachtwoord vereist is, verschijnt er een prompt.

sftp://remoteserver//media/uploads/myvideo.mkv

19. Двухфакторная

Voor de SSH-dienst geldt dezelfde tweefactorauthenticatie als uw bankrekening of Google-account.

Natuurlijk ssh heeft in eerste instantie een tweefactorauthenticatiefunctie, wat een wachtwoord en een SSH-sleutel betekent. Het voordeel van een hardwaretoken of Google Authenticator-app is dat het meestal om een ​​ander fysiek apparaat gaat.

Zie onze 8 minuten durende gids voor met behulp van Google Authenticator en SSH.

20. Hosts springen met ssh en -J

Als netwerksegmentatie betekent dat u door meerdere ssh-hosts moet springen om bij het eindbestemmingsnetwerk te komen, bespaart de snelkoppeling -J u tijd.

localhost:~$ ssh -J host1,host2,host3 [email protected]

Het belangrijkste dat u hier moet begrijpen, is dat dit niet hetzelfde is als het commando ssh host1, we zweren het user@host1:~$ ssh host2 etc. De optie -J maakt op slimme wijze gebruik van forwarding om localhost te dwingen een sessie tot stand te brengen met de volgende host in de keten. In het bovenstaande voorbeeld is onze localhost dus geauthenticeerd op host4. Dat wil zeggen, onze localhost-sleutels worden gebruikt en de sessie van localhost naar host4 is volledig gecodeerd.

Voor een dergelijke mogelijkheid in ssh_config configuratieoptie opgeven Proxy Jump. Als u regelmatig meerdere hosts moet doorlopen, bespaart automatisering via de configuratie veel tijd.

21. Blokkeer brute force-pogingen van SSH met behulp van iptables

Iedereen die een SSH-service heeft beheerd en de logboeken heeft bekeken, kent het aantal brute force-pogingen dat elk uur van de dag plaatsvindt. Een snelle manier om ruis in de logboeken te verminderen, is door SSH naar een niet-standaard poort te verplaatsen. Breng wijzigingen aan in het bestand sshd_config via configuratieparameter Haven##.

Met iptables U kunt ook eenvoudig pogingen blokkeren om verbinding te maken met een poort wanneer een bepaalde drempel wordt bereikt. Een gemakkelijke manier om dit te doen is door gebruik te maken van OSSEC, omdat het niet alleen SSH blokkeert, maar ook een aantal andere op hostnamen gebaseerde inbraakdetectiemaatregelen (HIDS) uitvoert.

22. SSH Escape om port forwarding te wijzigen

En ons laatste voorbeeld ssh ontworpen om port forwarding direct te wijzigen binnen een bestaande sessie ssh. Stel je dit scenario eens voor. Je zit diep in het netwerk; misschien heb ik meer dan een half dozijn hosts gesprongen en heb ik een lokale poort op het werkstation nodig die wordt doorgestuurd naar de Microsoft SMB van een oud Windows 2003-systeem (herinnert iemand zich ms08-67?).

Klikken op enter, probeer de console in te voeren ~C. Dit is een sessiecontrolereeks waarmee wijzigingen kunnen worden aangebracht in een bestaande verbinding.

localhost:~$ ~C
ssh> -h
Commands:
      -L[bind_address:]port:host:hostport    Request local forward
      -R[bind_address:]port:host:hostport    Request remote forward
      -D[bind_address:]port                  Request dynamic forward
      -KL[bind_address:]port                 Cancel local forward
      -KR[bind_address:]port                 Cancel remote forward
      -KD[bind_address:]port                 Cancel dynamic forward
ssh> -L 1445:remote-win2k3:445
Forwarding port.

Hier kun je zien dat we onze lokale poort 1445 hebben doorgestuurd naar een Windows 2003-host die we op het interne netwerk hebben gevonden. Nu maar rennen msfconsole, en u kunt verder gaan (ervan uitgaande dat u van plan bent deze host te gebruiken).

Voltooiing

Deze voorbeelden, tips en commando's ssh moet een uitgangspunt geven; Meer informatie over elk van de commando's en mogelijkheden is beschikbaar op de manpagina's (man ssh, man ssh_config, man sshd_config).

Ik ben altijd gefascineerd geweest door de mogelijkheid om overal ter wereld toegang te krijgen tot systemen en opdrachten uit te voeren. Door je vaardigheden te ontwikkelen met tools zoals ssh je wordt effectiever in elk spel dat je speelt.

Bron: www.habr.com

Voeg een reactie