Идём по киберследу: Анализ защищенности Active Directory c помощью утилиты BloodHound — страница 30 из 46

. Назовем ее
WriteScriptPath
. Заходим в эту директорию и переименовываем файл
AdminTo.jsx
в
WriteScriptPath.jsx
.

Откроем файл

WriteScriptPath.jsx
и выполним изменения:

import React from 'react';

import PropTypes from 'prop-types';

import {Tabs, Tab} from 'react-bootstrap';

import General from './General';

import Abuse from './Abuse';

import Opsec from './Opsec';

import References from './References';

const 
WriteScriptPath
 = ({sourceName, sourceType, targetName, targetType}) => {

return (

sourceName={sourceName}

sourceType={sourceType}

targetName={targetName}

/>

);

};

WriteScriptPath
.propTypes = {

sourceName: PropTypes.string,

sourceType: PropTypes.string,

targetName: PropTypes.string,

targetType: PropTypes.string,

};

export default 
WriteScriptPath
;

Открываем файл

General.jsx
и изменим текст, не трогая информацию в фигурных скобках.

import React from 'react';

import PropTypes from 'prop-types';

import {groupSpecialFormat} from '../Formatter';

const General = ({sourceName, sourceType, targetName}) => {

return (

<>

{sourceName} имеет привилегии Write ScriptPath

на {targetName}.

В среде Active Directory профиль пользователя
можно настроить
таким образом, что при входе пользователя на машину автоматически
будет выполняться скрипт

или

исполняемый файл. Путь к скрипту или исполняемому файлу
будет храниться в атрибуте ScriptPath пользователя.

Права Write позволяют изменять этот атрибут.

);

};

General.propTypes = {

sourceName: PropTypes.string,

sourceType: PropTypes.string,

targetName: PropTypes.string,

};

export default General;

Сохраняем файл, переходим к следующему файлу

References.jsx
и заменяем ссылки на соответствующие теме:

import React from 'react';

const References = () => {

return (

<>

https://github.com/PowerShellMafia/PowerSploit/blob/ dev/Recon/PowerView.ps1


https://www.thehacker.recipes/ad/movement/dacl/logon-
script

);

};

export default References;

Сохраняем, переходим к следующему файлу

Abuse.jsx
и меняем код текста:

const Abuse = () => {

return (

<>

Права Write позволяют изменять атрибут ScriptPath.

Изменить значение атрибута ScriptPath
можно с помощью PowerView:

{ "Set-DomainObject -Identity victim -Set @ {'scriptpath'='//share\script.bat'}"}

Теперь необходимо дождаться, когда пользователь локально зайдет на машину.

После выполнения атаки следует удалить установленный
путь с помощью PowerView:

{ "Set-DomainObject -Identity vicitm -Clear scriptpath"}

);

};

Сохраняем, переходим к следующему файлу

Opesec.jsx
и меняем код текста:

import React from 'react';

const Opsec = () => {

return (

<>

Средства
мониторинга
могут
быть настроены на события, связанные с изменением атрибута ScriptPath.

);

};

export default Opsec;

Сохраняем последний файл и собираем приложение:

npm run build: win32

Запускаем обновленную версию BloodHound, выполняем запрос поиска от

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


Рис. 4.50. Общее описание недостатка


Рис. 4.51. Описание эксплуатации


Общие файловые ресурсы

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

Создание нового узла с новой меткой

Общие файловые ресурсы не имеют собственного guid, поэтому нам потребуется сгенерировать их самостоятельно с помощью функции

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

MERGE (:Share {name: "Share", path: "\\\\comp1\\test", objectid: toUpper(randomUUID())})

Внимание

Для корректного отображения пути необходимо экранировать слеш.

Проверим, что создался новый узел с указанными параметрами: