nmap은 특정 포트가 열려있는 호스트 만 표시 할 수 있습니까?


18

nmapSSH와 HTTP가 모두 열려있는 로컬 네트워크의 모든 호스트를 나열 할 수 있습니까 ? 그렇게하기 위해 다음과 같이 실행할 수 있습니다.

nmap 192.168.1.1-254 -p22,80 --open

그러나 이것은 모든 목록 포트가 열린 호스트를 나열하지만 모든 포트가 열린 호스트를 원합니다. 또한 출력은 매우 장황합니다.

# nmap 192.168.1.1-254 -p22,80 --open

Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-31 10:14 EST
Nmap scan report for Wireless_Broadband_Router.home (192.168.1.1)
Host is up (0.0016s latency).
Not shown: 1 closed port
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for new-host-2.home (192.168.1.16)
Host is up (0.013s latency).
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 254 IP addresses (7 hosts up) scanned in 3.78 seconds

내가 찾고있는 것은 단순히 다음과 같이 출력됩니다.

192.168.1.16

위의 호스트는 모든 포트가 열려있는 유일한 호스트이므로.

확실히 출력을 후 처리 할 수는 있지만 nmap의 출력 형식에 의존하고 싶지는 않습니다.


하나의 포트만 테스트하려면 'nmap -p 22 | grep -B3 open '은 쉬운 방법입니다.
Luciano Andress Martini

답변:


10

Nmap에는 그렇게 할 수있는 방법이 없지만 "nmap의 출력 형식에 의존"하고 싶지 않다는 의견에 따르면 Nmap에는 기계가 읽을 수있는 구문 분석을위한 두 가지 안정적인 출력 형식이 있습니다. 더 오래된 것은 Grepable output ( -oG) 이며 perl, awk 및 grep 처리에 적합하지만 NSE 스크립트 출력, 포트 이유, 추적 경로 등과 같은 고급 출력이 누락되었습니다. 보다 완전한 형식은 XML 출력 ( -oX) 이지만 사용자의 목적에 맞지 않을 수 있습니다.

할 수 있습니다 중 하나를 가진 파일이 출력 저장 -oG, -oX또는 -oA(두 형식 플러스 "정상적인"텍스트 출력), 또는 표준 출력으로 바로 중 하나를 보낼 수 있습니다 :nmap 192.168.1.1-254-p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'


1
완벽합니다. 제가 찾던 것-oG -
Brian

2

awk하나의 라이너 도 고려하십시오 .

nmap -Pn -oG -p22,80,443,445 - 100.100.100.100 | awk '/open/{ s = ""; for (i = 5; i <= NF-4; i++) s = s substr($i,1,length($i)-4) "\n"; print $2 " " $3 "\n" s}'

다음과 같이 지정된 모든 열린 포트가있는 모든 호스트를 인쇄합니다.

 100.100.100.100 (some-domain.com)
 22/open/tcp//ssh
 80/open/tcp//http
 443/open/tcp//microsoft-ds
 445/open/tcp//https-alt

이것을 테스트 한 후에 -p를 추가해야합니다. 커맨드 라인의 '-'는 -oG 바로 다음에 속합니다
Wayne

1

다음 명령을 시도하십시오 :

nmap --open -p 22,80 192.168.1.1-254 -oG - | grep "/open" | awk '{ print $2 }'

이렇게하면 범위의 포트를 검색하고 열린 포트를 찾고 출력을 greppable 형식으로 파이프 한 다음 해당 기준에 맞는 IP 주소를 인쇄합니다.


U & L에 오신 것을 환영합니다! 참고 것을 허용 대답은 ~에서 3 년 전이 grep을 할 AWK를 사용하여 이것의 간단한 버전은 하고 인쇄합니다.
Jeff Schaller

1
포트 옵션 이외에 더 많은 포트에 대한 추가 데이터를 추가 할 필요가 없기 때문에 내 것이 더 낫다고 주장합니다. 그는 각 포트로 awk를 업데이트해야하므로 불필요하게 장황합니다.
마샬 할 렌벡
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.