Nyt oon ehkä leikkinyt tarpeeks.
Täs maininnan arvoset jutut minkä perusteella voit ite miettiä haluutko vaivautua jos sulla on tarvittavat työkalut/osaaminen:
1. UART tosiaan helposti saatavilla ja roottina voi suoraan kirjautuu sisään, sun root salasanan voi laskea helposti:
s='DCS-6100LHV2-MACADDRESS'; printf '%s' "$s" | md5sum | cut -c1-8, missä korvaa MACADDRESS sun kameran MAC osotteella
2. "Kiinapilven poistaminen". Kuten V1 cameran kanssa, nähtävästi kaikki pilviominaisuudet käynnistetään ja ylläpidetään yhdestä watchdog scriptistä (
/mydlink/mydlink_watchdog.sh) siihen ku laittaa vaan
exit 0 ekaksi komennoksi niin kamera on nähtävästi leikattu irti pilvestä (mikään binääri mikä liittyy kameran pilviominaisuuksiin ei pöyri enää rebootin jälkeen (
mydlink, da_adaptor, da_fctl, sa, rec)). Myöskään kameralla ei ole enään mitään aktiivista yhteyttä johonkin remote IP:hen (toisin kuten ennen tämän poistoa).
Pienenä huomiona kuitenkin että nyt on vasta empiirisesti testattu/tutkittu että ei ole enää yhteyttä pilveen, mutta en voi taata etteikö jotain ihme backdooria olisi sisällä jossain laitteen binääreistä. Tietysti tässä kohtaa aikalailla menee foliohattu päähän, mutta noh parasta aina kuitenkin eristää laite reitittimen palomuurilla.
Ja joo, RTSP toimii ihan normaalisti tämän jälkeen vieläkin.
3. Mitä muuta hyödyllistä voi tehdä jos jaksaa vaivautua?
- Voi enabloida telnetin niin pääsee helposti sisälle eikä tarvitse enää johtoja kiinni UART:iin
Lisää telnetd & bootti scriptin perään (/mnt/mtd/boot.sh)
- Voi muokata/poistaa on-screen displayta (en löytäny että olisi mitenkään mahdollista apin kautta):
- Voi poistaa koko OSDn: Laittaa conffiin (
/mnt/conf/SystemConfig.ini) OsdDisplayEnable = 1
- Mun mielestä se juokseva päivämäärä ja aika on kuitenki ihan kiva lisä, niin mieluusti ite poistan vaa sen D-Link logon ja turhan kameran nimen päivämäärän perästä:
- Logotiedostojen muokkaus läpinäkyviksi kuviksi:
-
Koodi:
dd if=/dev/zero of=/mnt/mtd/font/main_day.rgba8888 bs=25920 count=1
dd if=/dev/zero of=/mnt/mtd/font/main_night.rgba8888 bs=25920 count=1
dd if=/dev/zero of=/mnt/mtd/font/sub_day.rgba8888 bs=11520 count=1
dd if=/dev/zero of=/mnt/mtd/font/sub_night.rgba8888 bs=11520 count=1
- Turhan kameran nimen poistaminen päivämäärän perästä:
printf ' ' > /mnt/conf/dev_model
- Ja tietysti paljon muutakin jos keksii jotain mitä haluaisi vaihtaa/lisätä.
Voit ehdottaa mulle jotain niin voin koittaa jos nään kiinnostavaksi omaan käyttöön.
4. Noh pitihän se saada firmware decryptattua kerran ku V1 kanssa muut oli onnistunut tekemään sen.
Näköjään V2 varten tekivät muutoksia:
- Ei oo enää olemassa firmware recovery modea ollenkaan, kaikki firmware updatet tulee ainostaa pilviyhteyden kautta.
- Muokkasivat laitteen decryptaus komennon ohjaamaan ulostulon /dev/nulliin ettei decryptausavaimet enää vaan putoa serial konsoleen kun upgradea koitetaan tehdä.
Ensimmäisen ongelman ohi pääsi kun tutki laitteen sisäistä upgrade pathia ja löysi kohdan mikä on pilven jälkeen juuri kun firmwarea ruvetaan decryptaamaan ja asentamaan. Ja itse käynnisti upgraden manuaalisesti siitä kohdasta. Toisen ongelman ohi pääsi kun teki wrapperin OpenSSL:stä ja laittoi sen tyrkylle pathiin oikean OpenSSL eteen. Wrapperi loggaa parametrit mitä firmware upgrade prosessi laittaa sisään OpenSSL:ään.
Eli siis tiputin cryptatun firmware binäärin (löytyy
täältä) laitteeseen sisälle (tein tän
wget kanssa,
nc ja
tftp puuttuu kameran busyboxista), ja sitten ajoin
mdb set fw_upgrade /tmp/DCS6100LHV2Ax_FW102B02.bin. Ja valmista tuli, OpenSSL wrapperi sai kiinni cryptaus algoritmin (aes-128-cbc) ja avaimet (K & IV). Firmwaren sai decryptattua avaimilla onnistuneesti, En nyt jaa avaimia tai decryptattua firmwarea tähän koska noh, emt, ei ehkä ole "sallittua"? Voit laittaa YV jos haluat ne.