self.fail(e)
self.assertEqual(actual, expected)
+
+ # Test a --validate push of a NULL struct pointer
+ def test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGE(self):
+ expected = open(self.data_path("fuzzed_ntlmssp-CHALLENGE_MESSAGE.txt")).read().encode('utf8')
+ try:
+ actual = self.check_exit_code(
+ "ndrdump ntlmssp CHALLENGE_MESSAGE struct --validate --input " +\
+ "'AAAACwIAAAAAJwIAAAAAAAcAAAAAAAAAAIAbhG8uyk9dAL0mQE73MAAAAAAAAAAA' --base64-input",
+ 1)
+ except BlackboxProcessError as e:
+ self.fail(e)
+
+ self.assertEqual(actual, expected)
--- /dev/null
+pull returned Success
+ CHALLENGE_MESSAGE: struct CHALLENGE_MESSAGE
+ Signature : ''
+ MessageType : UNKNOWN_ENUM_VALUE (0x22700)
+ TargetNameLen : 0x0000 (0)
+ TargetNameMaxLen : 0x0000 (0)
+ TargetName : *
+ TargetName : ''
+ NegotiateFlags : 0x00000000 (0)
+ 0: NTLMSSP_NEGOTIATE_UNICODE
+ 0: NTLMSSP_NEGOTIATE_OEM
+ 0: NTLMSSP_REQUEST_TARGET
+ 0: NTLMSSP_NEGOTIATE_SIGN
+ 0: NTLMSSP_NEGOTIATE_SEAL
+ 0: NTLMSSP_NEGOTIATE_DATAGRAM
+ 0: NTLMSSP_NEGOTIATE_LM_KEY
+ 0: NTLMSSP_NEGOTIATE_NETWARE
+ 0: NTLMSSP_NEGOTIATE_NTLM
+ 0: NTLMSSP_NEGOTIATE_NT_ONLY
+ 0: NTLMSSP_ANONYMOUS
+ 0: NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED
+ 0: NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED
+ 0: NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL
+ 0: NTLMSSP_NEGOTIATE_ALWAYS_SIGN
+ 0: NTLMSSP_TARGET_TYPE_DOMAIN
+ 0: NTLMSSP_TARGET_TYPE_SERVER
+ 0: NTLMSSP_TARGET_TYPE_SHARE
+ 0: NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY
+ 0: NTLMSSP_NEGOTIATE_IDENTIFY
+ 0: NTLMSSP_REQUEST_NON_NT_SESSION_KEY
+ 0: NTLMSSP_NEGOTIATE_TARGET_INFO
+ 0: NTLMSSP_NEGOTIATE_VERSION
+ 0: NTLMSSP_NEGOTIATE_128
+ 0: NTLMSSP_NEGOTIATE_KEY_EXCH
+ 0: NTLMSSP_NEGOTIATE_56
+ ServerChallenge : 00801b846f2eca4f
+ Reserved : 5d00bd26404ef730
+ TargetInfoLen : 0x0000 (0)
+ TargetInfoMaxLen : 0x0000 (0)
+ TargetInfo : NULL
+ndr_push_subcontext_end: ndr_push_error(Subcontext Error): Bad subcontext (PUSH) content_size 1 is larger than size_is(0) at ../../librpc/ndr/ndr.c:905
+push returned Subcontext Error
+validate push FAILED