Metasploit android reverse tcp

Анонимное подключение к meterpreter/reverse_tcp через промежуточный сервер с помощью SSH-туннелей

Всем привет! Эта статья рассчитана скорее на новичков, которые только начинают своё знакомство с Metasploit Framework, но уже кое-что понимают. Если вы считаете себя опытным специалистом и вас заинтересовало название, можете сразу перейти к TL;DR; в конце. Речь в этой статье пойдет о том, как устроить анонимный доступ к meterpriter оболочке посредством reverse tcp с использованием промежуточного сервера и SSH туннелей.

Дисклеймер: чукча не писатель, не безопасник и вообще с трудом может причислить себя к профессионалам в какой-либо сфере. Но чукча захотел reverse tcp через tor и сделал, а вам теперь это читать. А так же помните, что производить подобные действия можно только в разрешенных вам местах, иначе вам грозят несколько статей уголовного кодекса.

Вступление

Допустим, мы нашли дыру на виндовой машине и хотим на неё проникнуть. Рассмотрим варианты, причем обычный cmd нам неинтересен, то ли дело meterpreter, о нём и поговорим.

Есть два основных принципа соединения с оболочкой meterpreter: прямое и обратное. В meterpreter’е есть множество вариантов подключения, но в рамках этой статьи мы будем говорить только о bind tcp(прямой) и reverse tcp(обратный).

Какие подводные камни нас ждут, если мы хотим использовать bind tcp, открыв таким образом порт у жертвы и потом через прокси или тор подключиться? Во-первых, брэндмауэр жертвы поинтересуется, зачем эта непонятная программа пытается выйти в интернет и можно ли ей тут хозяйничать? Допустим, пользователь глуп(что скорее всего так и есть) настолько, чтобы разрешить нашей программе открыть порт, спросите себя, кто нынче выходит в интернет напрямую и имеет белый ip? Мало таких осталось, сейчас везде роутеры, а следовательно наш порт будет доступен только во внутренней сети. Если мы заморочились и прокинули порт наружу, то остаётся полследняя проблемы: нужно знать ip, чтобы подключиться, а он может периодически меняться. Зато, если все перечисленные выше условия выполнены, то можно подключиться через цепочку проксей из любого места.

Что насчет reverse tcp подключения? Брэндмауэр не ругается, роутер тоже не помеха — жертва сама подключится к нам, поэтому же отпадает необходимость следить за её ip адресом. Но возникает проблема посерьёзнее — анонимность. Нам нужно указать, куда жертва будет подключаться, то есть написать свой ip, который можно будет увидеть через тот же netstat. И тогда дяди в чистых костюмах или мстительная жертва с нужными знакомыми смогут, как говорится, вычислить по ip и начистить ботинки сами знаете что сделать. Ещё один минус — наш айпи должен быть постоянным, чтобы иметь возможность подключаться к жертве повторно.

Как же быть? Как сохранить анонимность и иметь возможность входа из любого места?

Начальные условия

Весь процесс я буду демонстрировать в следующих условиях:

  1. В качестве атакующей стороны будет выступать виртуальная машина Kali Linux 2 с IP адресом 192.168.1.50
  2. Жертвой будет виртуалка с Windows 7. IP — 192.168.1.146
  3. Промежуточным, читай — прокси, сервером будет Fedora с IP 192.168.1.10

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

Для начала запустим handler — программу, которая будет ждать соединения от жертвы на 4444 порту, чтобы при подключении отправить ей meterpreter. Для этого в командной строке Kali запустим msfconsole и в ней выполним следующие команды:

Сообщаем, что на жертве у нас будет запущена полезная нагрузка meterpreter с обратным соединением:

Указываем параметры нагрузки — будем слушать на порту 4444 нашего ip адреса(почему не 127.0.0.1 расскажу позже).

Запускаем и оставляем в таком виде до лучших времен.

Создание exe с полезной нагрузкой

Затем сгенерируем программулину, которая и будет подключаться через прокси к нам. Открываем новую вкладку терминала и набираем следующее:

Читайте также:  Переключение языка пробелом андроид

Кратко расскажу об аргументах.

Первые три очевидны — архитектура процессора, платформа и формат выходного файла. Аргумент -p сразу понятен тем, кто немного знаком с Metasploit: мы выбирали в качестве полезной нагрузки оболочку meterpreter, которая подключится на порт LPORT хоста LHOST, принадлежащие в данном случае нашему прокси-серверу.

Аваст не повелся и гордо сообщил об угрозе, поэтому и был убит на месте, дабы не мешать испытаниям. Файл на месте, теперь займемся подготовкой нашего сервера.

Настройка сервера

Мы будем использовать статический проброс портов.

В созданном нами exe порт был 22222, а на Kali мы слушаем порт 4444. Значит-с, чтобы все запросы идущие на серверный порт 22222 транслировались на наш порт 4444, в Kali нужно написать такую команду:

Чтобы разобраться, почему это не сработает, поймем чего мы этой командой хотели добиться. Мне нравится, когда на экране есть информация о том, что происходит, поэтому я добавил -v, но доступ к оболочке нам не нужен, поэтому -N(ещё в этом случае нас не будет видно в who на сервере). Магический аргумент -R 127.0.0.1:22222:127.0.0.1:4444 описывает правила перенаправления пакетов: с адреса на сервере 127.0.0.1:22222 на наш локальный адрес 127.0.0.1:4444. Первый 127.0.0.1 подразумевается, поэтому мы его опускаем.

Нюанс в том, что по умолчанию проброшенный таким образом порт на сервере будет доступен только с серверного же localhost’а и при попытке подключиться извне ничего не произойдет и никаких ошибок не будет.

Поправим ситуацию — открываем на прокси-сервере конфиг ssh демона — /etc/ssh/sshd_config, ищем строку GatewayPorts, раскомментируем её и устанавливаем в yes. Переподгружаем конфиг через service sshd reload и теперь со спокойной душей запускаем команду.

А теперь интересный момент. Когда я только это всё изучал, то подобными манипуляциями у меня получилось добиться подключения жертвы к моему хэндлеру и успешно открыть командную строку метерпритера, но при вводе любой команды(даже help) он с дикими ошибками закрывал соединение. Сейчас же, когда я пишу статью, всё работает. Даже если у вас всё заработало и так, всё равно рекомендую к прочтению следующий абзац.

После долгих часов гугления был найден комментарий разработчика метерпритера о том, что не стоит указывать LHOST(то есть адрес хоста, на котором слушать) 127.0.0.1. Нужно писать либо что-то типа 127.0.0.2, либо 0.0.0.0. Но если мы выбираем первый вариант, то и прокидывать порты нужно на 127.0.0.2. Но и с таким вариантом у меня выпадали ошибки. После ещё более долгих часов гугления был найден комментарий другого разработчика, который сказал чуть больше: нельзя вешать не только на 127.0.0.1, но и в принципе на интерфейс loopback, потому что он зарезервирован и работать будет не стабильно, и порекомендовал вешать хэндлер на другой сетевой интерфейс, например eth0. Так что прокидывать мы будем на него же. Команда приобретает следующий вид:

Уже лучше, но через proxychains её всё равно не получится запустить. Чтобы поправить это, пробросим через проксичейнс ssh сервера себе, и через него уже пробросим порт метерпритера.

Говорят, proxychains, входящий в стандартную сборку Kali 2 уже староват и давно заброшен. У меня он периодически падал с ошибкой segfault. Поэтому я поставил себе proxychains4(proxychains-ng) отсюда, а старый снёс к чертям и остался доволен, чего и вам советую.

Заметьте, что мы подключаемся именно на 127.0.0.1:42022, а не на 192.168.1.10:22. Всё готово! Выпускайте Кракена Запускаем HarmlessFile.exe у жертвы и наслаждаемся результатом.

Используем левый сервер в качестве прокси, к которому будет цепляться meterpreter жертвы с помощью reverse tcp.

    Запускаем handler в metasploit’e с метерпритером в качестве нагрузки и указываем адрес левого сервера:

В настройках sshd левого сервера указываем GatewayPorts yes. Через proxychains4, настроенный на тор, сначала пробрасываем себе ssh:

Затем пробрасываем себе порт, на который будет цепляться meterpreter:

Генерируем exe с meterpreter/reverse_tcp в качестве нагрузки:

  • Доставляем payload.exe жертве, запускаем, радуемся.
  • Оговорюсь повторно, что я описал метод, который сработал для меня и выполнил нужную мне задачу — анонимность и мобильной. Может быть есть и другие, более простые пути добиться того же самого, но мне не удалось их раскопать.

    Моя первая статья на ваш суд — конструктивная критика приветствуется, об опечатках прошу сообщать в личку.

    Читайте также:  Панель многозадачности для андроид

    Полезные ссылки:

    Памятка пользователям ssh — замечательное описание возможностей SSH, в частности о SSH-туннелях.
    Meterpreter базовые команды — описание базовых команд Meterpreter’a.

    И ещё 2 слегка устаревшие статьи, но в них есть описание более интересных фич Meterpreter.

    Источник

    О создании пэйлоадов для разных платформ с помощью msfvenom

    «Голова — лучший антивирус», — эта идея никогда не потеряет актуальности. Для того, чтобы эффективно бороться с компьютерными угрозами, надо знать своих врагов. Среди таких врагов — программы, которые позволяют незаметно подключаться к компьютеру и выполнять с ним некие действия, проще говоря, софт для взлома систем. Полагаем, знание того, как создают подобный софт, хотя бы на базовом уровне, понимание того, как он работает, полезно любому, кого волнуют вопросы компьютерной безопасности. Кроме того, такой софт можно использовать для проверки защищённости собственных систем.

    Предварительные требования

    Для того, чтобы попробовать то, о чём пойдёт речь, на практике, вам понадобится компьютер с установленной на нём Kali Linux, компьютеры под управлением Windows и Linux, Android-смартфон. В процессе работы, при составлении команд, мы будем пользоваться следующими ключами:

    • Lhost — IP-адрес компьютера, на котором установлена Kali, то есть — нашей рабочей машины.
    • Lport — порт, который назначен серверу — программе, которая «слушает» сеть и ожидает подключения от клиента.
    • P — сокращение от «payload», пэйлоад для выбранной платформы
    • F — ключ, задающий тип файла, например, exe для Windows, apk для Android, и так далее.

    В терминале Kali введём команду msfvenom . Результаты её работы показаны ниже. А именно, будет выведен список всех доступных опций для создания пэйлоадов. Тут мы рассмотрим лишь некоторые из них.

    Организация Bind Shell-подключения

    Bind shell — это схема взаимодействия с удалённой консолью, при которой на целевом компьютере запускается сервис, к которому может подключиться атакующий. Фактически, речь идёт о прямом подключении к атакуемому компьютеру. Для того, чтобы создать соответствующий пэйлоад для Windows, нужно выполнить следующую команду в терминале:

    В результате будет создан exe-файл, который будет сохранён по адресу, указанному при выполнении команды, а именно — это /root/Desktop/bind.exe . Полученный файл нужно каким-то образом доставить на компьютер жертвы и выполнить его. Например — воспользоваться методами социальной инженерии или выложить его на сервис обмена файлами.

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

    После выполнения файла в нашем распоряжении окажется meterpreter-подключение к целевому компьютеру:

    Использованная здесь опция bind_tcp полезна в тех случаях, когда мы отключаемся от компьютера жертвы, но он при этом ещё работает. Мы можем выполнить ту же команду и подключиться снова, при этом не нужно, чтобы эксплойт снова запускали на удалённом компьютере.

    Организация Reverse Shell-подключения

    Reverse Shell (или Reverse TCP, или connect-back, или обратное подключение) — это схема взаимодействия с удалённым компьютером, обратная вышеописанной. При её использовании нужно, чтобы атакующий сначала запустил на своей машине сервер, при этом целевая машина будет играть роль клиента, который подключается к этому серверу, после чего атакующий получает доступ к оболочке целевого компьютера.

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

    В данном случае мы включаем в команду некоторые новые параметры, такие, как lhost (локальный хост), lport (локальный порт) для того, чтобы принять обратное соединение от компьютера жертвы.

    После того, как пэйлоад создан, отправлен на атакуемый компьютер и выполнен там, мы переходим ко второму шагу атаки. Запустим msfconsole и введём следующие команды для того, чтобы организовать подключение удалённого компьютера к нашей машине.

    На нижеприведённом рисунке видно, что после того, как жертва запустит пэйлоад, выполняется обратное подключение к нашему компьютеру и у нас оказывается сессия meterpreter .

    Организация Reverse HTTPS-подключения

    Обратите внимание на то, что обе вышеописанные атаки осуществимы в том случаем, если на машине жертвы имеются подходящие работающие порты. Сейчас мы попытаемся найти выход из ситуации, когда на интересующем нас компьютере порты заблокированы. В подобном случае можно сориентироваться в ситуации и создать пэйлоад, например, воспользовавшись портом 443 для HTTPS. Для этого нужно ввести в терминале Kali следующую команду:

    После создания пэйлоада и отправки его жертве, которая, как ожидается, рано или поздно запустит соответствующий файл, мы переходим к следующему шагу. Запускаем msfconsole и вводим следующие команды для организации подключения:

    Читайте также:  Как правильно заряжать батарею андроид

    Как видно на следующем рисунке, после того, как пэйлоад будет запущен на целевом компьютере, происходит обратное подключение к нашему компьютеру и мы можем пользоваться возможностями сессии meterpreter.

    Скрытое Bind Shell-подключение

    Исследуем ещё одну возможность msfvenom и попытаемся с её помощью обрести контроль над удалённым компьютером. В этот раз мы хотим заполучить доступ к командной оболочке, а не к сессии meterpreter.

    Пэйлоад, который мы создадим нижеприведённой командой, после выполнения, прячется в системе, его нельзя обнаружить сканером портов.

    После того, как файл готов и отправлен жертве, мы можем перейти к следующему шагу. А именно, воспользуемся Netcat, введя в терминале Kali следующую команду:

    Reverse Shell-подключение с помощью Netcat

    Теперь рассмотрим ещё один подход к использованию пэйлоадов типа shell_reverse_tcp , которые позволяют получить доступ к оболочке командной строки атакуемого компьютера. Введём в терминале Kali следующую команду:

    После создания файла и отправки его на атакуемый компьютер, создадим прослушиватель порта с использованием netcat :

    При условии, что наш пэйлоад был успешно выполнен на удалённом компьютере, ниже показано то, как выглядит подключение к нему.

    Пэйлоады-макросы на VBA

    Создадим пэйлоад в виде VBA-скрипта, который будем использовать в качестве макроса MS Excel для атаки на целевую машину. Для того, чтобы это сделать, выполним следующую команду в терминале Kali:

    После выполнения команды, нужно скопировать то, что выделено на рисунке выше, от #if vba 7 до End if . Далее, откроем файл MS Excel, нажмём Alt+F11 для вызова окна управления макросами.

    Тут введём имя макроса и нажмём на кнопку Create . Макрос мы хотим сохранить в открытой книге, поэтому в соответствующем выпадающем списке надо выбрать This Workbook .

    После этого надо вставить в редакторе VBA ранее скопированный код пэйлоада, закрыть редактор и включить макросы.

    Теперь можно заполнить Excel-файл какими-нибудь правдоподобно выглядящими данными, в нашем случае — это просто слово Test , сохранить и отправить жертве. Для организации подключения к удалённому компьютеру нужно открыть терминал Kali, выполнить команду msfconsole , после чего ввести следующие команды:

    Когда Excel-файл будет открыт на интересующем нас компьютере, жертве будет предложено включить макросы. После их включения выполнится VBA-скрипт, который создаст обратное подключение к удалённому компьютеру. Выглядеть это будет так, как показано ниже.

    VNC-пэйлоад

    Хотя и неприлично, без ведома человека, наблюдать за тем, что он делает за компьютером, тот пэйлоад, который мы создадим сейчас, занимается именно этим. Откроем терминал Kali и введём следующую команду:

    После создания пэйлоада мы, как обычно, отправляем его жертве, после чего начинаем готовиться к подключению. Для этого вызываем в терминале команду msfconsole и делаем следующее:

    Тут можно видеть, что выполнена VNC-инъекция, что установлено удалённое соединение. Так же на компьютере под управлением Kali откроется окно Remote Desktop.

    Пэйлоад для Android

    Взлом мобильных устройств всегда привлекал к себе немалое внимание, поэтому рассмотрим методику создания пэйлоадов для платформы Android. Откроем терминал Kali и введём следующую команду:

    После подготовки apk-файла его нужно передать на интересующее нас мобильное устройство. Затем нужно подготовиться к подключению на Kali:

    После того, как пэйлоад будет запущен, в нашем распоряжении будет сессия meterpreter и мы сможем взаимодействовать со взломанным телефоном.

    Пэйлоад для Linux

    Откроем терминал Kali и введём следующую команду:

    После создания файла его нужно отправить на компьютер жертвы и подготовиться к подключению:

    После выполнения пэйлоада будет создано обратное TCP-подключение к нашему компьютеру, которое предоставит в наше распоряжение сессию meterpreter.

    Пэйлоад для PowerShell

    Для того, чтобы создать пэйлоад для PowerShell, откроем терминал Kali и введём следующую команду:

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

    После запуска пэйлоад создаст обратное подключение к оболочке. Выглядит это так, как показано ниже.

    Итоги

    Как видите, с использованием msfvenom очень просто создавать программы, предназначенные для удалённого подключения к самым разным системам. То, что это доступно даже пользователям с минимальной подготовкой, придаёт особую актуальность правилу, которое знают все, но далеко не все соблюдают: «Не открывайте файлы, в происхождении которых сомневаетесь».

    Уважаемые читатели! Известны ли вам случаи взлома систем с использованием пэйлоадов, похожих на те, о которых мы сегодня говорили?

    Источник

    Оцените статью