服务器数据溢出-服务器溢出攻击

hacker|
173

详尽的解释端口

在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筛选,启用筛选机制来筛选端口;

问下关于CS的一个比较棘手的问题:服务器溢出。

我可以说是你cs版本问题么.你那段英文就是这么告诉你的啊.大意就是说你这个版本不支持那么多人.服务器不支持这么多少人.有溢出报告.还有那个叫拉登莫地雷的.像你这种不懂cs精神的人少在那边放屁.虽然现在cs没落了.但是cs有我们曾经的梦想.我们曾经为这个梦想奋斗过.别用你那张臭嘴侮辱这个游戏!

端口到底是干什么的,怎么那么多,用处?

在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筛选,启用筛选机制来筛选端口;

服务器被攻击怎么处理?

目前来说解决服务器被DDOS攻击最常见的办法就是使用硬件防火墙了,也就是我们常说的高防服务器,高防服务器都会带有一定量的硬防,或大或小。

1、定期扫描

要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。

2、在骨干节点配置防火墙

防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。

3、用足够的机器承受黑客攻击

这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。

4、充分利用网络设备保护网络资源

所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DdoS的攻击。

5、过滤不必要的服务和端口

过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。

6、检查访问者的来源

使用Unicast Reverse Path Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。

7、过滤所有RFC1918 IP地址

RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。

8、限制SYN/ICMP流量

用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。

0条大神的评论

发表评论