public XLogon(XEv ev680, XEv ev576) { this.ev576 = ev576; this.ev680 = ev680; }
private void bLoadfrmSeclog_Click(object sender, EventArgs e) { using (WIP wip = WIP.Show(this)) { dt.Rows.Clear(); EventLog ev = new EventLog("Security"); XEv ev680 = null; foreach (EventLogEntry ent in ev.Entries) { if (ent.Source != "Security" || ent.EntryType != EventLogEntryType.SuccessAudit) { continue; } int id = ((int)ent.InstanceId) & 0x3fffffff; if (id == 564) { //削除されたオブジェクト: // オブジェクト サーバー: Security Account Manager [0] // ハンドル ID: 1429160 [1] // プロセス ID: 1248 [2] // イメージ ファイル名: C:\WINDOWS\system32\lsass.exe [3] Ds.DTDelRow row = dt.NewDTDelRow(); row.日時 = ent.TimeGenerated; row.オブジェクト = ""; row.クライアントアカウント = ""; row.一次アカウント = ""; row.Message = new XEv(ent).Message; XEv evObjHandle; if (dictObjHandle.TryGetValue(ent.ReplacementStrings[1], out evObjHandle)) { row.オブジェクト = evObjHandle.ObjectName; row.Message += "\r\n---\r\n" + (evObjHandle.Message); XLogon evLogonId; if (dictLogonId.TryGetValue(evObjHandle.ClientLogonId, out evLogonId)) { row.クライアントアカウント = evLogonId.Account; row.Message += "\r\n---\r\n" + (evLogonId.Message); } if (dictLogonId.TryGetValue(evObjHandle.PrimaryLogonId, out evLogonId)) { row.一次アカウント = evLogonId.Account; row.Message += "\r\n---\r\n" + (evLogonId.Message); } } dt.AddDTDelRow(row); } else if (id == 680) // アカウント ログオン //ログオン試行者: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 [0] //ログオン アカウント: KU [1] //ソース ワークステーション: DD11 [2] // エラー コード: 0x0 [3] { ev680 = new XEv(ent); } else if (id == 576) { //新しいログオンへの特権の割り当て: // ユーザー名: [0] // ドメイン: [1] // ログオン ID: (0x0,0x595A70) [2] // 特権: SeChangeNotifyPrivilege [3] dictLogonId[ent.ReplacementStrings[2]] = new XLogon( ev680, new XEv(ent) ); ev680 = null; } else if (id == 538) { //ユーザーのログオフ: // ユーザー名: DD7$ [0] // ドメイン: HIRAOKA [1] // ログオン ID: (0x0,0xF027A2) [2] // ログオンの種類: 3 [3] dictLogonId.Remove(ent.ReplacementStrings[2]); } else if (id == 560) { //オブジェクトのオープン: // オブジェクト サーバー: Security [0] // オブジェクトの種類: File [1] // オブジェクト名: C:\Documents and Settings\KU\NetHood [2] // ハンドル ID: 4840 [3] // 操作 ID: {0,15252602} [4] [5] // プロセス ID: 5628 [6] // イメージ ファイル名: C:\Proj\MkLnk\Debug\MkLnk.exe [7] // プライマリ ユーザー名: KU [8] // プライマリ ドメイン: DD11 [9] // プライマリ ログオン ID: (0x0,0x101FC5) [10] // クライアント ユーザー名: - [11] // クライアント ドメイン: - [12] // クライアント ログオン ID: - [13] // アクセス %SYNCHRONIZE [14] // %ReadData (または ListDirectory) // 特権 - [15] // 制限された SID 数: 0 [16] dictObjHandle[ent.ReplacementStrings[3]] = new XEv(ent); } else if (id == 562) { //ハンドルのクローズ: //オブジェクト サーバー: Security [0] //ハンドル ID: 4840 [1] //プロセス ID: 5628 [2] //イメージ ファイル名: C:\Proj\MkLnk\Debug\MkLnk.exe [3] dictObjHandle.Remove(ent.ReplacementStrings[1]); } } dt.AcceptChanges(); } }
private void bLoadfrmSeclog_Click(object sender, EventArgs e) { using (WIP wip = WIP.Show(this)) { dt.Rows.Clear(); EventLog ev = new EventLog("Security"); XEv ev680 = null; foreach (EventLogEntry ent in ev.Entries) { if (ent.Source != "Security" || ent.EntryType != EventLogEntryType.SuccessAudit) continue; int id = ((int)ent.InstanceId) & 0x3fffffff; if (id == 564) { //削除されたオブジェクト: // オブジェクト サーバー: Security Account Manager [0] // ハンドル ID: 1429160 [1] // プロセス ID: 1248 [2] // イメージ ファイル名: C:\WINDOWS\system32\lsass.exe [3] Ds.DTDelRow row = dt.NewDTDelRow(); row.日時 = ent.TimeGenerated; row.オブジェクト = ""; row.クライアントアカウント = ""; row.一次アカウント = ""; row.Message = new XEv(ent).Message; XEv evObjHandle; if (dictObjHandle.TryGetValue(ent.ReplacementStrings[1], out evObjHandle)) { row.オブジェクト = evObjHandle.ObjectName; row.Message += "\r\n---\r\n" + (evObjHandle.Message); XLogon evLogonId; if (dictLogonId.TryGetValue(evObjHandle.ClientLogonId, out evLogonId)) { row.クライアントアカウント = evLogonId.Account; row.Message += "\r\n---\r\n" + (evLogonId.Message); } if (dictLogonId.TryGetValue(evObjHandle.PrimaryLogonId, out evLogonId)) { row.一次アカウント = evLogonId.Account; row.Message += "\r\n---\r\n" + (evLogonId.Message); } } dt.AddDTDelRow(row); } else if (id == 680) { // アカウント ログオン //ログオン試行者: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 [0] //ログオン アカウント: KU [1] //ソース ワークステーション: DD11 [2] // エラー コード: 0x0 [3] ev680 = new XEv(ent); } else if (id == 576) { //新しいログオンへの特権の割り当て: // ユーザー名: [0] // ドメイン: [1] // ログオン ID: (0x0,0x595A70) [2] // 特権: SeChangeNotifyPrivilege [3] dictLogonId[ent.ReplacementStrings[2]] = new XLogon( ev680, new XEv(ent) ); ev680 = null; } else if (id == 538) { //ユーザーのログオフ: // ユーザー名: DD7$ [0] // ドメイン: HIRAOKA [1] // ログオン ID: (0x0,0xF027A2) [2] // ログオンの種類: 3 [3] dictLogonId.Remove(ent.ReplacementStrings[2]); } else if (id == 560) { //オブジェクトのオープン: // オブジェクト サーバー: Security [0] // オブジェクトの種類: File [1] // オブジェクト名: C:\Documents and Settings\KU\NetHood [2] // ハンドル ID: 4840 [3] // 操作 ID: {0,15252602} [4] [5] // プロセス ID: 5628 [6] // イメージ ファイル名: C:\Proj\MkLnk\Debug\MkLnk.exe [7] // プライマリ ユーザー名: KU [8] // プライマリ ドメイン: DD11 [9] // プライマリ ログオン ID: (0x0,0x101FC5) [10] // クライアント ユーザー名: - [11] // クライアント ドメイン: - [12] // クライアント ログオン ID: - [13] // アクセス %SYNCHRONIZE [14] // %ReadData (または ListDirectory) // 特権 - [15] // 制限された SID 数: 0 [16] dictObjHandle[ent.ReplacementStrings[3]] = new XEv(ent); } else if (id == 562) { //ハンドルのクローズ: //オブジェクト サーバー: Security [0] //ハンドル ID: 4840 [1] //プロセス ID: 5628 [2] //イメージ ファイル名: C:\Proj\MkLnk\Debug\MkLnk.exe [3] dictObjHandle.Remove(ent.ReplacementStrings[1]); } } dt.AcceptChanges(); } }