一、ICMP隧道

背景:已经通过某种手段拿到了园区网A主机的控制权,但是边界防火墙只放行该主机向外的ICMP流量,此时怎样才能让A主机和公网主机C建立TCP连接呢?

方案:将TCP包内容包裹在ICMP中进行传递

工具: ptunnel

工作原理:A主机通过周期性向渗透测试工程师发送ICMP请求以建立ICMP连接。在本地侦听一个空闲端口并与指定IP的指定端口(C主机)建立映射。此时访问侦听的这个端口就相当于访问公网指定IP的指定端口了(C主机)

隧道建立命令:

渗透测试工程师端(开启这个程序后本地不会侦听任何端口,因为它用的是ICMP,既不属于TCP也不属于UDP):
ptunnel -x passwd

参数说明:
-x:密码

A主机端:
ptunnel -p 120.1.1.1 -lp 8000 -da 180.1.1.1 -dp 80 -x passwd

参数说明:
-p:渗透测试工程师IP地址
-lp:本地侦听端口
-da:C主机
-dp:C主机端口
-x:密码

验证:此时在A主机将侦听8000端口,A、B主机此时连接A主机8000端口的TCP流量均被导入C主机的80端口

缺点:唯一的缺点是运行此程序需要root权限

提醒:如果觉得每个隧道只能映射一个公网地址有局限性,可以配合SSH动态端口使用。通过此方法建立ICMP隧道后,再在此隧道内建立一条SSH动态端口转发隧道就可以访问公网任意地址了

二、http隧道

背景:已经通过某种手段拿到了园区网内A主机的控制权,但是边界防火墙只放行代理服务器的出向流量,可是又想用A主机与外面的PC建立ssh连接时该怎么办?

方案:让http代理服务器代替A主机与PC建立ssh连接

工作原理:在本地侦听一个空闲端口,并将PC的22端口映射至该侦听端口,然后将通往PC22端口的流量包裹进代理服务器的http包中,代理服务器将代替A主机与PC建立ssh连接,然后将回包通过http反还给A主机。此时园区网内所有设备只要sshA主机侦听的端口,流量就会被导入PC的22端口。(另外该方案还支持代理链,即通过代理服务器连接至外网的某一代理服务器,再通过该代理服务器与PC建立ssh连接)

隧道建立命令:proxytunnel -a 2222 -p 10.1.1.1:3128 -r 180.1.1.1:80 -d 120.1.1.1:22

-a:本地侦听端口
-p: 本地官方的代理服务器
-r: 墙外的代理服务器
-d: 最终要访问的目标

验证:A主机将在0.0.0.0侦听2222端口,此时园区网内任意一主机ssh主机A的2222端口都将连到PC的22端口

三、UDP隧道

背景:通过某种手段拿到了园区网A主机的控制权,却发现边界防火墙只放行向外的DNS请求流量,此时想要ssh公网上的B主机该怎么办?

方案:将ssh流量包裹在DNS请求报文中

工作原理:搭建一个DNS服务器(B主机),申请域名,并确保上级DNS服务器能将该域名解析至自己的DNS服务器。A主机向公网发出DNS请求(因为A记录长度有限,故可以请求txt这种记录,请求的txt内容就为ssh流量),经过根DNS将流量解析至自己的DNS服务器(B主机),这样公网的主机B就收到了A主机发来的ssh协商请求,然后B主机通过将协商内容写入DNS应答包返回给主机A,这样一来一回就达成了建立ssh连接的网络环境。

由于这种隧道搭建需要一定成本(要让根DNS解析至自己主机),所以就没有做实验验证了。

需要提醒一点:大家都知道DNS会用到UDP的53端口和TCP的53端口,但需要注意的是UDP的53端口是用来做DNS查询使用,TCP的53端口是用用于同一区域冗余DNS之间同步信息,并非这俩端口都是用来做DNS查询的,所以网络管理员一般在边界防火墙只需放开UDP的53端口即可。

总结:归根结底,每种隧道的实现其实都是将协商数据封装至可以放行的流量中。(即:防火墙放行什么协议就将隧道协商流量封装至什么协议)

绕过边界防火墙之ICMP隧道、HTTP隧道、UDP隧道的更多相关文章

  1. Kcptun 是一个非常简单和快速的,基于KCP 协议的UDP 隧道,它可以将TCP 流转换为KCP+UDP 流

    本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度.Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户:而 ...

  2. labview中的移位寄存器、循环隧道,自动索引隧道的区别

    对于循环结构(For 循环.while循环)而言,循环体内的数据域外部数据的传递是通过以下三种方式: 1.移位寄存器2.循环隧道3.自动索引隧道 第一.各自的区别.作用 循环隧道,就是把数据传入传出循 ...

  3. 华三F100系列防火墙 、华为USG6300系列防火 GRE 隧道配置

    GRE概述: 通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPV4网络中传输 ...

  4. 利用ICMP进行命令控制和隧道传输

    目录 使用ICMP进行命令控制 使用ICMP搭建隧道 使用ICMP进行命令控制 攻击机:Kali  192.168.10.11 靶机:Windows 192.168.10.1 使用的工具:icmpsh ...

  5. Firewalld防火墙与ICMP攻击

    原文地址:http://www.excelib.com/article/293/show 提到ICMP大家应该都很熟悉,可能有人会说:不就是ping吗?但是说到ICMP攻击以及相关防御措施可能就有的人 ...

  6. 使用 connect http proxy 绕过 ssh 防火墙限制

    1.安装 connect brew install connect 2.配置 ~/.ssh/config Host * ProxyCommand connect -H your.proxy.serve ...

  7. DNS隧道工具:iodine使用

      iodine可以通过一台dns服务器制造一个IPv4数据通道,特别适合在目标主机只能发送dns请求的网络中环境中使用.iodine是基于C语言开发的,分为服务端程序iodined和客户端程序iod ...

  8. Linux/Unix System Level Attack、Privilege Escalation(undone)

    目录 . How To Start A System Level Attack . Remote Access Attack . Local Access Attack . After Get Roo ...

  9. 小白日记8:kali渗透测试之主动信息收集(二)三层发现:ping、traceroute、scapy、nmap、fping、Hping

    三层发现 三层协议有:IP以及ICMP协议(internet管理协议).icmp的作用是用来实现intenet管理的,进行路径的发现,网路通信情况,或者目标主机的状态:在三层发现中主要使用icmp协议 ...

随机推荐

  1. MUI 里js动态添加数字输入框后,增加、减少按钮无效

    numbox 的自动初化是在 mui.ready 时完成的mui 页面默认会自动初始化页面中的所有数字输入框,动态构造的 DOM 需要进行手动初始化.比如:您动态创建了一个 ID 为 abc 的数字输 ...

  2. Maths | 为什么点积等价于投影后的乘积

    目录 1. 复习点积 2. 点积的对称性 3. 矩阵与变换的关系 4. 一维矩阵也是一种线性变换 5. 最终解释:为什么是投影 先上结论: \(\boldsymbol v\)和\(\boldsymbo ...

  3. Reading | 《Python基础教程》第1次阅读

    目录 一.基础知识 1.数和表达式 浮点除法和整数除法 负数整除和取余 圆整 乘方运算 2.变量名 3.获取用户输入 4.模块 5.让脚本像普通程序一样 6.字符串 单.双引号 引号的转义 字符串拼接 ...

  4. Java连接MySQL数据库详细教程(附网盘下载地址)

    准备工具 Eclipse-oxygen-64位 http://pan.baidu.com/s/1gf48FIj MySQL-5.7.17 http://pan.baidu.com/s/1skD14Cl ...

  5. java技术突破要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  6. MongoDB 数据库

    数据库: 关系型数据库       mysql           收费        速度快     字段类型 非关系型数据库   MongoDB    不收费    速度慢一些 存储数据都是字符串 ...

  7. Android 页面跳转之生命周期调用顺序问题

    Android Activity 常用技巧 Android Activity 启动模式和任务栈 Android 页面跳转之生命周期调用顺序问题 一.页面跳转逻辑分析 1.1 跳转逻辑分析 Androi ...

  8. [Mac]macOS Mojave :发现 Mac 的新功能。

    1.深色模式 换种颜色看 Mac “深色模式”为桌面和内建应用带来更生动的外观,可让您轻松专注于最重要的内容. 若要在浅色和深色外观之间切换,请打开“系统偏好设置”并点按“通用”. 2.叠放 整理桌面 ...

  9. MySQL备份---lvm snapshot

    正常安装(缺点要锁表) 1, 创建一个LV(逻辑卷) , 把MySQL的数据目录放到这个LV上 /var/lib/mysql 对这个LV做快照, 从快照备份数据 删除快照 非正常安装 1,创建LV 2 ...

  10. ubuntu 16.04 安装chrome的方法

    默认chrome在ubuntu上是没默认安装,安装也不能使用apt-get 来安装,一般会遇到名字无法找到的问题. 摸索了一下,才找到一个比较好的安装方式: 1 从网站: https://www.ch ...