靶机地址:https://www.vulnhub.com/entry/lampiao-1,249/
目标:得到root权限&找到flag.txt
作者:尼德霍格007
时间:2021-7-7
一、信息收集
我们在VM中需要确定攻击目标的IP地址,需要使用nmap获取目标IP地址:
可以看到目标机开放了以下几个端口
尝试ssh弱口令爆破,然鹅并没有获得有用的信息
试着访问一下80端口
好图!!!
搜索一通下来,并没有发现有用的东西
试试1898端口,是Apache的http服务,主页面
第一个页面
第二个页面
这里显示有个node/2
修改一下页面试试
新页面,有一个音频文件和一张图片
查看这两个文件
音频内容为:user tiago,可能用户名就是tiago
图片是二维码,扫出来啥也不是,还对你一顿嘲讽,这我能忍?直接爆破走起
$ dirb http://192.168.21.132:1898 -o out
找到一个robots.txt文件,打开看看
在列出的文件中找了好久,最后终于在CHANGELOG.txt中找到了网站版本信息
看师傅们的教程,这是一个基于Drupal 7的博客或是社交网站。
开始暴力攻击
cewl:通过爬行网站获取关键信息创建一个密码字典
hydra:神器九头蛇
成功获取到一个账户host: 192.168.21.132 login: tiago password: Virgulino
ssh登陆
连接成功,获得shell
二、提权shell
百度找漏洞
搜索到Drupal漏洞CVE-2018-7600
直接上msf
我们要用的是CVE-2018-7600,所以选择2018年的漏洞
填写相关信息
成功获取到一个shell,但是是低权限的,和前面的ssh登陆用户权限类似
下一步要找到反弹shell获取root权限,通过网上对Durpal 7版本2016年都可以使用dirty(脏牛)进行提权,
思路:
- 使用CP进行复制到本地,cp /usr/share/exploitdb/exploits/linux/local/40847.cpp
- 本地开启http服务
- 把40847.cpp发送到靶机上
然后在靶机上编译,执行
命令:g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 40847 40847.cpp -lutil
-
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-
-std=c++11就是用按C++2011标准来编译的
-
-pthread 在Linux中要用到多线程时,需要链接pthread库
-
-o dcow gcc生成的目标文件,名字为dcow
执行gcc编译可执行文件,可直接提权
得到root密码是dirtyCowFun
最后使用root用户ssh登陆成功获得flag
三、总结
在这次渗透复现中,最重要的一点是用有限的信息来找出下一步的思路,任何有可能的信息都不能放过,虽然寻找有用的过程比较繁琐枯燥,但是也不能半途而废。其次是在获得网站框架和版本后,多利用搜索引擎来找漏洞。找到可利用漏洞后要知道怎么提权获得flag