类OCSP靶场-Kioptrix系列-Kioptrix Level 3

news/2024/12/18 5:25:28/

一、前情提要

二、实战打靶

1. 信息收集

1.1. 主机发现

1.2. 端口扫描

1.3.目录遍历

1.4. 敏感信息

2.漏洞发现

2.1.登录功能账号密码爆破

2.2.CMS历史漏洞

2.2.1.exp利用

2.2.2.提权

2.3. sql注入getshell

2.3.1.发现注入点

2.3.2. 测试字段和类型

2.3.3.查询字段等敏感信息

2.3.4.ssh连接并提权

2.4.第二种提权思路


一、前情提要

kali黑客-利用searchsploit搜索exp一键化攻击-CSDN博客

一篇文章带你理解nmap的使用-nmap使用手册-CSDN博客

类OCSP靶场-Kioptrix系列-Kioptrix Level 1-CSDN博客

类OCSP靶场-Kioptrix系列-Kioptrix Level 2-CSDN博客

类OCSP靶场-Kioptrix系列-Kioptrix Level 3-CSDN博客

类OCSP靶场-Kioptrix系列-Kioptrix Level 4-CSDN博客

类OCSP靶场-Kioptrix系列-Kioptrix Level 5-CSDN博客

二、实战打靶

这个靶机练习,相当于内网渗透。

1. 信息收集

1.1. 主机发现

在同一局域网下的主机发现思路:

  • 通过ifconfig或ip add的方式查看当前主机的网段

  • 利用nmap对扫描对应子网内的所有主机在线情况

执行完命令可以发现,该网段除了我们的kali还有一台129的主机在线。

(PS:在虚拟网络下1和2这两个ip分别对应的是网卡和网关。)

1.2. 端口扫描

还是利用nmap进行端口扫描并探测端口服务的版本。

  • 命令:nmap -sT -sV - -O --min-rate 10000 -p- 192.168.150.129

    • -sT:以TCP三次握手的形式进行扫描

    • -sV:扫描各服务的版本

    • -O:扫描目标机器的操作系统

    • --min-rate:最少的发包数量

    • -p-:全端口扫描

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
MAC Address: 00:0C:29:C7:74:83 (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

1.3.目录遍历

发现存在phpmyadmin

1.4. 敏感信息

这个是根据端口探测、手工、目录爆破信息收集来的。

http://192.168.150.129/index.php?system=Admin
LotusCMS
​
http://192.168.150.129/phpmyadmin/
phpMyAdmin 2.11.3deblubuntu1.3
​
OpenSSH 4.7p1
Apache httpd 2.2.8
PHP/5.2.4

2.漏洞发现

在目录爆破阶段查看的时候,发现存在登录框和phpmyadmin这个mysql登录,都尝试一下爆破。

2.1.登录功能账号密码爆破

phpmyadmin存在空密码登录,LotusCMS的登录框爆破失败了。

测试后发现这个phpmyadmin的登录框,空密码登录上去的权限太低了所有调头换个思路。


2.2.CMS历史漏洞

这里可以发现LotusCMS是个cms我们去找这个cms是否存在历史漏洞尝试对它进行利用。

发现存在这个CMS远程命令执行eval()利用脚本,但是rb是msf的oscp只能用一次,我们要留在最有用的地方。

2.2.1.exp利用

我们可以百度搜索,我这里搜索到了两个脚本

搜集到脚本查看一下源码就知道咋利用了。

2.2.2.提权

上去发现是一个低权限

常规信息收集

搜索提权exp

  • searchsploit "Ubuntu 8.04"

  • searchsploit "Privilege" | grep linux | grep 2.6.2

看了几个发现有CVE-2016-5195脏牛漏洞,这个是著名漏洞一旦出现基本都可以提权。

直接下载、编译、查看并利用exp

脏牛exp的原理是通过版本漏洞制作一个拥有root权限的账号,我们用su命令登录上去就可以了。

但是这个过程中发现su firefart失败了,分析报错信息是因为我们的shell会话是个不完成的会话,我们需要将会话提升至交互式会话,提权成功root权限。

  • python -c 'import pty; pty.spawn("/bin/bash")'

  • su firefart


2.3. sql注入getshell

后面还发现了一个sql注入点并且getshell拿到权限了。

2.3.1.发现注入点

手工信息收集发现这里有很多界面,单独点击看看有没有东西。

发现有个域名我们解析不过去,但是其实是靶机的ip,我们添加一条本地域名解析

echo 192.168.150.134 kioptrix3.com >> /etc/hosts

多查查,多看看注入点在这,是一个整数型注入。

2.3.2. 测试字段和类型

通过group by测试字段发现是六位,因为group by 7的时候出现了报错不存在这么多列。

发现是联合注入,回显位是2和3

2.3.3.查询字段等敏感信息

我准备相关的命令改一下参数就可以使用了

查询
information_schema   =>是一个特殊数据库,用于存储关于数据库服务器、数据库、表、列等元数据信息的数据。
​
schemata        =>存储所有数据库的库名
tables          =>存储所有数据库中表的表名
columns         =>存储所有数据库中表的列名
​
列出所有数据库
select group_concat(SCHEMA_NAME) from information_schema.SCHEMATA
​
列出当前数据库的所有表
select group_concat(TABLE_NAME) from information_schema.TABLES where TABLE_SCHEMA=database()
​
列出这个表的所有字段
select group_concat(COLUMN_NAME) from information_schema.COLUMNS where TABLE_SCHEMA=database() and TABLE_NAME='dev_accounts'
​
列出表中所有的字段内容
select group_concat(concat(id,0x20,username,0x20,password)) from dev_accounts

获取当前数据库的所有表名,发现存在dev_accounts 这个术语通常指的是开发者账户,也就是系统账户。

获取字段名

查看字段内容,mysql自带的md5加密,拿去网站破解一下就出结果了这里就不放图了

1 dreg 0d3eccfb887aabd50f243b3f155c0f85(Mast3r)
2 loneferret 5badcaf789d3d1d09794d8f021f40f0e(starwars)

2.3.4.ssh连接并提权

他们系统版本一样,脏牛漏洞是没问题的,就不再演示了。


2.4.第二种提权思路

如果你用了脏牛exp来提权就不能使用这个方法,因为脏牛exp会修改root用户的用户名,导致sudo命令失效。

我们使用sql注入getshell获取到的用户来登录ssh

其中!/usr/bin/su执行不了,没有这个文件,也不能创建这个文件,因为权限不足。

但是/usr/local/bin/ht是可以执行的,这是一个编辑器,而且是一个可以以root权限运行的编辑器。所以我们可以用这个编辑器修改/usr/passwd或/etc/sudoers文件来提权。

sudo /usr/local/bin/ht

按F3,然后输入/etc/sudoers打开该配置文件,看一看root用户的配置,依葫芦画瓢。

ALL=(ALL) ALL,其中三个ALL的含义不同,其含义如下:

其中第一个ALL代表允许所有主机来源执行sudo,例如只允许该用户在本地执行sudo可以将ALL改成localhost。

第二种ALL代表该用户可以用任何用户的身份执行sudo。

第三个ALL代表该用户可以执行任何命令

有一些文件中会这么写:ALL=(ALL:ALL) ALL,括号中第二个ALL代表任何用户组。

  • 我们在本地用户都能执行的后面加上/bin/bash

    • /bin/bash

  • 或者在最后加上允许所有主机来源用户可以执行任何命令

    • loneferret ALL=(ALL) ALL

修改完成后按F2保存,然后按ctrl+c退出,然后以root权限执行/bin/bash即可提权成功!

sudo /bin/bash


http://www.ppmy.cn/news/1556046.html

相关文章

【昇腾】NPU ID:物理ID、逻辑ID、芯片映射关系

起因: https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/23.0.0/re/npu/npusmi_013.html npu-smi info -l查询所有NPU设备: [naienotebook-npu-bd130045-55bbffd786-lr6t8 DCNN]$ npu-smi info -lTotal Count : 1NPU…

LC 318. Maximum Product of Word Lengths

题目描述 Leetcode 318 给定一个只包含小写字母字符串数组,返回两个没有共同字符的字符串长度乘积的最大值 题目思路 简单的思路是将字符串编码成长度为26的数组,然后两两字符串比较,这样可以将O(L1L2)的比较压缩到O(2626)。 位图bitmap …

如何高效获取Twitter数据:Apify平台上的推特数据采集解决方案

引言 在数据分析和市场研究领域,Twitter(现在的X)数据一直是重要的信息来源。但是,自从Twitter更改API定价策略后,获取数据的成本大幅提升。本文将介绍一个经济实惠的替代方案。 为什么需要Twitter数据? …

go项目zero框架在Linux或Windows服务器中加入开机启动

为了使Go项目在系统启动时自动运行,您可以根据操作系统选择不同的方法。以下是针对Linux和Windows系统的两种常见方案。 ### Linux 系统 #### 使用 Systemd (推荐) Systemd 是大多数现代Linux发行版默认的初始化系统和服务管理器。通过创建一个systemd服务文件&…

快速搭建conda深度学习环境全流程(又全又简洁)

1.首先在云服务器或者本地环境安装miniconda 选择自己电脑相应的版本 Miniconda — Anaconda documentation mkdir -p ~/miniconda3 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh bash ~/miniconda3/miniconda…

简单了解一下 Go 语言的构建约束?

​构建约束是一种在 Go 语言中控制源文件编译条件的方法,它可以让您指定某些文件只在特定的操作系统、架构、编译器或 Go 版本下编译,而在其他环境中自动忽略。这样可以方便您针对不同的平台或场景编写不同的代码,实现条件编译的功能。 构建…

游戏引擎学习第41天

这一节就讨论了一些数学知识 讨论为什么要进行数学讨论 现在到了需要真正开始讨论数学的时候了,因为从这一步开始,几乎所有计划做的事情都将涉及比基本代数更复杂的数学内容。到目前为止所做的一切基本都可以用基础代数技能理解,但从现在开…

Databend 为什么使用 Rust 开发?

11 月 30 日,Rust China Tour 武汉站在武汉恺德光谷城际酒店举行。本次活动汇聚了来自 Databend、GreptimeDB、华中科技大学的多位 Rust 技术专家和研究者,共同探讨 Rust 语言在前沿技术中的创新应用。Databend 数据库研发工程师张祖前在活动中带来主题演…