summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS5
-rw-r--r--epan/dissectors/packet-dcerpc-samr.c48
2 files changed, 51 insertions, 2 deletions
diff --git a/AUTHORS b/AUTHORS
index 372da67231..c15e4dab7c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2315,6 +2315,11 @@ Shoichi Sakane <sakane [AT] tanu.org> {
IKEv2 support
}
+Michael Richardson <Michael.Richardson [AT] protiviti.com> {
+ SAMR updates and new info levels
+}
+
+
And assorted fixes and enhancements by the people listed above
and by:
diff --git a/epan/dissectors/packet-dcerpc-samr.c b/epan/dissectors/packet-dcerpc-samr.c
index a01fbe8509..bf454e537f 100644
--- a/epan/dissectors/packet-dcerpc-samr.c
+++ b/epan/dissectors/packet-dcerpc-samr.c
@@ -93,6 +93,10 @@ static int hf_samr_nt_passchange_block_pseudorandom = -1;
static int hf_samr_lm_verifier = -1;
static int hf_samr_nt_verifier = -1;
static int hf_samr_attrib = -1;
+static int hf_samr_force_logoff_time = -1;
+static int hf_samr_lockout_duration_time = -1;
+static int hf_samr_lockout_reset_time = -1;
+static int hf_samr_lockout_threshold_short = -1;
static int hf_samr_max_pwd_age = -1;
static int hf_samr_min_pwd_age = -1;
static int hf_samr_min_pwd_len = -1;
@@ -2483,6 +2487,32 @@ samr_dissect_DOMAIN_INFO_11(tvbuff_t *tvb, int offset,
}
static int
+samr_dissect_DOMAIN_INFO_12(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *parent_tree,
+ guint8 *drep)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int old_offset=offset;
+
+ if(parent_tree){
+ item = proto_tree_add_text(parent_tree, tvb, offset, -1,
+ "DOMAIN_INFO_12:");
+ tree = proto_item_add_subtree(item, ett_samr_replication_status);
+ }
+
+ offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
+ hf_samr_lockout_duration_time);
+ offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
+ hf_samr_lockout_reset_time);
+ offset = dissect_ndr_uint16(tvb, offset, pinfo, tree, drep,
+ hf_samr_lockout_threshold_short, NULL);
+
+ proto_item_set_len(item, offset-old_offset);
+ return offset;
+}
+
+static int
samr_dissect_DOMAIN_INFO_13(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *parent_tree,
guint8 *drep)
@@ -2541,7 +2571,7 @@ samr_dissect_DOMAIN_INFO(tvbuff_t *tvb, int offset,
case 3:
offset = dissect_ndr_nt_NTTIME(tvb, offset, pinfo, tree, drep,
- hf_samr_unknown_time);
+ hf_samr_force_logoff_time);
break;
case 4:
offset = dissect_ndr_counted_string(tvb, offset, pinfo,
@@ -2575,7 +2605,7 @@ samr_dissect_DOMAIN_INFO(tvbuff_t *tvb, int offset,
tvb, offset, pinfo, tree, drep);
break;
case 12:
- offset = samr_dissect_REPLICATION_STATUS(
+ offset = samr_dissect_DOMAIN_INFO_12(
tvb, offset, pinfo, tree, drep);
break;
case 13:
@@ -5295,6 +5325,20 @@ proto_register_dcerpc_samr(void)
"LM Change", "samr.lm_change", FT_UINT8, BASE_HEX,
NULL, 0, "LM Change value", HFILL }},
+ { &hf_samr_force_logoff_time,
+ { "Forced Logoff Time After Time Expires", "samr.force_logoff_time", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0, "Forced logoff time after expires:", HFILL }},
+
+ { &hf_samr_lockout_duration_time,
+ { "Lockout Duration Time", "samr.lockout_duration_time", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0, "Lockout duration time:", HFILL }},
+ { &hf_samr_lockout_reset_time,
+ { "Lockout Reset Time", "samr.lockout_reset_time", FT_RELATIVE_TIME, BASE_NONE,
+ NULL, 0, "Lockout Reset Time:", HFILL }},
+ { &hf_samr_lockout_threshold_short,
+ { "Lockout Threshold", "samr.lockout_threshold", FT_UINT16, BASE_DEC,
+ NULL, 0, "Lockout Threshold:", HFILL }},
+
{ &hf_samr_max_pwd_age,
{ "Max Pwd Age", "samr.max_pwd_age", FT_RELATIVE_TIME, BASE_NONE,
NULL, 0, "Maximum Password Age before it expires", HFILL }},