Vulscan은 nmap을 취약점 스캐너로 향상시키는 모듈입니다. nmap 옵션 -sV를 사용하면 식별된 제품에 따라 잠재적인 결함을 확인하는 데 사용되는 서비스별 버전 감지가 가능합니다. 데이터는 VulDB의 오프라인 버전에서 조회됩니다.
Nmap 설치의 다음 폴더에 파일을 설치하십시오.
Nmapscriptsvulscan*
다음과 같이 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}nn'
--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 버전 감지의 신뢰도, 문서화된 취약점의 양 및 패턴 일치의 정확성에 크게 의존한다는 점을 명심하세요. 잠재적인 결함의 존재는 추가적인 스캐닝이나 기술 활용을 통해 검증되지 않습니다.