Всем доброго времени суток! Возвращаюсь в темп и поэтому ловите статью о том, как
Хостить небольшой сайт на MikroTik'ах и как на них запускать Python скрипты
через встроенную в большинство роутеров функцию под названием MetaROUTER.
Начинаем, приятного чтения!
Из моих прошлых статей про эксплоитинг MikroTik'ов стало очевидно, что у большинства новичков в пентесте, которые захотели опробовать работу моего эксплойта, возникли трудности. Именно поэтому идея написания подобной статьи возникла почти сразу, но вариантов как ещё реализовать такие функции без применения эксплойтов было ноль.
Но чуть позже меня вдруг осенило:
- "А почему бы не собрать какую-нибудь небольшую Unix или Unix-like систему и не поместить её в MetaROUTER на MikroTik'e?"
Вот оно - идеальное решение!
Кстати мой глаз пал на OpenWRT, классная лёгкая Unix системка, которая подойдет для наших целей. Собрать два кастомных образа под две архитектуры MikroTik'ов ( mipsbe, ppc ) оказалось очень лёгкой задачей.
Ещё оставлю для вас ссылки на оригинальные образы от OpenWRT для MikroTik'ов, но они больше нагружают систему, поэтому в этой статье я их использовать не буду, предпочту собранные лично
Также хотел бы извиниться за афк, эта статья должна была быть опубликована намного раньше, но так как я лежал на операционном столе, то публикация перенеслась
Но чуть позже меня вдруг осенило:
- "А почему бы не собрать какую-нибудь небольшую Unix или Unix-like систему и не поместить её в MetaROUTER на MikroTik'e?"
Вот оно - идеальное решение!
Кстати мой глаз пал на OpenWRT, классная лёгкая Unix системка, которая подойдет для наших целей. Собрать два кастомных образа под две архитектуры MikroTik'ов ( mipsbe, ppc ) оказалось очень лёгкой задачей.
Ещё оставлю для вас ссылки на оригинальные образы от OpenWRT для MikroTik'ов, но они больше нагружают систему, поэтому в этой статье я их использовать не буду, предпочту собранные лично
Также хотел бы извиниться за афк, эта статья должна была быть опубликована намного раньше, но так как я лежал на операционном столе, то публикация перенеслась
Рассказывать как фармить доступы к MikroTik'ам и как проверять к какой группе доступа относится пользователь в этот раз не буду, об этом можете прочитать тут.
Сразу приступаем к подготовке. Нужная группа доступа - full. Admin к сожалению не подойдёт
Сразу приступаем к подготовке. Нужная группа доступа - full. Admin к сожалению не подойдёт
Быстренько заходим в веб панель управления MikroTik'а и проверяем есть ли в панели инстурментов слева функция под названием MetaROUTER:
Если таковая имеется, то идём дальше. Если нет - перебираем другие доступы, ибо без метароутера мы ничего не запустим.
Затем идём в System -> Resources и глазками ищем Architecture Name:
У меня это mipsbe. У вас может быть как mipsbe, так и ppc. Скачиваем ниже прошивки под вашу архитектуру:
Заходим в Files и сверху тыкаем на Upload, выбираем наш файл прошивки и загружаем его:
Если таковая имеется, то идём дальше. Если нет - перебираем другие доступы, ибо без метароутера мы ничего не запустим.
Затем идём в System -> Resources и глазками ищем Architecture Name:
У меня это mipsbe. У вас может быть как mipsbe, так и ppc. Скачиваем ниже прошивки под вашу архитектуру:
Заходим в Files и сверху тыкаем на Upload, выбираем наш файл прошивки и загружаем его:
На этом этап подготовки завершён. Приступаем к настройке.
Открываем MetaROUTER, сверху тыкаем на Import Image, выбираем ранее подгруженную прошивку, выставляем максимально возможный обьём хранилища и жмём на Start:
После того как Imported дойдёт до 100%, можем кликать на close.
Далее в MetaROUTER переходим в Interfaces, выставляем всё как у меня:
Потом обратно возвращаетесь на MetaROUTER's, тыкаем по созданной вами mr1 ( название может отличаться) и в панели управления клацаем на Console. Откроется небольшая консоль в другом окне браузера. После прогрузки нас попросят нажать на Enter, жмякаем.
Начинаем:
Редактируем вот так настройки сети для получения сетевых реквизитов по dhcp от самого роутера:
Добавляем службу сети в автозагрузку и перезапускаем её:
Получаем сетевые реквизиты, введя ifconfig eth0, и теперь у нас есть доступ к метароутеру по ssh, ftp:
Редактируем вот так конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:
Теперь воспользуемся всем известным opkg:
Настроим nginx
Редактируем параметры PHP:
Проверяем настройки fascgi:
Добавляем все нужные службы в автозагрузку и запускаем их:
Меняем http порт нашего роутера и пробрасываем 80'ку во внешку:
Подключаемся к серверу по ранее полученному адресу, перекидываем файлы сайта в ранее указанную папку и проверяем!
Вот и всё!
После того как Imported дойдёт до 100%, можем кликать на close.
Далее в MetaROUTER переходим в Interfaces, выставляем всё как у меня:
Потом обратно возвращаетесь на MetaROUTER's, тыкаем по созданной вами mr1 ( название может отличаться) и в панели управления клацаем на Console. Откроется небольшая консоль в другом окне браузера. После прогрузки нас попросят нажать на Enter, жмякаем.
Начинаем:
Редактируем вот так настройки сети для получения сетевых реквизитов по dhcp от самого роутера:
Код:
vi /etc/config/network
config interface lan
option ifname eth0
option proto dhcp
Добавляем службу сети в автозагрузку и перезапускаем её:
Код:
/etc/init.d/network enable
/etc/init.d/network restart
Получаем сетевые реквизиты, введя ifconfig eth0, и теперь у нас есть доступ к метароутеру по ssh, ftp:
Редактируем вот так конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:
Код:
vi /etc/opkg.conf
src/gz snapshots http://openwrt.wk.cz/attitude_adjustment/mr-mips/packages/
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
Код:
vi /etc/opkg.conf
src/gz snapshots http://openwrt.wk.cz/attitude_adjustment/mr-ppc/packages/
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
Теперь воспользуемся всем известным opkg:
Код:
opkg update
opkg install nginx php5 php5-fastcgi
Настроим nginx
Код:
mv /etc/nginx/nginx.conf /etc/nginx/nginx_example.conf
vi /etc/nginx/nginx.conf
user nobody nogroup;
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
index index.php index.html index.htm;
default_type text/html;
sendfile on;
keepalive_timeout 65;
gzip on;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
gzip_min_length 1k;
server {
listen 80; # слушающий порт
server_name 172.16.0.12; # имя или ip-адрес сервера
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;
output_buffers 1 32k;
postpone_output 1460;
root /srv/www; # Папка, где будут храниться файлы сайта.
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
if (-f $request_filename) {
fastcgi_pass 127.0.0.1:1026;
}
}
}
}
Редактируем параметры PHP:
Код:
vi /etc/php.ini
doc_root = "srv/www"
cgi.force_redirect = 1
cgi.redirect_status_env = "yes";
Проверяем настройки fascgi:
Код:
vi /etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
Добавляем все нужные службы в автозагрузку и запускаем их:
Код:
/etc/init.d/nginx enable
/etc/init.d/nginx start
/etc/init.d/php5-fastcgi enable
/etc/init.d/php5-fastcgi start
Меняем http порт нашего роутера и пробрасываем 80'ку во внешку:
Код:
/ip service set port=8080 2 disabled=yes # or no
/ip firewall nat add chain=dstnat action=dst-nat dst-address={здесь-внешний-ip-роутера} protocol=tcp dst-port=80 to-ports=80 to-addresses={пробрасываемый-адрес-к-примеру-172.16.0.12} in-interface={интрефейс-к-примеру-ether2} disabled=no # in-interface={WAN-порт-можно-узнать-в-параметрах-системы}
Подключаемся к серверу по ранее полученному адресу, перекидываем файлы сайта в ранее указанную папку и проверяем!
Вот и всё!
Вот и всё, мои дорогие читатели. Теперь мы имеем небольшой бесплатный хостинг сайта.
Главный совет - не нужно сильно нагружать систему, иначе будет бдыщ.
Шутка, он просто перезагрузится
Главный совет - не нужно сильно нагружать систему, иначе будет бдыщ.
Шутка, он просто перезагрузится
Не буду повторяться, поэтому сначала прочтите инструкцию выше, о том, как сайт на MikroTik'е разворачивать, если вы этого раньше не сделали.
Приступим сразу к настройке:
Приступим сразу к настройке:
Обновите конфигурационный файл пакет-менеджера, так, как это было показано в гайде выше.
Воспользуемся opkg:
Закидываем проектик на MikroTik по адресу который мы ранее получили ( см. гайд выше ) либо можем установить пакет wget и с помощью него скачать файл из Интернета.
Закачиваем нужные библиотеки, как делаем это обычно:
Вот и всё. Теперь мы имеем бесплатный хостинг для Python скриптов.
Воспользуемся opkg:
Код:
opkg update
opkg install python3 python3-pip
Закидываем проектик на MikroTik по адресу который мы ранее получили ( см. гайд выше ) либо можем установить пакет wget и с помощью него скачать файл из Интернета.
Закачиваем нужные библиотеки, как делаем это обычно:
Код:
pip3 install {тут-название-библиотеки}
Если вы скачиваете библиотеку, которая в момент установки компилирует всё необходимое, то ОБЯЗАТЕЛЬНО устанавливаем библиотеку вот так:
Необходимо это, потому что система не имеет нужных 256Mb+ для компиляции Clang програм.
Код:
MULTIDICT_NO_EXTENSIONS=1 YARL_NO_EXTENSIONS=1 pip3 install {название-библиотеки}
Необходимо это, потому что система не имеет нужных 256Mb+ для компиляции Clang програм.
Вот и всё. Теперь мы имеем бесплатный хостинг для Python скриптов.
Конец. Теперь вы сможете хостить свои небольшие проектики на Python без надобности покупать сервер или запускать его у себя на локальной машине!
Большое спасибо, что дочитали до конца!
Всем удачи и добра
Если у вас имеются вопросы, жалобы или пожелания - обращайтесь в комментарии или в личные сообщения, мне очень приятно отвечать на них, помогать вам разобраться!
UPD: Дорогие читатели, я создал свой блог в телеграме. В нём будут постится мои статьи, софт, гайды, инструменты, практические кейсы и иной эксклюзивный контент. Всех желающих приглашаю - @ssh_lab
Автор: SSH
Ресурс: endway.su
Вложения
- 1717680906163.png437.4 KB · Просмотры: 18
- 1717680829603.png435.7 KB · Просмотры: 16
- 1717671901394.png407.8 KB · Просмотры: 13
- 1717670479864.png288.1 KB · Просмотры: 9
- 1717670609998.png326.4 KB · Просмотры: 6
- 1717671051168.png293.5 KB · Просмотры: 9
- 1717671858909.jpeg343.3 KB · Просмотры: 7
- 1717695470317.png293.1 KB · Просмотры: 7
- 1717695549952.png293.1 KB · Просмотры: 6
Последнее редактирование: