2010-01-04 14 views
6

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:

  1. http://www.cs.wright.edu/~pmateti/InternetSecurity/Lectures/Probing/index.html^PPT Presentation^
  2. http://www.auditmypc.com/freescan/readingroom/port_scanning.asp
  3. (de edad) Nmap - El arte de escaneo de puertos: http://nmap.org/nmap_doc.html
  4. Técnicas de escaneo de puertos: http://nmap.org/book/man-port-scanning-techniques.html
  5. 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:

  1. TCP Connect() Scan
  2. TCP SYN Scan
  3. TCP FIN Scan
  4. TCP NAVIDAD Scan
  5. TCP NULL Scan
  6. TCP ventana de exploración
  7. 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?

+0

Me intriga ver cómo sale esto, si la fuente debe estar disponible. –

Respuesta

1

Deberá tener un controlador (NDIS) o algo así para acceder a los paquetes sin procesar. Es posible que también necesite usar Native Win32 API y usar P/Invoke.

aquí hay algo para ayudar: http://www.codeproject.com/KB/IP/sendrawpacket.aspx

+0

El controlador más comúnmente utilizado para el acceso de paquetes de nivel inferior viene con WinPcap. –

2

Esto parecía una buena envoltura alrededor de la gran biblioteca WinPCap cuando lo usé hace mucho tiempo:

http://sourceforge.net/projects/sharppcap/

Estoy seguro de que es mejor ahora.

+0

Es mucho mejor ahora. Finalmente, la API llegó a su madurez, por lo que sus métodos están prácticamente inamovibles y el análisis se trasladó de SharpPcap al proyecto Packet.Net. Es mucho más fácil de usar ahora de lo que era antes. –

Cuestiones relacionadas