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

一、前情提要

二、实战打靶

[1. 信息收集](#1. 信息收集)

[1.1. 主机发现](#1.1. 主机发现)

[1.2. 端口扫描](#1.2. 端口扫描)

1.3.目录遍历

[1.4. 敏感信息](#1.4. 敏感信息)

2.漏洞发现

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

2.2.CMS历史漏洞

2.2.1.exp利用

2.2.2.提权

[2.3. sql注入getshell](#2.3. sql注入getshell)

2.3.1.发现注入点

[2.3.2. 测试字段和类型](#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,我们添加一条本地域名解析

bash 复制代码
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文件来提权。

bash 复制代码
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即可提权成功!

bash 复制代码
sudo /bin/bash
相关推荐
promise5247 天前
-bash: nmap: command not found
linux·运维·服务器·开发语言·bash·安全威胁分析·nmap
ChampionDragon2 个月前
安卓的漏洞类型和扫描工具
android·漏洞扫描
INSBUG3 个月前
Apache OFBiz SSRF漏洞CVE-2024-45507分析
ssrf·漏洞扫描·apache ofbiz·cve-2024-45507
開_punk2558_發3 个月前
info_scan!自动化漏洞扫描系统,附下载链接
安全·web安全·网络安全·渗透测试·漏洞挖掘·漏洞扫描
gobysec3 个月前
Goby 漏洞发布|(CVE-2024-45195)Apache OFBiz /viewdatafile 代码执行漏洞【已复现】
漏洞扫描·goby·漏洞验证
网安 云的小运营5 个月前
医疗器械网络安全 | 漏洞扫描、渗透测试没有发现问题,是否说明我的设备是安全的?
网络安全·医疗器械·漏洞扫描·fda
不爱缺氧i5 个月前
“unk0“ is not an ethernet device
nmap
FreeBuf_6 个月前
SploitScan:一款多功能实用型安全漏洞管理平台
安全管理·漏洞扫描·漏洞预警
Yisitelz8 个月前
网络安全实训Day16
笔记·web安全·网络安全·漏洞扫描