Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 ndiff 명령입니다.
프로그램:
이름
ndiff - Nmap 스캔 결과를 비교하는 유틸리티
개요
ndiff [옵션] {a.xml} {b.xml}
기술
Ndiff는 Nmap 스캔의 비교를 지원하는 도구입니다. 두 개의 Nmap XML 출력 파일이 필요합니다.
그리고 그들 사이의 차이점을 인쇄합니다. 관찰된 차이점은 다음과 같습니다.
· 호스트 상태(예: 위로 아래로)
· 포트 상태(예: 열림에서 닫힘으로)
· 서비스 버전(에서 -sV)
· OS 일치(에서 -O)
· 스크립트 출력
표준과 같은 Ndiff diff 유틸리티는 한 번에 두 개의 스캔을 비교합니다.
옵션 개요
-h, --도움
도움말 메시지를 표시하고 종료합니다.
-v, --말 수가 많은
변경된 호스트와 포트뿐만 아니라 모든 호스트와 포트를 출력에 포함합니다.
--본문
사람이 읽을 수 있는 텍스트 형식으로 출력을 작성합니다.
--xml
기계가 읽을 수 있는 XML 형식으로 출력을 작성합니다. 문서 구조는
배포판에 포함된 ndiff.dtd 파일.
다른 모든 인수는 Nmap XML 출력 파일의 이름으로 간주됩니다. 있어야합니다
정확히 두.
예
Ndiff를 사용하여 서로 다른 옵션을 사용하는 두 Nmap 스캔의 출력을 비교해 봅시다. 에서
먼저 빠른 스캔을 수행합니다(-F), 속도를 위해 더 적은 수의 포트를 스캔합니다. 두 번째로, 우리는
더 큰 기본 포트 세트를 스캔하고 NSE 스크립트를 실행하십시오.
# nmap -F scanme.nmap.org -황소 스캔미-1.xml
# nmap --script=html-제목 scanme.nmap.org -황소 스캔미-2.xml
$ ndiff -v 스캔미-1.xml 스캔미-2.xml
-Nmap 5.35DC1 2010-07-16 12:09
+Nmap 5.35DC1, 2010-07-16 12:13
scanme.nmap.org(64.13.134.52):
호스트가 작동 중입니다.
-표시되지 않음: 필터링된 포트 95개
+표시되지 않음: 필터링된 포트 993개
포트 스테이트 서비스 버전
22 / TCP 오픈 SSH
25/tcp 닫힌 smtp
53/tcp 오픈 도메인
+70/tcp 폐쇄 고퍼
80/tcp 오픈 http
+|_ html-title: 계속해서 ScanMe!
113/tcp 폐쇄 인증
+31337/tcp 폐쇄 엘리트
변경 사항은 줄 시작 부분에 - 또는 +로 표시됩니다. 우리는 출력에서 볼 수 있습니다
없는 스캔 -F 빠른 스캔 옵션에서 두 개의 추가 포트(70 및 31337)를 찾았습니다.
html-title 스크립트는 포트 80에 대한 추가 출력을 생성했습니다. 포트 수에서 우리는
고속 스캔이 100개의 포트(필터링된 95개, 열린 3개, 닫힌 2개)를 스캔했다고 추론할 수 있지만
일반 스캔은 1000개를 스캔했습니다(993개 필터링, 3개 열기, 4개 닫기).
The -v (또는 --말 수가 많은) Ndiff에 대한 옵션은 다음과 같이 변경되지 않은 포트도 표시하도록 했습니다.
22 및 25. 없음 -v, 그들은 표시되지 않았을 것입니다.
출력
텍스트와 XML의 두 가지 출력 모드가 있습니다. 텍스트 출력이 기본값이며,
로 선택한 --본문 옵션. 텍스트 출력은 Nmap 일반의 통합 diff와 유사합니다.
터미널 출력. 각 줄 앞에는 해당 여부와 방법을 나타내는 문자가 있습니다.
변경되었습니다. - 라인이 첫 번째 스캔에는 있었지만 두 번째 스캔에는 없었음을 의미합니다. + 의미
두 번째에는 있었지만 첫 번째에는 없었습니다. 변경된 줄은 - 줄로 표시됩니다.
+ 라인이 뒤따릅니다. 변경되지 않은 줄 앞에는 공백이 있습니다.
예제 1은 텍스트 출력의 예입니다. 여기에서 호스트의 포트 80
photos-cache-snc1.facebook.com이 서비스 버전(lighthttpd 1.5.0)을 얻었습니다. 의 호스트
69.63.179.25는 역방향 DNS 이름을 변경했습니다. 69.63.184.145의 호스트는 완전히 결석했습니다.
첫 번째 스캔에서 그러나 두 번째 스캔에서 나타났습니다.
예시 1. 은디프 본문 출력
-4.85-3-2009 03:15에 Nmap 11BETA00
+Nmap 4.85BETA4, 2009-03-18 11:00
사진 캐시-snc1.facebook.com(69.63.178.41):
호스트가 작동 중입니다.
표시되지 않음 : 99 개의 필터링 된 포트
포트 스테이트 서비스 버전
-80/tcp 오픈 http
+80/tcp 오픈 http lighttpd 1.5.0
-cm.out.snc1.tfbnw.net(69.63.179.25):
+mailout-snc1.facebook.com(69.63.179.25):
호스트가 작동 중입니다.
표시되지 않음 : 100 개의 필터링 된 포트
+ 69.63.184.145 :
+ 호스트가 작동 중입니다.
+표시되지 않음: 필터링된 포트 98개
+항구 상태 서비스 버전
+80/tcp 오픈 http 아파치 httpd 1.3.41.fb1
+443/tcp open ssl/http 아파치 httpd 1.3.41.fb1
다른 프로그램에서 처리하도록 의도된 XML 출력은 --xml 옵션을 선택합니다.
차이를 나타내는 몇 가지 추가 요소가 있는 Nmap의 XML 출력을 기반으로 합니다.
XML 문서는 nmapdiff 그리고 스캔디프 강요. 호스트 차이점은
에 동봉 호스트 차이 태그와 포트 차이점은 포트디프 태그. 안에
호스트 차이 or 포트디프, a 그리고 b 태그는 첫 번째 스캔에서 호스트 또는 포트의 상태를 보여줍니다.
(a) 또는 두 번째 스캔(b).
예 2는 위의 예 1에 표시된 동일한 스캔의 XML diff를 보여줍니다.
photos-cache-snc80.facebook.com의 1개는 포트디프 태그. 69.63.179.25의 경우
이전 호스트 이름은 a 태그와 새 기능이 있습니다. b. 새 호스트 69.63.184.145의 경우
b 인간을 호스트 차이 대응하지 않고 a에 대한 정보가 없음을 나타냅니다.
첫 번째 스캔의 호스트.
예시 2. 은디프 XML 출력
<service name="http" product="아파치 httpd"
버전="1.3.41.fb1"/>
<service name="http" product="Apache httpd" 터널="ssl"
버전="1.3.41.fb1"/>
주기적 차이점
Nmap, Ndiff, cron 및 쉘 스크립트를 사용하여 매일 네트워크를 스캔하고 얻을 수 있습니다.
네트워크 상태 및 이전 스캔 이후 변경 사항에 대한 이메일 보고서. 예 3
함께 묶는 스크립트를 보여줍니다.
예시 3. 스캐닝 a 네트워크 주기적으로 과 은디프 그리고 크론
#!/ 빈 / SH
타겟="목표"
옵션="-v -T4 -F -sV"
date=`날짜 +%F`
cd /루트/스캔
nmap $OPTIONS $TARGETS -oA 스캔-$date > /dev/null
if [ -e scan-prev.xml ]; 그 다음에
ndiff 스캔-prev.xml 스캔-$date.xml > diff-$date
에코 "*** NDIFF 결과 ***"
고양이 diff-$date
에코
fi
에코 "*** NMAP 결과 ***"
고양이 스캔-$date.nmap
ln -sf 스캔-$date.xml 스캔-prev.xml
스크립트가 /root/scan-ndiff.sh로 저장되면 루트의 crontab에 다음 줄을 추가합니다.
0 12 * * * /root/scan-ndiff.sh
EXIT CODE
종료 코드는 스캔이 동일한지 여부를 나타냅니다.
· 0은 스캔이 Ndiff가 알고 있는 모든 측면에서 동일함을 의미합니다.
· 1은 스캔이 다르다는 것을 의미합니다.
· 2는 파일 열기 실패와 같은 런타임 오류를 나타냅니다.
onworks.net 서비스를 사용하여 온라인에서 ndiff 사용