iPhone에서 Windows와 Linux PC 인벤토리 만들기
Windows와 Linux 머신을 준비하고, iPhone이나 iPad의 NetBlade Pro로 인벤토리를 읽고, Windows 프로그램의 알려진 취약점을 점검하세요.
NetBlade Pro는 네트워크의 PC에 아무것도 설치하지 않고 그 안에 무엇이 있는지 읽을 수 있습니다. 하드웨어, 설치된 소프트웨어, 서비스, 업데이트, 계정, 그리고 방어 상태입니다. Windows 머신은 WinRM으로, Linux 머신은 SSH로 읽습니다. 이 글은 각 종류의 머신을 준비하는 법, 인벤토리를 실행하는 법, Windows 프로그램의 알려진 취약점을 점검하는 법, 시간에 따른 변화를 따라가는 법을 보여 줍니다.
시작하기 전에
- NetBlade Pro. Windows 인벤토리, Linux 인벤토리, 취약점 점검은 Pro 기능입니다.
- PC와 같은 로컬 네트워크에 있는 iPhone 또는 iPad.
- Windows의 경우: 네트워크로 로그온할 수 있는 계정, 보통 비밀번호가 있는 로컬 관리자.
- Linux의 경우: SSH 서버와 일반 사용자 계정. sudo는 필요 없습니다.
참고: NetBlade는 PC에서 무엇도 바꾸지 않습니다. 읽기만 하며, 머신을 준비하는 명령은 사용자가 직접 실행할 몫입니다.
1. Windows PC 준비하기
iOS에는 SMB 클라이언트가 없으므로, NetBlade가 Windows에서 읽는 모든 것은 포트 5985의 WinRM으로 옵니다. Windows는 WinRM이 꺼진 채로 출하됩니다. PC에서 PowerShell을 관리자로 엽니다.
- WinRM을 켭니다.
Enable-PSRemoting -Force - 워크그룹에 있는 PC(도메인에 가입되지 않은 PC)에서 기본 제공 Administrator가 아닌 로컬 계정을 사용할 때만 실행합니다.
New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1 -PropertyType DWord -Force
두 번째 명령이 필요한 이유는, Windows가 네트워크를 통해 로컬 계정에 필터링된 토큰을 부여해서, 올바른 비밀번호로도 워크그룹 PC가 그 계정을 거부하기 때문입니다.
여기에서 복사할 필요는 없습니다. 앱의 «더 많은 데이터를 얻는 방법»이 둘 다 복사 버튼과 함께 보여 줍니다.
팁:
Enable-PSRemoting은 PC의 네트워크가 공용으로 설정되어 있으면 실행을 거부합니다. Windows 설정에서 먼저 네트워크 프로필을 개인으로 설정하세요.
2. Linux 머신 준비하기
보통 할 일이 없습니다. 일반 사용자로 SSH 접속할 수 있으면 NetBlade가 읽을 수 있습니다. NetBlade가 실행하는 명령은 읽기 전용이고 sudo를 쓰지 않으므로, 루트가 필요한 것은 모두 비어 있게 남습니다.
3. 자격 증명을 한 번 저장하기(선택 사항)
여러 머신이 계정을 공유한다면, 각 기기가 아니라 네트워크에 저장하세요.
- 저장 › 사용자의 네트워크 › «자격 증명»을 엽니다.
- Windows(WinRM)와 Linux(SSH) 계정을 입력합니다.
특정 머신 하나는 자신의 페이지에서 «자격 증명(이 기기)»으로 이를 재정의할 수 있습니다. 비밀번호는 iOS 키체인에 이 기기에만 보관되며, 백업 파일에는 절대 들어가지 않습니다.
4. 인벤토리 실행하기
- LAN 탭에서 네트워크를 스캔하고 PC를 누릅니다.
- «원격 인벤토리(Windows / Linux)»를 누르고 시스템을 선택합니다.
- 사용자와 비밀번호를 입력합니다. Windows의 경우 도메인을 추가하거나, 로컬 계정이면 «도메인(선택 사항)»을 비워 둡니다. Linux의 경우 포트를 확인합니다.
- «이 PC 읽기»를 누릅니다.
실패하면 NetBlade가 이유를 설명하고, 해결하는 명령이 있으면 보여 줍니다.
Windows에서 얻는 것
시스템과 가동 시간, 하드웨어(프로세서, 메모리, BIOS 일련번호), 서비스, 업데이트, 로컬 계정, 시작 프로그램, 네트워크 어댑터, 디스크, 설치된 소프트웨어, 그리고 «방어 상태»: 백신, 프로필별 방화벽, 볼륨별 BitLocker, TPM.
프로그램 버전은 Windows 레지스트리에서 옵니다. 완전하지만, SMB 없이는 iOS가 할 수 없는, 프로그램 파일에서 읽은 버전보다는 덜 정확합니다. 같은 이유로 공유 폴더나 사용자 프로필은 없습니다.
Linux에서 얻는 것
배포판과 커널, CPU와 메모리, 디스크, 서비스와 수신 대기 포트, 사용자, 컨테이너, 패키지와 대기 중인 업데이트, 방화벽, SELinux, AppArmor.
5. Windows 프로그램의 알려진 취약점 점검하기
이 점검은 NetBlade가 인식하는 각 프로그램의 정확한 버전에 어떤 게시된 취약점(CVE)이 영향을 주는지 국가 취약점 데이터베이스(NVD)에 물어봅니다.
- 설정 › «취약점 점검»으로 이동합니다.
- «알려진 취약점에 대해 소프트웨어 점검»을 켭니다.
- 선택적으로 무료 «NVD API 키(선택 사항)»를 붙여 넣습니다. 키가 없으면 NVD는 30초마다 5회 요청을 허용하고, 키가 있으면 50회입니다. 프로그램이 많은 PC에서는 키가 점검을 훨씬 빠르게 합니다.
- Windows PC의 인벤토리를 읽거나 다시 읽습니다.
결과는 CVSS 점수와 링크와 함께 가장 심각한 것부터 나열됩니다. 요약은 기기의 «상태»와 저장된 네트워크에도 나타납니다.
iPhone을 떠나는 것
확실하게 대조할 수 있는 프로그램의 이름과 버전만 nvd.nist.gov로 전송됩니다. 머신의 이름, 주소, 로그인한 사람은 절대 아닙니다. 설정을 켜기 전에는 아무것도 전송되지 않습니다.
참고: 올바른 데이터베이스 항목에 정확히 대조할 수 있는 프로그램만 점검됩니다. NetBlade가 인식하지 못하는 프로그램은 판정을 받지 않으며, 이는 “취약점 없음”과 같지 않습니다. 응답은 일주일간 보관됩니다. 이 점검은 Windows 인벤토리에만 해당됩니다.
6. 시간에 따른 변화 따라가기
저장된 네트워크의 PC에 대한 모든 인벤토리는 그 «네트워크 타임라인»에 반영됩니다. 백신, 방화벽, 암호화 꺼짐, 보호 수준 저하, 활성화된 계정, 새 시작 프로그램, 새 관리자, 새 포트, 거의 가득 찬 디스크, 대기 중인 업데이트입니다.
iOS는 NetBlade가 백그라운드에서 인벤토리를 실행하도록 허용하지 않으므로, 타임라인은 사용자가 PC를 읽을 때 움직입니다. 습관으로 만드세요. 현장에 갈 때마다 핵심 머신을 읽는 것입니다.
제대로 되었는지 확인하기
- PC의 페이지에 읽은 날짜와 함께 인벤토리가 표시됩니다.
- Windows의 경우 «방어 상태»에 백신, 방화벽, BitLocker, TPM이 나열됩니다.
- 취약점 점검이 켜져 있으면 «상태»에 결과가 표시되거나, 인식된 프로그램에 대해 알려진 것이 없다고 나옵니다.
- 저장 › 사용자의 네트워크에 인벤토리를 읽은 PC가 나열됩니다.
문제가 생기면
- Windows가 응답하지 않습니다. WinRM이 꺼져 있거나 차단되었습니다. PC에서
Enable-PSRemoting -Force를 실행하세요. iOS는 WinRM으로만 읽으므로, 파일만 공유하는 머신은 응답하지 않는다는 점을 기억하세요. - 워크그룹 PC에서 계정이 거부됩니다.
LocalAccountTokenFilterPolicy명령을 실행하거나 기본 제공 Administrator를 사용하세요. - 비밀번호가 맞는데도 거부됩니다. 비밀번호가 없는 계정은 네트워크로 로그온할 수 없습니다. 도메인 필드도 확인하세요. 로컬 계정은 비워 둡니다.
- Linux가 거의 반환하지 않습니다. 루트가 필요한 데이터는 설계상 비어 있게 남습니다. 제한된 셸은 아무것도 반환하지 않을 수 있습니다.
- 취약점 점검이 느립니다. 설정에서 NVD API 키를 추가하세요.