본문 바로가기
윈도우 관련

윈도우10, PC 컴퓨터 침입 및 원격 접속 흔적 확인하는 방법

by 젤리아드 2023. 8. 20.
반응형

사전 작업

먼저 윈도우 좌측 하단에서 로컬이라고 검색합니다.

윈도우 시작 버튼에서 로컬 검색
로컬 검색
로컬 보안 정책 열기
로컬 보안 정책 실행

로컬 보안 정책이라고 쓰여 있는 부분을 더블 클릭합니다.

 

1. 로컬 정책 메뉴 드롭 다운
2. 감사 정책 클릭
3. 로그온 이벤트 감사의 보안 설정 확인
로그온 이벤트 감사

1. 로컬 정책 왼쪽에 " 회색 > "을 눌러서 메뉴를 확장합니다.

2. 그중 첫 번째 항목인 감사 정책을 누릅니다.

3. 우측에 나오는 목록에서 로그온 이벤트 감사를 먼저 찾고 그 옆에 감사 안 함으로 되어 있는지 확인합니다.

만약 성공, 실패로 되어 있다면 이 부분은 안 해도 되니 창을 닫고 글 아래쪽 침입자 흔적 확인 단계로 넘어가고 위 화면처럼 감사 안 함으로 되어 있다면

4. 로그온 이벤트 감사를 더블 클릭합니다.

 

로그온 이벤트 감사 속성 창에서
1. 성공 체크
2. 실패 체크
3. 적용 클릭
4. 확인 클릭
로그온 이벤트 감사 속성

위 화면에 표기된 숫자 순서로 클릭합니다.

1. 성공에 V 체크

2. 실패에도 V 체크

3. 적용 버튼 클릭

4. 마지막으로 확인 버튼 클릭

 

로그온 이벤트 감사의 보안 설정이 "감사 안 함"에서 "성공, 실패"로 변경되었는지 확인
"성공, 실패" 확인

원래 감사 안 함으로 되어 있던 것이 성공, 실패로 바뀌어 있는지 확인한 후 창을 닫습니다.

여기까지의 작업은 처음에 한 번만 해 놓으면 다음부터는 안 해도 됩니다.

앞으로는 다음에 나오는 침입자 흔적 확인 작업부터 하시면 됩니다.

 

침입자 흔적 확인

윈도우 시작 버튼에서 이 또는 이벤트 검색
이벤트 검색

이번에는 윈도우 좌측 하단에 ""라고 검색합니다.(또는 "이벤트" 검색)

 

이벤트 뷰어 열기
이벤트 뷰어 실행

이벤트 뷰어를 더블 클릭하여 실행합니다.

 

이벤트 뷰어 창에서
Windows 로그 메뉴를 드롭 다운하고 보안 메뉴 클릭
Windows 로그의 보안

1. Windows 로그 왼쪽에 " 회색 > "을 눌러서 메뉴를 확장합니다.

2. 보안 항목을 클릭합니다.

 

이벤트 목록 화면
이벤트 목록

잠시 기다리면 우측에 위 화면과 같은 목록이 나옵니다.

 

이벤트 ID와 작업 범주 목록
이벤트 ID와 작업 범주

내 PC에서 발생했던 이벤트 목록이며 이벤트 ID와 작업 범주도 확인할 수 있습니다.

작업 범주가 Special Logon, Group Membership, Logon, User Account Management 등이 짬뽕이 되어 섞여 있습니다.

먼저 침입자 흔적 확인을 위해 필요한 건 LogonLogoff라서 이것들만 추려내고 나머지는 목록에서 제외해야 합니다.

작업 탭에서 현재 로그 필터링 클릭
현재 로그 필터링 실행

이벤트 목록 우측 작업 목록에서 현재 로그 필터링을 찾아 클릭합니다.

현재 로그 필터링 창의 <모든 이벤트 ID>
현재 로그 필터링

현재 로그 필터링 창이 뜨면 <모든 이벤트 ID>라고 쓰여 있는 곳을 찾습니다.

1. 모든 이벤트 ID를 지우고 4624,4625,4634 기입
2. 확인 버튼 클릭
이벤트 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 이벤트 여러 개 선택

일단 위 화면처럼 Logon 이벤트를 여러 개 선택합니다.

이벤트 하나를 먼저 선택하고 Shift키를 누르고 있는 상태에서 몇 개 아래 이벤트를 선택하면 그 사이에 있는 모든 이벤트들이 한 번에 선택됩니다. 여기서 주의할 점은 목록에 있는 모든 이벤트를 전부 선택하지 마세요. 그렇게 하면 속도가 느려서 진행하기 힘듭니다. 날짜를 보고 일주일이나 한 달 정도의 기간을 선택하는 것이 좋습니다.

선택한 이벤트 탭에서 복사 메뉴 선택하고 &quot;세부 정보를 텍스트로 복사&quot; 메뉴 클릭
이벤트 세부 정보 복사

이벤트를 여러 개 선택하면 우측에 선택한 이벤트 탭에서 선택한 이벤트 개수를 확인할 수 있습니다.

1. 복사를 클릭하고

2. "세부 정보를 텍스트로 복사" 메뉴를 클릭합니다.

 

윈도우 시작 버튼에서 notepad를 입력하여 메모장을 실행하는 화면
메모장 실행

메모장을 실행하고 방금 복사된 세부 정보를 메모장에 붙여넣기(Ctrl+V)합니다.

 

메모장에서 &quot;로그온 유형: 5&quot; 문자열을 선택한 화면
로그온 유형 텍스트 복사

로그온 유형 텍스트를 찾아서 위 화면처럼 범위 지정을 하고 Ctrl+F 키를 누릅니다.

 

찾기에서 로그온 유형을 5에서 8로 바꾸고 다음 찾기 버튼 클릭
로그온 유형 변경

5라고 되어 있는 로그온 유형을 3이나 8, 10으로 바꾸고 다음 찾기 버튼을 누릅니다.

텍스트 내에 로그온 유형 3이나 8, 10이 있는지 검사하는 것입니다.

 

로그온 유형 8을 찾을 수 없다는 메모장 메시지
찾기 결과 메시지

위 화면처럼 로그온 유형 8을 찾을 수 없다는 메시지가 나오면 침입자가 없었다는 뜻입니다.

(로그온 유형 3, 8, 10 모두 찾을 수 없는 경우)

 

메모장에서 로그온 유형 8을 찾은 화면
침입자 흔적 발견

그러나 다음 찾기 버튼을 눌렀을 때 위 화면처럼 검색이 되면 외부에서 내 컴퓨터에 로그온이나 로그온 시도를 했었다는 뜻입니다. 즉, 침입자의 접속을 의심해봐야 하는 상황입니다.

 

Powershell로 로그온 유형 검색

Powershell을 관리자 모드로 실행합니다.

1. 윈도우 시작 버튼 위에 마우스 포인터를 위치시킨 후 우클릭
2. 생성된 메뉴에서 &quot;Windows Powershell 관리자&quot; 선택
관리자 Powershell 실행법
다음 메시지가 나오면 관리자 암호 입력 후 예 버튼 클릭
사용자 계정 컨트롤
이 앱이 디바이스를 변경할 수 있도록 허용하시겠어요?
관리자 승인

만약 위 메시지가 나오면 관리자 암호 입력 후 예 버튼 클릭

 

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에 해당되는 이벤트가 존재할 경우 아래 화면처럼 해당 이벤트에 대한 정보가 출력됩니다.

Logon Type 및 여러 이벤트 관련 정보가 표시된 화면
Powershell 코드가 출력한 이벤트 정보

출력된 이벤트 정보를 보고 본인이 한 일인지 아니면 침입자의 접근 시도인지 판단합니다.

 

로그온 유형 3, 8, 10에 해당하는 이벤트가 없을 경우 아래 화면처럼

코드에 작성한 조건의 이벤트가 없을 경우 결과 메시지 없이 현재 드라이브와 경로만 표시된 화면
조건에 부합하는 이벤트가 없을 경우

아무런 결과 메시지 없이 현재 드라이브와 경로만 표시됩니다.

 

마무리

지금까지 내 컴퓨터에서 침입자의 흔적을 발견하는 방법에 대해 알아보았습니다.

이런 식의 과정을 거쳐서 내 컴퓨터에 침입자가 접근했는지 여부를 알아낼 수 있습니다.

728x90

댓글