第一次深入的了解靶机,下面把我做题的整个流程写在下面,仅供参考
靶机介绍
我所用的靶机是在vulnhub上下载的,网址如下
https://www.vulnhub.com/?page=1
里面有许多靶机可以供我们练习,我之后也将会花很多时间去练习,来提高自己的技术。对DC-1的介绍如下
大概意思啊是这个靶机需要你获得root权限,并找到所有的5个flag
入侵靶机
DC-1下载好之后,可以在VMware中打开,是一个命令行界面的linux操作系统。本来我还纳闷呢,没有密码要我怎么做啊,后来才知道,我们就是要渗透进去嘛~~真菜!
主机发现
既然DC-1是和我们在同一个局域网,我们可以使用arp-scan去主机发现,命令如下
arp-scan -l
发现第三个是目标主机,ip:192.168.75.134
端口扫描
按照正常的渗透测试流程,其实我们是要先信息收集的,现在就不需要了,直接扫描端口,查看开放了哪些服务,命令如下
nmap -sV -p- 192.168.75.134
-p-表示扫描0-65535的所有的端口
结果如下
发现80端口开着,那么就应该可以访问网页了
发现下面有一句“Powered by Drupal”,说明用的是Drupal的框架。
还有一个叫做wappalyzer的插件可以鉴别出使用的是什么CMS,可以进行网站指纹识别。
漏洞查找
kali上自带的msfconsose可以自动化查找出一些框架的漏洞,并加以利用(都是已经公布过的)。第一次使用之前,需要先进行一些配置,主要是启动msf的数据库连接并进行初始化。
之后输入msfconsole就可以启动这个工具了,然后直接search框架名字,就可以找到他存在的漏洞了
随便找一个利用一下,还要show options一下,发现里面的RHOSRTS还需要自己设置一下
设置完之后就可以利用了
get shell
通过上面的shell命令,我们已经可以对靶机的目录进行操作了,ls发现flag1.txt,cat查看内容
里面给了提示:
Every good CMS needs a config file - and so do you.
让我们去看配置文件,drupal的配置文件默认是/sites/defult/settings.php,我们切换过去看看
发现又给出了提示,说暴力破解不是唯一的方法,还给出了数据库的账号和密码,所以就想到登陆一下看看里面的用户能不能得到网站登陆的账号和密码。但是发现在shell下的mysql无法打开。
所以就要另找思路了。
另寻思路
linux下有两个专门存在的存放密码的路径,一个是/etc/passwd,一个是/etc/shadow。
/etc/passwd是用户数据库,其中的域给出了用户名、加密口令和用户的其他信息. /etc/shadow是在安装了影子(shadow)口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow中,而后者只对超级用户root可读。这使破译口令更困难,以此增加系统的安全性。
既然我们看不了shadow,那么就直接看passwd的内容吧
发现flag4用户。这里可以用到hydra+john the Ripper爆破。
hydra是kali自带的工具,john需要下载使用
下载:wget http://www.openwall.com/john/j/john-1.8.0.tar.gz
解压:tar -xvf john-1.8.0.tar.gz
进入src目录:cd john-1.8.0 && cd src
make:选择自己当前的操作系统
然后就可以爆破了
得到flag4用户的密码为orange
通过ssh远程连接
然后再用上面得到的mysql账号和密码去登陆
这样就可以通过mysql进行数据库的一系列操作了
show databases;
use drupaldb;
show tables;
select * from users;
得到了用户的账号和密码,但是密码经过加密了,百度查找drupal重置密码的方法,直接把user表里的管理员字段改为
$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
然后就可以用下面的密码登陆了!
password
原理就是字符串的SHA-512加密运算的结果就是
S
S
SCDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
现在成功的修改了密码
尝试在网站上登陆,可以成功登陆,并且发现提示
提权
根据上面的提示发现perm,是让我们通过suid提权,SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。
想要有root权限:
1.以root账户登陆(爆破未果)
2.普通用户登陆,查找具有suid权限位的命令去get shell
suid提权的详细介绍连接如下
https://blog.csdn.net/qq_36119192/article/details/84872644
在这里经过测试发现可以使用find,命令如下
find / -type f -perm -u=s 2>/dev/null
发现find命令被设置为suid权限位
~$ touch getflag
~$ find / -typefind / -type f -name getflag -exec "whoami" \;
root
~$ find / -type f -name getflag -exec "/bin/sh" \;
# ls(成功提权)
上面的命令意思是先通过touch创建一个文件,然后通过find…exec "…"查找文件后并执行命令
可以拿到root权限
至此,本次渗透测试就算结束了,第一次深入的学习了一下渗透测试,收获良多,希望之后能够坚持下去,走好渗透这条路!