핑을 사용하지 않고 머신이 온라인 상태인지 어떻게 알 수 있습니까? 실행할 수있는

컴퓨터가 허용하지 않도록 구성되어 있어도 컴퓨터에서 핑하거나 포트 스캔을 실행할 수있는 응용 프로그램을 사용했습니다.

현재 WAN에서 원격 시스템을 핑하려고하지만 핑을 허용하지 않도록 시스템을 구성했습니다. 사용할 수있는 핑과 비슷한 것이 있습니까?

다시 말하지만, 이것은 우리 완의 일부인 다른 도시에 위치한 기계입니다.



답변

XP / 2003 +를 사용하는 경우 (Vista / 2008 / 7 포함) Win32_PingStatus를 사용할 수 있습니다 . 스크립트 코드를 실행하는 컴퓨터는 XP / 2003 + 여야하는 유일한 시스템이며 Ping.exe를 사용하는 것과 똑같이 작동하며 ping.exe를 사용하지 않는 것이므로 보안 설정의 허점으로 작용해야합니다. ping.exe를 실행할 수 없습니다.

strComputer = "192.168.1.1"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * from Win32_PingStatus " & _
        "Where Address = '" & strComputer & "'")
For Each objItem in colItems
    If objItem.StatusCode = 0 Then
        WScript.Echo "Reply received."
    End If
Next

Win32_PingStatus 사용 방법에 대한 자세한 내용은 Scripting Guy 기사를 참조하십시오.

http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/hey0914.mspx


답변

머신에서 열린 tcp 포트로 텔넷 할 수 있습니다. 예를 들어, 머신이 웹 서버이고 포트 80이 열려있는 경우 다음을 수행하십시오.

telnet ip.ad.dre.ss 80

이것은 암호화 된 포트에서도 작동합니다 (데이터를 이해할 수는 없지만)

시도해야 할 다른 포트는 다음과 같습니다.

  • https 서버의 경우 443
  • ssh의 경우 22

( 리눅스 머신의 / etc / services 에 포트 / 서비스 목록이 있습니다)


답변

Ping은 ICMP이며 ICMP를 차단하면 Ping 할 수 없습니다.

TCP / UDP 연결을 수락하는 경우 여전히 TCP 또는 UDP 포트를 테스트 할 수 있습니다.

핑, nc, 텔넷 및 기타 도구가없는 컨테이너에서 테스트를 실행하는 경우이 트릭을 사용할 수 있습니다.

(echo >/dev/tcp/${host}/${port}) &>/dev/null && echo "open" || echo "closed"

이것은 장치를 통해 tcp / udp를 통해 연결을 시도하고 (아시다시피) 포트가 열려 있으면 “open”또는 닫혀 있으면 “close”됩니다.

이 경우 “닫기”를 에코하기 전에 잠시 동안 중단됩니다.


답변

원격 시스템에서 SNMP 에이전트를 실행하고 관리자를 사용하여 표준 MIB에서 값 중 하나를 읽습니다.


답변

방화벽과 라우터가없는 경우, 즉 확인하려는 호스트와 동일한 세그먼트에있는 경우 위의 대부분의 솔루션은 약간 철저한 imho입니다.

어떤 포트에 연결하든 문제가되지 않으며 실제로 서비스가 실행되지 않는 포트에 연결하면 감지되지 않고 작업을 수행 할 수 있습니다.

어떻게?

원하는 도구를 사용할 수 있지만 텔넷 만 사용할 수 있습니다.

% telnet <host> 313373
Trying 10.211.55.3...
telnet: connect to address 10.211.55.3: Connection refused
telnet: Unable to connect to remote host
%

이것은 호스트가 패킷을 삭제하지 않는 한 즉시 발생합니다. 실제로 일어나고있는 일은 호스트의 TCP / IP 스택이 RST 비트가 설정된 TCP 세그먼트를 다시 보내는 것입니다. 즉, SYN 패킷이 종료됩니다.

RST 패킷을 받았다는 사실은 다른 쪽 끝에 실제로 호스트가 있다는 것을 의미하며 보너스로 감지되지 않았습니다 (TCP / IP에는이 연결에 대해 이야기 할 상위 계층 응용 프로그램이 없었습니다) .

그러나 텔넷 대신에 scapy와 같은 것을 사용하고 RST 플래그를 찾는 것을 작성하고 알려줍니다.

그것은 잠시 동안 중단됩니다, 시간 초과 – – 같은 일을 당신이 시도하는 IP에 어떤 호스트가없는 경우 그냥이를 완료 수신 호스트가 드롭 필터와 방화벽이 있다면 일이.

방화벽이 관련된 경우 다른 사람들이 제안한대로 다른 도구를 사용하십시오 nmap.


답변

대상 시스템과 동일한 LAN에있는 다른 시스템에 액세스 할 수 있으면 arping 을 사용할 수 있습니다 .

Arping은 컴퓨터를 대상으로 ARP 패킷을 전송하여 작동합니다. 네트워크를 사용하려는 경우 arp 패킷을 차단 할 수 없기 때문에 완벽하게 작동합니다 (물론 정적 arp 테이블을 모든 곳에서 설정할 수 있습니다 : D).하지만 단점은 Arping 대상과 동일한 LAN.


답변

기계에서 사용할 수있는 서비스가 있습니까? 기계가 있는지 확인하는 한 가지 방법은 Telnet 클라이언트를 사용하여 연결하지만 적중해야하는 포트를 변경하는 것입니다.

머신이 기본적으로 포트 1433에서 실행되는 MS SQL을 실행한다고 가정 해 봅시다. 다음 명령을 사용합니다

telnet machine-name-address 1433

Telnet이 연결되어있는 경우 컴퓨터가 작동 중이고 작동 중임을 의미하지는 않지만 해당 포트를 수신함을 의미합니다.