Title | Detect modification of DstOpt header option data before AH |
CommandLine | ./HTR_A_In_DM_DSTH_optdata.seq -pkt ./HTR_A_DM_DSTH_optdata.def -log 19.html -ti Detect modification of DstOpt header option data before AH |
TestVersion | REL_1_1 |
ToolVersion | REL_1_1 |
Start | 2000/07/31 18:18:23 |
Tn | /usr/local/v6eval//etc//tn.def |
Nu | /usr/local/v6eval//etc//nut.def |
Pkt | ./HTR_A_DM_DSTH_optdata.def |
System | kame-freebsd |
TargetName | FreeBSD-3.4 Release + KAME-stable-20000704 |
HostName | target1.toba.tahi.org |
Type | host |
18:18:23 | Start |
*** Target initialization phase *** Target: Clear all SAD and SPD entries |
|
18:18:23 |
vRemote(ipsecClearAll.rmt) ``/usr/local/v6eval//bin/kame-freebsd/ipsecClearAll.rmt -t kame-freebsd -u root -p v6eval -d cuaa0c -o 1 ''
connected target1# target1# /usr/local/v6/sbin/setkey -c spdflush; flush; ^D target1# target1# sendMessagesSync: never got /usr/local/v6/sbin/setkey -cspdflush;flush; echo $status 0 target1# ~ [EOT] |
Target: Set SAD entries: src="3ffe:501:ffff:ff05:200:ff:fe00:c1c1" dst="3ffe:501:ffff:ff03:200:ff:fe00:b0b0" spi=0x1000 mode=transport protocol=ah aalgo=hmac-md5 aalgokey=0123456789ABCDEF | |
18:18:30 |
vRemote(ipsecSetSAD.rmt) ``/usr/local/v6eval//bin/kame-freebsd/ipsecSetSAD.rmt -t kame-freebsd -u root -p v6eval -d cuaa0c -o 1 src="3ffe:501:ffff:ff05:200:ff:fe00:c1c1" dst="3ffe:501:ffff:ff03:200:ff:fe00:b0b0" spi=0x1000 mode=transport protocol=ah aalgo=hmac-md5 aalgokey=0123456789ABCDEF ''
connected target1# target1# /usr/local/v6/sbin/setkey -c add 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 ah 0x1000 -m transport -A hmac-md5 "0123456789ABCDEF" ; dump; ^D 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 ah mode=transport spi=4096(0x00001000) reqid=0(0x00000000) A: hmac-md5 30313233 34353637 38394142 43444546 replay=0 flags=0x00000040 state=mature seq=0 pid=348 created: Jul 31 18:17:41 2000 current: Jul 31 18:17:41 2000 diff: 0(s) hard: 0(s) soft: 0(s) last: hard: 0(s) soft: 0(s) current: 0(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 0 hard: 0 soft: 0 refcnt=1 target1# target1# sendMessagesSync: never got /usr/local/v6/sbin/setkey -cadd 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 ah 0x1000 -m transport -A hmac-md5 "0123456789ABCDEF";dump; echo $status 0 target1# ~ [EOT] |
Target: Set SPD entries: src="3ffe:501:ffff:ff05:200:ff:fe00:c1c1" dst="3ffe:501:ffff:ff03:200:ff:fe00:b0b0" upperspec=any direction=in protocol=ah mode=transport | |
18:18:39 |
vRemote(ipsecSetSPD.rmt) ``/usr/local/v6eval//bin/kame-freebsd/ipsecSetSPD.rmt -t kame-freebsd -u root -p v6eval -d cuaa0c -o 1 src="3ffe:501:ffff:ff05:200:ff:fe00:c1c1" dst="3ffe:501:ffff:ff03:200:ff:fe00:b0b0" upperspec=any direction=in protocol=ah mode=transport ''
connected target1# target1# /usr/local/v6/sbin/setkey -c spdadd 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 any -P in ipsec ah/transport/3ffe:501:ffff:ff05:200:ff:fe00:c1c1-3ffe:501:ffff:ff03:200:ff:fe00:b0b0/require ; spddump; ^D 3ffe:501:ffff:ff05:200:ff:fe00:c1c1[any] 3ffe:501:ffff:ff03:200:ff:fe00:b0b0[any] any in ipsec ah/transport/3ffe:501:ffff:ff05:200:ff:fe00:c1c1-3ffe:501:ffff:ff03:200:ff:fe00:b0b0/require spid=21 seq=0 pid=349 refcnt=1 target1# target1# sendMessagesSync: never got /usr/local/v6/sbin/setkey -cspdadd 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 any -P in ipsec ah/transport/3ffe:501:ffff:ff05:200:ff:fe00:c1c1-3ffe:501:ffff:ff03:200:ff:fe00:b0b0/require;spddump; echo $status 0 target1# ~ [EOT] |
*** Target testing phase *** |
|
18:18:49 | Start Capturing Packets (Link0) |
Subtest No.1: option bit 000: option data is immutable |
|
18:18:49 |
vSend(Link0,echo_request_from_host1_dstopt_ah) send echo_request_from_host1_dstopt_ah |
18:18:49 | vRecv(Link0,ns_to_router echo_reply_to_host1) timeout:6 cntLimit:0 seektime:0 recv echo_reply_to_host1 |
18:18:49 | vRecv(Link0,ns_to_router) timeout:6 cntLimit:0 seektime:0 recv ns_to_router |
18:18:54 |
vSend(Link0,na_from_router) send na_from_router |
NC about Router was PROBE state, but now it's REACHABLE. | |
18:18:54 | vRecv(Link0,ns_to_router) timeout:6 cntLimit:0 seektime:0 vRecv() return status=1 |
18:19:00 | vRecv(Link0,ns_to_router) timeout:6 cntLimit:0 seektime:0 vRecv() return status=1 |
TN received echo reply from NUT to HOST1. |
|
18:19:06 |
vSend(Link0,echo_request_from_host1_ah_dm_dsth_000optdata) send echo_request_from_host1_ah_dm_dsth_000optdata |
18:19:07 | vRecv(Link0,ns_to_router echo_reply_to_host1) timeout:6 cntLimit:0 seektime:0 vRecv() return status=1 |
TN received no echo reply from NUT to HOST1. TN ignored the modified echo request packet. Subtest No.1 PASS Subtest No.2: option bit 001: option data is mutable |
|
18:19:13 |
vSend(Link0,echo_request_from_host1_ah_dm_dsth_001optdata) send echo_request_from_host1_ah_dm_dsth_001optdata |
18:19:13 | vRecv(Link0,ns_to_router echo_reply_to_host1) timeout:6 cntLimit:0 seektime:0 recv echo_reply_to_host1 |
18:19:13 | vRecv(Link0,ns_to_router) timeout:6 cntLimit:0 seektime:0 vRecv() return status=1 |
TN received echo reply from NUT to HOST1. Subtest No.2 PASS Subtest Results |1| option bit 000: option data is immutable | PASS | |2| option bit 001: option data is mutable | PASS | OK |
|
18:19:19 | End |
Frame_Ether (length:102) | Hdr_Ether (length:14) | | DestinationAddress = 0:a0:24:95:a4:91 | | SourceAddress = 0:0:0:0:a0:a0 | | Type = 34525 | Packet_IPv6 (length:88) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 48 | | | NextHeader = 60 | | | HopLimit = 64 | | | SourceAddress = 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 | | | DestinationAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | Hdr_Destination (length:8) | | | NextHeader = 51 | | | HeaderExtLength = 0 | | | Opt_ANY (length:6) | | | | OptionType = 2 | | | | OptDataLength = 4 | | | | data = 0f0f0000 | | Hdr_AH (length:24) | | | NextHeader = 58 | | | PayloadLength = 4 | | | Reserved = 0 | | | SPI = 4096 | | | SequenceNumber = 2 | | | algorithm = aalgo_hmacmd5_012 | | | ICV = ff1e58b1 400f7936 f813ecdb calc(ff1e58b1 400f7936 f813ecdb) | | ICMPv6_EchoRequest (length:16) | | | Type = 128 | | | Code = 0 | | | Checksum = 7333 calc(7333) | | | Identifier = 0 | | | SequenceNumber = 0 | | | Payload (length:8) | | | | data = 4563686f 44617461
Frame_Ether (length:70) | Hdr_Ether (length:14) | | DestinationAddress = 0:0:0:0:a0:a0 | | SourceAddress = 0:a0:24:95:a4:91 | | Type = 34525 | Packet_IPv6 (length:56) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 16 | | | NextHeader = 58 | | | HopLimit = 64 | | | SourceAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | | DestinationAddress = 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 | | ICMPv6_EchoReply (length:16) | | | Type = 129 | | | Code = 0 | | | Checksum = 7077 calc(7077) | | | Identifier = 0 | | | SequenceNumber = 0 | | | Payload (length:8) | | | | data = 4563686f 44617461 ===ns_to_router================================= ng compare _HDR_IPV6_ns_to_router.HopLimit received:64 = 255 ng compare _HDR_IPV6_ns_to_router.DestinationAddress received:3ffe:501:ffff:ff05:200:ff:fe00:c1c1 = oneof(v6("3ffe:501:ffff:ff03:200:ff:fe00:a0a0"),v6merge("FF02:0:0:0:0:1:FF00:0000",104,v6("3ffe:501:ffff:ff03:200:ff:fe00:a0a0"))) ng meta Packet_IPv6.ICMPv6_NS != Packet_IPv6.ICMPv6_EchoReply ===echo_reply_to_host1=================================
Frame_Ether (length:86) | Hdr_Ether (length:14) | | DestinationAddress = 0:0:0:0:a0:a0 | | SourceAddress = 0:a0:24:95:a4:91 | | Type = 34525 | Packet_IPv6 (length:72) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 32 | | | NextHeader = 58 | | | HopLimit = 255 | | | SourceAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | | DestinationAddress = 3ffe:501:ffff:ff03:200:ff:fe00:a0a0 | | ICMPv6_NS (length:32) | | | Type = 135 | | | Code = 0 | | | Checksum = 60641 calc(60641) | | | Reserved = 0 | | | TargetAddress = 3ffe:501:ffff:ff03:200:ff:fe00:a0a0 | | | Opt_ICMPv6_SLL (length:8) | | | | Type = 1 | | | | Length = 1 | | | | LinkLayerAddress = 0:a0:24:95:a4:91 ===ns_to_router=================================
Frame_Ether (length:86) | Hdr_Ether (length:14) | | DestinationAddress = 0:a0:24:95:a4:91 | | SourceAddress = 0:0:0:0:a0:a0 | | Type = 34525 | Packet_IPv6 (length:72) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 32 | | | NextHeader = 58 | | | HopLimit = 255 | | | SourceAddress = 3ffe:501:ffff:ff03:200:ff:fe00:a0a0 | | | DestinationAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | ICMPv6_NA (length:32) | | | Type = 136 | | | Code = 0 | | | Checksum = 13319 calc(13319) | | | RFlag = 1 | | | SFlag = 1 | | | OFlag = 1 | | | Reserved = 0 | | | TargetAddress = 3ffe:501:ffff:ff03:200:ff:fe00:a0a0 | | | Opt_ICMPv6_TLL (length:8) | | | | Type = 2 | | | | Length = 1 | | | | LinkLayerAddress = 0:0:0:0:a0:a0
Frame_Ether (length:102) | Hdr_Ether (length:14) | | DestinationAddress = 0:a0:24:95:a4:91 | | SourceAddress = 0:0:0:0:a0:a0 | | Type = 34525 | Packet_IPv6 (length:88) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 48 | | | NextHeader = 60 | | | HopLimit = 64 | | | SourceAddress = 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 | | | DestinationAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | Hdr_Destination (length:8) | | | NextHeader = 51 | | | HeaderExtLength = 0 | | | Opt_ANY (length:6) | | | | OptionType = 2 | | | | OptDataLength = 4 | | | | data = 00000000 | | Hdr_AH (length:24) | | | NextHeader = 58 | | | PayloadLength = 4 | | | Reserved = 0 | | | SPI = 4096 | | | SequenceNumber = 3 | | | ICV = calc() | | | Padding = 2e15afb4 f7976938 a94d18ae | | ICMPv6_EchoRequest (length:16) | | | Type = 128 | | | Code = 0 | | | Checksum = 7333 calc(7333) | | | Identifier = 0 | | | SequenceNumber = 0 | | | Payload (length:8) | | | | data = 4563686f 44617461
Frame_Ether (length:102) | Hdr_Ether (length:14) | | DestinationAddress = 0:a0:24:95:a4:91 | | SourceAddress = 0:0:0:0:a0:a0 | | Type = 34525 | Packet_IPv6 (length:88) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 48 | | | NextHeader = 60 | | | HopLimit = 64 | | | SourceAddress = 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 | | | DestinationAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | Hdr_Destination (length:8) | | | NextHeader = 51 | | | HeaderExtLength = 0 | | | Opt_ANY (length:6) | | | | OptionType = 34 | | | | OptDataLength = 4 | | | | data = 1f1f0000 | | Hdr_AH (length:24) | | | NextHeader = 58 | | | PayloadLength = 4 | | | Reserved = 0 | | | SPI = 4096 | | | SequenceNumber = 4 | | | ICV = calc() | | | Padding = ebfa096c adb557c2 a33560e6 | | ICMPv6_EchoRequest (length:16) | | | Type = 128 | | | Code = 0 | | | Checksum = 7333 calc(7333) | | | Identifier = 0 | | | SequenceNumber = 0 | | | Payload (length:8) | | | | data = 4563686f 44617461
Frame_Ether (length:70) | Hdr_Ether (length:14) | | DestinationAddress = 0:0:0:0:a0:a0 | | SourceAddress = 0:a0:24:95:a4:91 | | Type = 34525 | Packet_IPv6 (length:56) | | Hdr_IPv6 (length:40) | | | Version = 6 | | | TrafficClass = 0 | | | FlowLabel = 0 | | | PayloadLength = 16 | | | NextHeader = 58 | | | HopLimit = 64 | | | SourceAddress = 3ffe:501:ffff:ff03:200:ff:fe00:b0b0 | | | DestinationAddress = 3ffe:501:ffff:ff05:200:ff:fe00:c1c1 | | ICMPv6_EchoReply (length:16) | | | Type = 129 | | | Code = 0 | | | Checksum = 7077 calc(7077) | | | Identifier = 0 | | | SequenceNumber = 0 | | | Payload (length:8) | | | | data = 4563686f 44617461 ===ns_to_router================================= ng compare _HDR_IPV6_ns_to_router.HopLimit received:64 = 255 ng compare _HDR_IPV6_ns_to_router.DestinationAddress received:3ffe:501:ffff:ff05:200:ff:fe00:c1c1 = oneof(v6("3ffe:501:ffff:ff03:200:ff:fe00:a0a0"),v6merge("FF02:0:0:0:0:1:FF00:0000",104,v6("3ffe:501:ffff:ff03:200:ff:fe00:a0a0"))) ng meta Packet_IPv6.ICMPv6_NS != Packet_IPv6.ICMPv6_EchoReply ===echo_reply_to_host1=================================