五、端口扫描原理
"端口扫描"通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回端口状态来分析目标计算机的端口是否打开、是否可用。"端口扫描"行为的一个重要特征是:在短时期内有很多来自相同的信源地址传向不同的目的地端口的包。
对于用端口扫描进行攻击的人来说,攻击者总是可以做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向跟踪。为了隐藏攻击,攻击者可以慢慢地进行扫描。除非目标系统通常闲着(这样对一个没有listen端口的数据包都会引起管理员的注意),有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的方法是发送大量的欺骗性的端口扫描包(1000个),其中只有一个是从真正的源地址来的。这样,即使全部包(1000)都被察觉,被记录下来,也没有人知道哪个是真正的信源地址。能发现的仅仅是"曾经被扫描过"。也正因为这样那些黑客们才乐此不彼地继续大量使用这种端口扫描技术来达到他们获取目标计算机信息、并进行恶意攻击。
通常进行端口扫描的工具目前主要采用的是端口扫描软件,也通称之为"端口扫描器",端口扫描可以为提供三个用途:
(1)识别目标系统上正在运行的TCP协议和UDP协议服务。 (2)识别目标系统的操作系统类型(Windows 9x, Windows NT,或UNIX,等)。 (3)识别某个应用程序或某个特定服务的版本号。
端口扫描器是一种自动检测远程或本地计算机安全性弱点的程序,通过使用扫描器你可不留痕迹的发现远程服务器的各种TCP协议端口的分配及提供的服务,还可以得知它们所使用的软件版本!这就能让间接的了解到远程计算机所存在的安全问题。
端口扫描器通过选用远程TCP/IP协议不同的端口的服务,记录目标计算机端口给予的回答的方法,可以搜集到很多关于目标计算机的各种有用信息(比如:是否有端口在侦听?是否允许匿名登陆?是否有可写的FTP目录,是否能用TELNET等。
端口扫描器并不是一个直接攻击网络漏洞的程序,它仅仅能帮助发现目标机的某些内在的弱点。一个好的扫描器还能对它得到的数据进行分析,帮助查找目标计算机的漏洞。但它不会提供一个系统的详细步骤。
端口扫描器在扫描过程中主要具有以下三个方面的能力: (1) 发现一个计算机或网络的能力; (2) 一旦发现一台计算机,就有发现目标计算机正在运行什么服务的能力; (3) 通过测试目标计算机上的这些服务,发现存在的漏洞的能力。
编写扫描器程序必须要很多TCP/IP协议程序编写和C,Perl和或SHELL语言的知识。需要一些Socket编程的背景,一种在开发客户/服务应用程序的方法。
六、常用端口
在计算机的6万多个端口,通常把端口号为1024以内的称之为常用端口,这些常用端口所对应的服务通常情况下是固定的,所以了解这些常用端口在一定程序上是非常必要的,下表2列出了计算机的常用端口所对应的服务(注:在这列表中各项"="前面的数字为端口号,"="后面的为相应端口服务。)。
1=tcpmux(TCP协议 Port Service Multiplexer)401=ups(Uninterruptible Power Supply) 2=compressnet=Management Utility402=genie(Genie Protocol) 3=compressnet=Compression Process403=decap 5=rje(Remote Job Entry)404=nced 7=echo=Echo405=ncld 9=discard406=imsp(Interactive Mail Support Protocol) 11=systat,Active Users407=timbuktu 13=daytime408=prm-sm(Prospero Resource Manager Sys. Man.) 17=qotd(Quote of the Day)409=prm-nm(Prospero Resource Manager Node Man.) 18=msp(Message Send Protocol)410=decladebug(DECLadebug Remote Debug Protocol) 19=Character Generator411=rmt(Remote MT Protocol) 20=FTP-data(File Transfer [Default Data])412=synoptics-trap(Trap Convention Port) 21=FTP(File Transfer [Control])413=smsp 22=ssh414=infoseek 23=telnet415=bnet 24private mail system416=silverplatter 25=smtp(Simple Mail Transfer)417=onmux 27=nsw-fe(NSW User System FE)418=hyper-g 29=msg-icp419=ariel1 31=msg-auth420=smpte 33=Display Support Protocol421=ariel2 35=private printer server422=ariel3 37=time423=opc-job-start(IBM Operations Planning and Control Start) 38=rap(Route Access Protocol)424=opc-job-track(IBM Operations Planning and Control Track) 39=rlp(Resource Location Protocol)425=icad-el(ICAD) 41=graphics426=smartsdp 42=nameserver(WINS Host Name Server)427=svrloc(Server Location) 43=nicname(Who Is)428=ocs_cmu 44=mpm-flags(MPM FLAGS Protocol)429=ocs_amu 45=mpm(Message Processing Module [recv])430=utmpsd 46=mpm-snd(MPM [default send])431=utmpcd 47=ni-ftp432=iasd 48=Digital Audit Daemon433=nnsp 49=tacacs(Login Host Protocol (TACACS))434=mobileip-agent 50=re-mail-ck(Remote Mail Checking Protocol)435=mobilip-mn 51=la-maint(IMP Logical Address Maintenance)436=dna-cml 52=xns-time(XNS Time Protocol)437=comscm 53=Domain Name Server438=dsfgw 54=xns-ch(XNS Clearinghouse)439=dasp(dasp Thomas Obermair) 55=isi-gl(ISI Graphics Language)440=sgcp 56=xns-auth(XNS Authentication)441=decvms-sysmgt 57= private terminal access442=cvc_hostd 58=xns-mail(XNS Mail)443=https(https Mcom) 59=private file service444=snpp(Simple Network Paging Protocol) 61=ni-mail(NI MAIL)445=microsoft-ds 62=acas(ACA Services)446=ddm-rdb 63=whois+whois+447=ddm-dfm 64=covia(Communications Integrator (CI))448=ddm-byte 65=tacacs-ds(TACACS-Database Service)449=as-servermap 66=sql*net(Oracle SQL*NET)450=tserver 67=bootps(Bootstrap Protocol Server)451=sfs-smp-net(Cray Network Semaphore server) 68=bootpc(Bootstrap Protocol Client)452=sfs-config(Cray SFS config server) 69=tftp(Trivial File Transfer)453=creativeserver 70=gopher454=contentserver 71=netrjs-1,Remote Job Service455=creativepartnr 72=netrjs-2,Remote Job Service456=macon-tcp 73=netrjs-3,Remote Job Service457=scohelp 74=netrjs-4,Remote Job Service458=appleqtc(apple quick time) 75=private dial out service459=ampr-rcmd 76=deos(Distributed External Object Store)460=skronk 77=private RJE service461=datasurfsrv 78=vettcp462=datasurfsrvsec 79=finger463=alpes 80=http(World Wide Web HTTP)464=kpasswd 81=hosts2-ns(HOSTS2 Name Server)465=ssmtp 82=xfer(XFER Utility)466=digital-vrc 83=mit-ml-dev(MIT ML Device)467=mylex-mapd 84=ctf(Common Trace Facility)468=photuris 85=mit-ml-dev(MIT ML Device)469=rcp(Radio Control Protocol) 86=mfcobol(Micro Focus Cobol)470=scx-proxy &nbs |