Er staat een rootkit op je smartphone

Door W3ird_N3rd op zondag 20 november 2011 08:30 - Reacties (12)
Categorie: -, Views: 4.063

Toen ik nieuws: Politici VS: Chinese hardware is beveiligingsrisico las vond ik het ergens wel vreemd. De VS maakt zich druk over Chinezen die misschien backdoors zouden kunnen plaatsen op bijvoorbeeld telefoons. Maar Amerikaanse (en misschien ook Europese?) providers die met 100% zekerheid rootkits op telefoons installeren, daar kunnen ze zich niet druk om maken.

Rootkits, nu ook al op de telefoon? Jep. Beter nog: standaard voorgeïnstalleerd! Dit gaat uiteraard over CarrierIQ:
"According to a developer on the XDA forums, TrevE, many Android, Nokia, and BlackBerry smartphones have software called Carrier IQ that allows your carrier full access into your handset, including keylogging, which apps have been run, URLs that have been loaded in the browser, etc."
Meer op XDA-developers.com.

De tool is ontworpen om de kwaliteit van het netwerk te monitoren en onderzoeken om hierop in te spelen, maar blijkt dus tot "iets" meer in staat. Er is afaik nog geen lijst welke telefoons/providers dit gebruiken.

Tip om CarrierIQ te detecteren op een Android toestel:
CarrierIQ can be seen on your Android handset by installing an app from the Market called AnyCut. From here you will notice IQRD and IQAgent, which are both parts of the CarrierIQ system on the device.
Best een zorgwekkende ontwikkeling eigenlijk. Alsof je nog niet genoeg over je privacy na hoefde te denken bij het gebruik van een smartphone, krijg je er nu nog een gratis rootkit bij ook. Veel particulieren zullen er dan nog "meh" bij denken, maar ik vraag me af hoe bedrijven en mensen in de politiek hierop reageren, gevoelige informatie zou toch kunnen lekken hierdoor.

Maar ook als particulier moet je je misschien nog eens afvragen wat je allemaal intypt en waar je foto's van maakt met je mobiel. Sommige dingen kan je misschien beter helemaal analoog laten.

xkcd 821 smartphones too smart

Doe-het-zelf uitzendinggemist! *update*

Door W3ird_N3rd op zaterdag 29 oktober 2011 22:43 - Reacties (30)
Categorie: -, Views: 4.586

Update 31-10 18:55: op veler verzoek heb ik de wachtwoordoptie optioneel gemaakt. Als je zonder wachtwoord wil uploaden moet je hier echter nog wel actief voor kiezen in het configuratiebestand waar je ook een waarschuwing te lezen krijgt. Ik neem geen verantwoordelijkheid voor copyrightschendingen van gebruikers.

Originele post:

In deze blogpost doe ik uit de doeken hoe je een soort uitzendinggemist voor Linux maakt. Nee, niet hoe je uitzendinggemist.nl onder Linux kan kijken, maar hoe je zelf een soortgelijke service (zij het wat minder gebruiksvriendelijk) op kan zetten.

Na het lezen van nieuws: NPO: kijker moet deels gaan betalen voor Uitzending Gemist - update ging ik nadenken. Ik heb niet zo'n zin om te betalen voor UitzendingGemist. En tja, ik vergeet de recorder ook wel eens in te stellen. En daarmee kwam het idee: waarom schrijf ik niet gewoon een scriptje om uitzendinggemist te vervangen?

En zo geschiedde! En iets later was UitzendingGratis geboren. Waarom?

1. Omdat het kan. :+
2. Om voorbereid te zijn op een betaalde uitzendinggemist. Hollanders bin zuunig!
3. Omdat de huidige UG ook zijn nukken heeft. Engelstalige ondertitelde uitzendingen zijn vaak niet beschikbaar. Ook missen nogal eens afleveringen/programma's.
4. Omdat UG (en NPO dochtersites) vaak gesloten technieken gebruiken. WMV, Silverlight, Realplayer, Flash. Daarvan heeft Flash me tot nu toe het minste gezeur opgeleverd.. Iets wat via open protocollen valt te benaderen zou een absolute plus zijn.
5. Omdat het alternatief schaalbaar is: de kwaliteit kan zo hoog als je zelf wil (tot broadcastkwaliteit) en je kan ook andere zenders toevoegen.

De grootste beperkingen zijn de rekenkracht en bandbreedte die je tot je beschikking hebt. Echter, in theorie zou je een UitzendingGratis die kwalitatief beter èn completer dan UitzendingGemist is op kunnen zetten met een willekeurige quadcore en 4mbit/s uploadsnelheid (die je dan nog niet eens vol hoeft te trekken ook, of alleen 's nachts).

Heel uitzendinggemist.nl vervangen met één <¤500 computer en een internetabo van een paar tientjes, kan dat? In zekere zin is het antwoord op die vraag "ja!".

Hier kan je mijn scripts vinden: https://gist.github.com/1325057

De README beschrijft hoe je het systeem op kan zetten.

Simpel uitgelegd doe je het volgende: je gebruikt tvheadend icm. een DVB TV-kaart om alle programma's van de gewenste zenders op te nemen. Mijn scripts roepen diverse tools aan om de uitzending te transcoden, een preview-jpg, par2 en een NFO aan te maken en de bestanden naar usenet te uploaden. Daarna gaat alles in de trash. De bestanden zijn beveiligd met een wachtwoord, het zijn tenslotte jouw persoonlijke opnames. Usenet gebruiken we alleen als goedkope cloudstorage, niet om het auteursrecht te schenden.

Wil je iets terugkijken? Dan download je het weer van usenet. Met een beetje goede retentie kan je zo al snel 2-3 jaar terugkijken.

Op http://binsearch.net/?ser...itzending%40gratis.pvr%3E zie je de resultaten van een testrun. Er valt nog wel wat te tweaken aan de scripts, maar het werkt al. Het valt je wellicht op dat de resolutie afgrijselijk is: dat is alleen omdat het een testrun is en ik daar een oude Athlon 1200 voor heb gebruikt. De kwaliteit is volledig instelbaar, in theorie kan je zelfs voor HD kiezen (als je een snelle CPU en veel bandbreedte hebt).

Als laatste: is dit nu echt praktisch? Voor één persoon waarschijnlijk niet. Gebruik je dit echter samen met een aantal huisgenoten, dan zouden de stroom/serverkosten wel eens op kunnen gaan wegen tegen het regelmatig betalen voor een dienst als UitzendingGemist. Bovendien kan je de kwaliteit zelf instellen. Het downloaden van usenet is misschien niet zo gebruiksvriendelijk als het aanklikken van een programma op uitzendinggemist, maar clients als nntpgrab maken het downloaden al bijzonder gebruiksvriendelijk (op dit moment helaas nog een bugje waardoor hij de passworded zip van UGratis niet uitpakt, is al gemeld). Voor bijvoorbeeld een studentenhuis zou dit wellicht een interessante optie zijn.

In principe zou je ook een website/webserver kunnen maken waar de uitzendingen automatisch op worden gezet en waar je ook kan streamen, maar dan moet je zelf harde schijven kopen (en die zijn nu helaas duur). Maar dat is misschien iets voor een andere keer. ;)

En nee, ik verwacht niet dat veel (if any) mensen dit ècht gaan doen. Maar alleen de eerste reden was al genoeg om het te maken. ;)

Update: Digitenne met OSCam+TVheadend

Door W3ird_N3rd op zondag 21 augustus 2011 18:00 - Reacties (10)
Categorie: -, Views: 3.127

Dit is een update van Zaken waar ik eens dieper op in wil gaan..: Digitenne met OSCam+TVheadend, een handleiding die ik precies een jaar geleden geschreven heb. Ik heb een paar irritante foutjes eruit gehaald en toevoegingen gedaan. Nu kan je wat soepeler door de stappen gaan.

Digitenne met OSCam+TVheadend

Dit is een snelstarthandleiding om Digitenne aan de gang te krijgen met OSCam en TVheadend. Met TVheadend kan je één computer voorzien van één of meer tuners en via je netwerk TV kijken, zo hoef je niet in iedere PC of laptop een aparte TV-tuner te installeren. Ook kan TVheadend zelfstandig programma's opnemen, ideaal als het je het op een 24/7 server hebt. Ik kan altijd iets over het hoofd gezien hebben dus verbeteringen zijn welkom. Deze handleiding is geschreven voor OSCam 1.10 (RC) en TVheadend 2.12.

Benodigdheden:

• Werkende computer met recente Linux distro. Ik heb dit eens op een IBM Thinkpad 600E met Pentium II 400Mhz gebruikt, je hebt dus geen powerhouse nodig.
• DVB-T adapter die werkt in bovenstaande computer.
• Seriële phoenix/smartmouse kaartlezer of een kaartlezer met ingebouwde USB2serial adapter.
• Een geldig Digitenne abo en werkende smartcard.

Voor een werkende computer, probeer een computerwinkel of V&A. Voor Linux, probeer http://www.debian.org/, http://www.ubuntu.com/ of een andere distro. Voor een compatible DVB-T tuner, probeer http://linuxtv.org/wiki/index.php/DVB-T_Devices. Voor een kaartlezer, probeer ebay.de. Zoek naar "smartmouse" en je ziet er genoeg. 3,58Mhz volstaat aangezien dat de frequentie is waar de Conax kaarten van Digitenne op werken. Als je geen seriële poort hebt kan je een USB2serial adapter gebruiken, voor een paar dollar te koop op DX of voor wat meer euro's in je lokale computershop.

OSCam

Je hebt een aantal zaken waaronder GCC en libssl-dev nodig. Om deze onder Debian/Ubuntu te installeren:
apt-get install build-essential cmake subversion libusb-dev libusb-0.1-4 libssl-dev


Eerst gaan we OSCam opzetten. Op http://streamboard.gmc.to:8001/wiki staan meer uitgebreide instructies, maar hier in het kort. Download de OSCam source:

svn co http://streamboard.gmc.to/svn/oscam/tags/1.00 oscam-1.00


Of voor de release candidate:

svn co http://streamboard.gmc.to/svn/oscam/tags/1.10 oscam-1.10


Of voor de trunk (bleeding edge):

svn co http://streamboard.gmc.to/svn/oscam/trunk oscam-svn


Kijk even op de streamboard wiki wat op dit moment de versie is, op het moment van schrijven is 1.00 stable, maar wanneer je dit leest kan er natuurlijk ondertussen een nieuwe versie uitgekomen zijn.

cd nu naar de nieuwe directory en type "make".

Je kan natuurlijk ook gewoon een binary downloaden, bijvoorbeeld via https://launchpad.net/~mirak-mirak/+archive/ppa/+packages (helaas outdated nu).

Als het compileren klaar is staat de binary in /Distribution. In /Distribution/doc/example staan wat voorbeelden voor configuratiebestanden. Kopiëer oscam.conf, oscam.server, en oscam.user naar /Distribution. We gaan nu de gekopieërde bestanden aanpassen.

Open oscam.conf. In de sectie [monitor] wil je wellicht het nummer bij "port" aanpassen naar iets boven de 1024 zodat je oscam ook als user kan draaien. Als deze bij jou niet in gebruik is hoef je hier niets mee te doen. Kijk nu bij de protocollen. Gooi alle protocollen behalve [newcamd] weg. Bij "port" moet alleen "15050@0B00:0" staan. Sla het bestand op. Uitleg: 15050 is de poort (je mag ook zelf een poortnummer kiezen). 0B00 is het caid van de Conax codering. 0 is het provider ID van Digitenne. Verwijder de anticasc sectie of zet enabled hier op 0 (veiliger mocht de standaard instelling ooit wijzigen). Dit gaat je anders alleen maar problemen opleveren. Alternatief: zoek uit wat anticasc is, maar ik ga hier uit van thuisgebruik waarvoor het absoluut onnodig is.

Het staat je uiteraard vrij om user/pass/deskey aan te passen om het zaakje veiliger te maken, maar als je toch achter een router zit is dat niet echt nodig. In de [global] sectie kan je verder nog "maxlogsize = 1000" toevoegen. Dit zal debuggen wat makkelijker maken, want standaard smijt oscam na 10KB de logfile steeds weg.

Open oscam.server. Gooi alle reader secties weg, behalve de eerste. Zet bij caid "0B00". Als je verder gewoon je eerste seriële poort gebruikt ben je nu klaar. Gebruik je bijvoorbeeld een USB2serial adapter dan moet je bij "device" iets als "/dev/ttyUSB0" invullen. Prik even je USB2serial in je PC en spiek direct daarna in dmesg om te controleren of dit juist is voor jouw configuratie. You get the idea, "device" moet verwijzen naar je kaartlezer, waar die ook is. Sla het bestand op.

Open oscam.user. Gooi alle usersecties behalve user1 weg. Zet een 0 bij uniq. Gooi de betatunnel regel weg (hebben wij niks aan). Zet 0B00:0 bij "ident" en 0B00 bij caid. Sla het bestand op.

Ook hier staat het je vrij om user/pass aan te passen, als je het dan ook maar hetzelfde zet in tvheadend.

Bij mij wil oscam nooit zelf een logfile aanmaken (couldn't open logfile: /var/log/oscam/oscam.log (errno 2 No such file or directory), dit is op te lossen door
mkdir /var/log/oscam && touch /var/log/oscam/oscam.log

Vreemd dat het nodig is, maar misschien ligt het aan mijn systeem.

Nu kan je OSCam starten. Start OSCam met ./oscam-1.10rc-svn5868-i686-pc-linux -c . | tail -f /var/log/oscam/oscam.log om de configuratie uit de huidige directory te gebruiken (die je net hebt gemaakt) en de logfile tijdens het laden te laten zien. Met de -b switch kan je OSCam in de achtergrond laten draaien. Oscam zou nu je Digitenne kaart moeten zien in de kaartlezer en zonder fouten draaien. Let op dat het versienummer in de bestandsnaam staat, dus kijk even hoe jouw gecompileerde oscam heet.

Krijg je een melding als "ATR is malformed, it reports X historical bytes but there are only Y"? Dan staat je kaartlezer mogelijk op de verkeerde frequentie. Hij moet op 3,58Mhz staan.

Om oscam met het booten van het systeem mee te starten zet je de executable in /usr/bin. Oscam.conf/server/usr kopieer of verplaats je naar /etc.

Voeg daarna het volgende toe aan rc.local:
mkdir /var/log/oscam
touch /var/log/oscam/oscam.log
oscam1.10rc -b -c /etc
Let op de bestandsnaam van oscam.

TVheadend

Download TVheadend: http://www.lonelycoder.com/hts/tvheadend_download.html en installeer TVheadend. Hoe dit precies moet hangt af van je distro, maar als je nu nog niet afgehaakt bent lukt dit je vast wel. ;) [TV Headend] Het grote TV Headend topic bevat meer uitgebreide instructies voor het scannen van kanalen en installatie.

Ga naar http://<server ip>:9981/. Ga naar Configuration>Code Word Client. Klik op "Add entry". Vul bij hostname het IP van de computer met OScam in, bijvoorbeeld 127.0.0.1 voor de computer waar TVheadend opstaat. Verder:

Port: 15050
Username: user1
Password: password1
DES Key: 000102030405060708090A0B0C0D (deze staat ook in oscam.conf)

Zet een vinkje bij "Update Card" en bij "Enabled". Druk op "Save changes". Klaar.

Ga nu naar "TV Adapters" en kies je adapter. Klik op "Add DVB Network by location..." en kies voor Netherlands>All. Alternatief kan je naar de tab "Multiplexes" gaan en handmatig de frequenties van jouw zendmast invullen, dit kan een aantal problemen voorkomen. Frequentieinformatie Digitenne.

Wanneer je de juiste muxes hebt zal TVheadend ze zelfstandig gaan scannen. Wanneer dit klaar is kan je onder de "Add DVB Network by location..." knop de "Map DVB services to channels" knop indrukken.

Je bent klaar! Je kan nu alle zenders van Digitenne bekijken via TVheadend+OSCam. Je kan hiervoor bijvoorbeeld Showtime of XBMC gebruiken. Je voert dan de URL "htsp://127.0.0.1" in waarbij 127.0.0.1 het IP van de machine met TVheadend is. Veel plezier!

Handleiding changelog:
1.0 (21082010) intial release
1.1 (15082011) kleine toevoegingen, dependencies, rekening houden met nieuwe versies van oscam
1.11 (22082011) bugfix, kaart kon eerst niet updaten, nu wel


Deze handleiding mag je gebruiken/verspreiden met de cc by-nc-sa licentie.

CanalDigitaal en kaboutertjes

Door W3ird_N3rd op vrijdag 19 augustus 2011 23:02 - Reacties (25)
Categorie: -, Views: 3.017

CanalDigitaal onderneemt actie tegen card sharing. Card sharing maakt het mogelijk om één kaart te delen met meerdere mensen. Maar hoe werkt de encryptie bij televisie nu eigenlijk? En hoe werkt cardsharing?

Ik zal proberen (simpel) uit te leggen hoe cardsharing en encryptie werkt. Technisch gezien klopt dit op sommige punten niet 100%, maar ik probeer het zo uit te leggen dat een leek het kan begrijpen. ;)

Visualiseer de smartcard als een solide kluis met een kaboutertje ervoor (het kaboutertje zit ook in de smartcard).

Het TV-signaal visualiseren we als een serie fotoboeken met slotjes erop. Ieder fotoboek bevat foto's waar je 10 seconden van kan genieten (10 seconden televisie).

Iedereen met een schotelantenne krijgt precies dezelfde fotoboeken met precies dezelfde slotjes erop.

In de kluis liggen sleutels (ECM sleutels) om de fotoboeken open te maken. Alle sleutels voor een hele maand liggen erin!

Als je nu fotoboeken wil gaan kijken dan loop je naar het kaboutertje toe en zeg je "ik wil graag een sleutel voor dit fotoboek". Het kaboutertje loopt naar de kluis, maakt deze open, haalt er één sleutel uit en geeft die aan jou. Hiermee kan je dat fotoboekje openmaken met 10 seconden aan foto's. Binnen 10 seconden zal je weer om een nieuwe sleutel moeten vragen voor het volgende fotoboek, anders slaat de verveling toe (gaat je beeld op zwart, of je blijft hangen op de laatste foto ;)).

Je kan het kaboutertje niet vragen om alle sleutels voor het komende uur, want die fotoboeken heb je nog niet in handen.

CanalDigitaal komt één keer per maand langs jouw kaboutertje. Ze veranderen dan de code van de kluis, leggen er nieuwe sleutels in en fluisteren het kaboutertje de nieuwe code (een EMM) van de kluis in het oor.

En zo is het systeem gesloten. Jij kan de sleutels die het kaboutertje jou geeft wel delen met je vrienden, maar toen er nog geen internet was kwam die sleutel nooit op tijd aan. De sleutel doorbellen of op een papiertje schrijven en dat in de brievenbus doen duurde tenslotte veel langer dan 10 seconden.

Smartcards worden ook wel eens gekraakt. Dit kraken komt er simpel gezegd op neer dat men een afluistermicrofoon heeft geplaatst in de buurt van de kabouter en wanneer CanalDigitaal langskomt kan de hacker meeluisteren om de code van de kluis te achterhalen. Of je martelt gewoon de kabouter net zo lang tot ie jou de code van de kluis geeft. Vergis je echter niet, deze kabouter laat zich niet makkelijk afluisteren en breekt niet snel.

Dan heb je nog mensen die de smartcard overclocken om meer clients te bedienen, dit zijn gewoon kabouterslavendrijvers.

Nu, wat cccam en andere cardservers doen is het volgende. Ze gaan, net als jij en ik, naar het kaboutertje toe en vragen om een sleutel. Die krijgen ze. Vervolgens maken ze razendsnel kopietjes van de sleutel en versturen die via een netwerk. Dit kan zomaar om 1000 kopietjes gaan met internet als netwerk. Zo kunnen 1000 mensen de fotoboeken openen met de sleutels van één kabouter! Vergeet niet, iedereen krijgt fotoboeken met hetzelfde slot. Alleen de kaboutertjes van alle abonnementhouders zijn anders. Zo geven sommige kaboutertjes, als je CanalDigitaal genoeg betaald, ook toegang tot kaboutersexfotoboeken. Daarom zullen providers zoals CanalDigitaal de timings ook steeds strakker af gaan stellen zodat internet niet snel genoeg meer is als tussenstation om om sleutels te vragen. Stel dat je iedere 100ms een nieuwe sleutel nodig hebt, dan blijven je fotoboeken wellicht wel gesloten als je een beetje hoge ping hebt.

Wat CanalDigitaal (of die ingeschakelde partij) waarschijnlijk heeft gedaan is het afnemen van de diensten van een paar grote cardshareservers. Vervolgens hebben ze in mijn ogen 2 dingen kunnen doen: of er zit inderdaad een backdoor in cccam en ze hebben cccam zo ver gekregen om niet alleen de gekopieerde sleuteltjes van de kabouter door te geven, maar ook de naam van de kabouter.

Of ze hebben iedere smartcard héél kort op zwart gezet en daarna weer geactiveerd (hiervoor moeten ze wel 2x ieder kaboutertje persoonlijk bezoeken). Al dan niet 's nachts, wanneer legitieme abonnementshouders waarschijnlijk toch niet kijken. CanalDigitaal kijkt dan gewoon of ze beeld verliezen met de cardserver. Zo ja, prijs. Dit is misschien makkelijker dan je denkt, want je kan adhv de beschikbare kanalen makkelijk destilleren welk abonnement er precies op de kaart staat. Vervolgens hoef je alleen nog maar de kaarten met specifiek dat abonnement tijdelijk op zwart te zetten.

Kaarten in cardservers zullen vrijwel altijd het toppakket+HD+Film1Sport1+Eredivisie+Man-X hebben. En er zijn bar weinig "normale" abonnementshouders die 88 euro/maand betalen voor TV.

Meer lezen over conditional access? Wikipedia: Conditional access.

ATWAT: Batch audio transcoding on Linux #2 en

By W3ird_N3rd on Tuesday 16 August 2011 23:20 - Comments (9)
Category: -, Views: 1.160

And here's a follow-up on Zaken waar ik eens dieper op in wil gaan..: Batch audio transcoding on Linux. :)

I've made a few improvements over the original script, the most notable one being I've seperated the functions into seperate scripts. So now there's an encoder script, a tagger script, a playlist script and a main script that calls the other three. There is also a renamer script that renames uncommon file extensions, but it's disabled by default as it changes the extensions of files you already have - which you might not want to happen.

In short, this combination of scripts will transcode all audio files (flac, mp3, ogg, mp4 and wav) in the directory from which you execute it to a chosen format and retains important tag information. For example, if your original file is:

Music/Radiohead - Kid A/02 Radiohead - Kid A.flac

The resulting file will be (depending on chosen format):

Music/Radiohead - Kid A (ogg)/02 Radiohead - Kid A.ogg

Directory- and filenames are kept, except for the extension and (mp3/ogg/etc) addition to the directory name.

I would almost forget, where can you find atwat? You can download atwat from github.

Installation instructions:

1. Download the tar.gz archive from github.
2. Open a shell and go to the directory where you've downloaded the archive.
3. "tar -xvf gist1150146-31266bd4044049d12da27704cbe3e5b5cc31e378.tar.gz", pay attention to the filename as it could be different.
4. "cd gist1150146-31266bd4044049d12da27704cbe3e5b5cc31e378" (again, check the name)
5. "chmod +x *" (this will make all extracted files executable, before they were just textfiles)
6. "mv * /usr/bin" (on most Linux distributions it will be /usr/bin, if you have an exotic distro, check where your executables are).
7. Just run "atwat" from any directory with soundfiles you like! Run "atwat mp3" to encode to another format.

Footnote: Yes, I'm aware of the several possible meanings of atwat/a twat. I also think it's a pretty catchy name. :)