Как обходить программные обеспечения?

Как обходить программные обеспечения?

Dark Net
Зарабатываем от 2000₽ за 5 минут + бонус 10к — ВТБ ИНВЕСТИЦИИ
ФАРМИМ БАБЛО - Канал о проверенных способах заработка в интернете

ПОЛЕТЕЛИ

Данная статья написана только для образовательных целей. Мы никого ни к чему не призываем, только в целях ознакомления! Автор не несёт ответственности за ваши действия

Жизненно важно выполнить тщательный анализ конфигурации хоста предоставленной рабочей станции. Однако это не тема данной статьи. Здесь мы сосредоточимся на очень конкретной области, а именно на доступе к инструментам командной строки. Таким образом, информация в этой статье применима также к различным решениям VDI (Virtual Desktop Infrastructure), таким как Citrix, VMWare и другим.

В большинстве зрелых сред и в большинстве этих тестов доступ к инструментам командной строки ограничен. Сотрудники обычно не могут запускать командную строку или PowerShell. Обычно это ограничивается с помощью AppLocker, GPO и / или SRP.

Cmd заблокирован администратором

Когда мы пытаемся запустить командную строку (cmd.exe), мы обычно видим следующее сообщение об ошибке:

The command prompt has been disabled by your administrator.

Press any key to continue . . .

Contact your system administrator for more info.


Можем ли мы как-то обойти эти ограничения и создать командную строку? В этой статье мы рассмотрим более 19 методов, как это сделать. Пока мы не нашли ни одного случая, когда бы мы не смогли добиться успеха с этими методами.

Произвольное выполнение команды по сравнению с созданием оболочки

Существует различие между выполнением произвольной команды (ACE) и созданием оболочки.Хотя ACE на самом деле не является предметом этой статьи, обычно необходимо выполнить ACE, чтобы обойти ограничения и создать интерактивное окно оболочки.

Давайте кратко упомянем несколько ресурсов и методов того, как мы обычно выполняем произвольные команды в системах Windows, когда все в жестких условиях.

PenTestРуководство для партнеров

В 2014 году Майкл Ярдли написал одно из лучших исчерпывающих руководств о том, как выйти из Citrix и других ограниченных рабочих сред. Он по-прежнему очень полезен, поскольку содержит основные концепции и методологии обхода различных ограничений. Вы можете найти это здесь:

Руководство содержит множество советов и приемов, как выполнять ACE, и даже несколько способов, как создать командную строку.

LOLBAS

Проект LOLBAS — это проект сообщества, каталогизирующий различные встроенные в Windows утилиты с «неожиданными» функциями, которые можно использовать по скрытым мотивам. Используя эти утилиты, мы можем загружать файлы, копировать вещи, выполнять ACE или полностью обходить некоторые ограничения. Проект находится здесь:

Но некоторые из самых простых, простых и эффективных способов выполнения ACE — это использование меню «Пуск» (поиск Кортаны), ярлыков или встроенных функций сценариев Windows. Эти вещи работают практически везде.

Кортана / меню Пуск

В меню Cortana / Start мы можем вызывать практически любую команду, которая нам нравится, включая сложные команды с параметрами и операторами перенаправления (>, >>). Совместите это с техникой LOLBAS, и вы практически ничего не сможете сделать.

Иногда мы также обнаруживаем, что предоставление полного пути к программам фактически преодолевает некоторые ограничения (см. Метод № 1 ниже).

Ярлыки

Используя ярлыки, мы также можем выполнять практически все, что угодно, включая сложные команды с параметрами. Однако обратите внимание, что операторы перенаправления не работают непосредственно в ярлыках, а также существует ограничение на длину команды (максимум 259 символов).

Пакетный (.bat)

Иногда создание командной строки ограничено, в то время как создание командного файла (.bat) и двойной щелчок по нему с радостью выполнят все команды в нем.

Visual Basic (.vbs)

Visual Basic также удобен для выполнения ACE, особенно в очень защищенных средах. Мы можем просто поместить произвольную команду в файл .vbs следующим образом:

cmd = "<COMMAND>"

out = "c:\users\public\output.txt"

Set a = CreateObject("Wscript.Shell").Exec(cmd)

Set o = CreateObject("Scripting.FileSystemObject")

Set oo = o.CreateTextFile(out,True)

oo.WriteLine(a.StdOut.ReadAll())

oo.WriteLine(a.StdErr.ReadAll())

oo.Close()

А затем выполните его с помощью cscript.exe или wscript.exe, например, через поиск Кортаны / меню Пуск или ярлык:

cscript c:\path\to\our.vbs 

wscript c:\path\to\our.vbs


Затем результат будет записан в файл c: \ users \ public \ output.txt.

Существует практически неограниченное количество способов выполнения ACE в системе Windows. Давайте продолжим нашу тему.

Размещение файлов по доступным для записи путям

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

Что нас больше всего интересует, так это места, откуда мы можем писать и выполнять. Эти местоположения могут включать такие местоположения, как домашние папки, папки профиля, временные папки и многие другие. См. Следующий список для иллюстрации:

Обычно мы добиваемся большого успеха, используя эти места:

  • C:\Users\Public
  • C:\Windows\Tasks
  • C:\Windows\Tracing
  • C:\Windows\System32\Spool\Drivers\Color

Помните об этом, используя описанные ниже методы и пытаясь разместить предметы в этих местах. Обратите внимание, что вы также можете использовать следующий сценарий PowerShell для поиска таких мест:

Обход заблокированной командной строки

Метод 1. Используйте полные пути

Иногда, указав полный путь к cmd.exe в меню поиска / запуска Cortana, можно обойти ограничения и запустить его:


Вы можете сделать то же самое с powershell.exe. Чтобы найти все эти места, вы можете просто выполнить поиск в каталоге C: \ Windows с помощью файлового проводника или использовать следующие команды:

cd %windir%

dir /s /b cmd.exe 

dir /s /b powershell.exe

Метод 2: импортировать объект в WordPad

Другой метод, который иногда работает как обходной путь, — это запустить редактор WordPad и затем вставить cmd.exe как объект вроде этого:




Метод 3: Cmd.bat

Это очень старый метод, вероятно, появившийся на заре Интернета.

Создайте следующий командный файл, назовите его как угодно, например a.bat и просто запустите его:

@echo off 

:a 

set /p comm=cmd~

%comm%

goto a

Скорее всего, вы получите командную строку. Если он все еще заблокирован, попробуйте переместить его в другое место, например, указанное выше.

cmd.bat prompt 19 способов обойти программные ограничения


Метод 4: ReactOS Cmd

Link: https://blog.didierstevens.com/2010/02/04/cmd-dll/

Это лакомство было создано Дидье Стивенсом (@DidierStevens) в 2010 году, и оно используется до сих пор. Это в основном переработанная командная строка Microsoft (cmd.exe), созданная проектом ReactOS, и практически на 100% совместима с ней. Дидье взял ее и преобразовал в DLL, так что это, по сути, командная строка, реализованная в виде библиотеки. Но Дидье на этом не остановился …

Последняя версия (https://didierstevens.com/files/software/cmd-dll_v0_0_4.zip) содержит следующие 3 формы:

Версия EXE (cmd.exe)

Вы просто дважды щелкаете исполняемый файл и запускаете его. Скорее всего, он не будет заблокирован антивирусным ПО, и появится окно командной строки ReactOS. Затем вы можете ввести любую команду, как в командной строке cmd.exe.

Версия DLL (cmd.dll)

Версия DLL, которую необходимо загрузить с помощью rundll32.exe, выглядит следующим образом:

rundll32.exe cmd.dll,main

Например, вы можете запустить его из диалогового окна «Выполнить» (Win + R), из меню поиска / «Пуск» Кортаны или с ярлыка. Окно командной строки ReactOS должно появиться следующим образом:


Версия VBA (cmd.dll.bin.vba)

Здесь вам в основном нужно создать документ Microsoft Office и добавить в него макрос. Вы также можете сделать это, например, из Outlook. После того, как вы открыли редактор макросов (Visual Basic IDE), просто перейдите:

  • File -> Import File -> c:\path\to\cmd.dll.bin.vba
  • Run (F5)

И должно появиться окно командной строки ReactOS.

Метод 5: FTP-клиент

На самом деле это не обход заблокированной командной строки, но будет справедливо включить метод здесь, потому что встроенный FTP-клиент (ftp.exe) позволяет выполнять команды в системе в интерактивном окне, как и fприглашение cmd.exe. . Клиент tp поддерживает использование bang (!) для запуска локальных команд.

Просто запустите ftp-клиент, например через меню Пуск:

  • Start -> ftp

Иногда это может быть заблокировано, но когда вы укажете полный путь к нему, это сработает:

  • Start -> c:\windows\system32\ftp.exe


Метод 6: обход контрольной суммы

Это один из наших любимых методов. Он работает, когда cmd.exe занесен в черный список на основе его контрольной суммы. Чтобы обойти это, просто сделайте копию cmd.exe и добавьте байт в ее конец (оверлей). Это изменит его контрольную сумму, но это не повлияет на функциональность. В основном мы должны выполнить следующие команды:

copy c:/windows/system32/cmd.exe c:\users\public\a.exe 

echo >>c:\users\public\a.exe 

c:\users\public\a.exe

Скорее всего, появится наша измененная командная строка. Пример создания его через ftp-клиент:


Тот же метод можно применить для создания интерпретатора powershell.exe.

Метод 7: консоль WMI

На самом деле это не обход заблокированной командной строки, но, опять же, будет справедливо включить его сюда, потому что консоль WMI (wmic.exe) открывает интерактивное окно, которое может быть даже более мощным, чем командная строка cmd.exe. Вот несколько полезных ссылок с примерами его использования:

Просто создайте консоль, например. через меню Пуск следующим образом:

  • Start -> wmic

Если он заблокирован, попробуйте использовать полный путь следующим образом:

  • Start -> C:\windows\syswow64\wbem\wmic.exe

Обход заблокированного PowerShell

В этом разделе перечислены различные известные методы обхода заблокированной оболочки PowerShell и запуска интерпретатора PowerShell и / или выполнения произвольных команд PowerShell. Большинство этих методов основано на настраиваемых инструментах, которые используют библиотеки PowerShell, имеющиеся в системах Windows.

Метод 8: PowerShdll

Link: https://github.com/p3nt4/PowerShdll

Этот инструмент был создан @ xP3nt4 в 2017 году. Это настраиваемый интерпретатор, подобный PowerShell, в форме DLL. Его можно запустить с rundll32.exe, installutil.exe, regsvcs.exe, regasm.exe, regsvr32.exe или как отдельный исполняемый файл.

Просто возьмите последнюю версию, перенесите ее на целевую машину и создайте ее, используя любую из этих команд:

# On x86/x64 platforms: 

rundll32.exe PowerShdll,main 

regsvr32.exe /s PowerShdll.dll


regsvr32.exe /s /u PowerShdll.dll 

# On x64 platforms: C:\Windows\Microsoft.NET\Framework64\v4.0.3031964\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regsvcs.exe PowerShdll.dll C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm.exe /U PowerShdll.dll 

# On x86 platforms: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U PowerShdll.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\regsvcs.exe PowerShdll.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe /U PowerShdll.dll

У вас должно быть создано окно интерпретатора PowerShdll, готовое для ваших команд, например:

PowerShdll prompt


Обратите внимание, что существуют ограничения на длину команд (максимум 255 символов для команд), что может быть проблемой. Но вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell, чтобы обойти ограничения.

Метод 9: MSBuildShell

Link: https://github.com/Cn33liz/MSBuildShell

Этот проект из 2016 года был выполнен @ Cn33liz. Это еще один настраиваемый интерпретатор,подобный PowerShell, но он работает в Microsoft Build Engine (MSBuild.exe). Утилита MSBuild.exeявляется частью платформы .NET и присутствует практически в каждой установке Windows.

Просто возьмите файл MSBuildShell.csproj из репозитория, перенесите его на целевой компьютер и запустите следующим образом:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe MSBuildShell.csproj # Or C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe MSBuildShell.csproj

У вас должно появиться окно интерпретатора MSBuildShell, готовое для ваших команд, например:

MSBuildShell prompt


Теперь вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell.

Метод 10: CScriptShell

Linkhttps://github.com/carnal0wnage/CScriptShell

Этот основан на MSBuildShell. Это было сделано в 2017 году также @Cn33liz путем улучшения метода обхода, опубликованного @SubTee. По сути, это тот же код, что и MSBuildShell, но на этот раз в виде DLL. Сначала вам нужно собрать DLL на своем компьютере с помощью csc.exe (компилятор C#) следующим образом:

# Create Your Strong Name Key (using PowerShell): 

$key ='BwIAAAAkAABSU0EyAAQAAAEAAQDpppNj5RmGMzd+NkKLJYCF4hDgM4K0KpgdHXfiNKXleoVrvpQz75gSNQJyN/pROTNBhEA0jp5IqrEqdJQsPzXYO

3l5JGDtpu3AD7dxge1oUWpugdk5ZHIMOsB1Il/FL+96m39ZZL7o5LHCdHdctEeTG+S15IDyM7L9VoAi7cXsueP7kvvTJETonQoz4JRdH889XnTDWeb

wj3ViH6zq+Xv5/l0iJh65v6VAzYLfCKEkFzev36w8RJYpwMMwwHDlCMvDYwdY2MFFp/ZQHg7If0BuDLM7D5ozGJnEVUTwwM+gZQ1LRn5EE6WrffQ/G

y2XtzvH4wRlYX939aOm8XVOPm3q0yVe40xxQaR3NR5v6G59dcZWU8baoZFes9mXg3ydQxkPgxbmjJ+Vfw0IVdj4VqrJ0O2IB+eSf9N305Hf32sqooO

uytsKIS/DBJ9T5njUV3rQZzguyKGdFZfE4flPBkuRWHXMM63kyKQNLalf3XRTKP3+4Aw+YS9Q+bH53Y4uIIVkR3uN8beKlXBCg1Ja+3qCyMrhSsuhE

evrsQTVypHWouG49esZSyYQoyXXxGKwpEuDFmdFmSXEnru54lb/PuOHVTlQHR7hd6TAe0tFOaJWDosNN1QPLTicIvmfeU5KvNsrBMmdnf7NF3yzNAN

5jf4DEYg1UK6x0s+IP2JCumjjTx4GIm3h/eO+AqlIy8xbUeZFyln3P5XSQ1ErRRiVGGp1TLa5vNPf8Y4LcV1LSSKnNspw7H3Fw0UyxDs5t+tNQ1I=' 

$Content = [System.Convert]::FromBase64String($key)

 

Set-Content key.snk -Value $Content -Encoding Byte

# Compile DLL 

C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe /r:System.EnterpriseServices.dll,System.Management.Automation.dll /target:library /out:CScriptShell.dll 

/keyfile:key.snk CScriptShell.cs

Затем вы можете взять созданный файл CScriptShell.dll и файл CScriptShell.js из репозитория и перенести их на целевую машину. Затем вы запускаете интерпретатор, запуская его через cscript.exeследующим образом:

cscript.exe CScriptShell.js

CScriptShell prompt


Теперь вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell.

Способ 11: p0wnedShell

Link: https://github.com/Cn33liz/p0wnedShell

Это еще один инструмент, созданный @Cn33liz, первая фиксация которого была сделана в 2015 году. Это набор инструментов постэксплуатации PowerShell Runspace. По сути, это еще один интерпретатор, похожий на PowerShell, но он содержит множество полезных модулей и командлетов, встроенных внутрь.

Чтобы использовать его, вы должны собрать его с помощью Microsoft Visual Studio. После сборки перенесите созданный двоичный файл p0wnedShell.exe на цель и запустите его. Вы должны увидеть что-то вроде этого:

p0wnedShell prompt


Выберите вариант 16 для интерактивного интерпретатора PowerShell. Теперь вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell. Обратите внимание, что интерпретатор поставляется с несколькими модулями постэксплуатации, уже загруженными в пространство выполнения.

Способ 12: PSShell

Link: https://github.com/fdiskyou/PSShell

Этот проект был выполнен @fdiskyou в 2016 году. Это интерактивный интерпретатор, похожий на PowerShell, и он существует в двух версиях (выпусках):

Версия 2.0: версия DLL

Этот вы должны скомпилировать с помощью Microsoft Visual Studio. После завершения компиляции перенесите созданный двоичный файл PSShell.dll на целевую машину и запустите его с помощью любой из следующих команд:

rundll32 PSShell.dll,EntryPoint

# Or 

regsvr32 PSShell.dll 

# Or regsvr32 /u PSShell.dll

Выпуск 1.0: версия EXE

Вы можете скомпилировать его с помощью встроенного компилятора C# csc.exe (не требуется Visual Studio). Обязательно загрузите версию 1.0, а затем скомпилируйте ее с помощью csc.exe следующим образом:

# Go to the latest .NET version folder, e.g.: 

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

# Compile: 

csc.exe /unsafe /reference:"C:\path\to\System.Management.Automation.dll"/reference:System.IO.Compression.dll 

/out:C:\users\username\PSShell.exe /platform:x64 "C:\path\to\PSShell\Program.cs"

Затем просто перенесите созданный двоичный файл PSShell.exe на целевую машину и запустите его. Окно интерпретатора PSShell должно выглядеть так:

PSShell prompt


Теперь вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell.

Способ 13: PowerOPS

Link: https://github.com/fdiskyou/PowerOPS

Это тоже от @fdiskyou и тоже из 2016 года. Это еще один интерактивный интерпретатор, похожий на PowerShell. Он называется PowerShell Runspace Portable Post Exploitation Tool. Он поставляется с рядом полезных модулей и функций, предварительно загруженных в среду выполнения. Сюда входят такие модули, как PowerSploit, Nishang, Empire и другие.

Процесс сборки прост и понятен — вы можете скомпилировать его с помощью csc.exe (не требуется Visual Studio). Просто клонируйте репозиторий и выполните:

# Go to the latest .NET version folder, e.g.: 

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

# Compile: 

csc.exe /unsafe /reference:"C:\path\to\System.Management.Automation.dll"/reference:System.IO.Compression.dll 

/out:C:\users\username\PowerOPS.exe /platform:x64 "C:\path\to\PowerOPS\PowerOPS\*.cs"

Затем просто перенесите созданный двоичный файл PowerOPS.exe на целевую машину и запустите его. Окно интерпретатора PowerOPS должно выглядеть следующим образом:

PowerOPS prompt


Теперь вы можете импортировать дополнительные модули и командлеты с помощью команды Import-Module или запускать любые другие команды PowerShell. Вы также можете использовать предварительно загруженные модули (PowerSploit, Nishang, Empire и т. д.).

Наши статьи

Получаем акцию до 30.000₽ + Абуз — БКС (Тинькофф 2.0)
Получаем 20.000 рублей — Альфа-Инвестиции
Получаем 50$ от биржи Okcoin
Зарабатываем 1000₽ за 5 минут + бонус 10к — ВТБ
Зарабатываем до 25.000 рублей от Тинькофф!
Бесплатные Промокоды и Скидки для наших подписчиков!

Наши проекты

💀 NIGHT ROOM - канал с интересными подборками различных сервисов на все случаи жизни, СМС - Бомберы, слив полезного софта



Report Page