NAS: Хакинг DNS-313 — открытие доступа по SSH, установка Bittorrent-клиента

Основа информации взята отсюда (к сожалению, ссылка умерла)

DNS-313
Сетевое хранилище данных DNS-313 работает под управлением Linux, что позволяет заняться хакингом. Очень много материалов по этому поводу можно найти на этих ресурсах: DSMG600 Hack Forum и DNS Wiki. В основном там говорится про «старшего брата» — двухдисковый накопитель DNS-323, но так как у DNS-313 и DNS-323 много общего, то большинство информации можно тотнести и к DNS-313.

Этап первый — установка набора программ и утилит fun_plug.

Установка fun_plug довольно проста. Загрузите файл fun_plug.tgz и скопируйте его в корень диска, являющегося хранилищем пользовательских данных (в веб-интерфейсе администратора он обозначается как Volume_1). Также загрузите небольшой текстовый файл fun_plug (без расширения) и отредактируйте его следующим образом (используйте текстовый редактор, поддерживающий переносы строк в формате Unix — например, Akelpad или Notepad++. Использование Блокнота Windows категорически недопустимо):

найдите в тексте файла строки

# real path to ffp
FFP_PATH=/mnt/HD_a2/ffp

и замените их на

# real path to ffp
FFP_PATH=/mnt/HD_a4/ffp

После этого скопируйте измененный файл туда же, куда и первый файл — то есть, в корень диска Volume_1
Перезагрузите DNS-313 (используя веб-интерфейс администратора). После перезагрузки устройство должно отвечать на обращение через Telnet. Запустите на компьютере командную строку (cmd.exe) и дайте команду:

telnet <сетевое_имя_или_IP_адрес_устройства>

Вы должны увидеть такое приглашение:

/#

Устройство пустило вас к себе, не запросив ни имени, ни пароля. Это непорядок, который необходимо немедленно устранить. В окне telnet’а даем последовательно команды:

pwconv
passwd
(это команда смены пароля, потребуется дважды ввести пароль)
usermod -s /ffp/bin/sh root (смена предопределенной среды; текущая среда — ash)

Теперь можно проверить вход:

login (укажите имя root, а пароль — тот, который вы только что установили)
store-passwd.sh (сохранение пароля в энергонезависимую память)

Теперь можно перейти ко второму этапу.

Этап второй — обеспечение автоматического запуска службы SSH.

Продолжая находиться в окне Telnet’а, выполняем команду:

chmod a+x /ffp/start/sshd.sh (установка разрешения на запуск скрипта службы SSH)
sh /ffp/start/sshd.sh start (собственно, запуск SSH)

После этого сеанс работы через Telnet можно прекратить:

exit

Теперь можно попробовать обратиться к DNS-313 по протоколу SSH (для ПК с Windows рекомендуется клиент PuTTY). Например, так:

putty root@mynasdevice -pw mysecretpassword

Убедившись, что служба SSH работает, можно (в интерфейсе PuTTY) остановить службу telnet:

sh /ffp/start/telnetd.sh stop

… а также запретить ее автоматический запуск после перезагрузки:

chmod a-x /ffp/start/telnetd.sh

Этап третий — установка Bittorrent-клиента Transmission.

К сожалению, в оригинальном виде у DNS-313 отсутствует Bittorrent-клиент. Но этот недостаток вполне поправим — достаточно установить альтернативный клиент — Transmission — используемый штатно на многих популярных Linux-системах.

Итак, поехали.

В сеансе работы с SSH, переходим в какой-нибудь каталог диска для хранения данных (например, в корень):

cd /mnt/HD_a2

Выполняем последовательно команды, которые обеспечат загрузку на устройство всех пакетов, необходимых для установки:

wget http://kylek.is-a-geek.org:31337/files/Transmission-1.75-1.tgz
wget http://kylek.is-a-geek.org:31337/files/curl-7.18.1.tgz
wget http://www.inreto.de/dns323/fun-plug/0.5/packages/uclibc-0.9.29-7.tgz

Следующие три команды выполнят установку этих пакетов:

funpkg -i curl-7.18.1.tgz
funpkg -i Transmission-1.51.tgz
funpkg -i uclibc-0.9.29-7.tgz

Создаем папки для будущей загрузки файлов, а также устанавливаем на эти папки владельца и разрешения:

cd /mnt/HD_a2
mkdir bittorrent
cd bittorrent
cd /mnt/HD_a2
chown -R nobody:501 bittorrent/
chmod 755 -R bittorrent/

(Замечание: если раздел /mnt/HD_a2 имеет файловую систему NTFS (а именно так и есть у DNS-313 «от завода»), то команды смены владельца и назначения разрешений выдадут ошибку. Не обращайте на нее внимания.)
Делаем первый пробный запуск Transmission:

/ffp/start/transmission.sh start

Теперь можно попытаться обратиться к Transmission через веб-браузер:

http://<адрес_или имя>:9091/transmission/web

Как правило, вы должны увидеть следующее сообщение об ошибке:

    401: Unauthorized
Unauthorized IP Address.
Either disable the IP address whitelist or add your address to it.
If you’re editing settings.json, see the ‘rpc-whitelist’ and ‘rpc-whitelist-enabled’ entries.
If you’re still using ACLs, use a whitelist instead. See the transmission-daemon manpage for details.

Остановите Transmission:

/ffp/start/transmission.sh stop

Чтобы создать конфигурационный файл, необходимо один раз запустить Transmission » в ручном режиме». Это делается следующей командой:

transmission-daemon -f -g /mnt/HD_a2/.transmission-daemon -t -u <имя> -v <пароль> -a *.*.*.*

Вместо <имя> и <пароль> пропишите выбранные вами имя и пароль. После такого запуска вы увидите на экране текст. Если он не содержит сообщений об ошибках, прервите работу Transmission, нажав клавиши Ctrl+C.
Дайте команду:

transmission-daemon -d

В ответ вы должны увидеть что-то вроде этого:

    {
«blocklist-enabled”: 0,
«download-dir”: «\/mnt\/HD_a2\/bittorrent\/”,
«download-limit”: 100,
«download-limit-enabled”: 0,
«encryption”: 1,
«lazy-bitfield-enabled”: 1,
«message-level”: 2,
«open-file-limit”: 32,
«peer-limit-global”: 240,
«peer-limit-per-torrent”: 60,
«peer-port”: 51413,
«peer-port-random-enabled”: 0,
«peer-port-random-high”: 65535,
«peer-port-random-low”: 1024,
«peer-socket-tos”: 0,
«pex-enabled”: 1,
«port-forwarding-enabled”: 1,
«preallocation”: 1,
«proxy”: «”,
«proxy-auth-enabled”: 0,
«proxy-auth-password”: «”,
«proxy-auth-username”: «”,
«proxy-enabled”: 0,
«proxy-port”: 80,
«proxy-type”: 0,
«rpc-authentication-required”: 1,
«rpc-enabled”: 1,
«rpc-password”: «superpassword”,
«rpc-port”: 9091,
«rpc-username”: «superuser”,
«rpc-whitelist”: «*.*.*.*”,
«rpc-whitelist-enabled”: 1,
«upload-limit”: 100,
«upload-limit-enabled”: 0,
«upload-slots-per-torrent”: 14
}

Настройки содержатся в файле /mnt/HD_a2/.transmission-daemon/settings.json, который можно (и нужно) отредактировать
Запуск Transmission осуществляется командой:

sh /ffp/start/transmission.sh start

а останов — командой:

sh /ffp/start/transmission.sh stop

Для автоматического запуска Transmission после включения или перезагрузки DNS-313 поменяйте атрибуты файла запуска:

chmod a+x /ffp/start/transmission.sh

Некоторые настройки вы можете изменять, нажав на пиктограмме с колесиком в веб-интерфейсе Transmission:

http://<адрес_или имя>:9091/transmission/web

Замечание: если после запуска Transmission выдаются сообщения типа «Access denied» или «Invalid folder», выполните команды:

chown -R nobody /mnt/HD_a2/bittorrent
chown -R nobody /mnt/HD_a2/.transmission-daemon

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.