Estoy intentando escribir un escaner de puerto en C#. Hice algunas investigaciones sobre los métodos de escaneo de puertos.Implementando todas las técnicas de escaneo de puertos en C#/Creando paquetes sin formato de bajo nivel en C#
Si usted está interesado, estos son los enlaces que he encontrado útil:
- http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Probing/index.html^PPT Presentation^
- http://www.auditmypc.com/freescan/readingroom/port_scanning.asp
- (de edad) Nmap - El arte de escaneo de puertos: http://nmap.org/nmap_doc.html
- Técnicas de escaneo de puertos: http://nmap.org/book/man-port-scanning-techniques.html
- escaneo de puertos Ejemplo Interactivo: http://www.osischool.com/concept/communication/port-scanning
Llegando a mi pregunta. Estos son los métodos de escaneo de puertos:
- TCP Connect() Scan
- TCP SYN Scan
- TCP FIN Scan
- TCP NAVIDAD Scan
- TCP NULL Scan
- TCP ventana de exploración
- Escaneo UDP
Pero solo implementé TCP Connect() Scan
(se muestra here). Pero esto es muy lento (tomando> 0.5seg para probar cada puerto). Para implementar el resto de los métodos, necesito el acceso a nivel de paquete. Necesito crear paquetes sin procesar. ¿Es posible hacer eso en C#? Si es así, ¿cómo hacer eso?
Me intriga ver cómo sale esto, si la fuente debe estar disponible. –