27 jun 2014

Verificar ASLR, DEP y SafeSEH con Powershell

Eric Gruber de NetSPI ha publicado un interesante script en Powershell que comprueba rápidamente si una DLL o EXE ha sido compilado con ASLR (Address Space Layout Randomization), DEP (Data Execution Prevention) y SafeSEH (Structured Exception Handling).

Existen herramientas como PEStudio, CFFExplorer, Windbg con plugins e Immunity Debugger con mona.py que ya lo hacen, pero no son tan intuitivos cuando se escanean múltiples ficheros.

PEChecker utiliza PowerShell para examinar el encabezado PE (Portable Executable), concretamente el member DLLCharacteristic, un valor hexadecimal que provee información de las opciones con las que se ha compilado un archivo:

ASLR (IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE), DEP (IMAGE_DLLCHARACTERISTICS_NX_COMPAT) y SafeSEH (IMAGE_DLLCHARACTERISTICS_NO_SEH) con valores 140 o 400 si han sido o no activados respectivamente.


El código fuente está disponible en GitHub y su uso es muy sencillo:
  • Chequear un único archivo:
    C:\PS> ./PEchecker.ps1 -file C:\Windows\System32\kernel32.dll
  • Chequear un directorio de DLLs y EXEs:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\
  • Chequear un directorio de DLLs y EXEs recursivamente:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\ -recursive
  • Chequear DLLs y EXEs pero sólo que no hayan sido compiladas con ASLR:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\ -recursive -OnlyNoASL
  • Chequear DLLs y EXEs pero sólo que no hayan sido compiladas con DEP:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\ -recursive -OnlyNoDEP
  • Chequear DLLs y EXEs pero sólo que no hayan sido compiladas con SafeSEH:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\ -recursive -OnlyNoSafeSEH
  • Muestra los resultados con el nombre de ruta completo:
    C:\PS> ./PEchecker.ps1 -directory C:\Windows\System32\ -recursive -FullPath
Fuente: HackPlayers y NetSPI

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!