文章系列
本次团队主要出一个渗透测试基础系列,在基础上文章会慢慢难度加强,本次系列文章主要是由安全研究员orion为大家进行创作。后续视频也会慢慢录制,希望给大家一个更好学习的地方。团队其它研究员也在准备出powershell渗透系列文章和视频,希望大家尽请期待。
本次系列文章以及下系列文章首选都会在公众号先行发布,如果你想看到最新文章,不要犹豫请关注我们。
微信id:sec-redclub
1、Mongodb未授权访问
我们知道mongodb是个数据库,数据库故名思议是用来存储数据的,但是呢有些运维人员,只是将mongodb数据库按默认配置成功不做其他配置,导致该数据库存在未授权访问漏洞。
首先,如何判断是否使用该数据库,第一步,肯定要确认下服务器端开放了哪些服务,使用nmap扫描该主机地址,可以发现27017端口开放,显示是mongodb数据库,说明系统安装了该数据库。
-p0-65535
表示查看0-65535端口哪些开放
-O
识别操作系统
我们使用帮助简单看下mongodb的用法
--bind_ip 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP--logpath 定MongoDB日志文件,注意是指定文件不是目录--logappend 使用追加的方式写日志--dbpath 指定数据库路径--port 指定服务端口号,默认端口27017--serviceName 指定服务名称--serviceDisplayName 指定服务名称,有多个mongodb服务时执行。--install 指定作为一个Windows服务安装。
下面我们介绍如何利用该未授权访问,操作该数据库信息
首先,第一步肯定是要连接上数据库,由于是未授权,说明运维人员未对数据库进行配置访问权限。直接使用mongodb连接该数据库,可以看到连接成功。
mongo -shell 192.168.80.145
下面简单看下数据库中的数据
db.person.find()
下面我们在mongodb中创建个数据库runoob,并插入数据
显示数据库
可以看到由于管理员的疏忽导致入侵者可任意操作数据库内容。所以安全配置显得尤为重要
如何解决该问题,我们可以设置访问控制,下面我们讲下如何设置访问权限
首先让我们看下都有哪些权限
数据库用户角色 (所有数据库都有)
read
用户可以读取当前数据库的数据
readWrite
用户可以读写当前数据库的数据
数据库管理角色(所有数据库都有)
dbAdmin
管理员用户但不能对用户和角色管理授权
dbOwner
数据库所有者可进行任何管理任务
userAdmin
可以管理当前数据的用户和角色
集群管理角色(admin数据库可用)
clusterAdmin
集群所有管理权限,是 clusterManager , clusterMonitor , hostManager 合集
clusterManager
集群管理和监控
clusterMonitor
集群监控,只读的
hostManager
监控和管理服务器
备份和恢复角色(admin数据库可用)
backup
restore
所有数据库角色(admin数据库可用)
readAnyDatabase
读取所有数据库
readWriteAnyDatabase
读写所有数据库
userAdminAnyDatabase
所有数据库的 userAdmin 权限
dbAdminAnyDatabase
所有数据库的 dbAdmin 权限
首先,我们在本地连接上数据库
输入命令:show dbs
,你会发现它内置有两个数据库,一个名为admin,一个名为local
输入命令:use admin
,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看
添加管理用户
直接登录访问
进行认证
或者直接使用用户名密码登录
可以发现可正常访问
说明我们创建用户成功,这里我们使用的是3.0以上的mongodb,3.0以下的可自行百度
2、postgresql数据库弱口令
本次课程主要讲的是关于postgresql数据库弱口令破解,讲到破解弱口令肯定要说的就是hydra这款工具,我们简单看下该工具可以破解哪些服务,kali下默认安装了该工具,我们之间输入hydra可以看到有他的使用方法,在最下边,我们可以看到支持很多种破解,ftp、http、https、mssql、mysql等等,很多种服务我们也可以看到我们要破解的postgres数据库,说明该数据库也可使用hydra进行破解。
我们使用一个例子来讲hydra破解postgresql数据库
hydra -L usr.txt -P pass.txt -o savepostgresql.log -f -vV -e ns 192.168.80.144 postgres
可以在下图看到,postgresql数据库的口令被破解出
那么我们下面将下这个命令都是什么意思
-L usr.txt
表示指定用户名字典,这里我们在当前目录,所以不需要加目录,若字典未在当前目录需要我们写出文件所在路径
-P pass.txt
表示指定用户密码字典(同用户名字典)
-o savepostgresql.log
表示指定输出到某个文件当中,在该文件中可以看到使用的语句,以及枚举出的用户名密码
-f
表示找到第一对登录名或者密码的时候中止破解,上图中我们可以看到,找到用户名密码之后不在进行枚举,而下图可以看到,虽然找到了用户名密码,但仍然在进行枚举
-vV
表示显示详细信息
-e ns 192.168.80.144 postgres
可选选项,n:空密码试探,s:使用指定用户和密码试探,最后加地址及要枚举的服务,这里是postgres数据库,所以我们跟postgres
主机漏洞
本来准备写其他主机漏洞,但是最近出了这么多0day不看看都不好意思了。我们也简单看看这个东西
首先简单说明下FUZZBUNCH:
1.将工具放在英文路径下,目标机防火墙关闭否则可能会不成功
2.必须Python2.6和pywin32对应版本。(下载链接自行百度)
3.在windows利用工具目录下创建listeningposts目录
下面我们见到看下这个框架,使用Python运行fb.py
要设置很多东西,不过看提示即可(表示压力好大,英语不过关….)
设置完成之后,会出现fb>有点类似metasploit,同样使用use选择要利用的模块,同样可以使用tab进行补全。这里我们使用eternalblue进行测试。
其他选项默认即可,这里我使用的是win7为目标系统
成功之后需要使用其他模块进行配合进行命令执行,这里使用的是doublepulsar模块
我们使用msfvenom生成一个dll文件
选择目标类型及rundll
我们配置好的目标系统信息
在metasploit监听反弹的端口,可以看到反弹成功