我使用scapy获取了一个捕获kerberos数据包:
###[ Ethernet ]###
dst = 20:6a:8a:0c:1e:3f
src = 00:25:64:a1:2a:9d
type = 0x800
###[ IP ]###
version = 4L
ihl = 5L
tos = 0x0
len = 213
id = 48219
flags = DF
frag = 0L
ttl = 64
proto = tcp
chksum = 0x4aaf
src = 192.168.88.224
dst = 192.168.88.231
\options \
###[ TCP ]###
sport = 34856
dport = kerberos
seq = 2748677979
ack = 527108396
dataofs = 8L
reserved = 0L
flags = PA
window = 229
chksum = 0x6ab9
urgptr = 0
options = [('NOP', None), ('NOP', None), ('Timestamp', (8241937, 896410))]
###[ Raw ]###
load = '\x00\x00\x00\x9dj\x81\x9a0\x81\x97\xa1\x03\x02\x01\x05\xa2\x03\x02\x01\n\xa3\x0e0\x0c0\n\xa1\x04\x02\x02\x00\x95\xa2\x02\x04\x00\xa4{0y\xa0\x07\x03\x05\x00@\x00\x00\x10\xa1\x120\x10\xa0\x03\x02\x01\x01\xa1\t0\x07\x1b\x05admin\xa2\n\x1b\x08TEST.LAN\xa3\x1d0\x1b\xa0\x03\x02\x01\x02\xa1\x140\x12\x1b\x06krbtgt\x1b\x08TEST.LAN\xa5\x11\x18\x0f20160408162022Z\xa7\x06\x02\x04\x1f\xf2f\x81\xa8\x140\x12\x02\x01\x12\x02\x01\x11\x02\x01\x10\x02\x01\x17\x02\x01\x19\x02\x01\x1a'
我需要翻译(Parses)部分[Raw] load = \ x00 \ x00 \ x ...因为它可以像Wireshark一样, 因为我想操纵存储在数据包中的数据并发送数据包进一步修改的收件人。我知道它可以用ASN1库,但我不知道怎么做。 谢谢你的帮助
答案 0 :(得分:1)
您应该能够通过使用Kerberos ASN.1 spec工具将pyasn1编译为asn1ate(Python)模块,然后针对捕获运行pyasn1解码器,从序列化形式恢复Kerberos数据结构。这会将Kerberos数据转换为可在内存中修改并重新序列化为八位字节序列的实时Python对象。
可以找到解码其他协议的一些示例脚本here。