
Nmap NSE를 사용한 고급 취약점 스캐닝
Vulscan은 nmap을 취약점 스캐너로 향상시키는 모듈입니다. nmap 옵션 -sV는 서비스별 버전 탐지를 활성화하며, 이는 식별된 제품에 따라 잠재적인 결함을 결정하는 데 사용됩니다. 데이터는 오프라인 버전의 VulDB에서 조회됩니다.
파일을 Nmap 설치의 다음 폴더에 설치하십시오:
Nmap\scripts\vulscan\*
GitHub 저장소를 다음과 같이 클론하십시오:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
간단한 취약점 스캔을 시작하려면 다음 최소 명령어를 실행해야 합니다:
nmap -sV --script=vulscan/vulscan.nse www.example.com
현재 다음과 같은 사전 설치된 데이터베이스를 사용할 수 있습니다:
단일 데이터베이스를 사용하려면 다음 인자로 vulscan을 실행할 수 있습니다:
--script-args vulscandb=your_own_database
자체 데이터베이스를 생성하고 참조하는 것도 가능합니다. 이렇게 하려면 다음 구조를 가진 데이터베이스 파일을 생성해야 합니다:
<id>;<title>
사전 제공된 데이터베이스 중 하나를 참조하는 것처럼 vulscan을 실행하십시오. 공식 저장소에 추가하기 위해 자체 데이터베이스 및 취약점 연결을 저와 공유해 주세요.
취약점 데이터베이스는 정기적으로 업데이트되고 조립됩니다. 최신 공개 취약점을 지원하려면 로컬 취약점 데이터베이스를 최신 상태로 유지하십시오.
데이터베이스를 자동으로 업데이트하려면 update.sh 파일에 실행 권한을 설정하고 실행하기만 하면 됩니다:
chmod 744 update.sh
./update.sh
데이터베이스를 수동으로 업데이트하려면 다음 웹 사이트로 이동하여 이러한 파일을 다운로드하십시오:
파일을 vulscan 폴더에 복사하십시오:
/vulscan/
버전 탐지가 소프트웨어 버전을 식별할 수 있고 취약점 데이터베이스가 이러한 세부 정보를 제공하는 경우 이 데이터도 일치됩니다.
이 기능을 비활성화하면 오탐지가 발생할 수 있지만 미탐지를 제거하고 성능이 약간 향상될 수도 있습니다. 추가 버전 일치를 비활성화하려면 다음 인자를 사용하십시오:
--script-args vulscanversiondetection=0
vulscan의 버전 탐지는 Nmap의 버전 탐지 및 취약점 데이터베이스 항목만큼만 정확합니다. 일부 데이터베이스는 결정적인 버전 정보를 제공하지 않아 많은 오탐지가 발생할 수 있습니다(Apache 서버에서 볼 수 있음).
스크립트는 최상의 일치 항목만 식별하려고 합니다. 긍정적 일치 항목을 찾을 수 없는 경우 가능한 최상의 일치 항목(오탐지일 수 있음)이 표시됩니다.
모든 일치 항목을 표시하려면 다음 인자를 사용하십시오. 이렇게 하면 많은 오탐지가 발생할 수 있지만 추가 조사에 유용할 수 있습니다:
--script-args vulscanshowall=1
대화형 모드는 각 포트에 대한 버전 탐지 결과를 재정의하는 데 도움이 됩니다. 대화형 모드를 활성화하려면 다음 인자를 사용하십시오:
--script-args vulscaninteractive=1
모든 일치 결과는 한 줄씩 출력됩니다. 기본 레이아웃은 다음과 같습니다:
[{id}] {title}\n
다음 인자를 사용하여 다른 사전 정의된 보고서 구조를 사용할 수 있습니다:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
다음 인자를 사용하여 자체 보고서 구조를 적용할 수 있습니다(몇 가지 예):
--script-args vulscanoutput='{link}\n{title}\n\n'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})\n'
--script-args vulscanoutput='{id} | {product} | {version}\n'
동적 보고서 템플릿에 대해 다음 요소가 지원됩니다:
모든 기본 데이터베이스에는 URL과 링크가 함께 제공되며, 스캔 중에 사용되며 사용자 정의 보고서 템플릿 내에서 {link}로 액세스할 수 있습니다. 사용자 정의 데이터베이스 링크를 사용하려면 다음 인자를 사용하십시오:
--script-args "vulscandblink=http://example.org/{id}"
이러한 종류의 파생 취약점 스캐닝은 nmap의 버전 탐지 신뢰도, 문서화된 취약점의 양 및 패턴 일치의 정확성에 크게 의존한다는 점을 명심하십시오. 잠재적인 결함의 존재는 추가 스캐닝이나 익스플로잇 기술로 확인되지 않습니다.