内网流量操控---pingtunnel建立icmp隧道
一、pingtunnel工作原理

在上面的实验环境中,我们将分别在攻击机kali 2020和webserver上部署pingtunnel工具,在量太主机之间实现icmp隧道,再在kali2020上监听1080(图中写错了,没改过来),将webserver访问内网主机server2003远程桌面3389的数据通过icmp协议进行数据封装,然后转发到kali2020的1080端口上,从而实现了win7上访问server2003上3389端口的目的。webserver作为黑客的一个跳板,从而控制内网的主机。这个过程看起来跟ssh隧道本地端口转发非常相似,不同之处知识穿透防火墙的流量是通过icmp协议,另一个是ssh协议。
二、部署pingtunnel
操作系统环境:两台kali linux,两台windows,一台防火墙(只允许icmp协议数据包通过),
1.下载pingtunnel
先到网站http://freshmeat.sourceforge.net/projects/ptunnel下载tar包文件,解压编译安装
1>tar zxf PingTunnel-0.72.tar.gz
2>cd PingTunnel
3>make && makeinstall
注意:
安装前要先安装依赖库(libpcap类似于wincap)
apt-get install flex
apt-get install -y byacc
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar zxf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install
2.pingtunnel参数
-x 指定 icmp 隧道连接验证密码
-lp 指定要监听的本地 tcp 端口
-da 指定要转发到的机器的 ip 地址
-dp 指定要转发到的机器的 tcp 端口
-p 指定icmp隧道另一端机器的 ip 地址
3.c/s命令
vps(攻击机)命令:
ptunnel -p 192.168.4.134 -lp 1080 -da 1.1.1.10 -dp 3389 -x pass

webserver(跳板机)命令:
ptunnel -x shuteer

win 7 (黑客攻击端)命令
win + R
mstsc
192.168.4.136:1080

接下来可以尝试密码弱口令暴力破解


此时我们就可以拿到内网主机的远程桌面,实现远程控制的目的了,请仔细看看我所标红的IP地址,发现了什么,192.168.4.136是vps的ip地址,而这台主机的真正ip为1.1.1.10内网主机的ip
我们再看看数据经过ICMP隧道,在pingtunnel上留下的记录

可以很情绪的看到session会话

三、防御ICMP隧道攻击的方法
许多网络管理员会阻止ICMP通信进出站点。但是出站方向,ICMP通信是被允许的,而且目前大多数的网络和边界设备不会过滤ICMP流量。使用ICMP隧道时会产生大量的ICMP数据包,我们可以通过wireshark进行ICMP数据包分析以检测恶意ICMP流量,具体方法如下。
.检测同一来源的ICMP数据包的数量。一个正常的ping 命令每秒最多发送两个数据包,而使用ICMP隧道的浏览器会在很短的时间内产生上千个ICMP数据包。
.注意那些Payload大于64bit的ICMP数据包
.寻找相应数据包中的payload与请求数据包中的payload不一致的ICMP数据包
.检查ICMP数据包的协议标签。例如,icmptunnel会在所有的ICMP payload前面添加"TUNL"标记来标识隧道----这就是特征
内网流量操控---pingtunnel建立icmp隧道的更多相关文章
- reGeorg v1.0内网流量转发
reGeorg v1.0 git Usage $ reGeorgSocksProxy.py [-h] [-l] [-p] [-r] -u [-v] Socks server for reGeorg H ...
- linux 查看内网流量
可以使用iftop进行Linux机器的网络流量监控 安装方法 centos系统下 第一步:安装EPEL源 yum install epel-release 第二部:安装iftop yum instal ...
- 利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发
近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功 ...
- ssh反向连接内网主机
holer听别人说也挺好用不过本人没试过:https://github.com/Wisdom-Projects/holer 利用autossh建立稳定隧道,前提双方互加公钥信任. # yum inst ...
- 内网渗透之frp使用
0x00 前言 nps相比上次已经介绍过了.但是他有一个致命缺点就是在scks5代理下会长连接一直不放开导致结果不准确.所以来讲讲frp的使用.frp虽然需要落地配置文件,但是扫描的结果还是很准确的. ...
- 关于网卡eth0、eth1以及服务器为什么要把内网和外网卡区分开
在搜搜上看到了这个回答,它解释了什么是eth0,eth1: eth0和eth1这是网卡设备,只是个名称不必纠结.通常服务器会有多个网卡的,所以就有eth0 eth1 eth2 这样的名称,而且在一些系 ...
- ICMP隧道工具ptunnel
ICMP隧道工具ptunnel 在一些网络环境中,如果不经过认证,TCP和UDP数据包都会被拦截.如果用户可以ping通远程计算机,就可以尝试建立ICMP隧道,将TCP数据通过该隧道发送,实现不受 ...
- [svc]frp内网穿透
什么是穿透 可以任意暴漏内网任何服务,加入你在你的办公网络有台pc,可以上网就可以了, 你可以在你电脑上安装各类服务器, 暴漏如80 22等端口, 注意 这可以暴漏到公网哦, 在出口不做任何nat情况 ...
- 内网安全---隐藏通信隧道基础&&网络通信隧道之一ICMP隧道
一,隐藏通信隧道基础知识 在完成信息收集之后,我们要判断流量是否出的去.进的来.隐藏通信隧道技术常用于在受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输. 1.常见的隧道: .网络层 ...
随机推荐
- 【刷题-LeetCode】203. Remove Linked List Elements
Remove Linked List Elements Remove all elements from a linked list of integers that have value *val* ...
- python闭包函数&装饰器
一.函数引用 函数可以被引用 函数可以被赋值给一个变量 def hogwarts(): print("hogwarts") # hogwarts() # 函数调用 print(ho ...
- IoC容器-Bean管理XML方式(注入内部bean和级联赋值)
注入属性-内部bean和级联赋值 (1)一对多关系:部分和员工 一个部门有多个员工,一个员工属于一个部门 部门是一,员工是多 (2)在实体类之间表示一对多关系 (3)在spring配置文件中进行配置 ...
- 集合框架-工具类-JDK5.0特性-静态导入
1 package cn.itcast.p4.news.demo; 2 3 import java.util.ArrayList; 4 //import java.util.Collections; ...
- IP:网络上的击鼓传花
链接,而不是直达 在之前<听说你很懂 DNS?>中我们分析过用户在浏览器里面输入 www.baidu.com 后,浏览器如何通过 DNS 解析拿到 IP 地址,然后请求该 IP 地址获取网 ...
- 分治FFT小记🐤
分治FFT:在 $O(n \log^2 n)$ 的时间内求出类似于 $f_i=\sum\limits_{j=0}^{i-1}g(i-j)f(j)$ 之类的递推式 思想:同 CDQ 分治的思想,先分成左 ...
- ApacheCN JavaWeb 译文集 20211017 更新
使用 Spring5 构建 REST Web 服务 零.前言 一.一些基本知识 二.在 Spring5 中使用 Maven 构建 RESTfulWeb 服务 三.Spring 中的 Flux 和 Mo ...
- File 类的 getPath()、getAbsolutePath()、getCanonicalPath() 的区别【转】
File 类的 getPath().getAbsolutePath().getCanonicalPath() 的区别 感谢大佬:https://blog.csdn.net/zsensei/articl ...
- java - HashMap原理及实现 (转)
众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry.这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干. HashMap ...
- ldconfig及LD_LIBRARY_PATH
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令:ldconfig.ldconfig 命令的用途,主要是在默认搜寻目录 (/lib和/usr/lib ...