Комментарии 13
В моей практике имеется курьезный случай, когда сотрудники информационной безопасности "продавили" принудительную установку PS последней версии на все серверы (2008 R2) и рабочие станции (7), мотивируя это в том числе и наличием "расширенного аудита командной строки" powershell. В то время мои администраторы легко обходились без PS, но инфобезы не могли воплотить в жизнь результаты очередного своего курса повышения квалификации. Вопрос — зачем в инфраструктуре разворачивать возможный backdoor — остался без вразумительного ответа. Вот такой вот насильственный прогресс.
Версия PS из коробки (2, если не ошибаюсь) в WS2008R2/7 как раз и не позволяла делать все эти веселые трюки, описанные в статье. Поправьте меня, если ошибаюсь.
Я конечно не спец, но вообще так можно подумать, что это повершелл виноват в том, что юзер может что-то случайно скачать и запустить из интернета. И вообще то, что не остаются на диске файлы начального загрузчика, ничего принципиально не меняет. Если уж юзер каким-то образом был спровоцирован что-то скачать и запустить, то запрет повершелла или других скриптовых языков никак не помешает зловреду поселиться в системе и собирать доступные данные из AD/LDAP.
Вот отсутствие админских прав у юзера сильно мешает дальнейшей атаке на сеть. Остается ждать админских прав. А настоящее счастье будет если после получения админских прав на компе, залогинится чел с правами на сервера или даже на домен. Вот ограничение юзерских прав, разделение юзерских и админских аккаунтов, чтобы использовать юзерские аккаунты для работы на юзерских компах, а админских аккаунтов для работы на серверах и ни в коем случае на юзерском компе, может дать больший эффект для защиты конторы.
К сожалению, для Applocker требуется Windows Enterprise, а SRP очень сложно правильно настроить без ложных срабатываний. Ситуация усугубляется невозможностью рекурсивных правил по маске с работой обычных правил по пути к папке.
New-ObjectSystem.Net.WebClient
Пробел нужен. :)get-ChildItem | ? {$_.length –gt 10000000 | % {write-host$_.length $_.name -separator "`t`t"}
Не хватает пробела и "}" :-)
Get-ChildItem -Path | Where-Object -FilterScript {$_.Length –gt 10000000} | ForEach-Object -Process {Write-Host $_.Length $_.Name -Separator "`t`t"}
Также удобнее. :)
PowerShell в роли инструмента для пентеста: скрипты и примеры от Varonis