1. 개요
취약점 스캐닝은 운영 중인 서비스의 약점을 찾아내는 과정이다.
목표로 하는 웹 서버의 IP, 열린 포트, 동작하는 서비스와 버전 정보를 알고 있다면, 이러한 서비스의 취약점을 확인할 수 있다. 이것이 웹 서버를 본격적으로 공격하기 전에 마지막 단계에서 수행하는 일이다.
취약점 찾기는 보통 Exploit이나 퍼징 시그니처를 잔뜩 탑재한 '자동화된 도구' 또는 '플러그인'으로 수행된다.
이런 플러그인을 이용하여 목표로 한 컴퓨터의 서비스가 공격에 어떻게 반응하는지 관찰하고 분석한다.
어떤 서비스가 특정한 방식으로 반응하면 취약점 스캐너가 활성화되어 그 서비스가 취약한 사실뿐만 아니라 해당 취약점을 유발하는 정확한 익스플로잇까지 알 수 있다.
해킹 및 취약점 스캐닝 시 취약점 스캐너를 이용하여 취약점을 찾는 방법과 수동으로 찾는 방법이 있다.
후자(수동)의 경우, 소프트웨어 패키지로 취약점을 찾은 후 직접 뚫고 들어가는 코드를 작성하기도 하며, 수동으로 공격하는 기법 중 우선 퍼징, 디버깅, 리버스 엔지니어링, 맞춤식 쉘 코드와 수동으로 뚫고 들어가는 기법과도 익숙해져야 한다.
2. 자동화된 스캐너 도구
1) Nessus
- 가장 유명한 취약점 스캐너 중 하나.
- 새로운 취약점이 발견되고 보안업체가 그 정보를 바탕으로 플러그인으로 패치를 적용할 떄까지 시간이 걸리기 때문에 취약점 스캐너를 사용하는 경우에는 최신 취약점에 대응하기는 어렵다.
- 설치 과정 (본 블로그에 별도 포스팅)
: https://kkamagistory.tistory.com/463
* 참고사항
- Nessus 서버와는 반드시 보안통신으로 접속(https 사용)
- Nessus 서버 자체는 자체 호스트(127.0.0.1)의 8834 포트를 사용하므로 URL에 포트를 포함.
- Nessus 플러그인을 내려 받고 처음 설정 시 5분정도의 시간이 소요.
2) Nikto
- Nikto는 오픈소스 취약점 스캐너로 2001년 후반 perl로 개발되어 출시된 도구이다.
- 웹 서버 취약점 검토 시 사용한다.
- 웹 서버 발견 시 Nessus에서 Nikto를 자동으로 시작할 수 있다. (터미널에서 Nikto를 별도로 실행도 가능) 즉, 연동이 가능하다.
- perl 스크립트로서 /usr/bin/ 디렉터리 아래에 존재한다. path 설정도 확인.
- 스캐너를 사용하기 전에 최신 플러그인 상태를 유지하도록 업데이트가 필요하다.
# sudo perl /usr/bin/nikto -update
- 자체 호스트를 스캔할 경우 -h 옵션을 주어 목적지 주소를, -p 옵션을 주어 포트를 명시한다.
# /usr/bin/nikto -h 127.0.0.1 -p 1-500
- 본 포스팅에서는 Kali linux 상의 DVWA를 대상으로 간단히 테스트해 보았다.
웹 서버는 80 포트 밖에 없으므로 80포트로 명시하였다.
- Nikto의 결과 보고서 중 가장 중요하게 볼 것은 OSVDB 항목이다.
- OSVDB란 Open Source Vulnerability Database의 약자로, 오픈소스 취약점 데이터베이스 항목.
- OSVDB는 Nessus와 Metasploit에서 사용하는 CVE 식별자와 매우 유사하다.
- OSVDB는 독립적일 뿐만 아니라 오픈소스 프로젝트 형태로 70,000여개 이상의 제품과 관련된 90,000 이상의 취약점에 대하여 균형 잡힌 기술정보를 제공한다. (http://osvdb.org)
'Cyber Security' 카테고리의 다른 글
비박스 환경을 활용한 웹 모의해킹 완벽 실습 - HTML Injection Reflected (GET) (0) | 2020.01.22 |
---|---|
비박스 환경을 활용한 웹 모의해킹 완벽 실습 - bee-box 환경 구성, bWAPP 실행 (0) | 2020.01.22 |
[정보보안] SSH 접속 시 OTP(추가인증수단) 등록하여 서버접근통제하기 (0) | 2020.01.06 |
[정보보안] SSL MITM ATTACK VULNERABILITY (0) | 2020.01.06 |
Astaro 보안장비 (0) | 2019.02.08 |