123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import scapy.packet as packet
- import scapy.fields as field
- import scapy.layers.netbios as netbios
- # TODO: FILL ME
- class SMB2_SYNC_Header(packet.Packet):
- namez = "SMB2Negociate Protocol Response Header"
- fields_desc = [field.StrFixedLenField("Start", "\xfeSMB", 4),
- field.LEShortField("StructureSize", 64),
- field.LEShortField("CreditCharge", 0),
- field.LEIntField("Status", 0),
- field.LEShortField("Command", 0),
- field.LEShortField("CreditResponse", 0),
- field.LEIntField("Flags", 0),
- field.LEIntField("NextCommand", 0),
- field.LELongField("MessageID", 0),
- field.LEIntField("Reserved", 0),
- field.LEIntField("TreeID", 0x0),
- field.LELongField("SessionID", 0),
- field.LELongField("Signature1", 0),
- field.LELongField("Signature2", 0)]
- # TODO: FILL ME Description was not correct anymore
- class SMB2_Negotiate_Protocol_Response(packet.Packet):
- namez = "SMB2Negociate Protocol Response"
- fields_desc = [field.LEShortField("StructureSize", 65),
- field.LEShortField("SecurityMode", 0),
- field.LEShortField("DialectRevision", 0x0),
- field.LEShortField("NegotiateContentCount/Reserved", 0),
- field.StrFixedLenField("ServerGuid", "", 16),
- field.LEIntField("Capabilities", 0),
- field.LEIntField("MaxTransactSize", 0),
- field.LEIntField("MaxReadSize", 0),
- field.LEIntField("MaxWriteSize", 0),
- field.LELongField("SystemTime", 0),
- field.LELongField("ServerStartTime", 0),
- field.LEShortField("SecurityBufferOffset", 0),
- field.LEShortField("SecurityBufferLength", 0),
- field.StrLenField("SecurityBlob", "", length_from=lambda x: x.ByteCount + 16),
- field.LEIntField("NegotiateContextOffset/Reserved2", 0)]
- packet.bind_layers(netbios.NBTSession, SMB2_SYNC_Header, )
- packet.bind_layers(SMB2_SYNC_Header, SMB2_Negotiate_Protocol_Response, )
|