51ibm
标题:
端口知识------防治网络攻击
[打印本页]
作者:
caicai
时间:
2005-5-17 23:54
标题:
端口知识------防治网络攻击
一 摘要
二 什么是端口
三 端口的分类
四 端口在入侵中的作用
五 常见端口的介绍
六 端口的相关工具
七 保护好自己的端口
八 结束语
一 摘要
很早就想写一篇关于端口的教程了,今天终于付诸实践。其实网上介绍端口的教程多如牛毛,但我还没有看到哪篇真正告诉大家到底什么是端口(也许是我真的没有看到),你如果看了很多端口的教程,那你告诉我到底什么是端口?呵呵,可能你会一时也答不上来,没关系,跟我来!
二 什么是端口
在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
本地操作系统会给那些有需求的进程分配协议端口(protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽象,那么继续跟我来,别走开。
端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。
三 端口的分类
在Internet上,按照协议类型分类,端口被分为TCP端口和UDP端口两类,虽然他们都用正整数标识,但这并不会引起歧义,比如TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。
从端口的分配来看,端口被分为固定端口和动态端口两大类(一些教程还将极少被用到的高端口划分为第三类:私有端口):
固定端口(0-1023):
使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派。由于这些端口紧绑于一些服务,所以我们会经常扫描这些端口来判断对方是否开启了这些服务,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟知的端口;
动态端口(1024-49151):
这些端口并不被固定的捆绑于某一服务,操作系统将这些端口动态的分配给各个进程,同一进程两次分配有可能分配到不同的端口。不过一些应用程序并不愿意使用操作系统分配的动态端口,他们有其自己的‘商标性’端口,如oicq客户端的4000端口,木马冰河的7626端口等都是固定而出名的。
四 端口在入侵中的作用
有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门,如果不考虑细节的话,这是一个不错的比喻。入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。
五 常见端口的介绍
由于本人知识有限,在这里只介绍一些浅显的内容。
1)21 ftp
此端口开放表示服务器提供了FTP服务,入侵者通常会扫描此端口并判断是否允许匿名登陆,如果能找到可写目录,还可以上传一些黑客程序做近一步入侵。要想关闭此端口,需要关闭FTP服务。
2)23 Telnet
此端口开放表示服务器提供了远程登陆服务,如果你有管理员的用户名和密码,可以通过这个服务来完全控制主机(不过要先搞定NTLM身份认证),获得一个命令行下的shell。许多入侵者喜欢开启这个服务作为后门。要想关闭此端口,需要关闭Telnet服务。
3)25 smtp
此端口开放表示服务器提供了SMTP服务,一些不支持身份验证的服务器允许入侵者发送邮件到任何地点,SMTP服务器(尤其是sendmail)也是进入系统的最常用方法之一。要想关闭此端口,需要关闭SMTP服务。
4)69 TFTP(UDP)
此端口开放表示服务器提供了TFTP服务,它允许从服务器下载文件,也可以写入文件,如果管理员错误配置,入侵者甚至可以下载密码文件。许多入侵者通过在自己机器运行此服务来传文件到目标机器,从而实现文件的传输。要想关闭此端口,需要关闭TFTP服务。
5)79 finger
用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误, 回应从自己机器到其它机器finger扫描。
6)80 http
此端口开放表示服务器提供了HTTP服务,可以让访问者浏览其网页等,大部分针对IIS服务器的溢出攻击都是通过这个端口的,可以说是入侵者最常攻击的一个端口了。要想关闭此端口,需要关闭HTTP服务。
7)110 POP3
用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统,成功登陆后还有其它缓冲区溢出错误。
8)TCP的139和445
许多人都很关心这两个端口,那我就来详细的介绍一下吧:
首先我们来了解一些基础知识:
1 SMB
Server Message Block) Windows协议族,用于文件打印共享的服务;
2 NBT
NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。
3 在WindowsNT中SMB基于NBT实现,即使用139(TCP)端口;而在Windows2000中,SMB除了基于NBT实现,还可以直接通过445端口实现。
有了这些基础知识,我们就可以进一步来讨论访问网络共享对端口的选择了:
对于win2000客户端(发起端)来说:
1 如果在允许NBT的情况下连接服务器时,客户端会同时尝试访问139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,用455端口进行会话,当445端口无响应时,才使用139端口,如果两个端口都没有响应,则会话失败;
2 如果在禁止NBT的情况下连接服务器时,那么客户端只会尝试访问445端口,如果445端口无响应,那么会话失败。
对于win2000服务器端来说:
1 如果允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放(LISTENING);
2 如果禁止NBT,那么只有445端口开放。
我们建立的ipc$会话对端口的选择同样遵守以上原则。显而易见,如果远程服务器没有监听139或445端口,ipc$会话是无法建立的。那么如何关闭2000上这两个端口呢?
139端口可以通过禁止NBT来屏蔽
本地连接-TCP/IT属性-高级-WINS-选‘禁用TCP/IT上的NETBIOS’一项
445端口可以通过修改注册表来屏蔽
添加一个键值
Hive: HKEY_LOCAL_MACHINE
Key: System\Controlset\Services\NetBT\Parameters
Name: SMBDeviceEnabled
Type: REG_DWORD
value: 0
修改完后重启机器
9)3389 Terminal Services
此端口开放表示服务器提供了终端服务,如果你获得了管理员的用户名和密码,那么你可以通过这个服务在图形界面下完全控制主机,这的确是一件令人向往的事情,但如果你得不到密码也找不到输入法漏洞,你会感到束手无策。要想关闭此端口,需要关闭终端服务。
六 端口的相关工具
1 netstat -an
的确,这并不是一个工具,但他是查看自己所开放端口的最方便方法,在cmd中输入这个命令就可以了。如下:
C:\>netstat -an
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1028 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1027 *:*
UDP 127.0.0.1:1029 *:*
UDP 127.0.0.1:1030 *:*
这是我没上网的时候机器所开的端口,两个135和445是固定端口,其余几个都是动态端口。
2 fport.exe和mport.exe
这也是两个命令行下查看本地机器开放端口的小程序,其实与netstat -an这个命令大同小异,只不过它能够显示打开端口的进程,信息更多一些而已,如果你怀疑自己的奇怪端口可能是木马,那就用他们查查吧。
3 activeport.exe(也称aports.exe)
还是用来查看本地机器开放端口的东东,除了具有上面两个程序的全部功能外,他还有两个更吸引人之处:图形界面以及可以关闭端口。这对菜鸟来说是个绝对好用的东西,推荐使用喔。
4 superscan3.0
它的大名你不会没听说过吧,纯端口扫描类软件中的NO.1,速度快而且可以指定扫描的端口,不多说了,绝对必备工具。
七 保护好自己的端口
刚接触网络的朋友一般都对自己的端口很敏感,总怕自己的电脑开放了过多端口,更怕其中就有后门程序的端口,但由于对端口不是很熟悉,所以也没有解决办法,上起网来提心吊胆。其实保护自己的端口并不是那么难,只要做好下面几点就行了:
1 查看:经常用命令或软件查看本地所开放的端口,看是否有可疑端口;
2 判断:如果开放端口中有你不熟悉的,应该马上查找端口大全或木马常见端口等资料(网上多的很),看看里面对你那个可疑端口的作用描述,或者通过软件查看开启此端口的进程来进行判断;
3 关闭:如果真是木马端口或者资料中没有这个端口的描述,那么应该关闭此端口,你可以用防火墙来屏蔽此端口,也可以用本地连接-TCP/IP-高级-选项-TCP/IP筛选,启用筛选机制来筛选端口;
注意:判断时候要慎重,因为一些动态分配的端口也容易引起你多余的怀疑,这类端口一般比较低,且连续。还有,一些狡猾的后门软件,他们会借用80等一些常见端口来进行通信(穿透了防火墙),令人防不胜防,因此不轻易运行陌生程序才是关键。
作者:
caicai
时间:
2005-5-18 00:00
标题:
如何关闭windows系统中不安全的端口
--------------------------------------------------------------------------------
Windows系统被安装的远程控制软件或其它各种木马通常是由于您没有正确的设置您的管理员密码造成的, 比如administrator的口令为空。所以请先检查系统中所有帐号的口令是否设置的足够安全。
1. Windows2000口令设置方法:
当前用户口令:
在桌面环境下按crtl+alt+del键后弹出选项单,选择其中的更改密码项后按要求输入你的密码(注意:如果以前administrator没有设置密码的话,旧密码那项就不用输入,只需直接输入新的密码)。
其他用户口令:
在开始->控制面板->用户和密码->选定一个用户名->点击设置密码
2. 如何关闭Windows 2000下的445端口?
关闭445端口的方法有很多,通常用修改注册表的方法:
1) 在命令行窗口运行修改注册表命令RegEdit。
2) 在弹出的注册表编辑窗口的左边找到下面目录
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters
你可以一级一级目录往下点击,也可用“查找”命令找到NetBT项,然后点击Parameters项。
3) 在编辑窗口的右边空白处点击鼠标右键,出现的“新建”菜单中选择“DWORD值”,如下图所示:
4) 将新建的DWORD参数命名为“SMBDeviceEnabled”,数值为缺省的“0”。
5) 修改完后退出RegEdit,重启机器。
6) 运行“netstat ?an”,你将会发现你的445端口已经不再Listening了。
7) 如何关闭Windows 2000下的5800,5900端口?
1) 首先使用fport命令确定出监听在5800和5900端口的程序所在位置(通常会是c:\winnt\fonts\explorer.exe)
2) 在任务管理器中杀掉相关的进程(注意有一个是系统本身正常的,请注意!如果错杀可以重新运行c:\winnt\explorer.exe)
3) 删除C:\winnt\fonts\中的explorer.exe程序。
4) 删除注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run中的Explorer项。
5) 重新启动机器。
4. 如何获得fport工具?
Fport工具可以把本机开放的TCP/UDP端口同应用程序关联起来,这和使用'netstat -an'命令产生的效果类似,但是该软件还可以把端口和运行着的进程关联起来,并可以显示进程PID,名称和路径。该软件可以用于将未知的端口同应用程序关联起来。
在CERNET应急响应组的网站上可以获得fport工具,下载路径为:
http://www.ccert.edu.cn/tools/index.php
。
下载的文件为fport.zip, 用winzip或winrar解开后存放到一个目录下就可以。比如我们把fport放在D:\fport-2.0下。那么,我们运行fport::
D:\fport-2.0> fport
输出结果如下:
FPort v2.0 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
http://www.foundstone.com
Pid Process Port Proto Path
744 svchost -> 135 TCP C:\WINDOWS\system32\svchost.exe
4 System -> 139 TCP
4 System -> 445 TCP
792 svchost -> 1025 TCP C:\WINDOWS\System32\svchost.exe
1652 navapw32 -> 1027 TCP C:\PROGRA~1\NORTON~1\navapw32.exe
1860 inetinfo -> 1031 TCP C:\WINDOWS\System32\inetsrv\inetinfo.exe
1880 msmsgs -> 1226 TCP C:\Program Files\Messenger\msmsgs.exe
2736 iexplore -> 2162 TCP C:\Program Files\Internet Explorer\iexplore.exe
956 -> 5000 TCP
1880 msmsgs -> 13863 TCP C:\Program Files\Messenger\msmsgs.exe
2736 iexplore -> 123 UDP C:\Program Files\Internet Explorer\iexplore.exe
744 svchost -> 135 UDP C:\WINDOWS\system32\svchost.exe
1332 SecureCRT -> 137 UDP C:\Program Files\SecureCRT\SecureCRT.exe
2664 SecureCRT -> 138 UDP C:\Program Files\SecureCRT\SecureCRT.exe
4 System -> 445 UDP
792 svchost -> 500 UDP C:\WINDOWS\System32\svchost.exe
2524 SecureCRT -> 1028 UDP C:\Program Files\SecureCRT\SecureCRT.EXE
1860 inetinfo -> 1032 UDP C:\WINDOWS\System32\inetsrv\inetinfo.exe
1880 msmsgs -> 1033 UDP C:\Program Files\Messenger\msmsgs.exe
2812 wsftppro -> 1035 UDP D:\tools\wsftppro.exe
956 -> 1543 UDP
1652 navapw32 -> 1561 UDP C:\PROGRA~1\NORTON~1\navapw32.exe
4 System -> 1610 UDP
1880 msmsgs -> 1900 UDP C:\Program Files\Messenger\msmsgs.exe
2736 iexplore -> 3336 UDP C:\Program Files\Internet Explorer\iexplore.exe
2812 wsftppro -> 3456 UDP D:\tools\wsftppro.exe
1880 msmsgs -> 9356 UDP C:\Program Files\Messenger\msmsgs.exe
从fport的输出结果中我们可以发现有没有不安全的tcp/udp端口开着,如果有就用前面介绍的方法把该端口关闭,或将相关程序删除。
作者:
caicai
时间:
2005-5-18 00:03
标题:
Windows 2000系统下关闭端口的方法与思路
Win 2000中每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,Win 2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。一项服务到底有没有用,就要根据自己的需要自己来判断啦。
“控制面板”的“管理工具”中的“服务”中来配置。
关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。
关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。
关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。
关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。
关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。
关闭默认共享:在Windows 2000中,有一个“默认共享”,这是在安装服务器的时候,把系统安装分区自动进行共享,虽然对其访问还需要超级用户的密码,但这是潜在的安全隐患,从服务器的安全考虑,最好关闭这个“默认共享”,以保证系统安全。方法是:单击“开始/运行”,在运行窗口中输入“Regedit”,打开注册表编辑器,展开“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Lanmanworkstation\parameters”,在右侧窗口中创建一个名为“AutoShareWks”的双字节值,将其值设置为0,(Win2000 专业版 Win XP);[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"AutoShareServer"=dword:00000000 (win2000 server、win2003 server)这样就可以彻底关闭“默认共享”。(对了记住在DOS下运行net share c$Content$nbsp;/del,有几个默认共享就执行几次,可别告诉我这不会喽:)
关闭139端口:139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。
关闭445端口:修改注册表,添加一个键值
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters]
"SMBDeviceEnabled"=dword:00000000
关闭终端服务:在Windows2000 Sever版中打开“我的电脑”→“控制面板”→“ 添加/删除程序”→“添加删除Windwos组件”,把其中的“终端连接器”反安装即可!
修改终端服务的默认端口:
服务器端: 打开注册表,在“HKLM\SYSTEM\Current\ControlSet\Control\Terminal Server\Win Stations”里找到类似RDP-TCP的子键,修改PortNumber值。
客户端:按正常步骤建一个客户端连接,选中这个连接,在“文件”菜单中选择导出,在指定位置会生成一个后缀为.cns的文件。打开该文件,修改“Server Port”值为与服务器端的PortNumber对应的值。然后再导入该文件(方法:菜单→文件→导入),这样客户端就修改了端口。
禁止:IPC$空连接
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"restrictanonymous"=dword:00000001
记住把服务server禁止喽~~~ipc$默认共享删除~~~~这样重启后才有效喽~~~
关闭不必要的服务,例如Messenge服务,远程注册表访问服务,Telnet服务,当然关闭端口可以用黑基下的防火墙如blackice等来屏掉,或者用ipsec管理策略来禁止这些端口~~~大家在禁止一定要想好或先了解一下被禁用端口的作用喽,要不它有可能会影响你的部份操作喽,希望能对大家有所帮助。
作者:
caicai
时间:
2005-5-18 00:04
标题:
Windows如何关闭信使服务
信使服务是Windows NT、Windows 2000、Windows XP操作系统中自带的一个信息服务程序。用户在安装操作系统时。这个服务程序默认是打开的。
关闭方法有以下两种:
1、安装PC防火墙(如天网个人防火墙,并将安全级别设为高)。
2、关闭该项服务的具体操作如下:在Windows NT、Windows 2000、Windows XP操作系统的“控制面板”--“管理工具”--“服务”,将alerter、messager服务设置成“停止”关掉即可或者使用“开始”--“运行”输入“command.com”进入DOS状态,在命令行输入并执行两个命令net stop msg和net stop alerter即可实现关闭信使服务。
作者:
gnahz
时间:
2007-4-17 10:23
草 这么多字 看不大懂
欢迎光临 51ibm (http://www.51ibm.com/)
Powered by Discuz! X3