Post on: Jul 8, 2025Last edited: Jul 8, 2025
Words 1752Read Time 5 min

type
status
date
slug
summary
tags
category
icon
password
靶机ip:192.168.108.143
攻击机ip:192.168.108.50
靶机地址:Napping: 1.0.1
 

1. 信息收集技术

端口扫描 (RustScan/Nmap)

开放了22端口和80端口,尝试访问80端口,是个简单的登录界面,附带的还有一个注册界面,尝试弱密码和万能密码登录,无效
我们试着注册一个账号,登进去看看
notion image
notion image
发现里面是一个博客推广提交页面,用户可以在此提交自己的博客链接。此外,还有“重置密码”和“登出”的功能按钮 如果后端没有对用户提交进行过滤和转义可能存在xss漏洞,尝试一下,发现并没有,会将我们上传的恶意代码进行转义,js无法执行

Tabnabbing攻击

我们还发现我们输入什么网址,就可以跳转到什么网址并且我们在源码中看到是直接生成一个超链接并且没有rel="noopener/noreferrer"

Tabnabbing 漏洞分析

  • 当你点击一个带有 target="_blank" 的链接时,链接会在新的标签页打开。
  • 如果目标页面是恶意页面,它可以通过 JavaScript 获取父页面的信息,并可能修改父页面的内容,例如改变页面上的文本或引导用户到钓鱼网站。
    • 具体的攻击过程:
      1. 用户点击了一个链接,该链接在新的标签页中打开(如百度)。
      1. 攻击者能够控制该标签页的内容(如果没有 rel="noopener"),并可能修改页面的 URL 或在页面中插入内容。
      1. 当用户切换回原来的标签页时,攻击者已经修改了原标签页的内容,可能会伪装成用户的登录界面,诱使用户输入敏感信息,从而完成 钓鱼攻击

为什么 rel="noopener/noreferrer" 很重要

  • rel="noopener":这个属性可以阻止新标签页中的页面通过 window.opener 访问打开该标签页的原页面。这意味着新标签页无法改变原页面的 DOM 或行为,从而阻止了 Tabnabbing 攻击。
  • rel="noreferrer":除了阻止 window.opener 访问原页面外,它还会阻止浏览器在 HTTP 请求中发送 Referer 头部,进一步增强安全性。
notion image
使用python暴露kali80端口,制作上传恶意网页,尝试通过网页访问,同时将页面源码复制来制作伪造的登录页面2.2 链接开放引用漏洞 (缺少 rel="noopener/noreferrer")

JavaScript DOM操作 (window.opener利用)

各部分解释:

  • window.opener
    • 表示是通过 window.open() 打开的子页面,可以访问打开它的父窗口对象(opener)。
  • window.opener.parent.location.replace(...)
    • 这是关键代码,强制让父窗口(可能是顶级页面)跳转到指定地址 http://192.168.108.50:7777/flash.html,达到劫持用户原标签页的目的。
  • window.opener != window
    • 这是一个冗余但常见的双重判断手法,用于确保当前窗口不是自己打开的。window.opener != window 在某些情况下防止直接访问时触发。
成功获取到用户名和密码
用户名为daniel
密码为:C@ughtm3napping123

4. 权限提升

用户组权限滥用 (administrators组)

成功登录ssh,开始准备提权,先信息收集 发现属于用户组 daniel 和附加组 administrators
同时发现pkexec和at(用于 安排一次性任务(定时任务)在指定时间执行)查看pkexec版本发现是0.105为存在漏洞版本,先尝试一下,传入CVE-2021-4034的exp,尝试之后发现都能正常调用无法进行漏洞利用
因为属于administrators附属组,查看一下有什么权限

定时任务利用 (cron/at)

发现可以执行query.py,这段python代码检查本地服务器是否在线,同时将测试结果写入到site_status.txt中,结合之前的at我们猜测有定时任务,上传pspy64,发现确实是有定期执行任务,那我们将反弹shell写入到query.py中去让它执行,成功获取到adrian用户
notion image
notion image
发现用户 adrian 可以无密码使用 sudo 执行 /usr/bin/vim,这就是一个明显的本地提权点
成功拿到

Loading...
htb Artificial

htb Artificial