Гайд - Хостим сайт на MikroTik’ах & Запускаем Python скрипты на MikroTik’ах | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой уникальный скрипт?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Гайд Хостим сайт на MikroTik’ах & Запускаем Python скрипты на MikroTik’ах

SSH

connection...
Автор темы
31 Май 2023
189
471
63
1717665550379

Всем доброго времени суток! Возвращаюсь в темп и поэтому ловите статью о том, как

Хостить небольшой сайт на MikroTik'ах и как на них запускать Python скрипты

через встроенную в большинство роутеров функцию под названием MetaROUTER.


Начинаем, приятного чтения!

1717665810893
Из моих прошлых статей про эксплоитинг MikroTik'ов стало очевидно, что у большинства новичков в пентесте, которые захотели опробовать работу моего эксплойта, возникли трудности. Именно поэтому идея написания подобной статьи возникла почти сразу, но вариантов как ещё реализовать такие функции без применения эксплойтов было ноль.

Но чуть позже меня вдруг осенило:
- "А почему бы не собрать какую-нибудь небольшую Unix или Unix-like систему и не поместить её в MetaROUTER на MikroTik'e?"
Вот оно - идеальное решение!

Кстати мой глаз пал на OpenWRT, классная лёгкая Unix системка, которая подойдет для наших целей. Собрать два кастомных образа под две архитектуры MikroTik'ов ( mipsbe, ppc ) оказалось очень лёгкой задачей.

Ещё оставлю для вас ссылки на оригинальные образы от OpenWRT для MikroTik'ов, но они больше нагружают систему, поэтому в этой статье я их использовать не буду, предпочту собранные лично anime_piy

Также хотел бы извиниться за афк, эта статья должна была быть опубликована намного раньше, но так как я лежал на операционном столе, то публикация перенеслась :anime_smile:
1717670430000
Рассказывать как фармить доступы к MikroTik'ам и как проверять к какой группе доступа относится пользователь в этот раз не буду, об этом можете прочитать тут.

Сразу приступаем к подготовке. Нужная группа доступа - full. Admin к сожалению не подойдёт :brff

1717678390051
Быстренько заходим в веб панель управления MikroTik'а и проверяем есть ли в панели инстурментов слева функция под названием MetaROUTER:

1717672093071

Если таковая имеется, то идём дальше. Если нет - перебираем другие доступы, ибо без метароутера мы ничего не запустим.

Затем идём в System -> Resources и глазками ищем Architecture Name:

1717672958549

У меня это mipsbe. У вас может быть как mipsbe, так и ppc. Скачиваем ниже прошивки под вашу архитектуру:
Кастомная, лёгкая, собрана мною: Скачать

Официальная сборка от OpenWRT под mipsbe: Скачать
Кастомная, лёгкая, собрана мною: Скачать

Официальная сборка от OpenWRT под pcc: Скачать

Заходим в Files и сверху тыкаем на Upload, выбираем наш файл прошивки и загружаем его:

1717677861741
На этом этап подготовки завершён. Приступаем к настройке.


1717679741062
Открываем MetaROUTER, сверху тыкаем на Import Image, выбираем ранее подгруженную прошивку, выставляем максимально возможный обьём хранилища и жмём на Start:

1717680019132

После того как Imported дойдёт до 100%, можем кликать на close.

Далее в MetaROUTER переходим в Interfaces, выставляем всё как у меня:

1717680215129

Потом обратно возвращаетесь на 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:

1717680923749

Редактируем вот так конфигурационный файл пакет-менеджера для обновления репозитория и установки необходимых программ:
Код:
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-порт-можно-узнать-в-параметрах-системы}

Подключаемся к серверу по ранее полученному адресу, перекидываем файлы сайта в ранее указанную папку и проверяем!

Вот и всё!

1717683052300
Вот и всё, мои дорогие читатели. Теперь мы имеем небольшой бесплатный хостинг сайта. :like

Главный совет - не нужно сильно нагружать систему, иначе будет бдыщ. anime_piy

Шутка, он просто перезагрузится :smilecat


1717670678926
Не буду повторяться, поэтому сначала прочтите инструкцию выше, о том, как сайт на MikroTik'е разворачивать, если вы этого раньше не сделали.
Приступим сразу к настройке:

1717694600345
Обновите конфигурационный файл пакет-менеджера, так, как это было показано в гайде выше.

Воспользуемся opkg:
Код:
opkg update
opkg install python3 python3-pip

Закидываем проектик на MikroTik по адресу который мы ранее получили ( см. гайд выше ) либо можем установить пакет wget и с помощью него скачать файл из Интернета.

Закачиваем нужные библиотеки, как делаем это обычно:
Код:
pip3 install {тут-название-библиотеки}

Если вы скачиваете библиотеку, которая в момент установки компилирует всё необходимое, то ОБЯЗАТЕЛЬНО устанавливаем библиотеку вот так:
Код:
MULTIDICT_NO_EXTENSIONS=1 YARL_NO_EXTENSIONS=1 pip3 install {название-библиотеки}

Необходимо это, потому что система не имеет нужных 256Mb+ для компиляции Clang програм.

Вот и всё. Теперь мы имеем бесплатный хостинг для Python скриптов. :Ast

1717695659196
Конец. Теперь вы сможете хостить свои небольшие проектики на Python без надобности покупать сервер или запускать его у себя на локальной машине! :1000-7:


Большое спасибо, что дочитали до конца! :catlove
Всем удачи и добра :anime_love2:

Если у вас имеются вопросы, жалобы или пожелания - обращайтесь в комментарии или в личные сообщения, мне очень приятно отвечать на них, помогать вам разобраться!

UPD: Дорогие читатели, я создал свой блог в телеграме. В нём будут постится мои статьи, софт, гайды, инструменты, практические кейсы и иной эксклюзивный контент. Всех желающих приглашаю - @ssh_lab


Автор: SSH
Ресурс: endway.su
 

Вложения

  • 1717680906163.png
    1717680906163.png
    437.4 KB · Просмотры: 18
  • 1717680829603.png
    1717680829603.png
    435.7 KB · Просмотры: 16
  • 1717671901394.png
    1717671901394.png
    407.8 KB · Просмотры: 13
  • 1717670479864.png
    1717670479864.png
    288.1 KB · Просмотры: 9
  • 1717670609998.png
    1717670609998.png
    326.4 KB · Просмотры: 6
  • 1717671051168.png
    1717671051168.png
    293.5 KB · Просмотры: 9
  • 1717671858909.jpeg
    1717671858909.jpeg
    343.3 KB · Просмотры: 7
  • 1717695470317.png
    1717695470317.png
    293.1 KB · Просмотры: 7
  • 1717695549952.png
    1717695549952.png
    293.1 KB · Просмотры: 6
Последнее редактирование:
Like
  • 13
Реакции: 12 users
Активность:
Пока что здесь никого нет