Páginas

Mostrando entradas con la etiqueta UAC. Mostrar todas las entradas
Mostrando entradas con la etiqueta UAC. Mostrar todas las entradas

12 marzo, 2020

Explotación local: Escalada de privilegios de 0 a SYSTEM con Metasploit

A diferencia de la explotación directa o intrusión directa y client-side donde el objetivo es la ejecución de código en una máquina remota con la finalidad de comprometer su seguridad y conseguir una conexión hacia dicha máquina.

En el contexto de Metasploit la explotación local tiene como objetivo el movimiento vertical que será la elevación o escalada de privilegios en una sesión previamente establecida en una máquina remota o directamente tenemos acceso físico a la máquina.

Tipos de explotación:
  • Explotación local
  • Bypass UAC
Con respecto a los usuarios de la máquina, nos podemos encontrar con 3 escenarios distintos:
  • 1. Proceso en un contexto de integridad alto. Administrador (RID = 500):
Figura 1: Contexto de integridad alta.

Será el propio Administrador SYSTEM. O un usuario que pertenece al grupo administradores pero a ejecutado la aplicación como Administrador (botón derecho "Ejecutar como Administrador"). En cualquier caso ya estaríamos en una ejecución en un contexto de integridad alto. No hay una escalada de privilegios como tal pudiendo impersonar al usuario con el token de SYSTEM.
  • 2. Proceso en un contexto de integridad medio. Usuario que pertenece al grupo Administradores (Bypass UAC):
Figura 2: Contexto de integridad medio.

El usuario pertenece al grupo Administrador. Pero no ejecuta en un ámbito de Administrador (botón derecho "Ejecutar como Administrador") sino que se ejecuta de forma normal, en un contexto integridad medio, por defecto es así. Y tiene la configuración por defecto establecida del UAC (User Account Control). En este escenario podremos hacer uso de los Bypasses de UAC para elevar privilegios.
  • 3. Proceso en un contexto de integridad bajo. Usuario sin ningún privilegio:
Figura 3: Contexto de integridad bajo.

El usuario pertenece al grupo de Usuarios locales o Invitado sin ningún tipo de privilegio, se ejecuta en un contexto de integridad bajo. Es el caso más complejo ya que habrá que buscar alguna configuración débil en servicios, vulnerabilidades en el propio sistema operativo (falta de la aplicación de parches de seguridad), drivers, software que se esté ejecutando con privilegios, etc., que nos permiten elevarnos a SYSTEM.

Partiendo de la base de que ya disponemos de una sesión Meterpreter establecida en la máquina remota, expondré los diferentes escenarios comentados anteriormente.

1. Proceso en un contexto integridad alto. Administrador (RID = 500)

En este caso disponemos del usuarios Administrador SYSTEM el cual con la configuración por defecto de UAC ya ejecuta un proceso en integridad alto.

Listamos los permisos actuales (getprivs). Ejecutamos una shell dentro de Meterpreter para identificar a que grupo local pertenece.

Figura 4: Obtención de privilegios del usuario Administrador.

Vemos que ya forma parte del grupo de Administradores locales del sistema.

En esta situación podemos impersonar al usuario Administrador con getsystem y así concederle el token de SYSTEM. Dejamos la sesión Meterpreter en segundo plano (background) y comprobamos que en la misma sesión el usuario ahora es NT AUTHORITY\SYSTEM y no el Administrador que teníamos al principio.

Figura 5: Impersonar al usuario Administrador local con getsystem para obtener el token de SYSTEM.

2. Proceso contexto integridad medio. Usuario que pertenece al grupo Administradores (Bypass UAC)

En este escenario hemos conseguido una sesión Meterpreter remota con un usuario del sistema local que pertenece al grupo Administradores locales y que ha ejecutado el proceso comprometido sin privilegios (botón derecho ejecutar como Administrador) pero tiene establecida la configuración por defecto del UAC, por lo tanto podemos probar diversas técnicas para realizar un bypass de UAC tipo Fileless o DLL Hijacking.

Un bypass de UAC tipo fileless es más "silencioso" para los software de antimalware que pueda tener instalado el equipo ya que no realiza escritura en disco. Existen varios binarios nativos en Windows susceptibles a esta técnica, un ejemplo sería el "Bypass UAC Fileless usando AppPaths sdclt.exe".

Invocamos una shell dentro de la sesión y vemos que el usuario pertenece al grupo Administradores pero cuando listamos los privilegios (getprivs) vemos que son escasos donde el proceso se ejecutó en un nivel de integridad media y que efectivamente el proceso no se ejecutó como administrador.

Intentamos impersonar al usuario "admin" sin éxito. No podemos obtener el token de NT AUTHORITY\SYSTEM.

Figura 6: Intento de impersonar a un usuario que pertenece al grupo administradores locales.

Para la escalada de privilegios usaremos un bypass de UAC. Mediante el uso del editor de certificados de confianza se generará un proceso con el flag del UAC desactivado consiguiendo así un contexto de integridad alto. Esto dependerá de que tipo de sistema operativo Windows se trate, no es lo mismo un Windows 7/8/8.1/10 ya que los casos de byspass de UAC fileless dependerá de la existencia de los binarios en según que versiones.

Salimos de la sesión dejándola en background. Usamos el módulo "exploit/windows/local/bypassuac"  el cual hará un bypass UAC fileless (que afecta al "editor de certificados de confianza") y establecemos los parámetros del host local (nuestra máquina Kali), la sesión meterpreter, el payload (código que se va ejecutar) será un meterpreter reverse_tcp y lanzamos el exploit.

Si se cumplen las condiciones de que la configuración del UAC está por defecto y el usuario comprometido pertenece al grupo Administradores, el exploit tendrá éxito. Se creará una nueva sesión y si listamos los privilegios veremos que ya disponemos de privilegios más altos.

Figura 7: Obteniendo una sesión privilegiada con un Bypass de UAC tipo fileless.

Ahora ya podemos impersonar al usuario para obtener el token de SYSTEM. Si dejamos la sesión en background y listamos las sesiones actuales veremos la existencia de dos sesiones establecidas. Una con el token del usuario inicial "admin" y otra con el token de NT AUTHORITY\SYSTEM.

Figura 8: getsystem - Impersonar nuevamente al usuario para conseguir el token de SYSTEM.

Técnicas GETSYSTEM: Elevando privilegios con Meterpreter

Hay diversas técnicas utilizadas por Meterpreter para elevar privilegios de un administrador local a usuario SYSTEM.

1. Named Pipe Impersionation (In Memory/Admin)
Generado el canal con la víctima, se crea y ejecuta un servicio mediante cmd.exe, generando una suplantación del cliente basada en el servicio de SYSTEM.

2. Named Pipe Impersionation (Dropper/Admin)
A diferencia de la técnica 1, esta deja un archivo DLL en el disco y programa rundll32.exe como servicio para ejecutar el DLL como SYSTEM.

3. Token duplication (In Memory/Admin)
Hace un barrido por los servicios abiertos en la búsqueda de alguno que pueda ser ejecutado como SYSTEM y que adicionalmente tenga permisos para inyectar código, se utiliza la inyección de DLL para ejecutar elevator.dll en la memoria del servicio encontrado.

3. Proceso contexto integridad bajo. Usuario sin ningún privilegio

Este escenario sería el más complejo en cuanto a escalada de privilegios, pasaremos de 0 a SYSTEM sin utilizar ninguna técnica de bypass de UAC. Hemos comprometido un equipo remoto y tenemos una sesión Meterpreter de un proceso ejecutado por un usuario regular o "raso" sin privilegios, que pertenece al grupo "Usuarios" locales, aunque también podría pertenecer al grupo "Invitados" siendo este último el más restrictivo en el sistema en cuanto a permisos.

Deberemos encontrar alguna vulnerabilidad:
  • Ya sea en el propio sistema operativo por falta de parcheo y carencia de algunas actualizaciones (será el que veremos en este ejemplo). 
  • Vulnerabilidades en los drivers instalados.
  • Alguna aplicación que se esté ejecutando en un contexto privilegiado.
  • Servicios vulnerables por malas configuraciones (rutas absolutas no entrecomilladas, se detallan algunos ejemplos al final del artículo).
Desde un usuario no privilegiado listamos los permisos actuales (getprivs) y vemos que son muy limitados. Invocamos una shell para comprobar a que grupo pertenece y vemos que forma parte del grupo Usuarios locales.

Figura 9: Reconocimiento de permisos y pertenencia a grupos locales desde un usuario sin privilegios.

Desde la misma shell ejecutamos el comando "systeminfo". Nos mostrará varios detalles de interés, entre ellos las actualizaciones actuales instaladas en el sistema. En esta ocasión vemos que solo existe una sola KB instalada.

Copiamos toda la info que nos devuelve este comando a un fichero texto plano. (En este ejemplo se guardó en la máquina Kali en la ruta "/root/systeminfo27").

Figura 10: Comprobar las actualizaciones instaladas con systeminfo.

Existe un script en python llamado Windows Exploit Suggester con el cual podemos comparar el resultado del fichero guardado anteriormente con una base de datos xls actualizada.


A partir del fichero que contiene el resultado del systeminfo, nos mostrará aquellas actualizaciones de seguridad que podremos explotar y que no estarían instaladas en la máquina comprometida. A parte del código de la propia vulnerabilidad, nos mostrará una breve descripción de lo que hace, su nivel de criticidad y los enlaces al boletín de seguridad de MS para obtener más detalles y/o enlaces al propio exploit en exploit-db.com.

Para reconocer las vulnerabilidades Windows Exploit Suggester emplea la siguiente tipificación:
  • [*] Falta la actualización.
  • [M] Existe un módulo en Metasploit.
  • [E] Existe un exploit público que no está incorporado o importado en Metasploit.
Es totalmente recomendable que revisemos los expedientes o boletines de seguridad oficiales para entender lo que vamos a explotar, no tendría sentido empezar a probar exploits a loco porque seguramente perderíamos el control del proceso del test de intrusión.

Una vez descargo el script del repositorio de Github, actualizamos la base de datos. Se nos descargará un fichero en local con extensión xls o xlsx.
./windows-exploit-suggester.py --update
Ejecutamos el script indicándole la base de datos y el fichero almacenado que habíamos guardado con la información en plano del resultado de ejecutar el comando systeminfo.
python windows-exploit-suggester.py -d BASE_DE_DATOS.xlsx -i FICHERO_SYSTEMINFO
Figura 11: Windows Exploit Suggester - Resultado de posibles actualizaciones explotables en base al fichero systeminfo.

En este ejemplo haremos uso de la vulnerabilidad MS14_058 que ya dispone de un módulo integrado en Metasploit. 

Recogida en en la base de conocimiento KB3000061, código CVE-2014-4113 reconocida con un CVSS de 7.2. Exploit de Metasploit disponible en https://www.exploit-db.com/exploits/35101.

Figura 12: Vulnerabilidad MS14-058 incorpora un módulo en Metasploit.

Una vez identificada la vulnerabilidad que vamos a utilizar y que sabemos que ya dispone de un módulo en Metasploit que nos abstraerá de los detalles para explotarla. La buscamos usando el comando "search MSxx-xxx" y encontramos el módulo correspondiente llamado "exploit/windows/local/ms14_058_track_popup_menu".

Usamos el módulo, lo configuramos estableciendo la sesión, un payload tipo meterpreter/reverse_tcp y lo ejecutamos. Si hemos tenido éxito se establecerá un nueva sesión con un meterpreter, si comprobamos el id de usuario podemos ver que ya tenemos el token de NT AUTHORITY\SYSTEM.

Si dejamos la sesión en background veremos que tenemos dos sesiones con meterpreter establecidas, la inicial del usuario sinPrivilegio y esta última obtenida con SYSTEM.

Figura 13: Escalada de privilegios de 0 a SYSTEM obteniendo una sesión meterpreter aprovechándose de la vulnerabilidad MS14-058.

Servicios vulnerables por malas configuraciones

Algunos ejemplos aprovechándose de pequeños tricks en errores de configuración de servicios.
  • Service Permissions
Cuando un binario invoca a un servicio este se convierte en un proceso. Puede darse el caso por el diseño o desarrollo de dicho servicio que en la carpeta donde se aloja dicho binario los permisos no sean suficientemente restrictivos un usuario puede modificar una dll o incluso el propio binario (siempre y cuando no esté en ejecución), entonces en el momento de volver iniciar el servicio este llamara a ese binario no legítimo que hubiésemos "suplantado" y lo ejecutará.

Metasploit dispone de un módulo llamado "exploit/windows/local/service_permissions" que lo que hace es automatizar la búsqueda. Lista todos los servicios y busca si los permisos de los directorios donde se alojan sus binarios son adecuados para poder se utilizados por un usuario y poder modificarlos.
  • Trusted Service Path (rutas absolutas con espacios en blanco sin entrecomillar)
Existe otro módulo en Metasploit llamado "exploit/windows/local/trusted_service_path". Lista las rutas de los binarios que son ejecutados por los servicios de Windows con el objetivo de encontrar rutas que vayan sin comillas (C:\path\... vs. "C:\path\..."). Prácticamente todos los servicios se inician o detienen a través de un binario exe ya sea invocándolo directamente o con algún argumento adicional.

Figura 14: Docs Microsoft - Parámetro lpBinaryPathName en la API de Windows CreateService de Advapi32.dll.

Esto quiere decir que si tenemos una ruta absoluta sin entrecomillar que contenga algún espacio en blanco por ejemplo C:\Program Files\hello.exe, por defecto la API de Windows en su función "CreateService" de Advapi32.dll si existe una separación, espacio en blanco en la ruta, no la interpreta correctamente por lo que intentará encontrar el binario correspondiente en cada espacio en blanco hasta que finalmente ejecute el binario necesario para iniciar el servicio.

Siguiendo el ejemplo anterior sería C:\Program.exe si lo encuentra lo ejecuta sino lo encuentra seguirá hasta encontrarlo. Será en esos casos donde aprovecharemos para cargar el payload (shellcode) y que sea ejecutado, consiguiendo una sesión en un contexto elevado ya que estos binarios de servicios cuando son iniciados tienen una integridad de SYSTEM.

Si ya tenemos un sesión Meterpreter establecida con un usuario regular del sistema podemos ejecutar load powershell para cargar el módulo de Powershell e importar el siguiente código ya sea copiando y pegando directamente en una powershell_shell o a través de powershell_import la siguiente función.
$servicios = Get-WmiObject -Class win32_service
foreach ($elemento in $servicios)
{
    if ( (!$elemento.PathName.Equals("")) -and (!$elemento.PathName.Startswith("`"")) -and ($elemento.pathname -ne $null))
    {
        $binario = $elemento.PathName.Split(" ")[0]
     
        if ((!$binario.Contains(":\Windows")))
        {
            $elemento.PathName
            $elemento.Name
            $elemento.Status
            Write-Output "----------`n"
        }
    }
}
Esto nos permitirá listar aquellos servicios mal configurados en sus paths sin entrecomillar, generar un binario con msfvenom con un payload de Meterpreter por ejemplo y subirlo a través del comando upload a la máquina remota con la finalidad de sustituirlo y ponernos a la escucha con el handler de conexiones (exploit/multi/handler).

De modo que cuando se arranque el servicio nuevamente lo hará a través del usuario NT AUTHORITY\SYSTEM consiguiendo así una nueva sesión Meterpreter con el mayor privilegio.

Saludos!

25 junio, 2016

Permitir ejecuciones remotas con cualquier usuario al intentar acceder al recurso compartido C$ (LocalAccountTokenFilterPolicy)

En Windows existen ciertos recursos compartidos establecidos por defecto con intenciones administrativas. Entre ellos está el conocido C$ (C dolar, el símbolo "$" indica que se trata de un recurso que el sistema mantiene "oculto"), que seguramente muchos usaríamos para poder conectarnos al equipo remoto de una red de forma subyacente al usuario de ese equipo, básicamente tener acceso a su disco del sistema C: (letra de unidad asignada por defecto en sistemas Windows).

Podemos ver en la consola de Microsoft (fsmgmt.msc) de "Carpetas comparitdas", los recursos que por defecto son compartidos, donde veremos el conocido c$ (C dolar) entre otros.

Figura 1: Consola Miscroft fsmgmt.msc "Carpetas compartidas".

Para que esta conexión sea posible, a parte de tener las debidas configuraciones de red bien configuradas como veremos más adelante. Hablando en este caso de una "red privada o doméstica" es necesario una de las dos siguientes posibilidades:
  • Conocer el usuario y contraseña con privilegios administrativos de la máquina remota.
  • Crear un usuario y contraseña igual que el usuario con el que intentamos conectarnos al equipo remoto.
En este caso nos quedaremos con la opción más cómoda que sería la de añadir el usuario al equipo remoto.

En el caso de formar parte de una red de dominio, esto se debería administrar con grupos en el propio controlador de dominio (DC). En este caso podríamos crear un grupo en el que incluiríamos a los usuarios administrativos y ese grupo incluirlo en grupo de administradores de forma manual o por algún script mediante GPOs en los equipos de la red de Dominio.

Escenario de ejemplo:
  • Equipo: PLUTON | Usuario activo: maria
  • Equipo: JUPITER | Usuario activo: juan
En el siguiente ejemplo, de una red privada, el usuario activo en el equipo local es "juan" (equipo: Jupiter), pero el usuario remoto con el que queremos acceder desde el cliente es "maria" (del equipo: Pluton, pero que se creará también el equipo Jupiter). Por lo que en el equipo remoto crearíamos una cuenta de usuario con la misma contraseña que la del equipo donde queremos acceder y lo agregamos al grupo de Administradores, de modo que haya una coherencia entre este usuario en ambas máquinas.

Figura 2: Usuarios administradores del equipo remoto.

Hasta este punto todo correcto. Pero cuando intentamos acceder con el usuario y contraseña del mismo que el del equipo remoto aunque exista dicha coherencia de credenciales igualmente, por seguridad, nos solicita usuario y contraseña a través del UAC. Por lo que queremos es evitar o eludir el UAC en este caso.

Escribiendo en una ventana de ejecución el nombre o dirección IP del equipo remoto seguido del recurso compartido C$: \\equipo_remoto\c$.

Figura 3: Ejecutando el recurso compartido C$ hacía un equipo remoto de la misma red.

En sistemas Windows XP dentro de una red era común si teníamos los suficientes privilegios en un usuario frente a un equipo remoto el poder acceder a su disco C: (letra de unidad asignada por defecto a un sistema Windows) ya que este por defecto se compartía.

Esto a partir de Windows Vista en adelante con la incorporación del sistema UAC (User Account Control) nos solicita, por seguridad, que nos autentiquemos con un el usuario privilegiado de la máquina remota y por lo tanto confirmemos las credenciales del usuario con el que intentamos acceder a la máquina remota. En siguiente caso el usuario maria del equipo Pluton quiere conectarse al equipo Jupiter.

Figura 4: Autenticación de login con UAC para el acceso al recurso compartido C$.

Para poder eludir el UAC, solamente en este caso, podremos hacerlo fácilmente añadiendo un valor con un dato específico en una clave concreta del registro de Windows. Pero antes comentaré algunas configuraciones previas a tener en cuenta para todos los equipos de red o en los que queramos tener este tipo de acceso.

Antes de establecer la clave de registro oportuna, revisamos la configuración de la red privada para comprobar si está todo bien establecido, por defecto cuando nos unimos a un grupo de trabajo de una red privada o de hogar esto se autoconfigura correctamente.

En el caso de usar una red privada, formar parte de un grupo de trabajo o grupo del hogar, nos centraremos en la configuración de uso compartido avanzado de este. En el apartado privado (que sería el que correspondería en este caso) comprobaremos que esté activado la "detección de redes, compartir archivos e impresoras, y que Windows administre las conexiones del grupo del hogar".

Por defecto, cuando configuramos un equipo para que este se una a un grupo del hogar esta configuración debería estar ya preestablecida del siguiente modo.

Figura 5: Configuración del uso compartido de redes (entorno privado).

En un segundo bloque vemos la configuración de "Todas las redes" las cuales son otro tipo de características en la que digamos que el uso compartido no afecta para "perfiles públicos o invitados".

Deberemos tener activa las tres opciones disponibles, o simplemente las dos últimas opciones "Usar un cifrado de 128 bits y activar el uso compartido por contraseña", el cual en este caso no tendrá relevancia si lo tenemos activado o desactivado, ya que no se trataría de recursos compartidos de forma intencionada sino de los recursos compartidos por defecto del sistema, esta característica no está disponible en equipos que se encuentren en un dominio.

En la primera opción "Activar el uso compartido para todos los usuarios a carpetas públicas" se refiere aquellas carpetas del perfil de usuario que por defecto Windows comparte, pero que no tienen una gran importancia si no guardamos nada en ellas.

Figura 6: Configuración del uso compartido de redes (todas las redes).

Al activar las características anteriores, sobre todo la que respeta al uso compartido de archivos e impresoras, esta por defecto añade unas determinas reglas de entrada en el WFAS (Windows Firewall Advanced Security) referentes al protocolo SMB (Service Mensage Block), las cuales se deberían aplicar en este caso solo al perfil privado.

Figura 7: Reglas de entrada del Firewall avanzado para SMB "Compartir archivos e impresoras".

Por último comprobaremos un par de servicios. El servicio "Examinador de equipos" (Browser) realiza repetidas comprobaciones de actualización para conocer a los equipos vecinos de una misma red, de modo que así nuestro equipo estará actualizando la lista de equipos latentes dentro de la red.

Figura 8: Servicio "Examinador de equipos de red" (Browser).

El servicio "Servidor" (LanmanServer) nos proporcionará compatibilidad para todos aquellos equipos que quieran acceder a este, ofreciendo así el servicio necesario para acceder a sus recursos compartidos.

Figura 9: Servicio "Servidor" (LanmanServer)

Finalmente y el motivo por lo que escribo este artículo, sería añadir el valor necesario el registro de Windows para poder bypassear la autenticación UAC. La autenticación se hace pero se hace forma subyacente, esto simplemente nos evita autenticarnos con usuario y contraseña de forma manual.

En el registro de Windows del equipo remoto que queremos conectarnos (Jupiter), buscamos la clave:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Añadimos un nuevo valor REG_DWORD de 32 bits (aunque el sistema sea de x64 el valor tendría que ser igualmente de 32 bits). El nombre de este valor será: LocalAccountTokenFilterPolicy y la información de dato la establecemos a "1".

Figura 10: "LocalAccountTokenFilterPolicy" para evitar la autenticación manual en acceso a C$.

Ahora simplemente cerramos el registro y probamos, si aún así no se actualizasen los cambios, cerraríamos sesión o si fuese necesario (que en las pruebas que he realizado no ha sido necesario) reiniciaríamos el equipo.

Veremos que ahora al intentar acceder al recurso compartido C$ del equipo remoto al que hemos añadido este valor no nos pedirá de forma visible la autenticación de un usuario con privilegios para acceder a el y a ese recurso.

Se puede ver en una fsmgmt.msc la existencia de una sesión remota activa del usuario maria procediente del equipo remoto Pluton, la cual solo usó el usuario usuario local creado en el grupo administradores del equipo Jupiter (equipo al que remoto al que se conectó maria) para autenticarse, aunque como se ve en la captura de pantalla la sesión es con referencia al equipo remoto que accedió. (usuario maria del equipo Pluton accedió al equipo > Jupiter) . Visualizando las sesiones activas en la consola fsmgmt.msc.

Figura 11: Conexión remota activa, existencia de una sesión de usuario conectada al equipo.

Esto está definido por Microsoft (KB951016): https://support.microsoft.com/es-es/kb/951016

Saludos!

03 abril, 2010

Herramientas, consejos y recomendaciones para Anti-Malware y Anti-Spyware

Esta es un guía con 6 útiles herramientas para intentar tener el sistema totalmente libre de cualquier tipo de malware.

Utilizar AntiVirus/AntiMalwre

Actualiza tu antivirus residente y realiza un análisis completos o programa los antimalware para que los realicen periodicamente.

Antivirus online u otro que no sea el residente en el sistema


Por último debemos realizar un análisis online o desde otro antivirus que no sea el que tengamos instalado en el sistema, para obtener una segunda opinión y asegurarnos completamente de que el equipo esté "limpio".


Para realizar análisis de ficheros concretos o URLs de sitios web en los que podemos tener sospechas, podremos utilizar virustotal.com. Este nos realiza un escaneo por numerosos motores de antivirus/antimalware y la final del proceso muestra un informe de los resultados de cada uno de ellos. 


Otra opción sería Metascan-Online.com con el que podemos analizar ficheros Online en 18 antivirus a la vez. 

Un antivirus externo: NOD32 online de ESET es un antivirus online que, además de analizar el sistema elimina posibles amenazas encontradas. 

Antivirus Online:
http://www.pandasecurity.com/activescan/index/?track=1&Lang=es-ES&IdPais=62
http://www.eset-la.com/online-scanner
http://www.kaspersky.com/sp/virusscanner
http://www.bitdefender-es.com/scan8/ie.html
http://www.pandasoftware.com/activescan
http://housecall.trendmicro.com
http://us.mcafee.com/root/mfs/default.asp
http://www3.ca.com/securityadvisor/virusinfo/scan.aspx
http://www.freedom.net/viruscenter/onlineviruscheck.html

AntiSpyware Online:
http://www.trendmicro.com/spyware-scan
http://www.sunbelt-software.com/dell/scan.cfm
http://www.spywareguide.com/txt_onlinescan.html
http://www.webroot.com/consumer/products/spysweeper/freescan.html

¿Saber si un fichero contiene ulgún tipo de malware?
http://www.virustotal.com
http://virscan.org
http://www.filterbit.com
http://virusscan.jotti.org
http://www.kaspersky.com/remoteviruschk.html
http://www.fortiguardcenter.com/antivirus/virus_scanner.html

CD de Rescate
 

También se puede hacer uso de un "CD de rescate" como el de F-Secure - Rescue CD. Una guía de Rescue CD (D-Secure)

Analizar e intentar desinfectar el equipo con herramientas AntMalware/AntiSpyware


Las herramientas de escaneo de malware es recomendable hacerlo en un SafeMode (Modo a prueba de fallos de Windows).

RKill herramienta desarrollada por BleepingComputer que se encarga de detener los procesos de malwares conocidos y que, por lo general evitan que se puedan ejecutar herramientas antivirus para desinfectar el sistema. Esta técnica de “autoprotección” por parte del malware es muy común en el Rogue Software (Falsos Antivirus).

RKill está "camuflado" como iExplorer.exe (podemos confiar en esta tool). Para que el antivirus ya instalado en el equipo no lo interprete como un malware. Después de ejecutarlo, se abrirá una consola de Windows y se pondrá a escanear mostrándonos finalmente el resultado en un log de texto .txt. 


Cuando termine, se mostrará un archivo de registro que muestra los procesos que se dieron por terminados. Rkill no elimina esos procesos maliciosos ni otra parte del malware, solo los detiene.

Figura 1: Escaneo del sistema con Rkill.
   
Spybot - Search & Destroy herramienta con la que podrás realizar un análisis del sistema. Elimina diversas amenazas. Los propietarios de este software también ponen a disposición de los usuarios otras herramientas de seguridad y optimización del sistema.

Figura 2: Escaneo del sistema con Spybot - Search & Destroy.

Malwarebytes' Anti-Malware este software elimina una amplia variedad de programas maliciosos y es recomendado para la eliminación de rogues antimalware o falsos antivirus.

Figura 3: Escaneo del sistema con Malwarebytes' Anti-Malware

SUPERAntiSpyware Free edition analiza el sistema en busca de cualquier tipo de amenaza que pueda colarse en el sistema: spyware, dialers, troyanos, rootkits, gusanos, adware, malware, aplicaciones maliciosas, etc

Figura 4: Escano del sistema con SUPERAAntiSpyware Free.

Ad-Aware Free diseñada para eliminar todo tipo de Spywares/Adwares. Se actualiza de habitualmente para la detección nuevos Spywares.


Figura 5: Escaneo del sistema con Ad-Aware Free.

SpywareBlaster previene infecciones de spywares. No los elimina, simplemente deshabilita los controles ActiveX de los mas conocidos spywares.


Figura 6: Escaneo del sistema con SpywareBlaster.

HijackThis escanea el sistema intentando detectar spyware, browser Hijacker, malware u otro programa malicioso. Su uso requiere ciertos conocimientos para interpretar el log que genera. El log también puede ser analizado de forma automática, ideal para aquellos que quieren ahorrar tiempo interpretándolo o tienen dudas sobre qué borrar y qué no. Guía para la interpretación del log de HijackThis.

Figura 7: Analizando sistema con HijackThis.

AdwCleaner busca y elimina: adware, barras de herramientas de los navegadores (toolbars), programas potencialmente no deseados o indeseables (PUP/LPI - 'Potentially Unwanted Program or undesirables') y secuestradores de navegador como Hijackers los cuales entre otras cosas, capturan la página de inicio del navegador web y la cambian por otra de su interés.

Figura 8: Escaneando sistema con AdwCleaner.

Eliminar temporales y optimizar el registro

Para eso podemos descargar y utilizar el programa gratuito CCleaner. Escaneará todo el equipo y comprobará aquellas claves de registro que ya no son de uso para el sistema, la gran parte de software eliminado. También ficheros temporales de los navegadores web, cachés del sistema, etc.


Seguridad y privacidad en la nevagación web


Si utilizamos los navegadores más populares de hoy en día: Internet Explorer, Mozilla Firefox, Google Chrome, Opera o Safari. En su apartado de configuración podemos encontraremos parámetros para conseguir intentar estar un poco más seguros y sobre todo mantener nuestra privacidad. Todo lo que almacenamos en nuestro navegador web (contraseñas, datos de formularios, páginas web visitadas, etc.) serán almacenados también en nuestro equipo local en forma de cookies. En un análisis forense de nuestro sistema hay que tener en cuenta que toda esta información estaría accesible. Comentaré algunos consejos que nos ayudarán a mejorar nuestra privacidad almacenada en nuestro navegador web y el equipo informático local.

Desactivar o deshabilitar:

  • Recordar historial.
  • No recordar nada en la barra de direcciones.
  • No recordar credenciales en formularios de registro, así como no proporcionar datos personales en el perfil de usuario del sistema.
  • Bloquear ventanas emergentes (POP-UP).
  • Advertir cuando un sitio web desea instalar un complemento (podremos añadir excepciones si confiamos el sitio web).
  • Bloquear sitios reportados como no deseados, que no son de confianza o pueda ser una posible web falsificada no legítima (Phishing).
  • Intentar usar, si el website lo permite, protocolos criptográficos para la encriptación o cifrado de la comunicación de datos en red: SSL (Secure Sockets Layer) o TLS (Transport Layer Security). A trabés del protocolo HTTPS (Hypertext Transfer Protocol Secure).
Complementos para mantenernos seguros en navegadores web

Para el uso de HTTPS podemos utlizar complementos que nos ofrecen los navegadores web. Que permiten "forzar" el uso de HTTPS siempre que la página web lo use. Estas redireccionan el protocolo HTTP a HTTPS. HTTPS Finder, Force-TLS, HTTPS Everywhere para Firefox, KB SSL Enforcer para Chrome.

Sobre los complementos HTTPS Everywhere y HTTPS Finder ya había hablado en este blog sobre ellos.


Estos nos ayudará a prevenirnos de ataques Hijacking. Ya se hablara en este blog del complemento Firesheep.

NoScript es otro complemento para Firefox el cual muchos consultores de seguridad web lo aconsejan. Ya hablara sobre la importancia de NoScript.

Evitar infectarse lo menos posible con mensajes de correos electrónicos


La mayoría de malwares usan el correo electrónico para llegar a sus víctimas y así poder infectar sus equipos. Ya sea para técnicas de Phishing con webs falsas (Scam), hoax, ficheros (imágnes, vídeo, PDF, etc.) que puedan ejecutar código malintencionado explotando alguna vulnerabilidad del sistema o aplicación instalada en el equipo.de imágenes, PDF, etc, el correo basura (Spam).


Algunos consejos para minimizar el contagio de malware por correo:
  1. Confiar en el remitente del correo.
  2. Fijarse en la redacción, expresión del texto, faltas de ortografía o textos que desordenados.
  3. No abrir enlaces de correos de los que desconocemos su procedencia, sospechamos de que puedan ser engaños, etc.
  4. Si el correo procede de entidades bien conocidas que tienen su certificado de seguridad, comprobarlo. De forma que sepamos que es un correo legítimo. Servidores de correos como Gmail, Yahoo o Hotmail (Outlook Web), disponen de listas en los que ya clasifican y comprueban estos remitentes, mostrándole al usuario que recibe el correo con algún icono con un candado verde e indicando el tipo de cifrado.
  5. Intentar tener nuestro correo "limpio", con esto me refiero a que si nos registramos un sitio web automáticamente en los formularios de registros a parte del check para aceptar las políticas suele acompañarse de otro check para suscripciones por correo, intentar darnos cuenta de desactivar estos check si no queremos recibir correos masivos de sitios web que no nos interesen.
  6. Si recibimos un correo de nuestra entidad bancaria, por muy legítimo que lo veamos, si nos piden "cambio de contraseñas" nunca proporcionar nuestras credenciales a ninguna de estas páginas web, ya que serían phishing. Una entidad bancaria nunca nos pediría información de carácter sensible por correo ni por teléfono y menos nuestras credenciales.
  7. Sentido común. Hoy en día los correos de spam son sofisticados en su redacción pero si recibimos un correo de que nos a tocado un viaje o millones de euros, no caigamos en el engaño si sabemos que no nos inscribimos a ningún sorteo de ese tipo.
Evitar el Spyware:

Spyware o Software espía son aplicaciones que recopilan información sobre una persona u organización sin su conocimiento, ni consentimiento. El objetivo más común es distribuirlo a empresas publicitarias u otras organizaciones interesadas.
Algunas recomendaciones para evitar la instalación de este tipo de software:
  1. Verificar cuidadosamente los sitios por los que navega, ya que es muy común que estas aplicaciones auto-ofrezcan su instalación o que la misma sea ofrecida por empresas de dudosa reputación.
  2. Si es posible, leer atentamente las políticas de privacidad de estas aplicaciones. Generalmente incluyen puntos como "recolectamos la siguiente información del usuario" o "los daños que causa la aplicación no es nuestra responsabilidad" o "al instalar esta aplicación autorizas que entreguemos sus datos a...".
  3. Estas aplicaciones normalmente prometen ser barras con funcionalidades extras que se instalan sobre el explorador.
  4. Actualmente, se nota una importante aparición de aplicaciones que simulan ser software anti-spyware que en realidad contiene spyware. Una lista de los mismos puede ser encontrada en la dirección que se detalla al pie del presente.
  5. Cuando una aplicación intente instalarse sin que lo hayas solicitado, desconfíe y verifique la lista anterior.
  6. Es común que los sitios dedicados al underground o pornográficos, contengan un alto contenido de programas dañinos que explotando diversas vulnerabilidades del sistema operativo o del explorador, le permiten instalarse.
  7. Verificar los privilegios de usuarios. Es común que todos los usuarios que hacen uso del PC lo hagan con permisos administrativos. Esto no necesariamente debe ser así, es recomendable que cada usuario tenga su propio perfil, sólo con los permisos necesarios para realizar sus tareas y no estar logeado como root del sistema. Ya que esto disminuye el campo de acción de un posible intruso (virus, backdoor, usuario no autorizado, etc.).
  8. Estas aplicaciones evolucionan continuamente por lo que contar con un antivirus actualizado y con capacidades proactivas es fundamental para detectar estas aplicaciones y evitar su instalación.
Actualizaciones, Firwall, copias de seguridad, GPOs y gestión de usuarios:

Un equipo informático se hace más susceptible de infectarse por cualquier tipo de malware cuanto más desactualizado que esté. El sistema operativo y las aplicaciones de terceros tienen fallos de seguridad, los cuales son explotados por el malware. 


Por eso es muy muy importante, tener el sistema actualizado a su última versión al igual que todas las aplicaciones que este tiene instaladas. Si se trata de software de terceros disponer de la versión original y legal, no utilizar cracks o parches para activar los productos ya que la gran mayoría de estos cracks a parte de activarte el programa (que no siempre lo hacen) están regalándote un fantástico malware en tu equipo.

Activar si o si el Firewall. Si somos usuarios "normales", de andar por casa, el firewall de nuestro sistema sea el que sea lo mantendremos siempre activado. 

La función de un Firewall dicho a groso modo sería la de "Permitir y/o denegar acceso de aplicaciones u otros (mediante puertos) al equipo local". Esto evitará dejar todos nuestros puertos abiertos, con esto lo que conseguiremos es darle acceso al sistema de forma más fácil a los malos. Es como si un ladrón quiere robar en tu casa y tu le dejas la puerta abierta mientras tu no estás. 

Hacer copias de seguridad del sistema periódicamente. En el caso de catástrofe, sea la quesea, poder restaurar el sistema e una copia de seguridad que sabemos que es estable. 

Revisar las políticas de usuarios y grupos (GPOs) a través de la consola gpedit.msc. Podría hablar mucho sobre este punto, pero no quiero alargar más esta entrada, simplemente echar un vistazo, leerlas y habilitar o deshabilitar cada una de las políticas de nuestro sistema podríamos estar un peldaño más seguros. 

Y uno de los puntos que considero más importante, es la correcta gestión correcta de usuarios locales del sistema. Podemos tener el sistema muy securizado, con filtros en el firewall específicos, configuraciones del sistema avanzadas personalizadas, todo el sistema actualizado y sus aplicaciones una buena plantilla de políticas de usuarios y grupos bien establecida. Pero realmente si no configuramos correctamente los usuarios estamos igualmente expuesto a la ejecución de amenazas y digo ejecución por que precisamente eso es lo que permite a un malware ejecutarse o no en nuestro equipo: El usuario del sistema que estemos usando. 

Por defecto la cuenta de administrador local a partir de Windows Vista viene desactivada por seguridad. La mayoría de usuarios suelen activarla y trabajar con esta cuenta en el sistema para su funcionamiento cotidiano y no debería ser así. El usuario administrador está para administrar el sistema no para abrir correos, navegar por internet, descargar ficheros de internet, etc. Para eso está el usuario raso. Un usuario raso es cualquier usuario que se cree por defecto el sistema que no sea administrador ni tampoco usuario invitado, es decir, que forma parte del grupo de usuarios del sistema. Un usuario raso te permitirá hacer lo mismo que el usuario administrador en cuanto a trabajos cotidianos en nuestro sistema, solo en el caso de instalar algún software o cambiar configuraciones del sistema usaremos el usuario administrador. A partir de Windows 7 existe un mecanismo fabuloso llamado UAC (User Account Control o Control de cuentas de usuario) este nos permite desde una sesión de un usuario raso ejecutar una operación de privilegios elevados a través de una ventana de credenciales en las que nos podemos autenticar con un usuario administrador y solamente en esa instancia estará ejecutándose la cuenta de administrador a la par que la sesión de usuario sigue activa. 

Concluyendo... deja el usuario administrador-system que viene deshabilitado por el sistema: deshabilitado. Crea un usuario administrador manualmente, que pertenezca al grupo administradores y así hacer con este usuario tareas administrativas de privilegios elevados en el sistema. Crea otro usuario que pertenezca al grupo de usuarios locales y se este el que utilices de forma habitual.

Saludos!

Entradas Populares