微信号:freebuf

介绍:国内关注度最高的全球互联网安全新媒体

如何利用ICMP建立C2会话?

2019-01-27 18:37 secist

在之前的文章中我为大家展示了如何获取各种C2会话。本文我将为大家介绍另一种获取C2会话的方法,即利用ICMP来建立C2会话。在正式开始之前,让我们先来简单了解下什么是ICMP? ICMP是(Internet Control Message Protocol)Internet控制报文协议。它允许互联网连接的设备在遇到传送数据包的问题时,将错误消息发送回源IP地址。这个协议非常的实用,但对于攻击者而言它的用途却不止于此。

为了设置我们的会话,我们需要先来下载几个文件。第一个文件将在攻击机上运行。你可以在这里下载到:https://github.com/inquisb/icmpsh。我在我的Kali机器上克隆了该文件。第二个文件是一个PowerShell脚本,我们将在受害者机器上运行。你可以在此处下载到:https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellIcmp.ps1。

在我的攻击机实例上,我克隆了icmpsh。

我运行了python脚本来启动我的侦听程序。

如下所示,运行该脚本需要为其提供源IP以及目标IP地址。

可以看到什么都没发生,这是由于我们未进行客户端的相关设置。转到GitHub站点并保存该源码。

获取PowerShell代码后,我们需要将其传输到受害机器上。传输的方法有很多,这里我就不再详细说明了。这只是一个测试所以我直接拷贝了该文件。

现在脚本已准备就绪,下面让我们来运行该脚本。这是一个PowerShell脚本,所以我们需要打开一个PowerShell命令提示符。

打开PowerShell命令提示符后,我们来运行该脚本。导航到放置文件的位置并运行以下命令。

成功运行脚本后,在我的kali上我获取到了一个会话连接。如下:

现在我可以运行任何命令,就像我在受害者机器上一样。

那么,使用ICMP建立C2会话的好处又是什么呢?所有通信都被注入到ICMP数据包,包括请求和响应。由于所有流量都在ICMP数据包中,因此基于代理的防火墙无法检测到这些流量。但这并不是说无法检测到这些连接,而是可以绕过某些防火墙规则。

*参考来源:blackhillsinfosec,FB小编secist编译,转载请注明来自FreeBuf.COM

 
FreeBuf 更多文章 号称“人脉暗网”,马桶MT可不可以不要我的通讯录? 利用分块传输吊打所有WAF 2018年Windows服务器挖矿木马报告 黑灰产一出手就是200多亿,这次遭殃的是拼多多 层层监管下玩出花样,34亿赌资是如何进入赌博幕后人口袋的?
猜您喜欢 【译】S.O.L.I.D 原则在 Go 中的应用(上) 关于TCP重传超时时间的几个问题 【深度】Kubernetes在京东人工智能平台的应用 如何基于Python搭建Django后台管理系统 Go 语言宣布加入 WASM!WebAssembly 再添猛将