Está en la página 1de 2

Tshark, Wireshark en línea de comandos. (IV Parte.

) Usando el
lenguaje Lua.
Publicado el 8 mayo, 2008 por Alfon
Seguimos con Tshark. Ahora vamos a ver de forma básica como podemos usar
Tshark con el lenguaje de programación de script Lua invocándolo mediante la
opción -X como una extensión. No trataremos aquí como programa on Lua, más
bien como usar este lenguaje con Tshark.
La sintaxis sería -Xlua_script:nombrefichero.lua
Pero antes que nada. ¿ Que es Lua ?.

Lua es un lenguage de programación extensible diseñado para una programación


procedimental general con utilidades para la descripción de datos. También ofrece
un buen soporte para la programación orientada a objetos, programación funcional
y programación orientada a datos. Se pretende que Lua sea usado como un
lenguaje de script potente y ligero para cualquier programa que lo necesite. Es un
lenguaje embebido en una aplicación. A parte de Tshark y Wireshark, también lo
usará Snort en la proxima generación de este IDS, la V 3.0 de la que hablaremos en
otro post.
Es decir, que a la ya potente herramienta de captura y análisis de paquetes Tshark
podemos añadir la todo el potencial de un lenguaje de programación para extraer
todos los datos que necesitemos.
Comenzando con Lua
Antes que nada, para usar Lua tenemos que editar el fichero lua.ini que se
encuentra en:
C:\Archivos de programa\Wireshark
En este archivo se encuentra la siguiente línea:

disable_lua = true; do return end;


y la cambiamos por:

disable_lua = false; do return end;


Salvamos y listo.

Como ya hemos dicho, la sintáxis para usar un script de Lua es:


-Xlua_script:nombrefichero.lua
Vamos entonces a crear nuestreo primer ejemplo.
-- Hola.lua -- Mi primer ejemplo programa con Lua
print("Hola mundo!")
Lo llamaremos hola.lua y lo invocamos desde Tshark:

Otro ejemplo. Un contador de paquetes atendiendo a un determinado host.


Lo llamaremos contador.lua.
do
packets = 0;
local function init_listener()
local tap = Listener.new(“frame”,”ip.addr == 192.168.1.30″)
function tap.reset()
packets = 0;
end
function tap.packet(pinfo,tvb,ip)
packets = packets + 1
end
function tap.draw()
print(“Paquetes desde/hacia 192.168.1.30”,packets)
end
end
init_listener()
end
Cambiamos o personalizamos la IP y salvamos y ejecutamos:

Con Lua podemos complicar todo lo que queramos y crear programas completos.
Información sobre el API Wireshark para Lua:
http://www.wireshark.org/docs/wsug_html_chunked/wsluarm_modules.html

También podría gustarte