주요 콘텐츠로 건너뛰기
VOS 시스템의 시스템 관리자는 일반적으로 로컬 서브넷에 있는 다른 호스트에 대해 덜 신경 쓸 수 있습니다. 구성된 게이트웨이와 시스템과 통신하지만 다른 호스트가 레이더 아래에 있는 로컬 호스트에 관심이 있습니다. 그러나 네트워크 이웃이 누구인지 아는 데는 2가지 좋은 이유가 있습니다. 첫째, 통신 문제가 발생할 경우 이러한 다른 호스트를 사용하여 네트워크 연결을 테스트할 수 있습니다. 둘째, 이러한 호스트는 모든 종류의 네트워크 기반 공격의 소스가 될 가능성이 가장 높습니다.
현지 서브넷을 자주 스캔하는 것은 나쁜 생각이 아닙니다 (매주 수요일 아침마다 말하십시오) 누가 거기에 있는지 보는 것은 나쁜 생각이 아닙니다. VOS에는 스캐너가 내장되어 있지 않지만 몇 줄의 명령 매크로로 둘러싸인 경우 스캐너로 만들 수 있는 ping 명령이 있습니다.

&set X 1

&while &X& < 255
ping 192.168.11.&X&
&set X (calc &X& + 1)
&end
호스트를 스캔하기 위해 ping을 사용하는 데 3가지 문제가 있습니다. 첫째, 그것은 매우 효율적이지 않습니다. 기본 시간 아웃은 15초이고 명령이 4번 시도되므로 거기에 없거나 ping에 응답하지 않는 호스트를 스캔하는 데 1분이 소요됩니다. 다행히 시도 횟수를 1개로 줄이고 시간 외는 1초로 단축될 수 있습니다. 이것은 여전히 전용 스캐닝 도구의 관점에서 효율적이지 않지만 우리의 요구에 충분히 좋다고 생각합니다.
&set X 1
&while &X& < 255
ping 192.168.11.&X& -count 1 -timeout 1
< &set X (calc &X& + 1)
&end
두 번째 문제는 모든 호스트가 ping에 응답하지 않는다는 것입니다. 그러나 명령 매크로가 하나 만 줄로 ARP 응답을 보낸 호스트를 보고하기 때문에 중요한 문제는 아닙니다. ARP는 IP 주소를 이더넷 MAC 주소로 매핑하는 데 사용되며 VOS는 ping을 보내기 전에 이더넷 MAC 주소를 알아야 합니다. 따라서 ARP 요청을 대상 호스트로 보내고 회신에서 데이터를 ARP 캐시에 배치합니다. 모든 호스트는 후속 ping 요청에 응답하지 않더라도 ARP 회신으로 ARP 요청에 응답합니다. arp 명령은 요청된 항목이 있는 경우 표시됩니다.
&set X 1
&while &X& < 255
ping 192.168.11.&X& -count 1 -timeout 1
arp 192.168.11.&X&
&set X (calc &X& + 1)
&end
위의 명령 매크로에는 Ping 요청 및 응답이 ARP 데이터와 혼합되어 있어 읽을 수 없습니다. 다음 매크로는 arp_scan.(날짜).out이라는 파일에서 예쁜 이웃 테이블을 생성합니다. 그것은 클래스 C 네트워크를 가정, 즉 처음 3 옥텟은 고정 및 호스트에 대한 스캔 1 통해 254. 나는 당신이 시작 된 프로세스로 실행하는 것이 좋습니다.
& arp_scan.cm begins here
&
& arp_scan.cm
& version 1.0 09-04-06
& noah.davids@stratus.com
&
&begin_parameters
BASE BASE:string,req
&end_parameters
&
& make sure extraneous stuff isn't echoed into the results file
&if (process_type) = 'batch' &then &do
<set_ready -format off
&echo no_command_lines
&end
&
&set X 1
&set_string FILE (process_dir)>arp_scan.out
&if (exists &FILE&)
&then delete_file &FILE& -no_ask
< &while &X& < 255
ping &BASE&.&X& -count 1 -timeout 1
attach_default_output &FILE& -append
arp &BASE&.&X&
detach_default_output
&set X (calc &X& + 1)
&end
display &FILE& -match &BASE& -no_header -output_path arp_scan.(date).out
&
& arp_scan ends here
ARP 캐시 시간 초과는 10분이며, 10분 미만의 시간이 있는 항목이 있는 경우 스캔이 완료되기 전에 모듈이 해당 호스트와 이미 통신하고 있음을 알 수 있습니다.

d arp_scan.09-04-06.out


%phx_vos#m16_mas>SysAdmin>Noah_Davids>arp_scan.09-04-06.out 09-04-06 15:20:30 m

164.152.77.11 00-00-A8-80-80-4A temp 9 mins
164.152.77.12 00-00-A8-80-81-EC temp 9 mins
164.152.77.100 00-0C-29-A9-85-44 temp 10 mins
164.152.77.103 00-04-0D-E8-B8-44 temp 2 mins
164.152.77.111 00-19-E7-8E-EA-38 temp 10 mins
164.152.77.114 00-04-0D-4A-DD-C6 temp 5 mins
164.152.77.116 00-04-0D-4A-BF-50 temp 10 mins
164.152.77.143 00-07-3B-CE-19-46 temp 8 mins
164.152.77.147 00-07-3B-91-BE-51 temp 8 mins
. . .
세 번째 문제는 네트워크 관리자로부터 네트워크를 적극적으로 검색하기 위해 얻을 수 있는 불만입니다. 이 활동에 이의를 제기하는 경우 패킷 모니터 명령을 사용하여 브로드캐스트 패킷을 캡처하여 수동적으로 스캔할 수 있습니다.
packet_monitor -numeric -filter -no_transmit -ip -mac_dst ff:ff:ff:ff:ff:ff -filter -no_transmit -arp
이 기술을 사용하면 네트워크의 다른 호스트가 packet_monitor 실행되는 동안 적극적으로 통신하고 브로드캐스트를 전송합니다. 이 기술을 사용하는 경우 packet_monitor 꽤 오랫동안 실행하도록 해야 하며, 네트워크에 얼마나 오래 따라 달라지나요? 위의 명령을 명령 매크로(packet_monitor_scan.cm)에 넣고 시작 프로세스로 실행하는 것이 좋습니다. 프로세스를 특권으로 실행하는 것을 잊지 마십시오.
추적이 있으면 사용 가능한 주소 테이블로 변환해야 합니다. 다음 매크로는 그렇게 할 것입니다 (packet_monitor_scan process_packet_monitor_scan.out 파일을 생성하는 시작 된 프로세스라고 가정합니다).
& process_packet_monitor_scan.cm begins here
&
& packet_monitor_scan.cm
& version 1.0 09-04-06
& version 1.1 09-06-12 Added progress messages
& noah.davids@stratus.com
&
& make sure extraneous stuff isn't echoed into the results file
&if (process_type) = 'batch' &then &do
set_ready -format off
&echo no_command_lines
&end
&
&
attach_default_output (process_dir)>packet_monitor_scan
&set LINE 1
&set_string TEXT &+
(translate (contents packet_monitor_scan.out &LINE& -hold) '_' ' ')
&while (substr &TEXT& 1 7) ^= 'Process'
&set_string SOURCE '_'
&if (substr &TEXT& 1 9) = 'R_ARP_Req' &then &do
&set_string SOURCE (substr &TEXT& 39)
&end
&if (substr &TEXT& 1 9) = 'R_ARP_Rep' &then &do
&set_string SOURCE (substr &TEXT& 59)
&end
&if (substr &TEXT& 1 3) = 'R__' &then &do
&set_string SOURCE (substr &TEXT& 15)
&end
&set I (calc (index &SOURCE& '_') - 1)
&if &SOURCE& ^= '_' &then display_line (substr &SOURCE& 1 &I&)
&set LINE (calc &LINE& + 1)
&if (mod &LINE& 1000) = 0
&then &do
detach_default_output
display_line working on line &LINE&
attach_default_output (process_dir)>packet_monitor_scan -append
&end
&set_string TEXT (translate (contents packet_monitor_scan.out &LINE&) '_' ' ')
&end
detach_default_output
display_line doing sort
sort (process_dir)>packet_monitor_scan -duplicates_path (process_dir)>dups
copy_file &+
(process_dir)>packet_monitor_scan packet_monitor_scan.(date).out -delete
display_line packet_monitor_scan.(date).out created
&
& process_packet_monitor_scan.cm ends here
다음 표를 생성합니다.
d packet_monitor_scan.09-06-12.out
%phx_vos#m16_mas>SysAdmin>Noah_Davids>packet_monitor_scan.09-06-12.out  09-06-12
0.0.0.0
10.10.1.10
10.10.1.11
10.10.1.2
10.10.1.20
10.10.1.21
10.10.1.22
10.10.1.23
10.10.1.75
10.20.1.2
10.20.1.21
10.20.1.26
10.20.1.27
10.20.1.3
10.20.1.30
. . .