Reading time: 6 – 10 minutes
CASL és un llenguatge de programació d’xploits i altres proves
de seguretat similiars…
Roses Labs En exclusiva para Canal #Networking IRC by Conde Vampiro
————————– ||Lenguajes de Seguridad||
————————– CASL —- CASL (Common Attack Script Language) fue
diseñado con el proposito de proporcionar una poderosa herramienta al
ejercito de los EE.UU. Logicamente este era un proyecto secreto, por lo que
practicamente no ahi ninguna informacion sobre CASL en Internet. Quiero dejar
claro que ni yo ni nadie de los Roses Labs a sido el creador de CASL, nosotros
simplemente hemos realizado una libreria para mejorar el lenguage en si,
aportando mas funciones y hemos realizado numerosos ejemplos en CASL. CASL
salio a la luz a principios de 1998, cuando los propios creadores de CASL,
sacaron su obra maestra, un documento de obligada lectura titulado: “Insertion,
Evasion, and Denial of Service: Eluding Network Intrusion Detection” por Thomas
H. Ptacek y Timothy N. Newsham. En este documento se uso CASL para realizar las
pruebas a los distintos NIDS (Network Intrusion Detection System) evaluados. EL
cual esta disponible en
http://www.nai.com/services/support/whitepapers/security/IDSpaper.pdf CASL es
un producto que pertenece a NAI (Network Associates, Inc. http://www.nai.com)
que forma parte de su scanner de vulnerabilidades CyberCop. Posiblemente la
mejor herramienta comercial que he conocido. Y sobre mediados de 1999 NAI
decidio crear un interprete CASL independiente para Linux sin necesidad de
tener que utilizar CyberCop. Lo bueno de usar este potente lenguaje, es que nos
permite crear programas en poco minutos para comprobar la (in)seguridad de una
red o sistema. Ya que CASL es un lenguaje de bajo nivel, en el sentido que solo
nos enfocamos en lo que nos interesa sin tener que preocuparnos por
abrir/cerrar socket, etc.. todo ello se encarga el interprete CASL. Nosotros
solo vamos a por lo que nos interesa 🙂 Esto es una enorme ventaja ya que
podemos escribir potentes programas en muy pocas lineas de codigo, ademas es un
lenguaje muy facil de aprender si contamos con ciertas nociones de C y TCP/IP.
CASL utiliza TCP/IP, UDP e ICMP. Podemos escribir programas para: – Testear un
NIDS. – Firewall virtual – Scanners – DoS (Denegacion de Servicio) – sniffers
NASL —- NASL (Nessus Attack Scripting Language) es un lenguaje que forma
parte del scanner de vulnerabilidades Nessus (http://www.nessus.org). Nessus es
un scanner en modo cliente/servidor. Es La herramienta por excelencia en el
mundo del software libre 🙂 Aunque tecnicamente no es un herramienta bien
diseñada aunque sirve bien sus propositos. Mediante el uso de NASL
podemos crear Tests de Seguridad (“Security Test codes”) en poco tiempo.
Podriamos decir que cuando aparece un nuevo fallo podemos en menos de una hora
crear un Test de Seguridad para detectar el fallo. Ahi que tener en cuenta que
solo podemos utilizar NASL mediante el uso de Nessus, y el servidor solo corre
actualmente en sistemas *nix, pero existen clientes tanto para Linux como
Windows. Entre todos los lenguajes que voy a comentar, NASL es el unico que
utiliza una plantilla que estamos obligados a cumplir si queremos escribir un
Test de Seguridad para Nessus. Este plantilla esta divida en dos partes: 1-
“(description)” Aqui pondriamos todo la informacion referente al fallo (Autor,
Problema, Solucion, Plataforma, tipo de fallo, , familia, Idioma, etc..) 2- En
esta parte ya seria el codigo para detectar el fallo en si. Nessus divide su
deteccion de fallos en familias, las cuales serian las siguientes: – Gain a
shell remotely – CGI abuses – Backdoors – Remote file access – Denial of
Service – Useless services – NIS – Finger abuses – Firewalls – Misc. – FTP –
Gain root remotely – SMTP problems – Port scanners – RPC Podemos ver que Nessus
tiene muchas familias. Si solamemnte utilizamos los Test de Seguridad que
incorpora Nessus, podemos detectar unos 280 fallos aproximadamente para
sistemas *nix o Windows. ELZA —- Elza es un lenguaje de script
diseñado para analizar servidores web, el cual nos puede ser de gran
ayuda. Esta escrito en Perl y su lenguaje por tanto es parecido al Perl.
Podemos utilizar Elza tanto en *nix o Windows. Podemos encontrar el interprete
Elza en http://phiphi.hypermart.net Mediante el uso de Elza podemos: – Examinar
el contenido de un website (Su codigo HTML). – Robar formularios (Hijacking). –
Utilizar Elza bajo SSL. – Lanzar Ataques de Fuerza bruta – Automatizar el
relleno de formularios. – Detectar CGIs. – Evaluar ataques NIDS bajo HTTP. –
Utilizar proxys – Rotar proxys o webs. Elza nos permite usar sus script
remotamente como si fueran CGI y/o desde una pagima web. Esto es una gran
ventaja ya que podemos poner nuestros scripts en una maquina y utilizarlos
desde otra 🙂 SuperCACLS ———- SuperCACLS es una interesante herramienta
para sistemas Windows NT, este lenguaje basado en script “.bat” (de toda la
vida 🙂 puede sernos muy util para comprobar la seguridad de un sistema NT o
una red NT. Este conjunto de utilidades es un producto comercial de Trusted
Systems Services, Inc. (http://www.trustedsystems.com). Tendremos control total
sobre las ACL (Access Control List). Esta diseñado para integrarse sin
problemas en NT y requiere poco aprendizaje por parte del experto en seguridad
🙂 Mediante el uso de SuperCACLS podemos: – Buscar/Borrar/Cambiar permisos en
ficheros o usuarios. – Buscar/Borrar registros – Tanto local como remotamente.
Como he dicho antes, SuperCACLS esta formado por un conjunto de programas, que
son los siguientes: – PRACL = Nos muestra el ACL en el mismo formato que el NT
ACL Manager. – REACL = Para modificar las ACL. (directorios, usuarios, grupos.)
– MODACL = Modifica, remueve o añade ACL individuales. – TAKEOWN = Para
tomar el control de un objeto, o a nosotros el control total 🙂 – RENAMEACL =
Cambia todas las ocurencias de un usuario o grupo de una ACL a otra. Como
podemos apreciar es una herramienta interesante si trabajamos en sistemas NT,
ya que podemos analizar todo el registro en busca de registros
“extraños”, usuarios sospechosos, etc. AdvancedChecker —————
AdvancedChecker es otro producto comercial de Trusted Systems Services, Inc.
(http://www.trustedsystems.com). Es un poderoso lenguaje de script que nos
permite comprobar la seguridad de nuestra red NT o de nuestros IDS inclusos. Es
una formidable herramienta tanto para expertos en seguridad o administradores
en entornos NT. Este herramienta ya requiere un cierto aprendizaje pero es
facil 🙂 Mediante AdvancedChecker podemos: – Comprobar/establecer las
politicas. – Revisar las ACL. – Revisar los Logs. – Modificar el Registro. –
Firmar los ficheros. – Enviar mail si detectamos anomalias. – Comprobrar los
passwords. Utilizando AdvancedChecker podremos comprobar la seguridad de
nuestro sistema NT, de forma rapida y eficaz. ——————— ||Discusion
General|| ——————— Cuando vamos a escribir codigo para probar una
teoria o simplemente para detectar un fallo, debemos tener cuidado con lo que
hacemos. Por ejemplo, hace unos meses salio un adv por parte de ADM sobre
varios fallos en el Bind, posiblemente uno de los fallos mas importante para
pasar al 2000. Si escribimos codigo para detectar este fallo, no podemos
escribir un programa que lo explote, ya que si lo hicieramos nuestro scanner no
podria continuar con el analisis, por ello los scanners de vulnerabilidades
simplemente detectan la version. No siempre nos interesa explotar el fallo 🙂
Si utilizamos CASL debemos tener precaucion, ya que podemos inflinjir
daños en la red que queremos analizar y no creo que a los
administradores les vaya a gustar, sobre todo si es un sistema de produccion.
Al escribir Tests de Seguridad para Nessus, debemos hacerlo en NASL
logicamente. Pero debemos prestar mucha atencion con lo que hacemos ya que el
interprete NASL no detecta si nos hemos equivocado al escribir el Test de
Seguridad. Esto puede ser frustante a la hora de buscar nuestro fallo y ademas
puede causar que el servidor Nessus pete!!! Existen mas lenguajes enfocados en
la seguridad, que pueden sernos de gran interes, los cuales son parte de
conocidas herramientas de seguridad. – Packet Shell, es un lenguaje parecido a
CASL para entornos solaris, disponible en http://playground.sun.com/ – N-Code
es un potente lenguaje del conocido NIDS NFR (http://www.nfr.net). NFR es uno
de los NIDS comerciales por excelencia, para entornos Linux. NFR es un potente
sniffer programable mediante el uso de N-Code. – POST Platform for Open
Security Testing (POST) es un lenguaje parecido a Perl para escribir Test de
Seguridad para el scanner de vulnerabilidades de la casa WebTrends, conocido
como WebTrends Security Analyzer, disponible en
http://www.webtrends.com/default.htm ———————— Conde Vampiro
Roses Labs / w00w00 http://www.roses-labs.com Advanced Security Research.