Hacking Tools: Introducción a scripting con Python


Con este post doy inicio al blog, si bien es un blog de seguridad informática, quiero comenzar con algo básico, y tiene que ver con la creación de nuestras propias herramientas de análisis de vulnerabilidades. He elegido el lenguaje Python por su simpleza y por su fácil lectura y comprensión, pero claramente puedes utilizar cualquier otro.

No me detendré en los pasos para instalar Python en tu equipo, en Google hay suficiente información, por lo tanto asumiré que en tu computador ya está correctamente instalado y configurado.

Comenzamos con el clásico "hola mundo", así de simple:
print "hola mundo"
Lo guardamos como "scan.py" y ejecutamos
> python scan.py
La salida en pantalla será
> hola mundo
Si aparece algun error, puede ser que falte dar los permisos de ejecución al archivo, esto lo hacemos con el siguiente comando
> chmod 755 scan.py
Ahora, un detalle, si no queremos anteponer el comando "python" para ejecutar, agregamos la siguiente linea al inicio de nuestro script "#! /usr/bin/python", quedando así:
#! /usr/bin/python
print "hola mundo"
Guardamos y ejecutamos, pero ahora anteponiendo punto slash (./)...
> ./scan.py
> hola mundo
En la mayoría de los lenguajes un salto de línea en una cadena de texto o string es con "\n", en Python igual, pero existe una forma más simple y es escribiendo con triple comilla doble, así...
#! /usr/bin/python
print """
Mi primera herramienta 1.0
modo de uso: scan.py -u URL
"""
#comentario: las líneas dentro de las tres comillas se interpretan
#incluyendo los saltos de línea
Ahora debemos capturar los parámetros y opciones que nos enviará el usuario a través de la línea de comandos. Para esto usaremos la librería optparse de la siguiente manera
#! /usr/bin/python

import optparse

print """
Mi primera herramienta 1.0
modo de uso: scan.py -u URL
"""

#comentario: las líneas dentro de las tres comillas se interpretan
#incluyendo los saltos de línea

Una vez que tenemos la línea "import optparse" podemos comenzar a usar sus funciones. Crearemos una variable parser utilizando la funcion OptionParser y luego usando la misma variable añadiremos una opción, en este caso, la opción "URL", que será nuestro sitio web objetivo.
#! /usr/bin/python

import optparse

print """
Mi primera herramienta 1.0
modo de uso: scan.py -u URL
"""

#comentario: las líneas dentro de las tres comillas se interpretan
#incluyendo los saltos de línea


parser = optparse.OptionParser()

parser.add_option('-u', '--url', dest="url", help="Direccion del sitio web a escanear")

Lo que en mi opinión me gusta de OptionParse, es que implementa el parametro "-h" de ayuda y la impresión de los comandos que tú creas automáticamente, es decir, con esas líneas que incorporamos ya se puede hacer un "./scan.py -h" y la salida tendrá la ayuda incluyendo tus parámetros.
Ahora agregaremos la línea que toma los datos del usuario y los asigna a una variable, en este caso, se asignará a la variable "options".
#! /usr/bin/python

import optparse

print """
Mi primera herramienta 1.0
modo de uso: scan.py -u URL
"""

#comentario: las líneas dentro de las tres comillas se interpretan
#incluyendo los saltos de línea


parser = optparse.OptionParser()

parser.add_option('-u', '--url', dest="url", help="Direccion del sitio web a escanear")

options = parser.parse_args()

print options.url
Con esto, tenemos lo básico de toda herramienta de análisis, el título de este artículo lo dice, es sólo una introducción, ahora falta desarrollar y escribir el código que hará el análisis, eso lo dejaremos para otro post.
Saludos

Comentarios

Entradas populares de este blog

Desempaquetando Themida 2 (unpacking windows binary) - Análisis de Malware

Ocultando la web shell como una imagen (Apache + PHP)

Evasión de antivirus modernos usando Process Injection - MITRE T1055