{"id":1136,"date":"2015-10-01T11:42:54","date_gmt":"2015-10-01T08:42:54","guid":{"rendered":"https:\/\/furkansandal.com\/donanim-yazilimi-analizinin-onemi\/"},"modified":"2015-10-01T11:42:54","modified_gmt":"2015-10-01T08:42:54","slug":"donanim-yazilimi-analizinin-onemi","status":"publish","type":"post","link":"https:\/\/furkansandal.com\/donanim-yazilimi-analizinin-onemi\/","title":{"rendered":"Donan\u0131m Yaz\u0131l\u0131m\u0131 Analizinin \u00d6nemi"},"content":{"rendered":"
\n

\t\t\t\t\t\t\t\t\"Donan\u0131m<\/p>\n

\"image_pdf\"<\/div>\n

Her siber g\u00fcvenlik konferans\u0131nda ger\u00e7ekle\u015ftirdi\u011fim sunumumdan sonra oldu\u011fu gibi yine gelene\u011fi bozmayarak, 2014 y\u0131l\u0131nda IstSec ve ge\u00e7ti\u011fimiz Eyl\u00fcl ay\u0131nda Hacktrick siber g\u00fcvenlik konferanslar\u0131nda ger\u00e7ekle\u015ftirdi\u011fim donan\u0131m yaz\u0131l\u0131m\u0131 (bellenim \/ firmware) analizi sunumumdan sonra sunuma kat\u0131lamayanlar i\u00e7in sunumu \u00f6zetleyen bir blog yaz\u0131s\u0131 yazmaya karar verdim.<\/p>\n

Nesnelerin \u0130nterneti (IoT) dedi\u011fimiz kavram hayat\u0131m\u0131za girdi gireli, evimizde internete ba\u011flanan bir\u00e7ok cihaz oldu\u011funu g\u00f6rebiliyoruz. Bunlar aras\u0131nda uydu al\u0131c\u0131lar\u0131, ip kameralar\u0131, cep telefonlar\u0131n\u0131, raspberry pi gibi mini bilgisayarlar\u0131 en \u00e7ok rastlanan nesneler aras\u0131nda sayabiliriz. Hacktrick sunumunda, evinde 7\/24 \u00e7al\u0131\u015fan Raspberry Pi, Beagle Bone gibi mini bilgisayar\u0131 olanlar el kald\u0131rs\u0131n dedi\u011fimde, havaya kalkan ellerin say\u0131s\u0131n\u0131n bekledi\u011fimden fazla oldu\u011funu s\u00f6yleyebilirim. Durum b\u00f6yle olunca da IoTler, ak\u0131ll\u0131 cihazlar ve benzerleri, hayat\u0131m\u0131za getirdikleri kolayl\u0131klar\u0131n yan\u0131nda g\u00fcvenlik risklerini de beraberinde getiriyorlar dersek pek yan\u0131lmay\u0131z.<\/p>\n

Asl\u0131nda evlerimize soktu\u011fumuz cihazlar ak\u0131lland\u0131k\u00e7a, casus olma potansiyeline de sahip olmaya ba\u015flad\u0131lar. Hareketle kontrol edilen kameral\u0131, ak\u0131ll\u0131 televizyonunuz hacklendi\u011finde, ba\u015f\u0131n\u0131za gelebilecekleri bir d\u00fc\u015f\u00fcn\u00fcn, sevimsiz \u00f6yle de\u011fil mi ? \ud83d\ude42 Asl\u0131nda haberlere bakt\u0131\u011f\u0131m\u0131zda bu s\u00f6ylediklerimin \u00e7ok da uzak bir ihtimal olmad\u0131\u011f\u0131n\u0131 g\u00f6r\u00fcyoruz. A\u011fustos ay\u0131nda Samsung’un ak\u0131ll\u0131 buzdolab\u0131n\u0131n hacklenerek Gmail kullan\u0131c\u0131 ad\u0131 ve \u015fifre bilgilerinin \u00e7al\u0131nabildi\u011fi ortaya \u00e7\u0131kt\u0131. <\/p>\n

Bu t\u00fcr cihazlar\u0131n hacklenebilmesi, modern i\u015fletim sistemlerine (Windows, Linux vs.) k\u0131yasla daha kolay oluyor \u00e7\u00fcnk\u00fc bu cihazlar \u00e7o\u011funlukla d\u00fc\u015f\u00fck donan\u0131mlarla \u00e7al\u0131\u015f\u0131yorlar. D\u00fc\u015f\u00fck donan\u0131m dedi\u011fimizde de, ram, i\u015flemci ve i\u015fletim sistemi a\u00e7\u0131s\u0131ndan zay\u0131f\/k\u0131s\u0131tl\u0131 olan bu cihazlar \u00fczerinde \u00f6rne\u011fin Address Space Layout Randomization (ASLR), data execution prevention (DEP) gibi istismar\u0131 engelleyici kontroller bulunamayabiliyor. Donan\u0131m yaz\u0131l\u0131m\u0131 geli\u015ftiricileri, modern i\u015fletim sistemi geli\u015ftiricileri gibi g\u00fcvenli\u011fe \u00f6n planda tutmad\u0131klar\u0131 i\u00e7in de \u00e7o\u011funlukla cihazlar \u00fczerinde yer alan konfig\u00fcrasyonlar \u00f6rne\u011fin modemlerde oldu\u011fu gibi zay\u0131f ve istismara a\u00e7\u0131k olabiliyor.<\/p>\n

Bu cihazlar\u0131n g\u00fcvenli\u011fi istenilen seviyelerde olmad\u0131\u011f\u0131 s\u00fcrece, g\u00fcvenlik uzmanlar\u0131 ve son kullan\u0131c\u0131lar olarak, ev a\u011f\u0131m\u0131zda yer alan bu cihazlar\u0131n donan\u0131m yaz\u0131l\u0131mlar\u0131n\u0131 analiz ederek g\u00fcvenlik zafiyetlerini tespit etmek, hem merak\u0131m\u0131z\u0131 gidermek i\u00e7in hem de bu cihazlar\u0131 g\u00fcvenli bir \u015fekilde kullanmak isteyen bizler i\u00e7in bir gereksinim haline gelebiliyor.<\/p>\n

\u00d6rne\u011fin elimizde internet servis sa\u011flay\u0131c\u0131s\u0131 taraf\u0131ndan bize kampanya dahilinde hediye edilmi\u015f bir modem var ve bu modeme y\u00f6netici aray\u00fcz\u00fcnden ba\u011flan\u0131p, modem \u00fczerinde tan\u0131ml\u0131 kullan\u0131c\u0131lar g\u00f6r\u00fcnt\u00fclemek istiyoruz. Neden bunu istiyoruz \u00e7\u00fcnk\u00fc modemler \u00fczerinde kimi zaman varsay\u0131lan y\u00f6netici yetkisine sahip hesaplar olabiliyor veya internet servis sa\u011flay\u0131c\u0131s\u0131 uzaktan destek amac\u0131yla kolay tahmin edilebilir parolaya sahip kullan\u0131c\u0131 hesaplar\u0131n\u0131 modemlere tan\u0131mlayabiliyorlar. Varsay\u0131lan hesaplar d\u0131\u015f\u0131nda modemin y\u00f6netici aray\u00fcz\u00fcne giri\u015f yapt\u0131\u011f\u0131m\u0131zda g\u00f6remedi\u011fimiz ancak ilgili sayfay\u0131 direk \u00e7a\u011f\u0131rd\u0131\u011f\u0131m\u0131zda ula\u015fabilece\u011fimiz ve modem \u00fczerindeki \u00f6zel ayarlar\u0131 (TR-069 y\u00f6netim protokol\u00fc ayarlar\u0131 gibi) de\u011fi\u015ftirmemizi sa\u011flayan gizli sayfalar olup olmad\u0131\u011f\u0131n\u0131 da kontrol etmek istiyoruz. Bu sorulara yan\u0131t bulmak i\u00e7in modem ve modemin donan\u0131m yaz\u0131l\u0131m\u0131 \u00fczerinde \u00e7e\u015fitli kontroller ger\u00e7ekle\u015ftirebiliriz.<\/p>\n

Gizli y\u00f6netici hesaplar\u0131n\u0131 bulmak i\u00e7in yapaca\u011f\u0131m\u0131z ilk i\u015f, modemin telnet servisine ba\u011fland\u0131ktan sonra cat \/etc\/passwd<\/strong> komutu yazarak mevcut hesaplar\u0131 kontrol etmek olabilir ancak i\u015fler her zaman d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm\u00fcz kadar kolay olmayabilir. Birincisi, y\u00f6netim paneline eri\u015fmek i\u00e7in kulland\u0131\u011f\u0131m\u0131z kullan\u0131c\u0131 ad\u0131 ve \u015fifrenin telnet servisine eri\u015fmek i\u00e7in yetkisi olmayabilir veya telnet servisi (telnetd) modem \u00fczerinde a\u00e7\u0131k\/y\u00fckl\u00fc olmayabilir. <\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

B\u00f6yle bir durumda yapmam\u0131z gereken bir tornavida seti alarak modemi a\u00e7mak ve \u00fczerinde UART seri ba\u011flant\u0131 noktas\u0131 aramak olabilir. \u015eansl\u0131ysak 4 PIN’den olu\u015fan bu ba\u011flant\u0131 noktas\u0131n\u0131 \u00e7ok ge\u00e7meden tespit edebiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

Tabii bu seri ba\u011flant\u0131 noktas\u0131 \u00fczerinden modem ile ileti\u015fim kurabilmek i\u00e7in USB – TTL UART CP2104 \u00e7evirici gibi bir ayg\u0131ta ihtiya\u00e7 duyaca\u011f\u0131z. Ayg\u0131t\u0131 ba\u011flamak i\u00e7in \u00f6ncelikle o d\u00f6rt pinden hangisi veri almak (RX), hangisi veri g\u00f6ndermek (TX) ve hangisi topraklama (GND) i\u00e7in kullan\u0131l\u0131yor onu bilmemiz gerekiyor. S\u00fcreklilik testi sayesinde Dijital Avometre \/ Multimetre’de siyah ucu topra\u011fa (i\u015faretli bir kutup), k\u0131rm\u0131z\u0131 ucu ise pinlere s\u0131ras\u0131yla dokundurdu\u011fumuzda bir ses duyuyorsak o zaman bu pinin toprak (GND) pini oldu\u011funu anlayabiliriz. Ard\u0131ndan RX, TX pinlerini ve baud oran\u0131n\u0131 deneme yan\u0131lma yolu ile SecureCRT veya Putty ile tespit ederek komut sat\u0131r\u0131na eri\u015fim sa\u011flayabiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

Bir di\u011fer \u00f6rnekte ise modemin y\u00f6netici aray\u00fcz\u00fcndeki gizli sayfalar\u0131 tespit etmek istiyoruz. Bunun i\u00e7in ilk i\u015f, donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 (bellenim) \u00fcreticinin veya internet servis sa\u011flay\u0131c\u0131s\u0131n\u0131n web sitesinden indirmek olacakt\u0131r. Ard\u0131ndan strings arac\u0131n\u0131 bu donan\u0131m yaz\u0131l\u0131m\u0131 \u00fczerinde \u00e7al\u0131\u015ft\u0131rabiliriz. E\u011fer arac\u0131n \u00e7\u0131kt\u0131s\u0131 a\u015fa\u011f\u0131daki \u00f6rnekte oldu\u011fu gibi say\u0131ca az html sayfa ad\u0131 veriyorsa ancak biz aray\u00fczde \u00e7ok daha fazla say\u0131da html sayfa oldu\u011funu biliyorsak, binwalk gibi farkl\u0131 bir ara\u00e7 ile analizi bir ad\u0131m ileriye ta\u015f\u0131yabiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

Donan\u0131m yaz\u0131l\u0131m\u0131 analizi i\u00e7in bi\u00e7ilmi\u015f kaftan olan binwalk arac\u0131 ile donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 a\u00e7t\u0131ktan (extract) sonra, \u00e7\u0131kan dosyalar \u00fczerinde strings komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131m\u0131zda \u00e7ok daha fazla say\u0131da html dosya oldu\u011funu g\u00f6rebiliriz. <\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

rpCWMP.html<\/strong> dosyas\u0131n\u0131n ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 \u00fczere TR-069 y\u00f6netim protokol\u00fc ile ilgili ayarlar\u0131n yap\u0131ld\u0131\u011f\u0131 sayfa oldu\u011funu hemen anlayabiliriz. Sayfay\u0131 \u00e7a\u011f\u0131rd\u0131\u011f\u0131m\u0131z zaman gelen internet servis sa\u011flay\u0131c\u0131s\u0131n\u0131n Auto Configuration Servers (ACS) adresini, Charles Proxy arac\u0131n\u0131n sistem \u00fczerinde dinledi\u011fi adresi ve ba\u011flant\u0131 noktas\u0131 (port) ile de\u011fi\u015ftirip, Charles’a gelen istekleri de internet servis sa\u011flay\u0131c\u0131s\u0131n\u0131n ACS adresine y\u00f6nlendirdi\u011fimizde, bu gizli sayfa sayesinde ba\u015far\u0131yla ACS ile modem aras\u0131nda ger\u00e7ekle\u015fen trafi\u011fi izleyebiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

Peki donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 analiz ettikten sonra Charlie Miller ile Chris Valasek’in Cherokee Jeep’i hacklerken yapt\u0131klar\u0131 gibi donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 manip\u00fcle edip (patching) cihaza y\u00fcklemek istersek, donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 tekrar paketlemek i\u00e7in faydalabilece\u011fimiz Firmware Modification Kit (FMK) arac\u0131ndan da k\u0131saca bahsetmek gerekir. \u0130lgili donan\u0131m yaz\u0131l\u0131m\u0131n\u0131n dosya sisteminde yer alan dosyalar\u0131n\u0131, FMK’da yer alan extract-firmware.sh<\/strong> beti\u011fi ile diske a\u00e7t\u0131ktan ve de\u011fi\u015fiklikler yapt\u0131ktan sonra yine ayn\u0131 ara\u00e7ta yer alan build-firmware.sh<\/strong> beti\u011fi ile paketlememiz m\u00fcmk\u00fcn. Bu sayede hedef cihaz\u0131n imza kontrol\u00fc yapmadan donan\u0131m yaz\u0131l\u0131m\u0131n\u0131 g\u00fcncellemeye izin verip vermedi\u011fini de kolayl\u0131kla kontrol edebiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

Statik olarak de\u011fil de dinamik olarak donan\u0131m yaz\u0131l\u0131m\u0131nda yer alan programlar\u0131 teker teker analiz etmek istiyoruz dersek de o zaman, QEMU \u00f6yk\u00fcn\u00fcc\u00fcs\u00fc (emulator) ve IDA Pro arac\u0131 sayesinde a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fclerinde yer ald\u0131\u011f\u0131 \u015fekilde programlar\u0131 (\u00f6rnek: login) detayl\u0131 bir \u015fekilde analiz edebiliriz.<\/p>\n

<\/p>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n
\n\"Firmware<\/div>\n

<\/center><\/p>\n

\u00c7ok daha fazlas\u0131n\u0131 \u00f6\u011frenmek ve uygulamak istiyorum diyenleriniz i\u00e7in ise Abusing the Internet of Things: Blackouts, Freakouts, and Stakeouts kitab\u0131na bir g\u00f6z atmalar\u0131n\u0131 tavsiye edebilirim. <\/p>\n

Bir sonraki yaz\u0131da g\u00f6r\u00fc\u015fmek dile\u011fiyle herkese g\u00fcvenli g\u00fcnler dilerim.<\/p>\n

\n
\"Email\"<\/div>\n<\/div>\n
\n
<\/div>\n<\/div>\n

\t\t\t\t\t\t\t<\/p>\n

\t \t\t\t\t\t\t<\/div>\n","protected":false},"excerpt":{"rendered":"

Her siber g\u00fcvenlik konferans\u0131nda ger\u00e7ekle\u015ftirdi\u011fim sunumumdan sonra oldu\u011fu gibi yine gelene\u011fi bozmayarak, 2014 y\u0131l\u0131nda IstSec ve ge\u00e7ti\u011fimiz Eyl\u00fcl ay\u0131nda Hacktrick…<\/p>\n","protected":false},"author":1,"featured_media":477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","footnotes":""},"categories":[6,1,9,10,3,7,11,4],"tags":[78,76,88,89,26,83,81,79,82,77,80,84,85,87,86],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/furkansandal.com\/wp-content\/uploads\/2015\/08\/tekno.jpg?fit=480%2C343&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6BM7I-ik","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/posts\/1136"}],"collection":[{"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/comments?post=1136"}],"version-history":[{"count":0,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/posts\/1136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/media\/477"}],"wp:attachment":[{"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/media?parent=1136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/categories?post=1136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/furkansandal.com\/wp-json\/wp\/v2\/tags?post=1136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}