From: Hadoms _ <had...@ho...> - 2001-11-28 05:31:21
|
Salut, pour m'amuser j'Ai créé un petit scanneur de ports en perl... Puisque je ne suis pas un pro, je vais donner le source et je voudrais savoir si 1) c'est bien fait 2) Comment aurais-je pu le faire mieux ?? 3) Comment peut-on l'améliorer... Je crois que si des pros s'expriment à ce sujet ca pourrait être bénéfique pour tous......... Aussi, je voudrais savoir si c'est possible de le transformer pour qu'il puisse aussi reconnaitre l'OS scanné (et si possible comment) Merci Hadoms -----------------------------------------start here------- Voila le src : #!/usr/bin/perl -w ########################################## # HSCAN __ Scanneur de ports par Hadoms ## ########################################## use strict; use Socket; ########################################## my ($remote,$port, $iaddr, $paddr, $proto, $i,$r,$resultat,$max,$min,$log); ########################################## print "\n\n"; print "HSCAN __ Codé par Hadoms"; print "\n\n"; print "Veuillez rentrer l'hote ou l'adresse IP a scanner :\n"; $remote = <STDIN>; chop($remote); print "Veuillez rentrer le premier port a scanner :[par défaut 1]\n"; $i = <STDIN>; chop($i); print "Veuillez rentrer le dernier port a scanner :[par défaut 100]\n"; $max = <STDIN>; chop($max); ########################################## #MODULE DE LOG ########################### print "Voulez vous logguez les resultats ?? (o - n)[oui par défaut]\n"; $log = <STDIN>; chop($log); if ($log eq "o") {} if ($log eq "n") {} if ($log eq "") { $log = "o"; } else { print "Entree non valide...Les resultats seront donc loggues !\n"; $log = "o"; } if ($log eq "o") { print "Les resultats seront loggues dans le fichier : $remote.hscan \n"; open (LOG_FILE,">$remote".".hscan"); print LOG_FILE "HSCAN : Scan du serveur $remote entre les ports $min et $max\n---\n\nResultats:\n\n"; } ########################################## if ($i eq ""){ $i = 0; } if ($max eq ""){ $max = 100; } if ($remote eq ""){ print "Erreur - Vous n'avez pas entre de hostname ou d'Adresse IP !!"; exit(0); } $r = 0; $min = $i; ########################################## print "\n\nScan en cours :\n"; while ($i <= $max) { $port = $i; if ($port =~ /\D/) { $port = getservbyname($port, 'tcp') } die "No port" unless $port; $iaddr = inet_aton($remote) || die "no host: $remote"; $paddr = sockaddr_in($port, $iaddr); $proto = getprotobyname('tcp'); socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; if (!connect(SOCK, $paddr)) { print "."; } else { $r = 1; $resultat = $resultat . "\nPort $port"; if ($port eq "1") { $resultat = $resultat . " -> tcpmux\n"; } if ($port eq "2") { $resultat = $resultat . " -> compressnet\n"; } if ($port eq "3") { $resultat = $resultat . " -> compressnet\n"; } if ($port eq "5") { $resultat = $resultat . " -> Remote Job Entry\n"; } if ($port eq "7") { $resultat = $resultat . " -> echo\n"; } if ($port eq "9") { $resultat = $resultat . " -> discard\n"; } if ($port eq "11") { $resultat = $resultat . " -> systat\n"; } if ($port eq "13") { $resultat = $resultat . " -> daytime\n"; } if ($port eq "15") { $resultat = $resultat . " -> netstat\n"; } if ($port eq "17") { $resultat = $resultat . " -> qotd\n"; } if ($port eq "18") { $resultat = $resultat . " -> msp\n"; } if ($port eq "19") { $resultat = $resultat . " -> chargen\n"; } if ($port eq "20") { $resultat = $resultat . " -> ftp-data\n"; } if ($port eq "21") { $resultat = $resultat . " -> ftp\n"; } if ($port eq "22") { $resultat = $resultat . " -> ssh\n"; } if ($port eq "23") { $resultat = $resultat . " -> telnet\n"; } if ($port eq "25") { $resultat = $resultat . " -> smtp\n"; } if ($port eq "27") { $resultat = $resultat . " -> nsw-fe\n"; } if ($port eq "29") { $resultat = $resultat . " -> msg-icp\n"; } if ($port eq "31") { $resultat = $resultat . " -> msg-auth\n"; } if ($port eq "33") { $resultat = $resultat . " -> dsp"; } if ($port eq "37") { $resultat = $resultat . " -> time\n"; } if ($port eq "38") { $resultat = $resultat . " -> rap\n"; } if ($port eq "39") { $resultat = $resultat . " -> rlp\n"; } if ($port eq "42") { $resultat = $resultat . " -> nameserver\n"; } if ($port eq "41") { $resultat = $resultat . " -> graphics\n"; } if ($port eq "42") { $resultat = $resultat . " -> name/nameserver\n"; } if ($port eq "43") { $resultat = $resultat . " -> whois\n"; } if ($port eq "44") { $resultat = $resultat . " -> mpm-flags\n"; } if ($port eq "45") { $resultat = $resultat . " -> mpm\n"; } if ($port eq "46") { $resultat = $resultat . " -> mpm-snd\n"; } if ($port eq "47") { $resultat = $resultat . " -> ni-ftp\n"; } if ($port eq "48") { $resultat = $resultat . " -> auditd\n"; } if ($port eq "49") { $resultat = $resultat . " -> tacacs\n"; } if ($port eq "50") { $resultat = $resultat . " -> re-mail-ck\n"; } if ($port eq "51") { $resultat = $resultat . " -> la-maint\n"; } if ($port eq "52") { $resultat = $resultat . " -> xns-time\n"; } if ($port eq "53") { $resultat = $resultat . " -> domain\n"; } if ($port eq "54") { $resultat = $resultat . " -> xns-ch\n"; } if ($port eq "55") { $resultat = $resultat . " -> isi-gl\n"; } if ($port eq "56") { $resultat = $resultat . " -> xns-auth\n"; } if ($port eq "57") { $resultat = $resultat . " -> mtp\n"; } if ($port eq "58") { $resultat = $resultat . " -> xns-mail\n"; } if ($port eq "61") { $resultat = $resultat . " -> ni-mail\n"; } if ($port eq "62") { $resultat = $resultat . " -> acas\n"; } if ($port eq "63") { $resultat = $resultat . " -> whois..\n"; } if ($port eq "64") { $resultat = $resultat . " -> covia\n"; } if ($port eq "65") { $resultat = $resultat . " -> tacacs-ds\n"; } if ($port eq "66") { $resultat = $resultat . " -> gl*net\n"; } if ($port eq "67") { $resultat = $resultat . " -> bootps\n"; } if ($port eq "68") { $resultat = $resultat . " -> bootpc\n"; } if ($port eq "69") { $resultat = $resultat . " -> tftp\n"; } if ($port eq "70") { $resultat = $resultat . " -> gopher\n"; } if ($port eq "71") { $resultat = $resultat . " -> netrjs-1\n"; } if ($port eq "72") { $resultat = $resultat . " -> netrjs-2\n"; } if ($port eq "73") { $resultat = $resultat . " -> netrjs-3\n"; } if ($port eq "74") { $resultat = $resultat . " -> netrjs-4\n"; } if ($port eq "76") { $resultat = $resultat . " -> deos\n"; } if ($port eq "77") { $resultat = $resultat . " -> rje\n"; } if ($port eq "78") { $resultat = $resultat . " -> vettcp\n"; } if ($port eq "79") { $resultat = $resultat . " -> finger\n"; } if ($port eq "80") { $resultat = $resultat . " -> www\n"; } if ($port eq "81") { $resultat = $resultat . " -> hosts2-ns\n"; } if ($port eq "82") { $resultat = $resultat . " -> xfer\n"; } if ($port eq "83") { $resultat = $resultat . " -> mit-ml-dev\n"; } if ($port eq "84") { $resultat = $resultat . " -> ctf\n"; } if ($port eq "85") { $resultat = $resultat . " -> mit-ml-dev\n"; } if ($port eq "86") { $resultat = $resultat . " -> mfcobol\n"; } if ($port eq "87") { $resultat = $resultat . " -> link\n"; } if ($port eq "88") { $resultat = $resultat . " -> kerberos\n"; } if ($port eq "89") { $resultat = $resultat . " -> su-mit-tg\n"; } if ($port eq "90") { $resultat = $resultat . " -> dnsix\n"; } if ($port eq "91") { $resultat = $resultat . " -> mit-dov\n"; } if ($port eq "92") { $resultat = $resultat . " -> npp\n"; } if ($port eq "93") { $resultat = $resultat . " -> dcp\n"; } if ($port eq "94") { $resultat = $resultat . " -> objcall\n"; } if ($port eq "95") { $resultat = $resultat . " -> supdup\n"; } if ($port eq "96") { $resultat = $resultat . " -> dixie\n"; } if ($port eq "97") { $resultat = $resultat . " -> swift-rvf\n"; } if ($port eq "98") { $resultat = $resultat . " -> tacnews\n"; } if ($port eq "99") { $resultat = $resultat . " -> metagram\n"; } if ($port eq "100") { $resultat = $resultat . " -> newacct\n"; } if ($port eq "101") { $resultat = $resultat . " -> hostnames\n"; } if ($port eq "102") { $resultat = $resultat . " -> iso-tsap\n"; } if ($port eq "103") { $resultat = $resultat . " -> gppitnp\n"; } if ($port eq "104") { $resultat = $resultat . " -> acr-nema\n"; } if ($port eq "105") { $resultat = $resultat . " -> csnet-ns\n"; } if ($port eq "106") { $resultat = $resultat . " -> 3com-tsmux\n"; } if ($port eq "107") { $resultat = $resultat . " -> rtelnet\n"; } if ($port eq "108") { $resultat = $resultat . " -> snagas\n"; } if ($port eq "109") { $resultat = $resultat . " -> pop2\n"; } if ($port eq "110") { $resultat = $resultat . " -> pop3\n"; } if ($port eq "111") { $resultat = $resultat . " -> sunrpc\n"; } if ($port eq "112") { $resultat = $resultat . " -> mcidas\n"; } if ($port eq "113") { $resultat = $resultat . " -> auth\n"; } if ($port eq "114") { $resultat = $resultat . " -> audionews\n"; } if ($port eq "115") { $resultat = $resultat . " -> sftp\n"; } if ($port eq "116") { $resultat = $resultat . " -> ansanotify\n"; } if ($port eq "117") { $resultat = $resultat . " -> uucp-path\n"; } if ($port eq "118") { $resultat = $resultat . " -> sqlserv\n"; } if ($port eq "119") { $resultat = $resultat . " -> nntp\n"; } if ($port eq "120") { $resultat = $resultat . " -> cfdptkt\n"; } if ($port eq "121") { $resultat = $resultat . " -> erpc\n"; } if ($port eq "122") { $resultat = $resultat . " -> smakynet\n"; } if ($port eq "123") { $resultat = $resultat . " -> ntp\n"; } if ($port eq "124") { $resultat = $resultat . " -> ansatrader\n"; } if ($port eq "125") { $resultat = $resultat . " -> locus-map\n"; } if ($port eq "126") { $resultat = $resultat . " -> unitary\n"; } if ($port eq "127") { $resultat = $resultat . " -> locus-con\n"; } if ($port eq "128") { $resultat = $resultat . " -> gss-xlicen\n"; } if ($port eq "129") { $resultat = $resultat . " -> pwdgen\n"; } if ($port eq "130") { $resultat = $resultat . " -> cisco-fna\n"; } if ($port eq "131") { $resultat = $resultat . " -> cisco-tna\n"; } if ($port eq "132") { $resultat = $resultat . " -> cisco-sys\n"; } if ($port eq "133") { $resultat = $resultat . " -> statsrv\n"; } if ($port eq "134") { $resultat = $resultat . " -> ingres-net\n"; } if ($port eq "135") { $resultat = $resultat . " -> epmap\n"; } if ($port eq "136") { $resultat = $resultat . " -> profile\n"; } if ($port eq "137") { $resultat = $resultat . " -> netbios-ns\n"; } if ($port eq "138") { $resultat = $resultat . " -> netbios-dgm\n"; } if ($port eq "139") { $resultat = $resultat . " -> netbios-ssn\n"; } if ($port eq "140") { $resultat = $resultat . " -> emfis-data\n"; } if ($port eq "141") { $resultat = $resultat . " -> emfis-cntl\n"; } if ($port eq "142") { $resultat = $resultat . " -> bl-idm\n"; } if ($port eq "143") { $resultat = $resultat . " -> imap2\n"; } if ($port eq "144") { $resultat = $resultat . " -> news\n"; } if ($port eq "145") { $resultat = $resultat . " -> uaac\n"; } if ($port eq "146") { $resultat = $resultat . " -> iso-tp0\n"; } if ($port eq "147") { $resultat = $resultat . " -> iso-ip\n"; } if ($port eq "148") { $resultat = $resultat . " -> jargon\n"; } if ($port eq "149") { $resultat = $resultat . " -> aed-512\n"; } if ($port eq "150") { $resultat = $resultat . " -> sql-net\n"; } if ($port eq "151") { $resultat = $resultat . " -> hems\n"; } if ($port eq "152") { $resultat = $resultat . " -> bftp\n"; } if ($port eq "153") { $resultat = $resultat . " -> sgmp\n"; } if ($port eq "154") { $resultat = $resultat . " -> netsc-prod\n"; } if ($port eq "155") { $resultat = $resultat . " -> netsc-dev\n"; } if ($port eq "156") { $resultat = $resultat . " -> sqlsrv\n"; } if ($port eq "157") { $resultat = $resultat . " -> knet-cmp\n"; } if ($port eq "158") { $resultat = $resultat . " -> pcmail-srv\n"; } if ($port eq "159") { $resultat = $resultat . " -> nss-routing\n"; } if ($port eq "160") { $resultat = $resultat . " -> sgmp-traps\n"; } if ($port eq "161") { $resultat = $resultat . " -> snmp\n"; } if ($port eq "162") { $resultat = $resultat . " -> snmp-trap\n"; } if ($port eq "163") { $resultat = $resultat . " -> cmip-man\n"; } if ($port eq "164") { $resultat = $resultat . " -> cmip-agent\n"; } if ($port eq "177") { $resultat = $resultat . " -> xdmcp\n"; } if ($port eq "178") { $resultat = $resultat . " -> nextstep\n"; } if ($port eq "179") { $resultat = $resultat . " -> bgp\n"; } if ($port eq "191") { $resultat = $resultat . " -> prospero\n"; } if ($port eq "194") { $resultat = $resultat . " -> irc\n"; } if ($port eq "199") { $resultat = $resultat . " -> smux\n"; } if ($port eq "201") { $resultat = $resultat . " -> at-rtmp\n"; } if ($port eq "202") { $resultat = $resultat . " -> at-nbp\n"; } if ($port eq "204") { $resultat = $resultat . " -> at-echo\n"; } if ($port eq "206") { $resultat = $resultat . " -> at-zis\n"; } if ($port eq "210") { $resultat = $resultat . " -> z3950\n"; } if ($port eq "213") { $resultat = $resultat . " -> ipx\n"; } if ($port eq "220") { $resultat = $resultat . " -> imap3\n"; } if ($port eq "372") { $resultat = $resultat . " -> ulistserv\n"; } if ($port eq "512") { $resultat = $resultat . " -> exec/biff\n"; } if ($port eq "513") { $resultat = $resultat . " -> login/who\n"; } if ($port eq "514") { $resultat = $resultat . " -> shell/syslog\n"; } if ($port eq "515") { $resultat = $resultat . " -> printer\n"; } if ($port eq "517") { $resultat = $resultat . " -> talk\n"; } if ($port eq "518") { $resultat = $resultat . " -> ntalk\n"; } if ($port eq "520") { $resultat = $resultat . " -> route\n"; } if ($port eq "525") { $resultat = $resultat . " -> timed\n"; } if ($port eq "526") { $resultat = $resultat . " -> tempo\n"; } if ($port eq "530") { $resultat = $resultat . " -> courier\n"; } if ($port eq "531") { $resultat = $resultat . " -> conference\n"; } if ($port eq "532") { $resultat = $resultat . " -> netnews\n"; } if ($port eq "533") { $resultat = $resultat . " -> netwall\n"; } if ($port eq "540") { $resultat = $resultat . " -> uucp\n"; } if ($port eq "543") { $resultat = $resultat . " -> klogin\n"; } if ($port eq "544") { $resultat = $resultat . " -> kshell\n"; } if ($port eq "556") { $resultat = $resultat . " -> remotefs\n"; } if ($port eq "749") { $resultat = $resultat . " -> kerberos-adm\n"; } if ($port eq "750") { $resultat = $resultat . " -> kerberos server\n"; } if ($port eq "760") { $resultat = $resultat . " -> krbupdate\n"; } if ($port eq "761") { $resultat = $resultat . " -> kpasswd\n"; } if ($port eq "765") { $resultat = $resultat . " -> webster\n"; } if ($port eq "871") { $resultat = $resultat . " -> supfilesrv\n"; } if ($port eq "1024") { $resultat = $resultat . " -> kdm\n"; } if ($port eq "1241") { $resultat = $resultat . " -> msg\n"; } if ($port eq "3001") { $resultat = $resultat . " -> nessusd\n"; } if ($port eq "3333") { $resultat = $resultat . " -> dec-notes\n"; } if ($port eq "6000") { $resultat = $resultat . " -> X Windows\n"; } if ($port eq "6667") { $resultat = $resultat . " -> irc\n"; } if ($port eq "6668") { $resultat = $resultat . " -> irc\n"; } if ($port eq "6669") { $resultat = $resultat . " -> irc\n"; } if ($port eq "7000") { $resultat = $resultat . " -> irc\n"; } if ($port eq "12345") { $resultat = $resultat . " -> netbus\n"; } print "."; } close (SOCK); $i++; } if ($r ne "0"){ print "\n\nVoici les resultats :\n $resultat \n"; print LOG_FILE "$resultat"; close(LOG_FILE);} else { print "\n\nAucun port ouvert entre les ports $min et $max !!"; } exit; ----------------------end here ------------------------- _________________________________________________________________ Téléchargez MSN Explorer gratuitement à l'adresse http://explorer.msn.fr/intl.asp _______________________________________________ mAdchAt-spAm mailing list mAd...@li... https://lists.sourceforge.net/lists/listinfo/madchat-spam |