SPI
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
SPI (Serial Peripheral Interface) ni Protokali ya Mawasiliano ya Mfululizo wa Sawa inayotumika katika mifumo iliyojumuishwa kwa mawasiliano ya umbali mfupi kati ya ICs (Mizunguko Iliyounganishwa). Protokali ya Mawasiliano ya SPI inatumia usanifu wa bwana-mtumwa ambao unaratibiwa na Saa na Ishara ya Kuchagua Chip. Usanifu wa bwana-mtumwa unajumuisha bwana (kawaida ni microprocessor) anayesimamia vifaa vya nje kama EEPROM, sensorer, vifaa vya kudhibiti, n.k. ambavyo vinachukuliwa kuwa watumwa.
Watumwa wengi wanaweza kuunganishwa na bwana lakini watumwa hawawezi kuwasiliana na kila mmoja. Watumwa wanadhibitiwa na pini mbili, saa na kuchagua chip. Kwa kuwa SPI ni protokali ya mawasiliano ya sawa, pini za ingizo na pato zinafuata ishara za saa. Kuchagua chip kunatumika na bwana kuchagua mtumwa na kuwasiliana naye. Wakati kuchagua chip kuna juu, kifaa cha mtumwa hakichaguliwi wakati ambapo ikiwa chini, chip imechaguliwa na bwana atakuwa akifanya kazi na mtumwa.
MOSI (Master Out, Slave In) na MISO (Master In, Slave Out) wanawajibika kwa kutuma data na kupokea data. Data inatumwa kwa kifaa cha mtumwa kupitia pini ya MOSI wakati kuchagua chip kunashikiliwa chini. Data ya ingizo ina maagizo, anwani za kumbukumbu au data kulingana na karatasi ya data ya muuzaji wa kifaa cha mtumwa. Baada ya ingizo halali, pini ya MISO inawajibika kwa kutuma data kwa bwana. Data ya pato inatumwa hasa katika mzunguko wa saa unaofuata baada ya ingizo kumalizika. Pini za MISO hutuma data hadi data itakapokuwa imetumwa kikamilifu au bwana kuweka pini ya kuchagua chip juu (katika kesi hiyo, mtumwa atasitisha kutuma na bwana hatasikiliza baada ya mzunguko huo wa saa).
Kutoa firmware kunaweza kuwa na manufaa kwa kuchambua firmware na kutafuta udhaifu ndani yake. Mara nyingi, firmware haipatikani mtandaoni au haifai kutokana na tofauti za mambo kama nambari ya mfano, toleo, n.k. Hivyo, kutoa firmware moja kwa moja kutoka kwa kifaa halisi kunaweza kusaidia kuwa maalum wakati wa kuwinda vitisho.
Kupata Serial Console kunaweza kuwa na manufaa, lakini mara nyingi inatokea kwamba faili ni za kusoma tu. Hii inakandamiza uchambuzi kutokana na sababu mbalimbali. Kwa mfano, zana zinazohitajika kutuma na kupokea pakiti hazitakuwepo katika firmware. Hivyo, kutoa binaries ili kuziunda upya si rahisi. Hivyo, kuwa na firmware yote iliyotolewa kwenye mfumo na kutoa binaries kwa uchambuzi kunaweza kuwa na manufaa sana.
Pia, wakati wa red teaming na kupata ufikiaji wa kimwili kwa vifaa, kutoa firmware kunaweza kusaidia katika kubadilisha faili au kuingiza faili zenye madhara na kisha kuziandika tena kwenye kumbukumbu ambayo inaweza kusaidia kuingiza mlango wa nyuma kwenye kifaa. Hivyo, kuna uwezekano mwingi ambao unaweza kufunguliwa kwa kutoa firmware.
Kifaa hiki ni zana isiyo na gharama kubwa kwa kutoa firmwares kutoka EEPROMs na pia kuziandika tena na faili za firmware. Hii imekuwa chaguo maarufu kwa kufanya kazi na chips za BIOS za kompyuta (ambazo ni EEPROMs tu). Kifaa hiki kinaunganishwa kupitia USB na kinahitaji zana chache ili kuanza. Pia, kawaida inakamilisha kazi haraka, hivyo inaweza kuwa na manufaa katika ufikiaji wa kifaa cha kimwili pia.
Unganisha kumbukumbu ya EEPROM na CH341a Programmer na uunganishi kifaa kwenye kompyuta. Ikiwa kifaa hakigunduliki, jaribu kufunga madereva kwenye kompyuta. Pia, hakikisha kwamba EEPROM imeunganishwa kwa mwelekeo sahihi (kawaida, weka pini ya VCC katika mwelekeo wa kinyume na kiunganishi cha USB) la sivyo, programu haitakuwa na uwezo wa kugundua chip. Angalia mchoro ikiwa inahitajika:
Hatimaye, tumia programu kama flashrom, G-Flash (GUI), n.k. kwa ajili ya kutoa firmware. G-Flash ni zana ya GUI ndogo ambayo ni haraka na inagundua EEPROM kiotomatiki. Hii inaweza kuwa na manufaa ikiwa firmware inahitaji kutolewa haraka, bila kuingilia sana kwenye nyaraka.
Baada ya kutoa firmware, uchambuzi unaweza kufanywa kwenye faili za binary. Zana kama strings, hexdump, xxd, binwalk, n.k. zinaweza kutumika kutoa habari nyingi kuhusu firmware pamoja na mfumo mzima wa faili pia.
Ili kutoa maudhui kutoka kwa firmware, binwalk inaweza kutumika. Binwalk inachambua saini za hex na kutambua faili katika faili ya binary na ina uwezo wa kuzitoa.
The can be .bin or .rom as per the tools and configurations used.
Kumbuka kwamba uchimbaji wa firmware ni mchakato wa nyeti na unahitaji uvumilivu mwingi. Kila makosa yanaweza kuharibu firmware au hata kuifuta kabisa na kufanya kifaa kisitumike. Inapendekezwa kujifunza kuhusu kifaa maalum kabla ya kujaribu kuchimba firmware.
Kumbuka kwamba hata kama PINOUT ya Pirate Bus inaonyesha pini za MOSI na MISO kuunganishwa na SPI, hata hivyo baadhi ya SPIs zinaweza kuonyesha pini kama DI na DO. MOSI -> DI, MISO -> DO
In Windows or Linux you can use the program flashrom
to dump the content of the flash memory running something like:
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)