-
Translated by Robert Ylitalo
(KYBS2001 course assignment at JYU.fi)
-
♪ (38C3 intromusiikki) ♪
-
Ollaan jo kirimässä menetettyä aikaa.
-
Tervetuloa kaikki meidän esitykseen:
"Matka menneisyyteen: RCE faksikoneen kautta, koska miksei?"
-
Tämä projekti vaati paljon enemmän työtä kuin osasimme odottaa,
joten toivottavasti olette valmiita hyppäämään kyytiin.
-
Nimeni on Rick de Jaeger ja vieressäni on kollegani Carla Meyer tässä 80-luvun henkisessä kuvassa.
-
Ennen kuin mennään liian pitkälle, haluamme aloittaa tunnustuksella.
-
Suuri osa tästä työstä sai inspiraationsa aiemmasta CCC-esityksestä,
-
jossa Eyal Itkin ja Yaniv Balmas hakkeroivat fakseja.
-
He tekivät erinomaista työtä, ja se istutti meille ajatuksen:
-
jos joskus löydämme kirjan, jota voisi lukea faksin kautta, niin meidän pitäisi kokeilla, kuinka vaikeaa se olisi ja se tulisi olemaan hauskaa.
-
Eli vaikka uutuuden viehätys ei ollutkaan varsinainen motivaattori, miksi sitten juuri faksikone?
-
No, tämä kaunis faksilaite on ollut yksi Pwn2Own-kilpailun kohteista jo neljän vuoden ajan.
-
Olemme itse osallistuneet Pwn2Owniin kolmena vuonna.
-
Pwn2Own on nollapäivähaavoittuvuuskilpailu, jossa järjestäjä antaa listan kohteista kolme kuukautta ennen kilpailua,
-
ja osallistujien pitää löytää uusia haavoittuvuuksia, joilla saadaan suoritettua koodia kohdelaitteissa.
-
Pwn2Own-kilpailussa on eri sarjoja:
-
työpöytäsovellukset kuten selaimet ja virtuaalikoneet,
-
autohakkerointi eli automotive,
-
ja sitten IoT-laitteet eli kulutuselektroniikka, jossa me kilpailtiin.
-
Miksi me katsottiin tulostimia?
-
No, me päädyttiin tähän projektiin, kun nähtiin eräs julkaisu CDI-blogissa.
-
Siinä kerrottiin, että jos hakkeroit ensin reitittimen ja siirryt siitä esimerkiksi tulostimeen, voit voittaa 100 000 dollaria.
-
Ajattelimme, että 100K kuulostaa hyvältä, niin koitetaan sitä.
-
Mutta palkintoraha ei ole aina 100K.
-
Jos joku toinen löytää saman haavoittuvuuden, summa pienenee merkittävästi.
-
Tulostimissa hyökkäyspinta on iso, joten on vähemmän todennäköistä, että joku muu löytää saman bugin.
-
Päätettiin siis valita vaikeampi haavoittuvuus, kuten muistinkäsittelybugi.
-
Ne ovat yksityiskohtaisempia ja työläämpiä, joten muut eivät välttämättä löydä juuri samaa haavoittuvuutta.
-
Meillä oli monta tulostinta valittavana, ja strategiamme oli valita sellainen, joka oli kohtuullisen halpa
-
mutta jonka laiteohjelmisto oli salattu.
-
Eli sisäänpääsy vaatii ensin laitteen ostamista, sen purkamista ja firmwaren purkua.
-
Toivoimme, että muut kilpailijat valitsevat helpomman kohteen,
-
jotta he eivät löytäisi samaa haavoittuvuutta.
-
Tässä on siis päähenkilömme: Lexmarkin 331-sarja.
-
Se on ollut Pwn2Own-kohde vuodesta 2021.
-
Me aloitimme vuonna 2022, ja olemme kirjoittaneet siihen exploitin jo kolmesti.
-
Laite perustuu Yocto Linuxiin, joka on varsin järeä käyttöjärjestelmä.
-
Se pyörittää joitain Rust-komponentteja ja Qt-sovelluksia, eli aika moderni kokonaisuus.
-
Verrattuna muihin tulostimiin, sanoisin että Lexmark on tehnyt ihan hyvää työtä
-
tietoturvan saralla.
-
Järjestelmässä on useita käyttäjätilejä,
-
ohjelmistot ovat melko ajan tasalla,
-
ja siellä on yrityksiä hiekkalaatikointiin systemd-komponenttien avulla.
-
Eli he suoriutuvat kohtalaisen hyvin.
-
Mutta me silti hakkeroimme laitteen kolme kertaa, eli ei täydellistä.
-
Ja tärkeimpänä tämän päivän kannalta
-
tässä laitteessa on faksituki.
-
Emme valinneet sitä sen takia, mutta se vain sattui olemaan mukana.
-
Ja me satuimme sen löytämään.
-
Rahan lisäksi, miksi teemme tätä?
-
No, faksien kulta-aika oli ehkä vuoteen -99 asti.
-
Itse olen 25-vuotias, joten tuntuu, että koko faksikulttuuri meni vähän ohi.
-
Tähän projektiin asti en ollut koskaan lähettänyt yhtäkään faksia.
-
Tässä vaiheessa niitä on tullut varmasti satoja.
-
No miten tämä oikein toteutetaan?
-
Ensimmäisenä tarvitsemme tietenkin firmware-kuvan.
-
Ilman sitä tämä olisi täysin sokkona ampumista.
-
Sen jälkeen tarvitsemme jonkinlaisen debuggauksen mahdollisuuden,
-
koska jos haluat hyödyntää muistikorruptiobugia,
-
tarvitset tietoa ohjelman sisäisestä tilasta ja muusta sellaisesta.
-
Eli suunnitelmana oli saada käyttöön hyvä debuggausympäristö
-
joko koodin suorittamisen kautta tai JTAG-debugin avulla.
-
Näiden työkalujen avulla voimme löytää haavoittuvuuden,
-
hyödyntää sitä, kerätä palkkion
-
ja tuoda bugin faksitoimintoon sekä pitää tästä hyvä esitys CCC:ssä.
-
Ja tässä me nyt olemme.
-
Aloitetaan siis firmware-kuvan hankinnasta.
-
Ensimmäinen paikka, josta kannattaa katsoa, on tietenkin Lexmarkin verkkosivusto.
-
Sieltä voi ladata firmware-kuvan.
-
Mutta kun laitoimme sen binwalkin läpi, tuloksena oli pelkkää siansaksaa.
-
Mietimme, että mikäs tässä nyt mättää.
-
Kävi ilmi, että tiedoston entropia oli tosi korkea
-
oikeastaan ihan järkyttävän korkea.
-
Eli hyvin selvä merkki siitä, että kuva on salattu. Valitettavasti.
-
Tässä kohtaa oli selvää, että kuvasta ei ole hyötyä,
-
koska se on salattu emmekä tiedä avaimia.
-
Eli takaisin piirustuspöydälle.
-
Hauska nippelitieto muuten:
-
tulostimen firmwarepäivitys toimitetaan itse asiassa tulostettavana tiedostona.
-
Se on upotettu PostScript-dokumenttiin
-
ja kun tulostat sen, laite päivittää itsensä automaattisesti.
-
Seuraava vaihe oli siis hankkia itse laite.
-
Tässä on kuva tulostimesta autoni takakontissa.
-
Ostimme tämän käytettynä.
-
Kauppa meni suunnilleen näin:
-
Kävin myyjän kanssa keskustelun, ja hän ystävällisesti varoitti: