—¿Que sabes de este asunto?— pregunto el Rey a Alicia.
—Nada— dijo Alicia.
—¿Absolutamente nada?— insistio el Rey.
—Absolutamente nada— dijo Alicia.
—Esto es importante— dijo el Rey, volviendose hacia los jurados.
Lewis Carroll, Alicia en el pais de las maravillas.
Fragmentos como este me encontraba en cada capítulo del libro “Introducción a la Programacion en python” de la Universitat Jaume I, fue con el libro que primero me topé cuando quise saber de Python. Si me preguntan que pienso de Python, diria que tiene personalidad, es elegante, es de esos lenguajes que uno quisiera aprender a escribir. Y si me preguntan que sé de este asunto, como Alicia, respondería -Nada-.
Lo seguro, son las ganas que uno puede llegar a tener por dominar este lenguaje.
Scapy
Seguramente si se leen cosas como esta: “Scapy is a Python program that enables you to forge, dissect, emit or sniff network packets, probe, scan or attack networks.”, uno pensaria que es una herramienta que no se deberia dejar pasar por alto.
paquete en debian: apt-get install python-scapy o del sitio oficial http://www.secdev.org/projects/scapy/
Impacket
Es una coleccion de clases que proporcionan acceso a los paquetes de red, permitiendo trabajar y decodificar dichos paquetes de una manera simple y consistente.
paquete en debian: apt-get install python-impacket python-pcapy o del sitio oficial http://oss.coresecurity.com/projects/impacket.html
#!/usr/bin/env python
#[mirphak.j@gmail.com]
#
#
#
import sys
from impacket import smb
from scapy import sr,IP,TCP
class Scancan:
def __init__(self, rango):
self.rango= rango
def scan(self):
res, unans = sr (IP(dst=self.rango)/TCP(dport=139),timeout=3)
if res:
print "ok\n\n"
for r,s in res:
print "Carpetas Habilitadas para: %s"%r.dst
try:
mrSmb= smb.SMB ('*SMBSERVER','%s'%r.dst)
mrSmb.login('','')
for share in mrSmb.list_shared():
print "---| %s"%share.get_name()
except:
print 'Acceso denegado'
else:
print "No contestaron."
if __name__ == "__main__":
try:
rang=sys.argv[1]
scan= Scancan(rang)
scan.scan()
except:
print "ej: python scan.py 192.168.2.0/24"
Mirando un poco el código:
Con lo anterior lo que hacemos es “escanear” las máquinas de una red por ejemplo 192.168.2.0/24, buscando que tengan abierto el puerto 139, si es así , trata que crear una sesion nula y nos muestra el resultado.
- Scapy
res, unans = sr (IP(dst=self.rango)/TCP(dport=139),timeout=3) = Miramos si el puerto 139 esta open en la máquina actual, con un tiempo de respuesta de 3 segundos
- Impacket
mrSmb.login(”,”) = Sesiones Nulas 1 2
print “—| %s”%share.get_name() = Nos muesta las carpetas, impresoras compartidas
Como dice el título, la idea es conocer más detalladamente estas herramientas en próximas entradas, diferencias, bondades. etc.
Más implementaciones:
En RincónInformático ya se ha escrito sobre Scapy (Laboratorio DoS)
Aquí un artículo (Envenenamiento ARP) también con Scapy