当前位置:网站首页>WEB 渗透之端口协议
WEB 渗透之端口协议
2022-08-01 21:19:00 【weixin_53150482】
端口协议
端口的作用
一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。
web 80
ftp 21
http//:ip80
ftp
本地 通信端口 访问 服务器 80 通信是这样的
端口的类型
TCP端口和UDP端口。由于TCP和UDP两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。
(1)TCP端口
TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,SMTP服务的25端口,以及HTTP服务的80端口等等。
(2)UDP端口
UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和400
常见的端口
范围0-65535
a.服务端使用的端口号
- 预留端口号
取值范围0-1023,这些端口我们编程的时候不能使用,是那些vip应用程序使用的,只有超级用户特权的应用才允许被分配一个预留端口号
- 登记端口号
取值范围1024-49151,就是我们平时编写服务器使用的端口号范围
b.客户端使用的端口号
取值范围49152-65535,这部分是客户端进程运行时动态选择的范围,又叫临时端口号
TCP协议三次握手

三次握手(Three-way Handshake),是指建立一个 TCP 连接时,需要客户端和服务器总共发送3个包。
第一次握手([SYN], Seq = x)
客户端发送一个SYN标记的包,Seq初始序列号x,发送完成后客户端进入SYN_SEND状态。
第二次握手([SYN,ACK], Seq = y, ACK = x + 1)
服务器返回确认包(ACK)应答,同时还要发送一个SYN包回去。ACK = x + 1,表示确认收到(客户端发来的Seq值 + 1),Seq = y, 表示让客户端确认是否能收到。发送完成后服务端进入SYN_RCVD状态。
第三次握手([ACK], ACK = y + 1)
客户端再次发送确认包(ACK),ACK = y + 1, 表示确认收到服务器的包(服务端发来的Seq值 + 1)。客户端发送完毕后,进入ESTABLISHED状态,服务端接收到这个包,也进入ESTABLISHED状态, TCP握手结束。

查看端口
netstat –ano
如何查看端口被占用?
netstat -ano|findstr “80”
显示协议统计和当前 TCP/IP 网络连接。
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [interval]
-a 显示所有连接和侦听端口。
-b 显示在创建每个连接或侦听端口时涉及的可执行程序。在某些情况下,已知可执行程序承载多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列。此情况下,可执行程序的名称位于底部\[\]中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且在您没有足够权限时可能失败。
-e 显示以太网统计。此选项可以与 -s 选项结合使用。
-f 显示外部地址的完全限定域名(FQDN)。
-n 以数字形式显示地址和端口号。
-o 显示拥有的与每个连接关联的进程 ID。
-p proto 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或 UDPv6。
-r 显示路由表。
-s 显示每个协议的统计。默认情况下,显示IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6的统计;
-p 选项可用于指定默认的子网。
-t 显示当前连接卸载状态。
interval 重新显示选定的统计,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计。如果省略,则 netstat将打印当前的配置信息一次。
TCP状态转移要点
TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4、TIME_WAIT
**我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。**TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
常见的端口
在渗透中端口扫描的收集主机那些服务很重要,这里收集到一些常见的的服务端口
web类(web漏洞/敏感目录)
第三方通用组件漏洞struts thinkphp jboss ganglia zabbix
- 80 web
- 80-89 web
- 8000-9090 web
数据库类(扫描弱口令)
- 1433 MSSQL
- 1521 Oracle
- 3306 MySQL
- 5432 PostgreSQL
特殊服务类(未授权/命令执行类/漏洞)
- 443 SSL心脏滴血
- 873 Rsync未授权
- 5984 CouchDB http://xxx:5984/_utils/
- 6379 redis未授权
- 7001,7002 WebLogic默认弱口令,反序列
- 9200,9300 elasticsearch 参考WooYun: 多玩某服务器ElasticSearch命令执行漏洞
- 11211 memcache未授权访问
- 27017,27018 Mongodb未授权访问
- 50000 SAP命令执行
- 50070,50030 hadoop默认端口未授权访问
常用端口类(扫描弱口令/端口爆破)
- 21 ftp
- 22 SSH
- 23 Telnet
- 2601,2604 zebra路由,默认密码zebra
- 3389 远程桌面
端口合计详情
doop默认端口未授权访问
常用端口类(扫描弱口令/端口爆破)
- 21 ftp
- 22 SSH
- 23 Telnet
- 2601,2604 zebra路由,默认密码zebra
- 3389 远程桌面
端口合计详情
边栏推荐
猜你喜欢
随机推荐
C陷阱与缺陷 第5章 库函数 5.5 库函数signal
How to make the timer not execute when the page is minimized?
15 分钟带你入门 Grafana
with语句和上下文管理器
idea实用快捷键合集——持续更新
C陷阱与缺陷 第7章 可移植性缺陷 7.11 可移植性问题的一个例子
牛血清白蛋白-葡聚糖-叶黄素纳米颗粒/半乳糖白蛋白磁性阿霉素纳米粒的制备
Get started with Grafana in 15 minutes
方舟:生存进化PVE模式和PVP模式
An online JVM FullGC made it impossible to sleep all night and completely crashed~
How to choose Visibility, Display, and Opacity when interacting or animating
使用员工管理软件,解锁人力生产力新水平,提高人力资源团队灵活性
R语言 线性回归的有关方法
Interview Blitz 70: What are sticky packs and half packs?How to deal with it?
pytest:开始使用
Nacos 配置中心
Classification interface, Taobao classification details API
C陷阱与缺陷 第7章 可移植性缺陷 7.6 内存位置0
C Pitfalls and Defects Chapter 5 Library Functions 5.5 Library Function Signal
ahooks 是怎么处理 DOM 的?









