1. 什么是端口
是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。物理端口又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。
2. 查看本机端口信息
Windows:
命令:netstat -aon|findstr 445 #查看本机445端口有没有运行
Linux:
命令:netstat -an|grep 22 #查看本机22端口是否启动
3. 常见的漏洞及端口
20:FTP服务的数据传输端口
21:FTP服务的连接端口,可能存在 匿名登陆 弱口令暴力破解 匿名登陆:1.用nc链接21号端口 2.直接使用USER anonymous PASS xxxx
22:SSH服务端口,可能存在 弱口令暴力破解
23:Telnet端口,可能存在 弱口令暴力破解
25:SMTP简单邮件传输协议端口,和 POP3 的110端口对应
43:whois服务端口
53:DNS服务端口(TCP/UDP 53)
67/68:DHCP服务端口
69:TFTP端口,可能存在弱口令
80:HTTP端口,常见web漏洞
110:POP3邮件服务端口,和SMTP的25端口对应
111:rpcbind服务,可能存在端口泄露 使用nmap脚本: nmap -p 111 --script=rpcinfo 目标
135:RPC服务
137/138:NMB服务
139:SMB/CIFS服务,可能存在远程代码执行 MSF模块:use multi/samba/usermap_script PAYLOAD: cmd/unix/reverse
143:IMAP协议端口
161/162: Snmp服务,public弱口令
389:LDAP目录访问协议,有可能存在注入、弱口令
443:HTTPS端口,心脏滴血等与SSL有关的漏洞
445:SMB服务端口,可能存在永恒之蓝漏洞MS17-010,和远程代码执行
512/513/514:Linux Rexec服务端口,可能存在爆破, 如果配置错误,是开启的rlogin服务则可以使用以下命令进行最高权限登陆 rlogin -l root 被攻击者ip 就可获得最高权限
873:Rsync ,可能存在Rsync未授权访问漏洞,传送门:rsync 未授权访问漏洞
1080:socket端口,可能存在爆破
1099:RMI,可能存在 RMI反序列化漏洞 使用msf 模块:exploit/multi/misc/java_rmi_server payload: java/meterpreter/reverse_tcp
1352:Lotus domino邮件服务端口,可能存在弱口令、信息泄露
1433:SQL Server数据库端口,可能存在弱口令
1434:用于向请求者返回SQL Server使用了哪个TCP/IP端口
1521:oracle数据库端口
后门:xx端口: xxx服务,后门,已经被攻击。 扫描时出现bingshell绑定shell,则表明可能存在后门 nc连接后门:nc xxx 端口 直接连接
2049:NFS服务端口(网络共享资源和smb类似),可能存在NFS配置不当 查看铭感目录: nmap --script=nfs-* 被攻击者ip 探测nfs是否可导出: 安装nfs-common: apt-get install nfs-common 探测铭感目录是否可以导出: showmount -e 被攻击者ip 查看导出内容: mkdir nfs_root mount -t nfs(服务)被攻击者的ip:/被导出的内容,比如:-/nsf_root(导出到这个文件) -o nolock(直接导出的意思)
最后在 cat -/nfs_root/etc/shadow 下查看,(根据自己存放的位置) cat /etc/shadow cat /etc/passwd 结合起来就可以破解出他的账号和密码
2121:ccproxy-ftp,特点:ftp服务器程序,proftpd,暴力破解
2181:ZooKeeper监听端口,可能存在 ZooKeeper未授权访问漏洞
2375:Docker端口,可能存在 Docker未授权访问漏洞
2601: Zebra ,默认密码zebr
27017:MongoDB未授权访问
3128: squid ,匿名访问(可能内网漫游)
3306:MySQL数据库端口,可能存在 弱口令暴力破解
3389:Windows远程桌面服务,可能存在 弱口令漏洞 或者 CVE-2019-0708 远程桌面漏洞复现
3690:SVN服务,可能存在SVN泄漏,未授权访问漏洞
4440:Rundeck,弱口令admin
4560:log4j SocketServer监听的端口,可能存在 log4j<=1.2.17反序列化漏洞(CVE-2019-17571)
4750:BMC,可能存在 BMC服务器自动化RSCD代理远程代码执行(CVE-2016-1542)
4848:GlassFish控制台端口,可能存在弱口令admin/adminadmin
5000:SysBase/DB2数据库端口,可能存在爆破、注入漏洞
5432:PostGreSQL数据库的端口
5632:PyAnywhere服务端口,可能存在代码执行漏洞
5900/5901:VNC监听端口(远程控制),可能存在 VNC未授权访问漏洞 ,暴力破解 msf: 模块:auxiliary/scanner/vnc/vnc_login 字典使用默认字典,破解密码和账户 最后: 安装vnc viewer客户端软件连接vnc服务端
5984:CouchDB端口,可能存在 CouchDB未授权访问漏洞
6379:Redis数据库端口,可能存在Redis未授权访问漏洞,传送门:Redis未授权访问漏洞
6667:irc服务(聊天服务)也有漏洞
7001/7002:Weblogic,可能存在Weblogic反序列化漏洞,传送门:Weblogic反序列化漏洞
7180:Cloudera manager端口
8069:Zabbix服务端口,可能存在Zabbix弱口令导致的Getshell漏洞
8080:Tomcat、JBoss,可能存在Tomcat管理页面弱口令Getshell,JBoss未授权访问漏洞,传送门:Tomcat管理弱口令页面Getshell
8080-8090:可能存在web服务
8089:fastjson、Jetty、Jenkins服务端口,可能存在反序列化,控制台弱口令等漏洞
8161:Apache ActiveMQ后台管理系统端口,默认口令密码为:admin:admin ,可能存在CVE-2016-3088漏洞,传送门:Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)
8180:tomcat,(免费开源代码的web应用服务器,属于轻量级应用服务器) 模块:auxiliary/scanner/http/tomcat_mgr_login,破解登陆密码 模块:multi/http/tomcat_mgr_deploy,反弹shell
8500:Adobe ColdFusion 任意文件读取,反序列化漏洞
该服务为:JRun Web Server
9000:fastcgi端口,可能存在远程命令执行漏洞
9001:Supervisord,可能存在Supervisord远程命令执行漏洞(CVE-2017-11610),传送门:Supervisord远程命令执行漏洞(CVE-2017-11610)
9043/9090:WebSphere,可能存在WebSphere反序列化漏洞
9200/9300:Elasticsearch监听端口,可能存在 Elasticsearch未授权访问漏洞 10000:Webmin-Web控制面板,可能存在弱口令
10001/10002:JmxRemoteLifecycleListener监听的,可能存在Tomcat反序列化漏洞,传送门:Tomcat反序列化漏洞(CVE-2016-8735)
11211:Memcached监听端口,可能存在 Memcached未授权访问漏洞
27017/27018:MongoDB数据库端口,可能存在 MongoDB未授权访问漏洞
50000:SAP Management Console服务端口,可能存在 运程命令执行漏洞。
50070:Hadoop服务端口,可能存在 Hadoop未授权访问漏洞
61616:Apache ActiveMQ服务端口,可能存在 Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
60020:hbase.regionserver.port,HRegionServer的RPC端口
60030:hbase.regionserv er.info.port,HRegionServer的http端口
4. 端口扫描工具nmap
下载地址:https://nmap.org/
kali自带nmap:更新命令:apt-get update nmap
- 发现活跃主机
以192.168.1.0/24作为目标网段,说明如下:
使用ICMP协议发现活跃主机:nmap -PE 192.168.1.0/24
使用IP协议发现活跃主机:nmap -PO 192.168.1.0/24
使用TCP SYN发现活跃主机:nmap -PS 192.168.1.0/24
使用TCP ACK发现活跃主机:nmap -PA 192.168.1.0/24
使用UDP协议发现活跃主机:nmap -PU 192.168.1.0/24
使用SCTP协议发现活跃主机:nmap -PY 192.168.1.0/24
扫描本机端口:nmap localhost
使用TCP SYN 快速扫描:nmap -sS 192.168.1.0/24
扫描速度慢可以绕过某些防火墙:nmap -sT 192.168.1.0/24
扫面开放的UDP端口:nmap -sU 192.168.1.0/24
用于识别目标的操作系统:nmap -O 192.168.1.0/24
用于扫面目标主机是否存在漏洞:nmap --script vuln 192.168.1.0/24
扫描所有主机清单:nmap -sn 192.168.1.0/24
扫描所有端口:nmap -p- 192.168.1.2
5. 扫描端口
以192.168.1.0/24作为目标网段,说明如下:
- 端口分类
公认端口(well-known port):从0至1024,最常用端口,通常与协议绑定;
注册端口(registered port):从1025至49151,这些端口已经注册到服务协议上;
动态或私有端口(dynamic/private port):从49152至65535。
另外,端口还与协议相关;比如:UDP端口53通常用于DNS查询、TCP端口53通常用于DNS记录迁移。
- 端口状态
open:目标端口开启。
closed:目标端口关闭。
filtered:通常被防火墙拦截,无法判断目标端口开启与否。
unfiltered:目标端口可以访问,但无法判断开启与否。
open | filtered:无法确定端口是开启还是filtered。
closed | filtered:无法确定端口是关闭还是filtered。
- 端口扫描 技术
(4)FIN扫描
命令:nmap -sF 192.168.1.0/24
说明:在TCP数据包中置FIN标志位、然后发送数据包、进行扫描。
判断:无应答、表示端口开启;返回RST应答,表示端口关闭。
(5)NULL扫描
命令:nmap -sN 192.168.1.0/24
说明:在TCP数据包中不包含任何标志、然后发送数据包、进行扫描。
判断:无应答、表示端口开启;返回RST应答,表示端口关闭。
(6)Xmas扫描
命令:nmap -sX 192.168.1.0/24
说明:在TCP数据包中置FIN、RST、PUSH标志位、然后发送数据包、进行扫描。
判断:无应答、表示端口开启;返回RST应答,表示端口关闭。
(7)idle扫描
命令:假设僵尸机是172.16.1.1,nmap -sI 172.16.1.1 192.168.1.0/24
说明:利用僵尸机进行跳转完成对目标的扫描。
判断:当僵尸机返回序列ID增加数量是“2”时、表示端口开启;当僵尸机返回序列ID增加数量是“1”时,表示端口关闭。
详细说明参见:nmap中的Idle scan - CSDN博客
(8)指定端口扫描
命令:nmap -p 端口号 192.168.1.0/24
示例:nmap -p 80 192.168.1.0/24 , nmap -p 80,443 192.168.1.0/24
(9)扫描常见的100个端口(即:Fast快速模式 )
命令:nmap -F 192.168.1.0/24
(10)使用协议名字进行扫描
命令:nmap -p 协议名 192.168.1.0/24
示例:nmap -p http 192.168.1.0/24 , nmap -p http,smtp 192.168.1.0/24
(11)扫描常用端口
命令:nmap --top-ports 端口数量 192.168.1.0/24
示例:扫描常用的10个端口 nmap --top-ports 10 192.168.1.0/24
(12)扫描所有端口(效率差,不建议使用)
命令:nmap -p * 192.168.1.0/24
- 操作系统、服务判断
1、判断操作系统:nmap -O 192.168.1.0/24
2、判断服务版本:nmap -sV 192.168.1.0/24
3、综合判断:nmap -A 192.168.1.0/24
- 使用脚本
命令:nmap --script 脚本名 192.168.1.0/24
示例:nmap --script http-methods 192.168.1.0/24
6. Netcat扫描端口
- 工具简介
Netcat 是一款简单的Unix工具,使用UDP和TCP协议,被称为网络工具中的"瑞士军*刀"。它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。 使用它你可以轻易的建立任何连接
- NetCat基本功能
获取系统bannet信息、传输文本信息、传输文件和目录、加密传输文件、端口扫描、远程控制、正方向shell等
- 常用参数
-h 查看帮助信息。
-l 监听模式,等待其他计算机连接。
-p 指定监听的端口号。
-u 使用UDP协议。
-v 输出详细信息,如建立连接时显示IP地址和端口号。
-n 不使用DNS查找,使用IP地址进行连接。
-z 将输入/输出功能关闭,进行端口扫描。
-s 指定本地的IP地址。
-e 在连接建立后,将标准输入和输出重定向到一个指定的程序或脚本中。
-w 设置超时时间,等待连接或数据的时间。
-c 发送指定字节数的数据后关闭连接。
-i 设置发送数据的时间间隔。
-q 设置程序退出前的最大延迟时间。
-k 启用TCP保持活动状态。
-r 设置随机本地端口号。
-t 以telnet形式应答。
- banner相关信息抓取
命令:nc -nv 192.168.10.30 22
- 扫描端口
命令:nc -vz 192.168.10.30 0-65535
- 发送文件
命令:nc -vn 192.168.10.20 333 < 2.txt
- 接收文件
命令:nc -lp 333 > 1.txt