簡體   English   中英

無法正確解析帶有SSLv2Record的Scapy發送/嗅探數據包

[英]Scapy Send/Sniff Packet with SSLv2Record not Parsed Correctly

我有一個像這樣的小包:

###[ IP ]###
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags=
  frag= 0
  ttl= 64
  proto= tcp
  chksum= None
  src= 127.0.0.1
  dst= 127.0.0.1
  \options\
###[ TCP ]###
 sport= 50034
 dport= https
 seq= 0
 ack= 0
 dataofs= None
 reserved= 0
 flags= S
 window= 8192
 chksum= None
 urgptr= 0
 options= {}
###[ SSL/TLS ]###
    \records\
     |###[ SSLv2 Record ]###
     |  length= 0x591
     |  content_type= 5
     |###[ Raw ]###
     |  load= '\xbf'

send(packet) ,然后在另一個終端(在同一台機器上),我正在運行

 a = sniff(filter = "port https", prn = lambda x:x.summary())

當我打印出接收到的數據包時,它看起來像這樣:

###[ Ethernet ]###
  dst= ff:ff:ff:ff:ff:ff
  src= 00:00:00:00:00:00
  type= 0x800
###[ IP ]###
  version= 4L
  ihl= 5L
  tos= 0x0
  len= 44
  id= 1
  flags=
  frag= 0L
  ttl= 64
  proto= tcp
  chksum= 0x7cc9
  src= 127.0.0.1
  dst= 127.0.0.1
  \options\
###[ TCP ]###
    sport= 50034
    dport= https
    seq= 0
    ack= 0
    dataofs= 5L
    reserved= 0L
    flags= S
    window= 8192
    chksum= 0xc15e
    urgptr= 0
    options= []
###[ SSL/TLS ]###
       \records\
###[ Raw ]###
          load= '\x05\x91\x05\xbf'

主要問題是在嗅探到數據包后,沒有顯示SSLv2Record。 SSL/TLS字段中records列表的內容已完全關閉。 誰看過這個嗎? 如果需要添加更多詳細信息,請告訴我。

我100%確信在嗅探后要打印的數據包是正確的數據包。

我相信我正在為這種類型的數據包使用正確的發送(只是發送,而不是sendp等)。 我已經能夠發送和嗅探沒有SSLv2Record字段的其他數據包,而不會出現問題。

看來我是在錯誤地發送或接收此數據包嗎?

這實際上是scapy-ssl_tls中的一個錯誤, 通過PR#76解決,其中SSLv2Record層無法正確序列化該對象。 您的數據包序列化為\\x05\\x91\\x05\\xbf而應該是\\x85\\x91\\x05\\xbf 區別在於,對於有效的SSLv2記錄,必須設置長度的MSB。

>>> SSL('\x05\x91\x05\xbf')
<SSL  records=[] |<Raw  load='\x05\x91\x05\xbf' |>>
>>> SSL('\x85\x91\x05\xbf')
<SSL  records=[<SSLv2Record  length=0x591 content_type=5 |<Raw  load='\xbf' |>>] |>

這是檢查重新反序列化的快速測試:

錯誤:

>>> SSL(str(SSL(records=[SSLv2Record(length=0x591, content_type=5)/"\xbf"])))
<SSL  records=[] |<Raw  load='\x05\x91\x05\xbf' |>>

正確:

>>> SSL(str(SSL(records=[SSLv2Record(length=0x591, content_type=5)/"\xbf"])))
<SSL  records=[<SSLv2Record  length=0x591 content_type=5 |<Raw  load='\xbf' |>>] |>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM