ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ์ ๋ง ํ์๊ฐ ์ด๋ ค์ํ๊ณ ํ๋ค์ด ํ๋ ๋ถ๋ถ์ด๋ค.
์ ๋ง ์ ๋ง ๋จธ๋ฆฌ๋ฅผ ๊น๊ฒ ์จ์ผ ํ๊ณ ๋ชจ๋ ์ง์ค๋ ฅ์ ์์๋ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฒ์์๋ "ํ์ผ์ด ์์ ์ญ์ ๋ณ์กฐ ๋๋ฉด ์ด๋ป๊ฒ ์ฐ์ด๋ผ๊น?" ๊ณ ๋ฏผ ํ๋ค.
์ด ๊ณ ๋ฏผ์ ๋๋ฌด ์ค๋ ํ๋ค๋ณด๋
ํ์ผ ์ญ์ , ์์ ๋ฑ๋ฑ ์๋์ฐ ์ด๋ฒคํธ ๋ก๊ฑฐ์ ๋จ๋๋ค๊ณ ํํธ๋ฅผ ์ฃผ์ จ๋ค.
๊ทธ๋์ ์ด ์ ๋ณด๋ฅผ ํ์ฑํ๋ฉด ์ด๋ ๋๊ณ ํํธ๋ฅผ ์ฃผ์ จ๊ณ ,
"์ด๋ฒคํธ ๋ก๊ฑฐ๋ ์ด๋์ ๋ค๋ฅธ ํ์ผ์ ์ฝ์ด ์ค๋๊ฑฐ์ผ? ์๋๋ฉด ๋ก๊ฑฐ ์์ฒด์์ ๋ฐ์ ๋ชป ๋ด?"
๋๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์.."
์ด๋ฐ ์์ผ๋ก ํํธ ์ฃผ์ จ๋ค. ์ ๋ง ์ ๋ง ๊ฐ์ฌํ๋ค.
ํ์๋ ์๋์ฐ ์ด๋ฒคํธ ID์ ๋ํ์ฌ ๊ณต๋ถํ๊ณ ์ด๋ฒคํธ ๋ก๊ฑฐ๊ฐ
์ด๋ ์์น์ ์๋ ํ์ผ์ ๋ณด์ฌ์ฃผ๋์ง ๊ณ์ ์ฐพ์๋ดค๋ค.
์๋์ฐ ์ด๋ฒคํธ ๋ทฐ์ด๊ฐ ์ด๋ ๊ฒฝ๋ก์ ์๋ ํ์ผ์ ๋์์ฃผ๋์ง ์ฐพ์๋๊ณ ,
ํ์ผ์ด ์์ฑ, ์์ , ์ญ์ ๋์์ ๋ ๋ก๊ทธ๋ฅผ ๋น๊ตํ๋ค.
์ ์ฌ์ง์ ๋ก๊ทธ ๋ถ์ ํ ์ฌ์ง์ด๋ค.
ํ์ผ์ ๋ง๋ค๊ณ ์์ฑ, ์์ , ์ญ์ ํ๋ฉฐ ์ด๋ค ์์ผ๋ก ๋ก๊ทธ๊ฐ ๊ธฐ๋ก๋๋์ง ํ์ธํ๋ ์์ ์ด๋ค.
๊ฐ์ฌ์ ์ฑ ์ ๊ถํ์ ์ด๊ฒ ์ ๊ฒ ์ฒดํฌํด๊ฐ๋ฉฐ ๋ถ์ํ๋ค.
์ค์ ๋ก ์ด๋ฒคํธ ๋ทฐ์ด๊ฐ ์ด๋ค ํ์ผ์ ํ์ฑํ๋์ง ์ฐพ์๋ค.
ํ์ง๋ง, ์ด๋ฒคํธ ๋ก๊ทธ๊ฐ ๋ฐ์๋ ๋ ์ํฉ์ ์ฝ๋๋ก ๋์์ฃผ๋ python ๋ชจ๋์ ์ฐพ์๊ณ ,
์ฐ๋ฆฌํ์ ์ข ๋ ์ฝ๊ฒ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐ ํ ์ ์์๋ค.
server = 'localhost'
logtype = 'Security'
hand = wevt.OpenEventLog(server,logtype)
flags = wevt.EVENTLOG_FORWARDS_READ|wevt.EVENTLOG_SEQUENTIAL_READ
total = wevt.GetNumberOfEventLogRecords(hand)
i = 0
j = 0
k = 0
while True:
events = wevt.ReadEventLog(hand, flags,0)
if events:
for evt in events:
today = datetime.datetime.now().date()
day_ago = today - datetime.timedelta(days=1)
if evt.EventID == 4660:
i = i + 1
DeleteLog_Notepad()
DetailLog_Notepad()
if evt.EventID == 4663:
j = j + 1
k = k + 1
ReadChangeLog_Notepad()
DetailLog_Notepad()
์ ์ฝ๋๋ ์ด๋ฒคํธ ID๊ฐ 4660 / 4663์ผ๋ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ๊ฒ ํ๋ ๋ฉ์ธ ํจ์์ด๋ค.
import winsound
import win32evtlog as wevt
import datetime
import Evtx.Evtx as evtx
import time
import os
import win32gui
import win32console
def Forder_Check():
Forder_Check = os.path.exists("SCB_Log")
if Forder_Check == False:
dir_path = "./"
dir_name = "SCB_Log"
os.mkdir(dir_path + "/" + dir_name + "/")
DeleteLog_txt()
ReadChangeLog_txt()
DetailLog_txt()
def DeleteLog_txt():
f = open("./SCB_Log\\DeleteLog(4660).txt", "w")
f.write("\t\t<< Delete Log >>\n\n")
f.write("*" * 50)
f.close()
def ReadChangeLog_txt():
f = open("./SCB_Log\\ReadChangeLog(4663).txt", "w")
f.write("\t\t<< Read, Change Log >>\n\n")
f.write("*" * 50)
f.close()
def DetailLog_txt():
f = open("./SCB_Log\\DetailLog.txt", "w")
f.write("\t\t<< Detail Log >>\n\n")
f.write("*" * 50)
f.close()
def DeleteLog_Notepad():
destFile = r"./SCB_Log\\DeleteLog(4660).txt"
with open(destFile, 'a') as f:
winsound.PlaySound('sound.wav', winsound.SND_FILENAME)
print("\nLog Number : {}".format(i), file=f)
print("\nEvent ID : {}".format(evt.EventID), file=f)
print("\nTime Generated : {}".format(evt.TimeGenerated), file=f)
f.write('\nํ์ผ ๋๋ ํด๋๊ฐ ์ญ์ ๋์์ต๋๋ค.\n')
f.write('\nThe file or folder has been deleted.\n')
f.write('*' * 50)
def ReadChangeLog_Notepad():
destFile = r"./SCB_Log\\ReadChangeLog(4663).txt"
with open(destFile, 'a') as f:
print("\nLog Number : {}".format(j), file=f)
print("\nEvent ID : {}".format(evt.EventID), file=f)
print("\nTime Generated : {}".format(evt.TimeGenerated), file=f)
f.write("\nํ์ผ ๋ฐ ํด๋๊ฐ ์ด๋ ธ๊ฑฐ๋ ์์ ๋์์ ์ ์์ต๋๋ค.\n")
f.write("\nThe files and folders may have been opened or modified.\n")
f.write('*' * 50)
def DetailLog_Notepad():
destFile = r"./SCB_Log\\DetailLog.txt"
with open(destFile, 'a') as f:
print("\nLog Number : {}".format(k), file=f)
print("\nEvent Category : {}".format(evt.EventCategory), file = f)
print("\nEvent Type : {}".format(evt.EventType), file = f)
print("\nEvent ID : {}".format(evt.EventID), file = f)
print("\nTime Generated : {}".format(evt.TimeGenerated), file = f)
print("\nSource Name : {}".format(evt.SourceName), file = f)
data = evt.StringInserts
if data:
f.write("\nEvent Data :")
for msg in data:
f.write("\n")
f.write(msg)
f.write('*' * 50)
if __name__ == "__main__":
Forder_Check()
win32gui.ShowWindow(win32console.GetConsoleWindow(), 0)
server = 'localhost'
logtype = 'Security'
hand = wevt.OpenEventLog(server,logtype)
flags = wevt.EVENTLOG_FORWARDS_READ|wevt.EVENTLOG_SEQUENTIAL_READ
total = wevt.GetNumberOfEventLogRecords(hand)
i = 0
j = 0
k = 0
while True:
events = wevt.ReadEventLog(hand, flags,0)
if events:
for evt in events:
today = datetime.datetime.now().date()
day_ago = today - datetime.timedelta(days=1)
if evt.EventID == 4660:
i = i + 1
DeleteLog_Notepad()
DetailLog_Notepad()
if evt.EventID == 4663:
j = j + 1
k = k + 1
ReadChangeLog_Notepad()
DetailLog_Notepad()
์ ์ฝ๋๋ ์ ์ฒด ๊ฐ๋ฐ ์์ค์ฝ๋์ด๋ค.
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SCP PROJECT] Windows Event Loger Develop 03 (0) | 2021.03.02 |
---|---|
[SCP PROJECT] Windows Event Loger Develop 01 (0) | 2021.03.01 |
๋๊ธ