lunes, 29 de abril de 2013

HoneyPot Easy. Part XII. HoneyDrive 0.2 Nectar Edition. Todo el arsenal out of the box.

Después de tantos (1, 2, 3, 4 ,5, 6 , 7. 8 9 11) post sobre Honeypots, tantas horas invertidas en ellos, os presento al Sr. HoneyDrive 0.2.

Una distribución completa (Xubuntu) orientada al mundo de los honeypots, en las que los desarrolladores se han tomado la molestia de hacernos el trabajo sucio, y dejarnos los clicks y ficheros de configuración listos para jugar.

Hasta la fecha hemos trabajado con Backtrack para realizar auditorías de seguridad/Ataques. Hemos jugado con Security Onion (1,2,3) para montar nuestro sistema IDS. Ahora vamos a jugar con Honeydrive para implementar un servidor de Honeypots.

Como he visto en todos los post publicados al respecto, la lista de herramientas es larga, larga, laaarga, y para eso está Google. Vamos a ponernos sobre la marcha.

Después de descargar el fichero Ova con nuestra máquina virtual ( lista para virtual Pc) solo tenemos que iniciar la máquina y entrar con el usuario/pass honeydrive.
Lo primero que tenemos que hacer es cambiar el password del usuario con passwd.

Empezamos configurando Kippo. Os recomiendo leer la seria de artículos de la gente de Security By Default 1,2 y 3.
Básicamente es una emulación de un servicio SSH el cual nos puede servir, entre otras cosas, para recopilar diccionarios de usuarios/contraseñas empleados por los atacantes contra nuestro servicio.
cd /opt/kippo/ -- ./start.sh

Ya tenemos el puerto 22 en nuestra máquina corriendo. Vamos a probarlo desde otra máquina, haciendo un nmap y una conexión ssh.
Según la configuración original de HoneyDrive, tenemos todas las ubicaciones de ficheros y configuraciones de esta manera:

[Kippo]
Start: /opt/kippo/start.sh
Downloads: /opt/kippo/dl/
TTY logs: /opt/kippo/log/tty/
Credentials: /opt/kippo/data/userdb.txt
MySQL database: kippo
MySQL user/password: root/honeydrive
[Kippo-Graph]
Location: /var/www/kippo-graph/
Config: /var/www/kippo-graph/config.php
URL: http://local-or-remote-IP-address/kippo-graph/
MySQL database: kippo
MySQL user/password: root/honeydrive
[Kippo2MySQL]
Location: /opt/kippo2mysql/
MySQL database: kippo2mysql
MySQL user/password: root/honeydrive

Una vez generada actividad, nos vamos a http://localhost/kippo-graph/ para ver lo ocurrido, gracias a Kippo-Graph.

Como veis en la imagen, tenemos que generar la estadística, la recolección.
Una de las estadísticas recolectada, top combinaciones user/pass.
Muy interesantes la mayoría de estadísticas. Podemos ver también todas las "input" del usuario, representación geográfica, enlace a Robtex, descarga de imágenes generadas, etc.

Honeyd. Cuanto hemos hablado aquí de este Honeypot !!! Un honeypot que emula no solo servicios concretos, sino Fingerprint de sistemas operativos.
La ubicación de todos los ficheros y usuarios es:

[Honeyd]
Bin: /usr/bin/honeyd, + /usr/bin/honeydstats
Config: /etc/honeypot/
Scripts: /usr/share/honeyd/scripts/
Logs: /var/log/honeypot/
 [Honeyd2MySQL]
Location: /opt/honeyd2mysql/
MySQL database: honey2mysql
MySQL user/password: root/honeydrive
 [Honeyd-Viz]
Location: /var/www/honeyd-viz/
Config: /var/www/honeyd-viz/config.php
URL: http://local-or-remote-IP-address/honeyd-viz/
MySQL database: honeyd2mysql
MySQL user/password: root/honeydrive
 [Honeyd-Scripts]
Location: /opt/honeyd-scripts/
+ honeyd-geoip
+ honeyd-geoip-cymru

Nos vamos a la ruta de configuración arriba indicada, y editamos el fichero para generar una máquina tal y como esta.

create default
 set default default tcp action block
 set default default udp action block
 set default default icmp action open

create windows
 set windows personality "Microsoft Windows XP Professional SP1"
 set windows default tcp action reset
 add windows tcp port 135 open
 add windows tcp port 139 open
 add windows tcp port 445 open


set windows ethernet "00:00:24:ab:8c:12"
bind 192.168.0.123 windows

Arrancamos Honeyd indicándole la ruta del fichero de configuración y logs.
sudo honeyd -d -f /etc/honeypot/honeyd.conf -l /var/log/honeypot/honeyd.log

Hay que tener en cuenta que si no configuramos los permisos para la carpeta de log´s, honeyd no guardará NADA. Hay que dar permiso de escritura al usuario Honeyd.

Ahora hacemos un Syn Scan simple para determinar si está en funcionamiento, y para ver el tema de los log´s.
Como podeis ver, toma los puertos y mac definidos en el fichero de configuración.
Al igual que haciamos con Kippo-Graph para recolectar los log´s, con honeyd hacemos lo mismo pero invocando el script desde  /opt/honeyd2mysql/ ---- ./honeyd2mysql.pl
Una vez introducida la información de los logs en Mysql, pasamos a generar los gráficos entrando en:
http://localhost/honeyd-viz/

Como podeis ver, mediante unos simples clicks podemos configurar nuestra máquina víctima dispuesta a recolectar todo tipo de información sobre los ataques sufridos.

Hemos hablado largo y tendido sobre la localización de los honeypots, su uso recomendado, algo de hardening y demás. Espero que os haya gustado este post sobre HoneyDrive.

Otro día jugamos más !!!

Gracias por leerme.









viernes, 26 de abril de 2013

HTTP-Screenshot.nse Looking for some Banner Pictures...

Imaginemos una auditoría en la que tenemos numerosos equipos, corriendo varias aplicaciones web´s. No solo los servidores de las empresas ejecutan dichos servicios. Puede ser que aplicaciones, periféricos etc funcionen mediante la world wide web xD.

Imaginamos el escenario de 1000 ordenadores, en el que tenemos que identificar ciertos servicios webs para profundizar sobre ellos, o simplemente queremos identificar rápidamente cuales de ellos merecen ser objeto de un ataque exhaustivo o por qué no decirlo, fácil. Tambien para la verificación de falsos positivos en la enumeración de las típicas herramientas ( ahorrarte hacer el netcat ).

La amable gente de Spiders labs publicó un script NSE, los que ejecutamos con la herramienta NMAP que genera una imagen, un PNG, con la web que nos muestra el servicio, es decir, un html to image. Para mi es mucho más cómodo buscar los servicios, las páginas de una manera gráfica que leyendo o parseando ficheros de logs.

Después de varias pruebas he usado el script mejorado de aquí, ya que hay problemas en el script original y la versión de un componente (wkhtmltoimage) entre arquitecturas i386/amd64 aunque he tenido que borrar alguna línea molesta de código que petaba el script ( guiño guiño).

Bajamos el toolkit wkhtmltopdf , descomprimos y copiamos el fichero.cp wkhtmltoimage-i386 /usr/local/bin/

Copiamos el script NSE en la carpeta correspondiente de NMAP.
cp http-screenshot.nse /usr/local/share/nmap/scripts/
nmap --script-updatedb

Ahora vamos a lanzar un port scan a un rango de ip´s hacia el puerto 80 ( solo para esta prueba) y que no haga ping.

nmap -Pn -p80 --script=http-screenshot x.x.x.x/xx

Por cada servicio web que encuentre, creará un fichero PNG con la imagen del HTML.
Crea los nombres de archivos con una estructura...
local filename = host.ip .. "_" .. port.number .. ".png"

Por ejemplo Google.es

Como siempre, gracias por leerme y espero que os haya gustado el post.




Tips & Tricks. Windows 2012.Política de grupo para evitar instalar Roles en el servidor mediante Windows Update, WSUS...

Cuando hablábamos en anteriores entradas sobre como deshabilitar opciones gráficas en Windows Server 2012 explicaba que se puede "revertir" el proceso instalando los roles gráficos de nuevo, mediante una imagen o en el caso de haberla borrado mediante Windows Update.
Se me ocurre que si no queremos que nuestro administrador delegado habilite las opciones, tenemos que controlar este aspecto. Bien, como para casi todo, tenemos una política de grupo, o GPO ( Group Policy Object) para configurar este comportamiento. Seria interesante habilitar esta característica para todo el dominio y mediante pestaña seguridad permitirlo para el administrador, unidad organizativa de servidores o un usuario específico creado para tal efecto que sea "Señor_Instalador_de_roles" xD.
En la imagen os muestro al directiva.


Esto es válido no solo para los roles gráficos, sino para cualquier función del server.
En otros episodios hablaremos en detalle sobre la gestión de políticas de grupo.

Un saludo, espero que os guste.

Subterfuge. Man In the Middle GUI.

Subterfuge, subterfugio:pretexto o excusa...

Una excelente herramienta gráfica para realizar Man In the Middle mediante la típica técnica de envenenamiento ARP...la cual dispone de payloads tipo fake AP,WPAD hijacking y rogue DHCP...

Básicamente ARP, para los menos iniciados, es el protocolo que se encarga de almacenar/distribuir la configuración de red de las máquinas, estableciendo el pertinente enlace entre la dirección IP y la dirección fisica MAC. Al estilo de DNS, en el que se "parean" direcciones humanas (www.google.es) en IP´s ( 1.2.3.4), ARP hace lo mismo con MAC-IP. Recuerda que según el modelo OSI, cada capa de red se comunica con la misma capa en el equipo destino...
 
En una red de computadores, un pc quiere comunicarse con otro, por ejemplo hacia Internet. Antes tendrá que encaminar sus paquetes hacia la puerta de enlace, el gateway. Cuando se comunica con la ip del gateway debe conocer la dirección física (MAC) del mismo. Para ello realiza peticiones ARP. Aquí es donde entra el pc atacante, inundando la red con mensajes del tipo "Yo soy la dirección MAC del gateway" y así para todos los equipos de la red. De esta manera, el pc que intenta conectarse a Internet enviará el tráfico hacia el atacante. Este intercepta los mensajes, y los reenvía al gateway correcto, para no interferir en la navegación del usuario.
Como podeis ver en la imagen, si lanzamos un tracert para google, para ver por donde pasa, vemos que desde la ip del pc Víctima hacia google, pasa por el equipo atacante, el que ejecuta Subterfuge, en vez de encaminarse directo hacia el Gateway o puerta de enlace ( como decía mi madre, derechico pa casa sin levantar cabeza xD)


Subterfuge es un Framework muy interesante para realizar esta tarea, no por lo novedoso de la técnica, sino por la comodidad de uso, ya que dispone de un entorno gráfico o GUI y es tan sencillo de instalar como un par de clicks.

Básicamente lo que tenemos que hacer es descargar el empaquetado.
Descomprimimos el paquete: tar fvxz SubterfugeRecienBajado.tar.gz        
Nos movemos al directorio y ejecutamos ./install.py -i  


Leyendo los fallos en la web del proyecto aprendo un par de cosas. Que si quieres instalarlo en Backtrack  5r3 te toca pelea con Python, y que en Kali Linux es tan sencillo como os comento, pero el proceso del instalador no hace bien la función exit, por lo que tendrás que liquidar el proceso.
Una vez instalado, basta con ejecutar subterfuge desde la consola y acceder al GUI mediante el navegador en el localhost.

Nos paseamos por las opciones de configuración como siempre recomendamos, y configuramos los parámetros de red, interfaces, tipos de envenenamiento ARP, timeout´s, etc, lo típico. No profundizo porque es really really simple.


Subterfuge utiliza por debajo el famoso SSLstrip, por lo que podemos hacer Man In The Middle en web´s "seguras" pero confiando en la ineptitud del usuario para delimitar que el certificado no es el correcto. Para un uso profesional, evadiendo la seguridad proporcionada por https o el candado, en capa humana, se podría trabajar con la colisión de Hashes para falsificar un certificado legítimo...

Antes de que hagáis polvo la red de vuestro vecino xD comentaros que si estáis interceptando el tráfico de una red, por ejemplo de 10 ordenadores, en la que toda la navegación se va a encaminar por el pc atacante, si encima este pc atacante corre virtualizado sobre un pc con una sola tarjeta, y si encima es un portátil, vas a crear una denegación de servicio ya que no hay mas ancho de banda que el que hay !!!

Los típicos usos que se le pueden dar a esta herramienta son la obtención de credenciales.


Descubrimiento de la red, en busca de equipos. Un dato curioso y agradecido es que podemos hacer un mini port-scan a los equipos conectados desde el GUI. Por debajo corre un Nmap.
Denegación de servicio. Y uno muy simpático, Http Injection.


Esto significa que Subterfuge actuará como WEB proxy infectando el contenido malicioso en el navegador de la víctima.
Subterfuge lo que hace es iniciar una sesión en Metasploit, y lanzar el módulo Browser auto_pwn, un total de 54 exploit´s variopintos, desde los típicos para Java, Iexplorer 6, Flash, Midi etc.
El pc víctima al entrar en cualquier página ejecutará los exploit´s. En el caso de vulnerable a alguno, Subterfuge obtendrá mediante Metasploit nuestra querida Meterpreter.
Todo esto con unos simples clicks !!!.
El resto de opciones que os vais a encontrar no están terminadas, o al menos yo no he conseguido ponerlas en marcha, como por ejemplo Evilgrade para simular actualizaciones de software en el cliente para instalar el backdoor.

Espero que os guste esta sencilla herramienta, y estaremos atentos ante nuevas versiones.

Un saludo, y como siempre, gracias por leerme.

Google +

jueves, 25 de abril de 2013

Tips & Tricks. Crear log de eventos personalizado mediante Powershell.

SIEM, Security Information and Event Management es un termino habitual para los que lidiamos con la seguridad en las empresas.
La gestión de logs en nuestras organizaciones es vital para saber el estado de los sistemas, detectar intentos de intrusión, o a toro pasado, aprender de lo ocurrido en el caso de un desastre.
Con cada evolución de los sistemas operativos, hablo de la Microsoft Family, se han ido ampliando las opciones de monitorización de eventos disponibles.
No solo se puede monitorizar los intentos incorrectos de inicio de sesión, o los correctos, o los accesos a ficheros, o páginas. Es recomendable estudiar un poco en profundidad la granularidad de los logs que nos ofrece el sistema, y recomiendo estudiar la información del fabricante al respecto, para saber que implantar, donde buscar, como gestionar, etc.

Pero no todo es bonito en la casa de Seatlle. Imaginaros el caso de un sencillo script, de los que todos usamos, para conectar una impresora vieja, conectar una carpeta, realizar cualquier proceso interno... Dudo mucho que Windows Server 2012 maneje la información de tus scripts particulares, pero si que no me cabe duda de que tener información sobre la ejecución de estos scripts es algo necesario.

Entonces, de que estas hablando kino? Sencillo, te hablo de crear una categoría de logs para tus aplicaciones, y empieces a recoger evidencias de lo ocurrido en tus sistemas. Como?
Easy baby.


Como puedes apreciar en la imagen, creamos la categoría y la fuente del log.
Esto lo hacemos tantas veces como categorías queramos controlar, pero no en la ejecución del script.

Una vez tenemos nuestra categoría en el visor de sucesos, eventviewer, pasamos a crearnos un script por ejemplo "crea_log_id1.cmd"


Entonces, cuando ejecutamos nuestra tarea, como he dicho una carpeta de red, impresora, proceso de backup, copias automáticas, etc, añadimos nuestro comando. Crear una condición en el script para en el caso de ejecución correcta, lance "crear_log_id1.cmd" y en el caso incorrecto, que lance otro...la imaginación al poder.

Como podéis ver, tenemos nuestro evento o log perfectamente informado y guardado para posteriores auditorías sin meternos mucho en programación.

Seguro que tienes algún software, vertical/erp que te vendieron como que cumplía la LOPD con el tema de los accesos. Ahora, sabiendo lo fácil que es programar una estrategia de gestión de eventos, te basta con una tabla en sql con mil Foreing Keys que solo el desarrollador sabe interpretar?.

Espero que penséis en el asunto de los logs, y establezcáis una política de gestión de los mismos, al menos, tan sencilla como esta.

Otro día seguiremos con el tema de SIEM que tanto NO-nos gusta a los sysadmin.

Gracias por leerme.

Pass The Hash. Visión defensiva.

Pass the Hash...
Como todos sabéis o no... los ataques pass the hash se basan en la utilización de credenciales "ajenas" en servicios que requiere autenticación mediante el hash de la contraseña. Esto que quiere decir? En determinados escenarios es posible obtener el hash de un usuario, que no deja de ser una representación matemática, y anteriormente conocida como "única" ( no hay dos elementos distintos con el mismo hash, algo que ha quedado sobradamente comprobado en varios algoritmos, léase MD5, SHA1 etc.) pero por su complejidad puede que sea inviable "descifrar" la clave en claro. En un formulario de login, como pueda ser el inicio de un sistema operativo, no podemos copiar el hash en el apartado de la clave. Sin embargo, hay servicios de red, como el utilizado para
compartir carpetas en sistemas Win, que si aceptan la "clave" con el formato hash. Otras soluciones intermedias, como el caso de los sistemas Single Sing On ( Un programa que enlaza nuestra clave de facebook, de twitter, de windows, del correo,etc bajo un solo elemento de autenticación, como puede ser una clave, un elemento biométrico, etc) son susceptibles de ser empleadas maliciosamente con el hash de un usuario. La utilización de herramientas de terceros, como PSEXEC.exe integradas en el framework Metasploit también facilitan el trabajo xD.


Es importante mitigar el daño que podría hacer en nuestras organizaciones el uso incorrecto por parte de un atacante de los preciados HASHES del sistema.
Como sabéis, las principales vías de obtención de Hashes de cuentas en sistemas win son la obtención de credenciales en "cache" por los procesos del sistema (Local Security Authority Subsystem LSAS), el famoso fichero SAM y NTDS.DIT. La diferencia de estos dos ficheros es que en el caso de SAM se almacenan las claves en Hash de los usuarios locales, mientras que en NTDS se almacenan
las credenciales de los usuarios del Directorio Activo.

Una medida de protección lógica es implementar una política de contraseñas para usuarios locales. Es decir, que si tenemos nuestra empresa montada con una infraestrucutra de Active Directory, debemos fortificar el acceso local, a la LSD (Local Security Database). En un principio con esta medida implantamos una capa de protección, pero debemos crear un proceso en el que la clave no sea la misma para todos los equipos locales. Crear un algoritmo-casero para la clave, usando por ejemplo el nombre del equipo sería una buena idea. De esta manera aislamos el impacto de un ataque de pass the hash, o simplemente de fuerza bruta en un pc, y no sobre la "granja" de cacharros.

Microsoft clasifica las actividades Post PtHash de dos maneras:
Movimientos laterales, en los que un sistema se ve comprometida, se obtienen las credenciales, y se accede a otro sistema usando las mismas.
Escalada de privilegios. Imaginaros el caso en el que accediendo a un pc de la red, mediante claves locales, accedemos a un servicio de red (LSASS) de Active Directory que tiene en cache los tokens de autenticación del administrador del dominio... La medida general para este caso sería la de no utilizar cuentas privilegiadas del dominio para "arreglar el pc" del señor de marketing...

Mas medidas a tomar en cuenta, generales para cualquier proceso de hardening, y para este en concreto son.

No instalar/correr servicios con cuentas privilegiadas. Por ejemplo, cuando instalamos un programa que se arranca como servicio, sea cual sea, se ejecuta con los privilegios del usuario. Imaginaros un programa cual sea dentro de la empresa, un programa de inventario !!! Si ejecutamos el servicio como usuario SYSTEM, y encontramos una vulnerabilidad en el programa, por ejemplo, que
podemos acceder a una ventana de consola, todo lo ejecutado en esa consola tendrá permisos SYSTEM. Crear un usuario "servic_inventario" para arrancar el servicio, y aplicar los permisos NTFS concretos a la carpeta que necesita el programa, y nada más, solucionaría en parte el problema.
Lo mismo ocurre con las tareas programadas. Esa tarea que habilitamos en el pc del usuario, por ejemplo un backup, en la que introducimos un usuario potente. Imaginaros el hipotético caso de que se presenta un error, y se le devuelve al usuario una ventana del sistema...

En los casos de controladores de dominios, en la instalación de A.Driectory se nos muestra la ruta por defecto de la base de datos de credenciales, pudiendo moverla a una ubicación "escondida" pero esta técnica mas que una solución, es una medida de incordio para el atacante ( quien no sabe buscar un fichero...).

Otra medida interesante podría ser la utilización de un proxy, integrado con el servicio de directorio, para denegar la navegación a todos los usuarios con permisos administrativos del dominio. Squid Proxy nos permite dicha integración sin problemas.

Usar todas las opciones de administración remota que nos aportan los sistemas operativos "modernos" como son win7,8, 2008r2 y 2012 como son WMI que emplean Kerberos como mecanismo de autenticación, sin dejar en cache la clave. Por ejemplo, remote desktop, mmc remota,powershell RM, registro remoto, iis "integrated windows authenticatión" no almacenará en
disco ninguna credencial, pero si en LSASS.exe

Reiniciar los sistemas !!!. He visto servidores Windows, de los que hay que reiniciar los segundos martes de cada mes por las Updates, con un uptime de 2 años... Pero encima, los sysadmin orgullosos de ello !!! panda de... No es ningún delito reinicar un servidor en horas de baja productividad. Para que? pues simplemente para evitar ataques persistentes, en los que el atacante consigue entrar al sistema, pero no consigue habilitar un acceso posterior al reinicio del server. Parece una tontería, pero te puedes quitar varios problemas con una politica de reinicio del servidor.

Deshabilitar el acceso remoto para claves locales del equipo. Si bien esto se efectúa por defecto, revisar esta configuración para no descubrir sorpresas.
Una medida para evitar movimientos laterales es usar las reglas del firewall entre los equipos. Si en teoría tenemos una infraestructura en la que todo se comparte mediante el servidor, no necesitamos comunicación entre los equipos. Por cierto, en win8 y 2012 ya se puede bloquear el tráfico out saliente xD.

Evitar entrar en ciertos pc conflictivos. Imaginaros el caso de un pc aislado de la red, una dmz de pc cliente. Por ejemplo en mi anterior empresa se usaba un pc así con una impresora conectada, para los profesionales externos a la organización que querían acceder a un correo en un sitio no autorizado ( hotmail, gmail, yahoo...) o simplemente conectar un usb. No uses el mismo juego de claves que usas para proteger el sistema de la empresa... Esto es válido para sistemas SCADA, máquinas "antiguas" sin posibilidad de hardening, en fin, ya sabéis de lo que hablo ( creeis que no hay máquinas por el mundo con windows 98?).

Deshabilitar la politica de grupo para los LM Hashes. Esta opción está marcada por defecto a partir de windows 2008 creo recordar, pero en casos en los que se realizó una actualización de un sistema previo 2003, puede que no esté operativa dicha política de grupo.Lo mismo para NTLM, en el caso de no contar con ninguna máquina "antigua" que hago uso de este sistema. Microsoft enfatiza
el uso de tecnologías basadas en tickets Kerberos, aunque estos también se pueden "usar maliciosamente" (Pass the Ticket attack). La manera mas sencilla de realizar esto, al menos para las cuentas sensibles es habilitar la opción " Account is sensitive and cannot be delegated".

Espero que os haya servido un poco este artículo para concienciar en la necesidad de "trabajar" los servidores y recursos de la empresa, y marcaros un punto de inicio en esta labor.

Si queréis profundizar un poco más en los aspectos nombrados en el post, os aconsejo varios recursos. En español teneis el magnifico libro de Sergio de los Santos publicado por Informática 64.
En ingles podéis leer este recurso.

Como siempre, gracias por leerme.






miércoles, 24 de abril de 2013

Tips & Tricks.Borrar/Instalar Gui en Windows server 2012

Que hace un post aquí hablando de Windows Server 2012?
Una de las mejoras que trae el nuevo servidor de los gigantes de Redmon es la posibilidad de prescindir de la herramienta gráfica del servidor, del escritorio, de las ventanas !!!
Que tiene que ver esto con la seguridad?. Sencillo.
Un motivo puede ser el poner más difícil a un atacante el acceso a roles o funciones de un servidor, ya que en ausencia de entorno gráfico, se hace necesario el uso de powershell, tarea algo más complicada que el manejo de ventanas xD.


Imaginaros un escenario en el que varios controladores de dominio o servidores miembro ejecutan varios roles, distribuidos. Imaginaros el caso de un servidor comprometido, en el que nos instalan el role de DHCP, o peor aún, de DNS, y nos inundan la red de información errónea.
Una solución es eliminar el entorno gráfico, y por supuesto, eliminar los paquetes de instalación del mismo, ya que es un proceso que se puede revertir. Al contrario que en la versión pasada de Windows server 2008 r2 en el que se podía realizar una instalación CORE del sistema, sin entorno gráfico, pero sin la posibilidad de instalarlo a posteriori.

Entonces, distinguimos 3 tipos de instalación del servidor 2012:

Core.- sin ventanas, sin acceso gráfico.
Minimal.- sería una instalación gráfica, para poder usar por ejemplo nuestras MMC( Consolas de administración gráficas) pero sin Internet Explorer, Explorador de archivos y ciertas configuración del panel de control relativas a los gráficos.
Gui.- acceso gráfico completo.

Respecto a los paquetes de instalación, podemos distinguir entre tres estados:

Installed.- paquete instalado y disponible para reinstalación.
Staged.- paquete no instalado pero disponible para instalación.
Absent.- paquete no instalado y no disponible para instalación.

En el caso de eliminar un paquete que no usamos, y queramos después instalarlo, podemos usar un fichero de imagen WIM o usar el cómodo servicio Windows Update. Si señores, estamos hablando de instalar componentes de Windows 2012 mediante una actualización...

Vamos a realizar un paso sencillo, después de instalar cómodamente nuestro servidor, probarlo y poner en producción nuestros servicios, pasamos de GUI a Minimal.

Uninstall-WindowsFeature Server-Gui-Mgmt-Infra -Restart


Una vez tenemos una instalación Minimal, vamos a terminar la gracia dejando el servidor en estado Core, sin entorno gráfico, y además vamos a borrar los paquetes para que no puedan reinstalarlo (sin acceso a internet).
Remove-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -Remove -Restart
Con la opción -Remove borramos los paquetes, es decir, los dejamos en estado Absent. Sin -Remove se quedarían en estado Staged.


Ahora tenemos un servidor Windows Server 2012 completamente operativo y administrable sin entorno gráfico, con mucho menos consumo de recursos.
Comprobamos que no tenemos ninguna función denominada GUI con Get-WindowsFeature (hasta aquí listaría todos los roles instalados)*GUI* | select *
Pero que pasa, si no consigues administrar el servidor con Powershell, y te arrepientes de usar la versión Core? no pasa nada, o pagas, o reinstalas el entorno gráfico xD.

Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell -Restart

Volvemos a comprobar los roles instalados, aunque las ventanas del fondo cantan un poco xD.


Como siempre, espero que os guste el artículo, y aunque no sea muy "security" me ha parecido interesante compartir esto con vosotros.






Tips & Tricks. Heart Beat de un servicio en Bash y correo si falla...

Cutre-líneas de código para comprobar si un equipo concreto, y un servicio/puerto concreto está On Line. En caso contrario, manda un correo simple.
Instalamos ssmtp desde un sencillo apt-get.
Configuramos el fichero con los datos de la cuenta de correo tal que así.
Una vez configurado, podemos hacer una prueba tan sencilla como:
ssmtp "correo destino" < fichero con el texto del mail.
ssmtp kinomakino@correocaliente.com < mensaje.

Si lo metemos en un bucle sencillo, tenemos:

while (true); do nc -vv -z 192.168.1.6 135 >/dev/null && echo Todo bien xD; sleep 5 || exec ssmtp kinomakino@hotmail.com < mensaje.txt ; done
Atención con los parámetros.Podemos suprimir el -vv (very verbose). Con -z decimos a Netcat que no envíe nada ( para no generar tráfico de red innecesario). Sleep 5 son los segundos trás cada comprobación.

Comprender que no soy muy programador, y que este sencillo script, aunque se que poco elegante, me sirve para monitorizar un servicio.

Un saludo.

viernes, 19 de abril de 2013

Tips & Tricks. Comandos linux para no caer en la ventanas...

Si eres como yo, que estás constantemente iniciandote en el mundo de Linux xD seguro que te vendrá bien tener a mano la millonesíma "Cheat Sheet" de comandos habituales, incluso imprimirla !!!

DPKGinstall - dpkg -i package.debremove/uninstall - dpkg -r package
List files asscoiated with package -dpkg -L package
Version - dpkg -l package
Unpack A deb - dpkg -unpack package.deb
APT
install - apt-get install <package>
search - apt-cache search <package>
remove - apt-get remove <package>
(When using apt-get to download off the Internet, the .deb files are placed in /var/cache/apt/archives)

Arrow Up: scrolls and edits the command history, press enter to activate.
Shift+pgup: scrolls terminal output up
Shift+pgdown: scrolls terminal output down
CTRL-ALT+DEL reboots the system
Shutdown -h now turns the system off
CTRL C kills the current process
CTRL S Stops the tranfer to the terminal
CTRL Q Resumes the transfer to the terminal
CTRL Z Puts the current process in the background.

Read more: http://javarevisited.blogspot.com/2010/10/basic-networking-commands-in-linuxunix.html#ixzz2QuBL7KL7
Poster: http://www.digilife.be/quickreferences/QRC/The%20One%20Page%20Linux%20Manual.pdf

http://www.tuxfiles.org/linuxhelp/linuxcommands.html
Moving around in the file system
CommandAction
pwd"Print working directory" - show what dir you're in.
lsList the contents of a dir.
ls -lList the contents of a dir and show additional info of the files.
ls -aList all files, including hidden files.
cdChange directory.
cd ..Go to the parent directory.
Examining files
CommandAction
fileDetermine the type of a file.
catConcatenate a file.
lessView text files and paginate them if needed.
Manipulating files and directories
CommandAction
cpCopy a file.
cp -iCopy a file and ask before overwriting.
cp -rCopy a directory with its contents.
mvMove or rename a file.
mv -iMove or rename a file and ask before overwriting.
rmRemove a file.
rm -rRemove a directory with its contents.
rm -iAsk before removing a file. Good to use with the -r option.
mkdirMake a directory.
rmdirRemove an empty directory.

Tips & Tricks. Nmap Timing

Seguro que has visto muchas veces el parámetro -T 5 -T 4 ...en ejemplos de escaneos con Nmap.
Seguro que también has leído muchas veces el factor tiempo a la hora de realizar un escaneo de puertos. La tesitura de lanzar un ataque o port scan ante un sistema, a priori desconocido ( una de las mil razones para realizar correctamente la fase de recopilación de inteligencia de negocio) rápido, para evitar posibles movimientos defensivos de un administrador de sistemas de vacaciones, de fin de semana, o simplemente por la noche. O lanzar un ataque lento para intentar "despistar" al perro guardián y no bloqueé tu ip de por vida, o directamente te mande al policía del anterior artículo xD.

Repasando la documentación oficial de Nmap se me ocurrió escribir estas líneas.
Otro factor muy importante en el asunto del rendimiento y velocidad en los port scans son los time out !!. En laboratorios controlados, en redes locales o redes dedicadas (sin usuarios consumientdo ancho de banda) seguramente los resultados encajen con la realidad, pero en entornos reales, como pueda ser un ataque a una empresa con poco ancho de banda disponible puede que muchas pruebas resuelven con un time out y se descarten.

La velocidad de los escaneos se puede denominar por número o nombre:

-T 0 Paranoid.Envía los paquetes cada 5 minutos, y nunca en paralelo.
-T 1 Sneaky. Envía los paquetes cada 15 segundos y nunca en paralelo.
-T 2 Polite. Envía paquetes cada 0,4 seg y nunca en paralelo.
-T 3 Normal. Se usa por defecto. Envía paquetes en paralelo a multiples puertos/equipos.
-T 4 Aggresive. Escanea el equipo durante 5 minutos. Espera 1,25 seg. la respuesta del equipo, sino la descarta.
-T 5 Insane. Escane cada equipo 75 seg. y espera 0,25 seg. la respuesta del equipos.

Recordar que esto son plantillas predefinidas, y que se puede configurar desde el time out, paralelismo, grupos de equipos, re-intentos etc.
Tomo de ejemplo el -T 4 de la web de Nmap.
max-rtt-timeout 1250ms --initial-rtt-timeout 500ms --max-retries 6

Atentos con los "radares" de velocidad en vuestras fechorias nocturnas xD.

Gracias por leerme.

Tips & Tricks. Positivos, negativos, falsos positivos y autopistas americanas...

Imaginaros la situación. Un policía Norte Americano fachoso recorriendo cualquiera de las numerosas autopistas que cruzan el país. De repente, visualiza a un conductor algo sospechoso...con malas pintas...como podría ser el hermano Rober xD.


Al momento se decide a pararlo, y sin bajar del coche le pide que saca el carnet de conducir y el seguro...
El amigo no duda en sacarse la documentación de la chaqueta. En este momento, el policía que a pesar de su ignorancia general sobre la vida, recuerda lo aprendido en la academia, y ordena rápidamente a Rober a detenerse, ya que podría esconder un arma en la chaqueta.
1.-Un Correcto positivo, o simplemente un positivo sería si encontrase la pistola.
2.-Un Falso positivo sería que el amigo no tuviese nada.
No todos los policías están tan atentos, y no tienen formación o referencias de su trabajo en la calle. No consideran el echo de sacar la documentación de una chaqueta como un acto sospechoso.
3.-Un Correcto negativo sería que el amigo no tuviese un arma.
4.-Un Falso negativo sería que el amigo tuviese una pistola...
En los dos primeros casos, es importante resaltar la formación del policía, en el mundo de la seguridad informática sería la formación del administrador y uso de herramientas de monitorización. IDS es la clave para detectar los ataques. Realmente sería un IDP, ya que no solo detecta el ataque, sino lo para, ya que al inspeccionar una situación, frena el ataque ordenando que se detenga...
Contar que si la formación no es buena, el conocimiento de los tipos de ataques, el número de sospechosos a examinar en profundidad será muy elevado.
En el caso 4 el ataque posiblemente llegaría a buen puerto, pero se podría aprender de lo ocurrido para formar a los agentes a actuar ante ciertas situaciones...

En un test de intrusión clasificar todos los hallazgos que podáis. En una línea de tiempo puede que alguno cambie de "situación" en auditorías periódicas xD.

Ser buenos y no llevéis pistolas en el coche !!!

Espero que os guste este mini artículo ( Tips & Tricks).


martes, 16 de abril de 2013

Tips & Tricks. Comprobar clave smb.

 Script sencillo que comprueba de una lista de palabras (separadas por líneas) la contraseña de una unidad de red SMB concreta de un equipo concreto.

for /f %i in (claves.txt) do @echo %i & @net use \\miaca-PC\c$ %i /u:administrador 2>nul && pause