사전 작업
먼저 윈도우 좌측 하단에서 로컬이라고 검색합니다.
로컬 보안 정책이라고 쓰여 있는 부분을 더블 클릭합니다.
1. 로컬 정책 왼쪽에 " 회색 > "을 눌러서 메뉴를 확장합니다.
2. 그중 첫 번째 항목인 감사 정책을 누릅니다.
3. 우측에 나오는 목록에서 로그온 이벤트 감사를 먼저 찾고 그 옆에 감사 안 함으로 되어 있는지 확인합니다.
만약 성공, 실패로 되어 있다면 이 부분은 안 해도 되니 창을 닫고 글 아래쪽 침입자 흔적 확인 단계로 넘어가고 위 화면처럼 감사 안 함으로 되어 있다면
4. 로그온 이벤트 감사를 더블 클릭합니다.
위 화면에 표기된 숫자 순서로 클릭합니다.
1. 성공에 V 체크
2. 실패에도 V 체크
3. 적용 버튼 클릭
4. 마지막으로 확인 버튼 클릭
원래 감사 안 함으로 되어 있던 것이 성공, 실패로 바뀌어 있는지 확인한 후 창을 닫습니다.
여기까지의 작업은 처음에 한 번만 해 놓으면 다음부터는 안 해도 됩니다.
앞으로는 다음에 나오는 침입자 흔적 확인 작업부터 하시면 됩니다.
침입자 흔적 확인
이번에는 윈도우 좌측 하단에 "이"라고 검색합니다.(또는 "이벤트" 검색)
이벤트 뷰어를 더블 클릭하여 실행합니다.
1. Windows 로그 왼쪽에 " 회색 > "을 눌러서 메뉴를 확장합니다.
2. 보안 항목을 클릭합니다.
잠시 기다리면 우측에 위 화면과 같은 목록이 나옵니다.
내 PC에서 발생했던 이벤트 목록이며 이벤트 ID와 작업 범주도 확인할 수 있습니다.
작업 범주가 Special Logon, Group Membership, Logon, User Account Management 등이 짬뽕이 되어 섞여 있습니다.
먼저 침입자 흔적 확인을 위해 필요한 건 Logon과 Logoff라서 이것들만 추려내고 나머지는 목록에서 제외해야 합니다.
이벤트 목록 우측 작업 목록에서 현재 로그 필터링을 찾아 클릭합니다.
현재 로그 필터링 창이 뜨면 <모든 이벤트 ID>라고 쓰여 있는 곳을 찾습니다.
1. <모든 이벤트 ID>라고 쓰여 있는 부분을 누르고 4624,4625,4634를 입력합니다.
4624,4625와 4634는 Logon과 Logoff의 이벤트 ID입니다.
모든 이벤트가 아니고 Logon과 Logoff 이벤트만 표시하라는 뜻입니다.
2. 확인 버튼을 누릅니다.
그럼 이벤트 목록이 위 화면과 같이 Logon과 Logoff만 남게 됩니다.
4624: Logon 성공
4625: Logon을 시도했지만 실패
4634: Logoff 성공
보통 Logoff는 안 보이고 Logon만 보이실 겁니다. 이벤트 목록에서 아무 이벤트 하나만 클릭해 봅니다.
이벤트를 클릭하면 아래쪽에서 로그온 유형이라는 것을 찾을 수 있습니다.
위 화면 예시에서는 숫자 5라고 되어 있습니다.
로그온 유형 5는 계정 정보가 필요한 내 PC 서비스에서 로그온 하는 거라 정상적인 로그온입니다.
그러나 로그온 유형이 숫자 5가 아닌 3이나 8, 10으로 되어 있다면 외부 침입을 의심해봐야 합니다.
로그온 유형이 3, 8, 10인 Logon 이벤트(4625)는 원격 접속을 시도했지만 실패했다는 뜻이고 유형이 3, 8, 10인 Logon 이벤트(4624)는 원격 접속에 성공했다는 의미입니다.
다음은 로그온 유형에 대한 정보입니다.
로그온 유형
로그온 유형 0 (Logon Type 0) : 시스템 로그온(사용자 상호 작용과 관련 없음)
시스템 시작 및 종료, 서비스 실행, 시스템 예약 작업
로그온 유형 2 (Logon Type 2) : 대화식(interactive)
사람이 컴퓨터 키보드로 로그인(TeamView, LogMeIn, KVM 포함)
로그온 유형 3 (Logon Type 3) : 네트워크
사람이나 컴퓨터가 네트워크에서 로그온(파일 공유, IIS 접속 포함)
로그온 유형 4 (Logon Type 4) : 스케줄 자동 실행(Batch)
batch 서버에서 사용되는 로그온 유형. 스케줄에 예약된 작업이 사람의 개입 없이 사람을 대신하여 실행.
로그온 유형 5 (Logon Type 5) : 서비스
서비스 실행 시 저장된 계정 정보로 로그온
로그온 유형 7 (Logon Type 7) : 잠금 해제(Unlock)
컴퓨터 잠금을 해제할 때의 로그온 유형
로그온 유형 8 (Logon Type 8) : 네트워크 Cleartext
사람 또는 컴퓨터가 네트워크에서 로그온 하고 암호가 일반 텍스트로 전송될 때 발생하는 로그온 유형
로그온 유형 9 (Logon Type 9) : 새 자격 증명(NewCredentials)
사용자가 "다른 이름으로 실행"(RunAs) 명령을 사용하여 응용프로그램을 실행할 때 발생하는 로그온 유형
로그온 유형 10 (Logon Type 10) : 원격 대화식(RemoteInteractive)
사람이 원격 지원, 원격 데스크톱 또는 터미널 서비스와 같은 RDP(Remote Desktop Protocol : 다른 컴퓨터에 그래픽 사용자 인터페이스를 제공하는 프로토콜) 응용 프로그램을 통해서 컴퓨터에 원격으로 액세스 할 때 발생하는 로그온 유형
로그온 유형 11 (Logon Type 11) : 캐시 대화식(CachedInteractive)
캐시로 저장된 계정 정보로 자동 입력되어 로그온. 네트워크 인증 정보가 로컬에 저장되므로 사용자가 도메인 컨트롤러에 연결하지 않고 컴퓨터에 로그온 할 때 기록되는 로그온 유형.
로그온 유형 확인 작업
로그온 유형 확인 작업에는 여러 방법이 있으나 여기에서는 메모장이나 Powershell을 활용하는 2가지 방법에 대해 소개하겠습니다.
메모장 검색 방식은 속도는 빠르나 로그온 유형에 따라 검색이 부정확할 수 있으므로 비추천하며 Powershell 방식은 시간은 오래 걸리지만 정확하게 검색할 수 있으므로 추천합니다.
Powershell 방식으로 하시려면 메모장 단락은 건너뛰기해도 됩니다.
메모장으로 로그온 유형 검색
Logon 이벤트는 거의 정상적인 로그온 이벤트인데 이벤트 목록에서 하나씩 클릭해서 어쩌다 있을까 말까 하는 3이나 8, 10 같은 외부 로그온 유형을 찾는 건 매우 귀찮은 일입니다. 그래서 이런 귀찮은 작업을 편하게 할 수 있는 방법을 찾아야 합니다.
일단 위 화면처럼 Logon 이벤트를 여러 개 선택합니다.
이벤트 하나를 먼저 선택하고 Shift키를 누르고 있는 상태에서 몇 개 아래 이벤트를 선택하면 그 사이에 있는 모든 이벤트들이 한 번에 선택됩니다. 여기서 주의할 점은 목록에 있는 모든 이벤트를 전부 선택하지 마세요. 그렇게 하면 속도가 느려서 진행하기 힘듭니다. 날짜를 보고 일주일이나 한 달 정도의 기간을 선택하는 것이 좋습니다.
이벤트를 여러 개 선택하면 우측에 선택한 이벤트 탭에서 선택한 이벤트 개수를 확인할 수 있습니다.
1. 복사를 클릭하고
2. "세부 정보를 텍스트로 복사" 메뉴를 클릭합니다.
메모장을 실행하고 방금 복사된 세부 정보를 메모장에 붙여넣기(Ctrl+V)합니다.
로그온 유형 텍스트를 찾아서 위 화면처럼 범위 지정을 하고 Ctrl+F 키를 누릅니다.
5라고 되어 있는 로그온 유형을 3이나 8, 10으로 바꾸고 다음 찾기 버튼을 누릅니다.
텍스트 내에 로그온 유형 3이나 8, 10이 있는지 검사하는 것입니다.
위 화면처럼 로그온 유형 8을 찾을 수 없다는 메시지가 나오면 침입자가 없었다는 뜻입니다.
(로그온 유형 3, 8, 10 모두 찾을 수 없는 경우)
그러나 다음 찾기 버튼을 눌렀을 때 위 화면처럼 검색이 되면 외부에서 내 컴퓨터에 로그온이나 로그온 시도를 했었다는 뜻입니다. 즉, 침입자의 접속을 의심해봐야 하는 상황입니다.
Powershell로 로그온 유형 검색
Powershell을 관리자 모드로 실행합니다.
만약 위 메시지가 나오면 관리자 암호 입력 후 예 버튼 클릭
Powershell이 실행되면 다음 명령어 실행
Powershell 코드 사용법
위 화면 예시에 빨간색으로 표시된 부분만 바꿔서 실행하면 됩니다.
화면 예시는 2023년 7월 16일 하루 동안의 모든 이벤트에서 이벤트 ID 4625(로그온을 시도했으나 실패한 이벤트)만 추출하여 그중에서 로그온 유형이 3, 8, 10인 이벤트만 화면에 표시하는 코드입니다.
한 가지 주의할 점은 이벤트 아이디에 따라 Properties[10]의 숫자가 달라집니다.
이벤트 ID가 4624일 때는
$event.Properties[8].Value
이벤트 ID가 4625일 때는
$event.Properties[10].Value
이벤트 ID가 4634일 때는
$event.Properties[4].Value
아래 전체 코드 복사 후 메모장에 붙여 넣고 빨간색 부분만 지우고 수정하여 Powershell에 붙여 넣고 실행하면 됩니다.
$startDate = Get-Date "수정:이벤트 추출 시작 날짜"
$endDate = Get-Date "수정:이벤트 추출 종료 날짜"
$eventIds = @(수정:이벤트 ID)
$events = Get-WinEvent -LogName Security | Where-Object {
$_.TimeCreated -ge $startDate -and $_.TimeCreated -le $endDate -and $eventIds -contains $_.Id
}
foreach ($event in $events) {
$logonType = $event.Properties[수정:배열 숫자].Value
if ($logonType -eq 3 -or $logonType -eq 8 -or $logonType -eq 10){
Write-Host "Logon Type: $logonType"
$event | Format-List *
Write-Host "---------------------------"
}
}
위 Powershell 코드는 속도가 느리므로 실행한 후에 다른 일을 하시면 됩니다.
이벤트 추출 기간은 하루보다 더 길게 할 수도 있으나 속도가 느리기 때문에 하루 정도가 적당합니다.
속도가 느린 대신 로그온 유형을 정확하게 필터링해서 출력합니다.
로그온 유형 3, 8, 10에 해당되는 이벤트가 존재할 경우 아래 화면처럼 해당 이벤트에 대한 정보가 출력됩니다.
출력된 이벤트 정보를 보고 본인이 한 일인지 아니면 침입자의 접근 시도인지 판단합니다.
로그온 유형 3, 8, 10에 해당하는 이벤트가 없을 경우 아래 화면처럼
아무런 결과 메시지 없이 현재 드라이브와 경로만 표시됩니다.
마무리
지금까지 내 컴퓨터에서 침입자의 흔적을 발견하는 방법에 대해 알아보았습니다.
이런 식의 과정을 거쳐서 내 컴퓨터에 침입자가 접근했는지 여부를 알아낼 수 있습니다.
'윈도우 관련' 카테고리의 다른 글
윈도우: 앱 및 브라우저 컨트롤: 이 설정은 관리자가 관리합니다 (0) | 2023.11.14 |
---|---|
윈도우10 바탕 화면에 내 컴퓨터(내 PC)와 제어판 아이콘 만드는 방법 (0) | 2023.09.30 |
Advapi란 무엇인가 (0) | 2023.08.15 |
윈도우 폴더 삭제 시: 이 폴더를 변경하려면 ? 에서 사용 권한을 부여 받아야 합니다 (0) | 2023.07.27 |
HackTool:Win32/Wpakill 은 무엇인가 (0) | 2023.07.24 |
댓글