< Return to Video

38C3 - Dialing into the Past: RCE via the Fax Machine – Because Why Not?

  • 0:00 - 0:06
    Translated by Robert Ylitalo
    (KYBS2001 course assignment at JYU.fi)
  • 0:06 - 0:14
    ♪ (38C3 intromusiikki) ♪
  • 0:20 - 0:23
    Ollaan jo kirimässä menetettyä aikaa.
  • 0:23 - 0:28
    Tervetuloa kaikki meidän esitykseen:
    "Matka menneisyyteen: RCE faksikoneen kautta, koska miksei?"
  • 0:28 - 0:35
    Tämä projekti vaati paljon enemmän työtä kuin osasimme odottaa,
    joten toivottavasti olette valmiita hyppäämään kyytiin.
  • 0:35 - 0:41
    Nimeni on Rick de Jaeger ja vieressäni on kollegani Carla Meyer tässä 80-luvun henkisessä kuvassa.
  • 0:41 - 0:46
    Ennen kuin mennään liian pitkälle, haluamme aloittaa tunnustuksella.
  • 0:46 - 0:50
    Suuri osa tästä työstä sai inspiraationsa aiemmasta CCC-esityksestä,
  • 0:50 - 0:53
    jossa Eyal Itkin ja Yaniv Balmas hakkeroivat fakseja.
  • 0:53 - 0:57
    He tekivät erinomaista työtä, ja se istutti meille ajatuksen:
  • 0:57 - 1:04
    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.
  • 1:04 - 1:11
    Eli vaikka uutuuden viehätys ei ollutkaan varsinainen motivaattori, miksi sitten juuri faksikone?
  • 1:11 - 1:19
    No, tämä kaunis faksilaite on ollut yksi Pwn2Own-kilpailun kohteista jo neljän vuoden ajan.
  • 1:19 - 1:23
    Olemme itse osallistuneet Pwn2Owniin kolmena vuonna.
  • 1:23 - 1:28
    Pwn2Own on nollapäivähaavoittuvuuskilpailu, jossa järjestäjä antaa listan kohteista kolme kuukautta ennen kilpailua,
  • 1:28 - 1:39
    ja osallistujien pitää löytää uusia haavoittuvuuksia, joilla saadaan suoritettua koodia kohdelaitteissa.
  • 1:39 - 1:42
    Pwn2Own-kilpailussa on eri sarjoja:
  • 1:42 - 1:46
    työpöytäsovellukset kuten selaimet ja virtuaalikoneet,
  • 1:46 - 1:50
    autohakkerointi eli automotive,
  • 1:50 - 1:54
    ja sitten IoT-laitteet eli kulutuselektroniikka, jossa me kilpailtiin.
  • 1:54 - 1:58
    Miksi me katsottiin tulostimia?
  • 1:58 - 2:02
    No, me päädyttiin tähän projektiin, kun nähtiin eräs julkaisu CDI-blogissa.
  • 2:03 - 2:10
    Siinä kerrottiin, että jos hakkeroit ensin reitittimen ja siirryt siitä esimerkiksi tulostimeen, voit voittaa 100 000 dollaria.
  • 2:10 - 2:14
    Ajattelimme, että 100K kuulostaa hyvältä, niin koitetaan sitä.
  • 2:15 - 2:19
    Mutta palkintoraha ei ole aina 100K.
  • 2:19 - 2:25
    Jos joku toinen löytää saman haavoittuvuuden, summa pienenee merkittävästi.
  • 2:25 - 2:33
    Tulostimissa hyökkäyspinta on iso, joten on vähemmän todennäköistä, että joku muu löytää saman bugin.
  • 2:33 - 2:39
    Päätettiin siis valita vaikeampi haavoittuvuus, kuten muistinkäsittelybugi.
  • 2:39 - 2:51
    Ne ovat yksityiskohtaisempia ja työläämpiä, joten muut eivät välttämättä löydä juuri samaa haavoittuvuutta.
  • 2:52 - 2:58
    Meillä oli monta tulostinta valittavana, ja strategiamme oli valita sellainen, joka oli kohtuullisen halpa
  • 2:58 - 3:00
    mutta jonka laiteohjelmisto oli salattu.
  • 3:00 - 3:06
    Eli sisäänpääsy vaatii ensin laitteen ostamista, sen purkamista ja firmwaren purkua.
  • 3:06 - 3:10
    Toivoimme, että muut kilpailijat valitsevat helpomman kohteen,
  • 3:10 - 3:13
    jotta he eivät löytäisi samaa haavoittuvuutta.
  • 3:15 - 3:19
    Tässä on siis päähenkilömme: Lexmarkin 331-sarja.
  • 3:19 - 3:23
    Se on ollut Pwn2Own-kohde vuodesta 2021.
  • 3:23 - 3:29
    Me aloitimme vuonna 2022, ja olemme kirjoittaneet siihen exploitin jo kolmesti.
  • 3:29 - 3:36
    Laite perustuu Yocto Linuxiin, joka on varsin järeä käyttöjärjestelmä.
  • 3:36 - 3:40
    Se pyörittää joitain Rust-komponentteja ja Qt-sovelluksia, eli aika moderni kokonaisuus.
  • 3:40 - 3:45
    Verrattuna muihin tulostimiin, sanoisin että Lexmark on tehnyt ihan hyvää työtä
  • 3:45 - 3:47
    tietoturvan saralla.
  • 3:47 - 3:49
    Järjestelmässä on useita käyttäjätilejä,
  • 3:49 - 3:51
    ohjelmistot ovat melko ajan tasalla,
  • 3:51 - 3:55
    ja siellä on yrityksiä hiekkalaatikointiin systemd-komponenttien avulla.
  • 3:55 - 3:58
    Eli he suoriutuvat kohtalaisen hyvin.
  • 3:58 - 4:02
    Mutta me silti hakkeroimme laitteen kolme kertaa, eli ei täydellistä.
  • 4:03 - 4:05
    Ja tärkeimpänä tämän päivän kannalta
  • 4:05 - 4:07
    tässä laitteessa on faksituki.
  • 4:07 - 4:10
    Emme valinneet sitä sen takia, mutta se vain sattui olemaan mukana.
  • 4:10 - 4:13
    Ja me satuimme sen löytämään.
  • 4:13 - 4:16
    Rahan lisäksi, miksi teemme tätä?
  • 4:16 - 4:20
    No, faksien kulta-aika oli ehkä vuoteen -99 asti.
  • 4:22 - 4:27
    Itse olen 25-vuotias, joten tuntuu, että koko faksikulttuuri meni vähän ohi.
  • 4:27 - 4:31
    Tähän projektiin asti en ollut koskaan lähettänyt yhtäkään faksia.
  • 4:31 - 4:34
    Tässä vaiheessa niitä on tullut varmasti satoja.
  • 4:35 - 4:39
    No miten tämä oikein toteutetaan?
  • 4:42 - 4:46
    Ensimmäisenä tarvitsemme tietenkin firmware-kuvan.
  • 4:46 - 4:50
    Ilman sitä tämä olisi täysin sokkona ampumista.
  • 4:51 - 4:54
    Sen jälkeen tarvitsemme jonkinlaisen debuggauksen mahdollisuuden,
  • 4:54 - 4:58
    koska jos haluat hyödyntää muistikorruptiobugia,
  • 4:58 - 5:02
    tarvitset tietoa ohjelman sisäisestä tilasta ja muusta sellaisesta.
  • 5:02 - 5:06
    Eli suunnitelmana oli saada käyttöön hyvä debuggausympäristö
  • 5:06 - 5:10
    joko koodin suorittamisen kautta tai JTAG-debugin avulla.
  • 5:10 - 5:14
    Näiden työkalujen avulla voimme löytää haavoittuvuuden,
  • 5:14 - 5:18
    hyödyntää sitä, kerätä palkkion
  • 5:23 - 5:28
    ja tuoda bugin faksitoimintoon sekä pitää tästä hyvä esitys CCC:ssä.
  • 5:28 - 5:31
    Ja tässä me nyt olemme.
  • 5:31 - 5:34
    Aloitetaan siis firmware-kuvan hankinnasta.
  • 5:34 - 5:38
    Ensimmäinen paikka, josta kannattaa katsoa, on tietenkin Lexmarkin verkkosivusto.
  • 5:38 - 5:41
    Sieltä voi ladata firmware-kuvan.
  • 5:41 - 5:47
    Mutta kun laitoimme sen binwalkin läpi, tuloksena oli pelkkää siansaksaa.
  • 5:47 - 5:50
    Mietimme, että mikäs tässä nyt mättää.
  • 5:50 - 5:54
    Kävi ilmi, että tiedoston entropia oli tosi korkea
  • 5:54 - 5:56
    oikeastaan ihan järkyttävän korkea.
  • 5:56 - 6:01
    Eli hyvin selvä merkki siitä, että kuva on salattu. Valitettavasti.
  • 6:02 - 6:07
    Tässä kohtaa oli selvää, että kuvasta ei ole hyötyä,
  • 6:07 - 6:11
    koska se on salattu emmekä tiedä avaimia.
  • 6:12 - 6:15
    Eli takaisin piirustuspöydälle.
  • 6:15 - 6:18
    Hauska nippelitieto muuten:
  • 6:18 - 6:22
    tulostimen firmwarepäivitys toimitetaan itse asiassa tulostettavana tiedostona.
  • 6:22 - 6:25
    Se on upotettu PostScript-dokumenttiin
  • 6:25 - 6:29
    ja kun tulostat sen, laite päivittää itsensä automaattisesti.
  • 6:30 - 6:34
    Seuraava vaihe oli siis hankkia itse laite.
  • 6:35 - 6:39
    Tässä on kuva tulostimesta autoni takakontissa.
  • 6:40 - 6:44
    Ostimme tämän käytettynä.
  • 6:44 - 6:47
    Kauppa meni suunnilleen näin:
  • 6:47 - 6:51
    Kävin myyjän kanssa keskustelun, ja hän ystävällisesti varoitti:
  • 6:51 - 6:55
    "Oletko varma, että haluat ostaa tämän tulostimen?"
  • 6:55 - 6:58
    Vastasin, että "Joo, miksi en haluaisi?"
  • 6:58 - 7:04
    "No, musteet on melkein lopussa. Ja jos haluat tulostaa, ne on tosi kalliita."
  • 7:04 - 7:07
    "Kannattaa ehkä miettiä toista laitetta."
  • 7:07 - 7:10
    Mutta me ei oltu kiinnostuneita tulostamisesta, joten:
  • 7:10 - 7:15
    "Printataanko? Miksi ihmeessä haluaisin tehdä niin?"
  • 7:16 - 7:20
    Tulostin oli nyt käsissämme
  • 7:24 - 7:27
    ja pääsimme tutkimaan piirilevyä.
  • 7:27 - 7:31
    Huomasimme, että siinä on JTAG-merkinnät, mikä on mahtavaa.
  • 7:31 - 7:34
    Se tekee elämästä todella helppoa.
  • 7:34 - 7:37
    Jos JTAG ei ole sinulle tuttu, se on käyttöliittymä,
  • 7:37 - 7:40
    jonka kautta voi kurkistaa laitteen muistiin,
  • 7:40 - 7:44
    asettaa breakpointteja, muuttaa rekisteriarvoja
  • 7:44 - 7:47
    käytännössä unelmatyökalu exploit-kehittäjälle.
  • 7:47 - 7:50
    Se olisi se kultainen standardi.
  • 7:50 - 7:54
    Eli elämästämme piti tulla helppoa.
  • 7:57 - 8:00
    Kytkimme siis tulostimen Raspberry Pi:hin,
  • 8:00 - 8:02
    jossa on GPIO-portit.
  • 8:02 - 8:06
    OpenOCD:llä voi puhua JTAG-protokollaa kohdelaitteelle.
  • 8:06 - 8:10
    Tuki toimii suoraan “out of the box”, joten kaikki toimi kauniisti.
  • 8:10 - 8:14
    Lähetimme ID-koodikyselyn, ja laite vastasi "ARM Limited"
  • 8:14 - 8:18
    tämä vahvisti, että signaali toimi.
  • 8:18 - 8:21
    Eli emme olleet kuvitelleet mitään.
  • 8:21 - 8:24
    Mutta päivän säätämisen jälkeen selvisi,
  • 8:24 - 8:28
    että mikään muu ei vastaa. Ei mitään mielenkiintoista.
  • 8:28 - 8:33
    Todennäköisesti jotkin toiminnot on kytketty pois päältä ei-haihtuvassa muistissa.
  • 8:33 - 8:36
    Takaisin suunnittelupöydälle siis.
  • 8:36 - 8:40
    Seuraava vaihtoehto firmware-kuvan saamiseksi:
  • 8:40 - 8:44
    juotetaan tallennuspiiri irti emolevyltä.
  • 8:44 - 8:49
    Tämä on aika suoraviivaista, kuumailma-asemalla irti,
  • 8:50 - 8:56
    sitten EEPROM-lukijaan.
  • 8:56 - 9:00
    Käytimme B-PROG C4 -lukijaa.
  • 9:00 - 9:04
    Tämä oli ajalta, jolloin olin vielä opiskelija
  • 9:04 - 9:08
    leikittelin tällä laitteella silloin ja se on yhä tallella.
  • 9:08 - 9:16
    Mutta selvisi, että tämä lukija rakastaa omia, proprietaarisia TSOP48-sovittimiaan.
  • 9:16 - 9:19
    Ja tietysti meillä oli halpa kopio eBaysta,
  • 9:19 - 9:21
    jota se ei hyväksynyt.
  • 9:21 - 9:24
    Mikään ei toki estä tekemästä softakorjausta,
  • 9:24 - 9:27
    mutta en suosittele tätä reittiä.
  • 9:27 - 9:31
    Kannattaa valita laite, jossa on vähemmän kiristyksen makua.
  • 9:32 - 9:36
    Onneksi lopulta saimme sen toimimaan,
  • 9:36 - 9:40
    ja saimme firmware-dumpin.
  • 9:40 - 9:43
    Kävi ilmi, että käytössä on UBI
  • 9:43 - 9:46
    Se ei ole erityisen jännä, mutta toimiva ratkaisu.
  • 9:46 - 9:48
    UBI on lohkonhallintakerros,
  • 9:48 - 9:52
    joka huolehtii viallisista lohkoista, kulumisesta,
  • 9:52 - 9:56
    ja se on kirjoitettu Linuxia varten.
  • 9:56 - 10:00
    Sen sisällä on squashfs-tiedostojärjestelmä,
  • 10:00 - 10:03
    jonka voi purkaa helposti.
  • 10:03 - 10:07
    Purku onnistui, ja saimme käyttöön root-fs:n,
  • 10:07 - 10:11
    joka sisältää kaikki binäärit ja sisällöt.
Title:
38C3 - Dialing into the Past: RCE via the Fax Machine – Because Why Not?
Description:

more » « less
Video Language:
English
Duration:
38:49

Finnish subtitles

Revisions Compare revisions