mIRC32 - Ejemplos ya programados: Scan de rango de puertos. Fecha creación: 16/12/99 - Última revisión: 16/12/99
 
; ###########################
; 
;       Rang Scan v1.0
;      By [SaRRiO] 1999
;     sarrio@univers.org
;  http://sarrio.univers.org
;
; ###########################


; para empezar el scan de puertos usa: /inci   
; NOTA: me olvide de añadir una forma para detener el scan xD si eres listo sabras detenerlo :P

alias inci {
  inciventana
  %puerto.iphost = $1
  %puerto.inicial = $2
  %puerto.final = $3
  %puerto.actual = $calc($2 - 1)
  inciscan $parms
  .timerinciconta 0 1 inciconta 
}

; esto cuenta el tiempo que tarda en escanear todo el rango de puertos

alias inciconta {
  inc %puerto.timer 1
}

; esto abre los sockets y tal...

alias inciscan {
  inc %puerto.actual 1
  if (%puerto.actual <= %puerto.final) { .timer $+ %port.actual -m 1 1 inciscan $parms 
    sockopen rangscan $+ %puerto.actual %puerto.iphost %puerto.actual 
    titlebar @Rang Scan - ( %puerto.actual / %puerto.final )
  }
  else {  return }
}

alias inciscan1 { inciscan $parms }

; comprueba si el puerto esta abierto o cerrado

on 1:SOCKOPEN:rangscan*:{
  puertokees $sock($sockname,1).port
  If ($sockerr > 0) {
    if ($sock($sockname,1).port != %puerto.final) { return }
    else goto loop
  }
  inc %puerto.abierto 1
  aline @rang 4 %puerto.abierto $+ .3 $sock($sockname,1).port 6 $+ %puerto.ke.es
  : loop
  if ($sock($sockname,1).port == %puerto.final) {
    .timerinciconta off
    aline 2 @Rang 15.
    aline 2 @Rang --------------------------------------------   
    aline @rang  2FIN DEL SCAN (12 $+ %puerto.iphost $+ 2)
    aline @rang  2Total de puertos abiertos:12 %puerto.abierto
    aline @rang  2Duración scan:12 $duration(%puerto.timer)

    aline 2 @Rang --------------------------------------------
    aline 2 @Rang 15.
    unset %puerto.abierto %puerto.timer

  }
  sockclose $sockname
  unset %puerto.ke.es
}

; crea la ventana donde apareceran los resultados del scan de puertos abiertos

alias inciventana {
  close -c@ @Rang
  window -akl +fbn @Rang 500 100 300 300 
  titlebar @Rang Scan
  aline 2 @Rang --------------------------------------------
  aline 12 @Rang     ESCANEANDO PUERTOS ABIERTOS
  aline 2 @Rang --------------------------------------------
  aline 2 @Rang 15.
}

; como hay gente que no sabe para que sirve cada puerto, esto los identifica 
; y le pone un nombre al puerto para que el usuario final pueda resultarle más fácil reconocerlo.

alias puertokees {
  if ($1 == 23) set %puerto.ke.es Telnet
  elseif ($1 == 21) set %puerto.ke.es FTP
  elseif ($1 == 80) set %puerto.ke.es HTTP
  elseif ($1 == 6667) set %puerto.ke.es IRC Server
  elseif ($1 == 113) set %puerto.ke.es Identd
  elseif ($1 == 59) set %puerto.ke.es DCC IP
  elseif ($1 == 8080) set %puerto.ke.es Proxy HTTP
  elseif ($1 == 110) set %puerto.ke.es POP3
  elseif ($1 == 25) set %puerto.ke.es SMTP
  elseif ($1 == 119) set %puerto.ke.es News
  elseif ($1 == 135) set %puerto.ke.es Win NT
  elseif ($1 == 139) set %puerto.ke.es NetBios
  elseif ($1 == 53) set %puerto.ke.es DNS
  elseif ($1 == 79) set %puerto.ke.es Finger
  elseif ($1 == 98) set %puerto.ke.es LinuxConf
  elseif ($1 == 1080) set %puerto.ke.es WinGate
  elseif ($1 == 12345) set %puerto.ke.es NetBus
  elseif ($1 == 20034) set %puerto.ke.es NetBus 2
  else set %puerto.ke.es DESCONOCIDO

  if (%puerto.ke.es != $null) set %puerto.ke.es ( $+ %puerto.ke.es $+ )
}

; este scan de puertos es sencillito, podria mejorarse mucho más...
; si quereis copiar este script, por favor mandame un mail comunicandomelo,
; no pondre ninguna pega si me mencionas en los créditos y me avisas.
 Volver a la página principal