来自:信安之路(微信号:xazlsec)

网络端口分两种,一种是实体的端口,也叫接口比如 USB 端口、串型端口等,还有一种网络端口是网络协议规定好的,是虚拟出来完成计算机之间互相通讯的,那么为什么是 65535 而不是更多呢?

因为 TCP/IP 协议里规定的啦,规定协议是人定的,当然不是越多越好,够用就好了,何必搞那么多,大家都知道计算机是底层是二进制的世界,然而 2 的 16 次方正好是 65536 ,从 0 到 65535 正好是 65536,那为什么是 16 次方呢?

16 正好是 2 的 4 次方,你看到这些数字都是 2 的 n 次方,这也是二进制的特征,如果不选 2 的 16 次方,那么只有 2 的 8 次方或者 2 的 32 次方,不是太大就是太小,所以就算了 2 的 16 次方,不多不少正合适。

俗话说,无规矩不成方圆,为了防止堵车,路口设置了红绿灯,为了能够找到相对应的人,家家户户都有自己的门牌号,计算机之间的通信当然也不能没有规矩,端口号也不是随便设置的,如果你非要随便设置那也没人会阻止你,唯一会影响的就是你与其他计算机之间的通信罢了,那么设置端口有哪些规则呢?

规则设计者只负责管理 0 到 1023 之间的端口,而 0 到 255 之间到端口是用来给公共应用来用的,比如 ftp 的 21、ssh 的 22、http 的 80 等,256 到 1023 之间的端口用来分配给各个公司使用,而 1024 到 65535 之间的端口,官方叫临时端口,大家可以随意设置,至于是不是你的专属端口号,那就看你的知名度如何了,用你应用的人多,自然你的端口号就耳熟能详,用的人少,自然大家也不会把这个端口号默认给你,用的多的比如 mysql 的 3306、mssql 的 1433、oracle 的 1521 等。

每个端口都会对应一个应用或者服务,有自己专门的协议,大多数都是 TCP 协议,还有部分 UDP 协议,具体协议的选择也是根据应用的特点来定的,端口号和 IP 就相当于我们目的地的坐标,协议就是我们现实中如何到达目的地的方式,具体选择何种方式就看你对于结果的要求是什么了。

我们为什么要了解端口号呢?

做安全防御或者渗透测试,连端口号是什么都不知道,你怎么知道该计算机上有哪些应用,这些应用有哪些安全弱点,我们该如何做?如果你了解这些端口号的作用和安全弱点,那你在渗透的时候,一看便知有哪些安全弱点,用什么样的方式去测试,去防御,比如:用 nmap 扫描 一个 IP 地址,发现开放了 1433 端口,这时有经验的一看就知道该服务器上运行了 mssql 数据库,默认用户名是 sa,我们可以做的就是尝试弱口令枚举一下,看能否登陆,所以从事安全行业,需要对所有常见端口有所了解,了解它的功能、它的特点、它常常与谁一起出现、它曾经出现过什么样的安全问题、如何测试它、用什么工具测试等等。

好了,到现在端口是什么的问题解释的也差不多了,剩下的就需要大家自己学习了,如果解释的哪里有偏差,与你的理解有所不同,你可以在下方留言,说出你的理解,请不要吝啬你的才华,最后贴一个常见端口的图谱:

安全小提示

最近一些做黑灰产的兄弟转换了寻找黑客搞网站的套路,以前大家都经历过,突然邮件收到类似下面的广告:

最近这些人改变套路了,通过 QQ 群或者网上泄漏的 QQ 号加好友,冒充网警并称寻找安全相关的公司和团队合作,让人帮他渗透菠菜网站,目前信安之路作者团队多人遇到这样的情况,无论你是否会遇到,请大家警惕。