Автор Тема: GSM == ЗЛО!  (Прочетена 50098 пъти)

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #45 -: Sep 30, 2013, 16:41 »
Пфууу да му ***** след една камара играчка го компилирах най-сетне....
Довечера ще пратя преработения сорс да го има, ако някой иска да го подкара.

Значи, има малко промяна в хедърите:

gnuradio/gr_math.h > gnuradio/math.h
Като има малко промяна в сорса.

същото важи и за
gnuradio/gr_feval.h > gnuradio/feval.h
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #46 -: Sep 30, 2013, 17:38 »
Това звучи много странно. Не помня да съм бутал #include-и някъде, но беше преди някакво време, така че не знам.

Имам спомени че някъде трябваше да се оправят math нещата (не се линкваше с -lm), а в airprobe по спомени имаше друг момент, C99 stdint нещата не се инклудваха и трябваше изрично да се инклуднат.  Преименуване на хедъри обаче не помня....
Активен

"Knowledge is power" - France is Bacon

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #47 -: Sep 30, 2013, 18:17 »
Това звучи много странно. Не помня да съм бутал #include-и някъде, но беше преди някакво време, така че не знам.

Имам спомени че някъде трябваше да се оправят math нещата (не се линкваше с -lm), а в airprobe по спомени имаше друг момент, C99 stdint нещата не се инклудваха и трябваше изрично да се инклуднат.  Преименуване на хедъри обаче не помня....

Невъзможно е?!?
Във gnuradio-dev пакета на sid липсват тия файлове "gr_math.h" и "gr_feval.h", а хедърите на gsm.cc и още 2 файла, сега не ги помня инклудват баш тях.

Да не би да си компилирал gnuradio-то от сорса и да са останали техните хедъри или някоя по-стара версия? Защото "gr_math.h" и "gr_feval.h" хедърите са май до версия 3.6 нещо си там....
Даже сега гледам, че във сорса пак са "math.h" и "feval.h", а не "gr_math.h" и "gr_feval.h".

Единствеенният начин е да си слагал 3.6 версия мисля аз :)

Сега даже ще тествам с 3.6.5 версията да видим там как ще стоят нещата
« Последна редакция: Sep 30, 2013, 18:24 от runtime »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #48 -: Oct 01, 2013, 00:04 »
Хм да като гледам:

Код:
dpkg -l |grep gnuradio
ii  gnuradio                                       3.6.5.1-1                     amd64        GNU Radio Software Radio Toolkit


Очевидно съм с 3.6 в момента. Нямам спомени защо и как честно казано, беше преди известно време.
Активен

"Knowledge is power" - France is Bacon

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #49 -: Oct 11, 2013, 18:30 »
Ако на някой му трябва "оправен" скрипт да пише, проблемът е че така както са навързали нещата с гнурадио модулите няма да стане, от декодера не излиза нищо и съответно няма как каквото и да било да влезе в изходния файлов sink.


Аз пак да си питам, дали би го дал  [_]3 да не си блъскам пак главата една седмица. Пиши, на лични въпреки, че  нещо ми се струват, че не бачккат.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #50 -: Oct 12, 2013, 12:47 »
http://gat3way.eu/poc/gsm_receive_rtl.py

Само трябва да внимаваш с sample rate-a. Същото важи и за дефолтния ключ който не е от нули, така че няма да хванеш никакъв sdcch некриптиран трафик без изрично да укажеш -k "00 00 00 00 00 00 00 00".

Изходът е "суров", т.е трябва да мине пак през интерполацията и декодирането, с други думи минаваш го през gsm_receive.py

П.П. за sample rate-a готова сметка: ползвай 1.0e6 и после при replay-ването с gsm_receive.py ползваш decimation rate от 64. Всичко различно от това трябва да го сметнеш, иначе няма да излезе нищо. Sample rate от 1 милион е ОК за rtl-sdr според мен, хем издъмпените данни не за безобразно големи, хем качеството е прилично. Апропо, намери си един USB удължител или powered hub и вържи тунера през него, дори можеш да го увиеш във фолио. Интерференциите и смущенията от компютъра се оказаха безобразно силни при мен и колкото и да се мъчих с активни антени, разположени на най-най-идеалното място, това беше нещото което осмисли нещата при мен. Разбира се активната антена също е добра идея (стига да няма някакъв малоумен bandpass филтър дето реже GSM честотите). Нямах идея че компютрите бълват толкова радиовълни, дори ми мина през главата че това може да се ползва, за да можеш отдалечено да "познаваш" разни неща от сорта на видео, натиснати клавиши и тем подобни. Обаче силата на тези вълни доста рязко спада с разстоянието, така че може и да не може.
« Последна редакция: Oct 12, 2013, 12:59 от gat3way »
Активен

"Knowledge is power" - France is Bacon

runtime

  • Напреднали
  • *****
  • Публикации: 807
  • Distribution: Ubuntu 14.04
  • Window Manager: Unity
  • LZ1DOT
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #51 -: Oct 13, 2013, 03:16 »
Мерси!
То смущенията идват главно от импулнсите захранвания. За това е добре когато се работи да няма нищо импулсно включено ( адаптори и т.н.), Също така адски смущения вкарват и енергоспестяващите крушки. Добре е да се стои на тъмно, ако си с такива :-D Но най-добре е да си направиш антена на честотата, а не някои многобандова защото ще ти "улавя" и много паразитни шумове.

Иначе аз си направих една 900 мхз gp антена и да ти кажа се справя добре. Ползвам я даже с антенен усилвател, въпреки, че те са малко пародия :)
https://www.youtube.com/watch?v=IxOEgkyrXnE

п.с. Нещо малко ти таймаутва сървъра ама ще тествам пак през деня.

« Последна редакция: Oct 13, 2013, 03:39 от runtime »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #52 -: Oct 13, 2013, 21:06 »
Те и радиолюбителите ме съветваха да си направя антена (което няма как да стане защото не разбирам), другият препоръчан вариант беше с някакъв брутализъм, който можеше да си поръчам, но жена ми сигурно ще ме изсели като го види. Та в крайна сметка остана варианта с активната стайна DVB-T антена (между другото се оказа доста прилично решение).

Това със смущенията не бих се учудил да идва от захранването наистина. Другият източник е монитора, който не е CRT, въпреки това бълва прилично (емпирично доказано). Не знаех за крушките, ще взема верно да пробвам на тъмно :) Но от компютъра идва най-много определено, като си се разхождам с gqrx да гледам кво става из ефира има толкова много паразитен шум, който изчезва като отдалеча тунера.

По едно време ми беше станало интересно и да слухтя РВД (оле майко какъв брутален акцент имат тия пичове, горките пилоти), таксита и т.н. Имаше някакви пичове дето дрънкаха на френски някъде около 400-те mhz и са мистерия за мен.

Апропо имаше някакви пичове дето си играят да слухтят downlink-а от някакви метеорологични сателити, декодират го (софтуерът е опънсорс) и си рисуват снимките, които ги праща сателита, беше забавно, но силно ме съмнява да успея да им повторя експеримента (предполагам това се прави с някакви по-специални антени).

Що се отнася до сървъра, не би трябвало да таймаутва, може ли да пробваш пак?
Активен

"Knowledge is power" - France is Bacon

zxz

  • Напреднали
  • *****
  • Публикации: 615
  • Distribution: Linux Mint 18.2
  • Window Manager: XFCE
    • Профил
Re: GSM == ЗЛО!
« Отговор #53 -: Oct 13, 2013, 21:13 »
Трябва ти една чиния на булсатком или на свиваком или на който и да е сателитен оператор. Насочваш я към сателита и готово. "Окото" - онова дето стърчи от чинията е делител на честоти - от 15-9ГХц ги прави на около 800Мхц.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #54 -: Nov 01, 2013, 20:45 »
Текущия статус на нещата с това:

От теория към практика, всичко вече работи. Разбих първите няколко ключа успешно, декодирах и декриптирах контролния трафик, voice-а не съм го декодирал, няма да е особено легално.

Няколко впечатления: първо не е силно надеждно и причината не е в крипто-атаката, а в протокола. За да се сдобиеш с known plaintext, варианта е да използваш известни фреймове, които се повтарят в известен интервал. Проблемът е че не са напълно известни, защото има нещо, наречено Timing Advance, което се променя в зависимост от разстоянието от BTS-а. Имаме 64 възможни стойности (в София са по-скоро 2-3 заради гъстотата на клетките), но за всяка различна стойност ни трябва нова атака, съответно нови няколко часа чакане. Допълнително грешките при приемане заради шум и т.н. могат да се отразят фатално. Поради тази причина мисля да превключа от RTL-SDR към Motorola C139 с OsmocomBB фърмуер, един бивш колега и голям пич ми подари и телефона и кабели да си играя. Това ще ми реши проблема и с hopping клетките (макар че съм убеден че мога да пачна airprobe за целта, стига да навляза малко повече в нещата).

Почнах също и доста добре да поназнайвам и как всичко работи на ниво Um протоколи. Оттук следващият проблем: _няма_ opensource GSM анализатор, нито скапан, нито хубав. Най-близкото нещо е airprobe и wireshark, а това дава _много_ лоша идея за нещата, защото те са навързани доволно добре и ти трябва малко фантазия за да си представиш какво става (допълнително няма как едновременно да декодираш BCCH и SDCCH каналите и да видиш всичката комуникация в "правилния ред").

Та една от моита цели, макар че не съм супер-дупер амбициран за това е да се погрижа това да се случи. Сам не мога да го направя, защото съм зле с GUI нещата. Дано да зарибя хора дето разбират от това, иначе ще сътворя нещо грозно конзолно, въпреки че и това ще е по-добре от нищото в момента.

По отношение на родните оператори (поне в района близо до 4-ти км ехех):

Мтел: няколко клетки в района, с изключение на 2 от тях, останалите хопват и SDCCH каналите при immediate assignment винаги ходят при хопващите. Следователно към момента е невъзможно да ги слухтиш ползвайки подръчни средства от сорта на RTL-SDR (докато не се поправи софтуера....или докато не се преориентирам към Моторолата с osmocom, ехех). Мтел има много голям проблем с TMSI-тата. Ако човек слухти продължително време BCCH канала (който е некриптиран broadcast) и събира Paging Request-ите, много скоро ще събере голям брой IMSI-та (не TMSI). Това заедно с някоя услуга за HLR lookup позволява да знаеш дали някой абонат е в района и е кофти privacy leak.

Глобул: няколко клетки в района, забавното е че контролния канал винаги се алокира на една единствена от тях. Ползват early assignment, от гледна точка на пасивното слухтене това е най-уязвимата мрежа в района. Това, което ги спасява е че понякога TCH канала се assign-ва на друга клетка, което убива варианта да декриптираш разговора с rtl-sdr (освен ако нямаш повече от една джаджа). Това не важи за SMS-ите, които винаги минават по контролния канал. Не използват plaintext randomization. Ползват E-GSM апропо. На практика, всеки идиот с не особено зор може да слухти една прилична част от комуникациите, стига да разбие ключовете.

Вивател: пълна мистерия, нямат много клетки в района (не знам как се уреждат да ги слагат само върху стълбове за улично осветление), досега съм хващал само една клетка, която не assign-ва контролния канал на себе си и следователно не знам какво става там. Не ползва frequency hopping (би било и проблемно след като клетките им са доста разредени, поне тук).


Нещо забавно: ако човек слухти, скоро ще забележи че има некриптирани разговори, които лесно могат да се изслухтят. Това беше голяма мистерия, която едни пичове от Немско ми обясниха. Тези разговори са emergency разговори (демек към 112). Имам скрупули към слухтенето на чужди неща, но трябва да си призная че все пак няколко пъти се пробвах върху тях. Всичките бяха набиране и затваряне, единия беше псувня и затваряне :) Така че който иска да слухти разговорите с 112, няма никакъв проблем (единственият проблем е ако за трафик/контролния канал се избере друга клетка, но нито Mtel нито Globul го правят, очевидно спешните разговори имат специален статут и трябва напълно да се обслужат от същата клетка). Почвам да се чудя колко голям процент от обажданията към 112 са dummy такива. Ако тези хора наистина глобяваха за prank calls, то трябва доста народ да го отнася...според мен просто доста хора звънят погрешка поради някаква причина.

Та това засега.
« Последна редакция: Nov 01, 2013, 20:56 от gat3way »
Активен

"Knowledge is power" - France is Bacon

programings

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Arch Linux, BunsenLabs Linux, FreeBSD
  • Window Manager: XFCE, MATE, Openbox
    • Профил
Re: GSM == ЗЛО!
« Отговор #55 -: Nov 22, 2013, 18:07 »
Да попитам тук относно RTL-SDR радиото, понеже ми изглежда страшна далавера да си купиш един DVB-T адаптер за 30 лева, и да може да си слушаш ефира в радиуса, който поддържа чипа. Интересува ме, ако не искам да се занимавам с GSM, ADS-B и подобни специфики, а просто да слушам в реално време някаква обикновена честота с FM модулация около 130 MHz да речем, то нещата по същият начин ли стоят, както са описани в статията на gat3way.eu - билдвам софтуера (естествено без този за декриптиране на GSM), свързвам адаптера и антената към него, и слушам в реално време?
А през кой софтуер точно ще става слушането в моят случай?
« Последна редакция: Nov 22, 2013, 19:17 от userings »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #56 -: Nov 22, 2013, 22:45 »
130 мегахерца е airband-а, в София това са voice комуникациите на контролната кула и РВД, всичко е АМ мисля. Да, слуша се в реално време (процесорът ти е достатъчно мощен да се справи с демодулацията в реално време). Горе-долу същото като да имаш радио-скенер, макар че RTL джаджите не са толкова прекрасни (имат доста артефакти). За да слушаш FM радио е достатъчно да си инсталираш gqrx, с rtl_fm не съм пробвал, но би трябвало да е по-прост, конзолен вариант. Другият вариант е sdrsharp, но ще ти трябват mono глупостите, но последното е също много добър софтуер, за някои неща по-забавен и от gqrx (най-малкото може да zoom-ва waterfall-а и има сума ти плъгини). Но да, радио е елементарно да слухтиш и става в реално време.

Сега съвсем отделен въпрос са по-шарените радио-неща, но ако ще слухтиш UHF няма да имаш проблеми и с наличния хардуер, абсолютно никакъв. Ако имаш по-специфични изисквания (аз в момента се опитвам да декодирам излъчвания от метерологичните NOAA сателити) тогава ще трябва да хвърлиш още поне толкова пари за кабели, кримпвачки, усилватели, мултицети и да си блъскаш главата с идиотските теории свързани с антените (мен много ме боли главата от тези неща).

Активен

"Knowledge is power" - France is Bacon

programings

  • Напреднали
  • *****
  • Публикации: 221
  • Distribution: Arch Linux, BunsenLabs Linux, FreeBSD
  • Window Manager: XFCE, MATE, Openbox
    • Профил
Re: GSM == ЗЛО!
« Отговор #57 -: Nov 23, 2013, 13:17 »
Хм, значи без rtl-sdr и gnuradio, само gqrx?
Активен

backinblack

  • Напреднали
  • *****
  • Публикации: 3201
    • Профил
Re: GSM == ЗЛО!
« Отговор #58 -: Nov 24, 2013, 00:11 »
Тези работи дето ти пишете, представям си в съда какви експертни комисии ще требе да се произнасят за да имат доказателствена стойност :D

А без доказателствена стойност ме боли гъзъ какво щели да чуят!
« Последна редакция: Nov 24, 2013, 00:12 от backinblack »
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Re: GSM == ЗЛО!
« Отговор #59 -: Nov 24, 2013, 00:56 »
Цитат
Хм, значи без rtl-sdr и gnuradio, само gqrx?

Мне, rtl_sdr и gnuradio ще ти трябват (gqrx ползва и двете). Без gnuradio може би sdrsharp работи (не мога да го потвърдя), но дори там rtl_sdr ще ти трябва (там номера е да пуснеш rtl_tcp и да накараш sdrsharp да му е клиент, значи алтернативно можеш на линукска машина да подкараш джаджата и от уиндоус отдалечено да ползваш sdrsharp примерно, но не съм пробвал).

Активен

"Knowledge is power" - France is Bacon