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

python TCP包注入方式

 更新時間:2020年05月05日 20:34:47   作者:大囚長  
這篇文章主要介紹了python TCP包注入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧!

#! /usr/bin/env python
import socket
import struct
 
def checksum(data):
 s = 0
 n = len(data) % 2
 for i in range(0, len(data)-n, 2):
  s+= ord(data[i]) + (ord(data[i+1]) << 8)
 if n:
  s+= ord(data[i+1])
 while (s >> 16):
  s = (s & 0xFFFF) + (s >> 16)
 s = ~s & 0xffff
 return s
 
class ip():
 
 def __init__(self, source, destination):
  self.version = 4
  self.ihl = 5 # Internet Header Length
  self.tos = 0 # Type of Service
  self.tl = 0 # total length will be filled by kernel
  self.id = 54321
  self.flags = 0 # More fragments
  self.offset = 0
  self.ttl = 255
  self.protocol = socket.IPPROTO_TCP
  self.checksum = 0 # will be filled by kernel
  self.source = socket.inet_aton(source)
  self.destination = socket.inet_aton(destination)
 
 def pack(self):
  ver_ihl = (self.version << 4) + self.ihl
  flags_offset = (self.flags << 13) + self.offset
  ip_header = struct.pack("!BBHHHBBH4s4s",
     ver_ihl,
     self.tos,
     self.tl,
     self.id,
     flags_offset,
     self.ttl,
     self.protocol,
     self.checksum,
     self.source,
     self.destination)
  return ip_header
 
class tcp():
 
 def __init__(self, srcp, dstp):
  self.srcp = srcp
  self.dstp = dstp
  self.seqn = 0
  self.ackn = 0
  self.offset = 5 # Data offset: 5x4 = 20 bytes
  self.reserved = 0
  self.urg = 0
  self.ack = 0
  self.psh = 1
  self.rst = 0
  self.syn = 0
  self.fin = 0
  self.window = socket.htons(5840)
  self.checksum = 0
  self.urgp = 0
  self.payload = ""
 
 def pack(self, source, destination):
  data_offset = (self.offset << 4) + 0
  flags = self.fin + (self.syn << 1) + (self.rst << 2) + (self.psh << 3) + (self.ack << 4) + (self.urg << 5)
  tcp_header = struct.pack("!HHLLBBHHH",
      self.srcp,
      self.dstp,
      self.seqn,
      self.ackn,
      data_offset,
      flags, 
      self.window,
      self.checksum,
      self.urgp)
  #pseudo header fields
  source_ip = source
  destination_ip = destination
  reserved = 0
  protocol = socket.IPPROTO_TCP
  total_length = len(tcp_header) + len(self.payload)
  # Pseudo header
  psh = struct.pack("!4s4sBBH",
    source_ip,
    destination_ip,
    reserved,
    protocol,
    total_length)
  psh = psh + tcp_header + self.payload
  tcp_checksum = checksum(psh)
  tcp_header = struct.pack("!HHLLBBH",
     self.srcp,
     self.dstp,
     self.seqn,
     self.ackn,
     data_offset,
     flags,
     self.window)
  tcp_header+= struct.pack("H", tcp_checksum) + struct.pack("!H", self.urgp)
  return tcp_header
 
def test(source,site,data):
	s = socket.socket(socket.AF_INET,
     socket.SOCK_RAW,
     socket.IPPROTO_RAW)
	src_host=source
	dest_host=socket.gethostbyname(site)
	# IP Header
	ipobj=ip(src_host,dest_host)
	iph=ipobj.pack()
	# TCP Header
	tcpobj=tcp(1234,80)
	tcpobj.data_length=len(data)
	tcph=tcpobj.pack(ipobj.source,ipobj.destination)
	# Injection
	packet=iph+tcph+data
	s.sendto(packet,(dest_host,80))
	s.close()
 
if __name__ == '__main__':
	test("10.0.0.1","www.baidu.com","ITS TEST")

補充知識:python3 socket抓包

看代碼吧!

import socket
s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_TCP)
while True:
print(s.recvfrom(65565))

以上這篇python TCP包注入方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談python中常用的8種經(jīng)典數(shù)據(jù)結(jié)構(gòu)

    淺談python中常用的8種經(jīng)典數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了python中常用的8種經(jīng)典數(shù)據(jù)結(jié)構(gòu),包括原生數(shù)據(jù)結(jié)構(gòu),NumPy包中的數(shù)據(jù)結(jié)構(gòu),以及Pandas包中的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下
    2023-03-03
  • 使用Python開發(fā)一個圖像標(biāo)注與OCR識別工具

    使用Python開發(fā)一個圖像標(biāo)注與OCR識別工具

    這篇文章主要介紹了一個使用Python開發(fā)的工具,允許用戶在圖像上進(jìn)行矩形標(biāo)注,使用 OCR 對標(biāo)注區(qū)域進(jìn)行文本識別,并將結(jié)果保存為 Excel 文件,感興趣的可以了解下
    2025-03-03
  • Python使用scipy保存圖片的一些注意點

    Python使用scipy保存圖片的一些注意點

    這篇文章主要介紹了Python使用scipy保存圖片的一些注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python?Matplotlib實現(xiàn)三維數(shù)據(jù)的散點圖繪制

    Python?Matplotlib實現(xiàn)三維數(shù)據(jù)的散點圖繪制

    這篇文章主要為大家詳細(xì)介紹了Python?Matplotlib實現(xiàn)三維數(shù)據(jù)的散點圖繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 基于Python實現(xiàn)文章信息統(tǒng)計的小工具

    基于Python實現(xiàn)文章信息統(tǒng)計的小工具

    及時的統(tǒng)計可以更好的去分析讀者對于內(nèi)容的需求,了解文章內(nèi)容的價值,以及從側(cè)面認(rèn)識自己在知識創(chuàng)作方面的能力。本文就來用Python制作一個文章信息統(tǒng)計的小工具?,希望對大家有所幫助
    2023-02-02
  • python基礎(chǔ)之基本運算符

    python基礎(chǔ)之基本運算符

    這篇文章主要介紹了python基本運算符,實例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2021-10-10
  • 如何利用python檢測圖片是否包含二維碼

    如何利用python檢測圖片是否包含二維碼

    這篇文章主要介紹了如何利用python檢測圖片是否包含二維碼,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-10-10
  • 復(fù)化梯形求積分實例——用Python進(jìn)行數(shù)值計算

    復(fù)化梯形求積分實例——用Python進(jìn)行數(shù)值計算

    今天小編就為大家分享一篇復(fù)化梯形求積分實例——用Python進(jìn)行數(shù)值計算,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實現(xiàn)對adb命令封裝

    Python實現(xiàn)對adb命令封裝

    這篇文章主要介紹了Python實現(xiàn)對adb命令封裝,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python 工具類之Queue組件詳解用法

    python 工具類之Queue組件詳解用法

    隊列(queue)是一種先進(jìn)先出的(First In First Out)的線性表,簡稱FIFO。隊列允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作。允許插入的一端為隊尾,允許刪除的一端為隊頭。隊列不允許在中間部位進(jìn)行操作
    2021-10-10

最新評論

诏安县| 邹平县| 临沧市| 垣曲县| 自贡市| 建平县| 沾益县| 扎赉特旗| 乐山市| 宁河县| 岳西县| 山丹县| 乌拉特后旗| 全椒县| 汨罗市| 泸州市| 峨眉山市| 花莲市| 长子县| 南漳县| 嘉鱼县| 永德县| 华池县| 正宁县| 临泽县| 云南省| 图片| 久治县| 清涧县| 平安县| 云南省| 茂名市| 临泉县| 资溪县| 红原县| 山东省| 南澳县| 青田县| 高邮市| 大丰市| 珲春市|