网络安全从业人员的基本功---端口
对于网络安全工作者来说,端口是一个非常重要的概念,无论攻与防,都少不了要和端口打交道。对攻击者来说,我们之前把每个电脑主机比喻为一间房子,端点好比是这个房子的门,那么远程的入侵者要占领这间房子,势必要破门而入,那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
所以,一般来说,入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,
比如:用scanport扫描一个 IP 地址,发现开放了 1433 端口,知道了该服务器上运行了 mssql 数据库,默认用户名是 sa,我们可以做的就是尝试弱口令枚举一下,看能否登陆,
其次,做为防守者,比如网络管理员,则要通过查看当前电脑的端口开放及连接情况,发现可疑连接和端口状态,
从而及时发现异常情况,找到木马或者黑客的连接,当发现电脑上出现不认识的或者感觉异常的端口连接或者处于监听状态,
就要分析一下对应的进程,确定是否中了病毒或者被黑客攻击。 命令netstat –ano可以查看系统中的详细信息 端口是电脑与外界进行数据交换的出入口,电脑上的端口有物理端口和虚拟端口两种。物理端口有时候我们又把它叫做接口,比如连接局域网的RJ45端口,USB端口。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。
本地操作系统会给那些有需求的进程分配协议端口(protocol port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。
当目的主机接收到数据包后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。
举个例子吧:如果我们把网络比做公路,那么每一台电脑就是公路旁边的房子,这个大房子里有很多人在同时工作,快递小哥去送东西了,外卖也去送外卖了、还有进去找朋友的,乱做一团,大家根本不知道该把东西给谁,于是房东就出了个规定,给房子开了很多个门,然后规定每一个来的人要根据自己要办的事走不同的门进来,比如对外发邮件的统一走25号门,接收邮件的统一去110号门,访问WEB页面查询信息的统一走80号门,传送文件的走21号门等等。这个门就是我们说的虚拟端口,简称为端口。
在电脑中一共有65536个(2^16)这样的端口,编号从0~65535。这些门有些门的作用是规定好了的,大部分是没有规定的。那么我们如何访问端口呢?
我们在访问端口的时候,如果是系统默认的端口,在地址栏里是不用输入端口号的,比如我们访问网页的时候,是不是在后面输入80的。
只需要输入:http://www.baidu.com,如果不是系统默认端口,则需要在IP地址后输入冒号和端口号,比如我要访问企业云的管理页面,这个管理页面的端口是20000,输入https://X.X.X.X:20000即可访问。常见端口比如 ftp 的 21、ssh 的 22、http 的 80 、 mysql 的 3306、mssql 的 1433、oracle 的 1521 等。当然一些木马也会有一些默认端口,比如永恒之蓝端口445。
另外,由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。 |