domingo, 29 de abril de 2012

Aprendiendo python

Pues ahora que recién estrené mi condición de parado, y por tanto con algo más de tiempo al menos hasta que decida que ponerme a estudiar, cualquier excusa es buena para pasar un rato entretenido. Y en este caso la excusa la encontré en el siguiente enlace: "From ZeroAccess to 256 IPs in 0.2 Seconds".

El investigador describe en dicho artículo como traza de una infección del rootkit ZeroAccess la existencia, entre otros, de un fichero @ en el directorio del usuario del sistema conteniendo un listado de 256 IPs componentes de la botnet, pero almacenadas en formato hexadecimal.

Para ahorrarse la tediosa tarea de convertir manualmente el fichero, el autor adjunta un script en python obviamente desarrollado con el único fín de tener algo funcional y además tenerlo ya. Pero yo como tengo más tiempo, me interesa mucho aprender python y me gustan las cosas bonitas lo he reescrito (con la supervisión de mi profe de Linux hilario) y me ha quedado tal que así:


#!/usr/local/bin/python

def getOctet(byte):
""" Devuelve un octecto de una IP a partir de un byte en hex """
return repr(int(ord(byte)))

def main():
""" Funcion principal """
peers = open('@','rb')
outlist = open('@.output.txt','w')

for x in range(256):
IP = '.'.join([getOctet(peers.read(1)) for n in range(1,5)])
outlist.write(IP + '\n')
peers.seek(4,1)

outlist.close()

if __name__ == "__main__":

main()


A ver si vuelvo a sacar más tiempo y escribo algo con más miga.

1 comentario:

El Juzgon dijo...

Hola Neofito, esta muy bueno tu artículo, fijate que me gusta eliminar malware de equipos infectados y recien comienzo a adentrarme a Python tmb, me gustaria estar en contacto contigo para aprender man, saludos que estes bien