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