오늘은 웹 모의해킹의 고전이자 기본 중의 기본, Nikto에 대해 알아보겠습니다.
Nmap이 "어떤 문이 열려있나"를 확인하는 도구라면, Nikto는 "그 문 뒤에 좀비(오래된 취약점)가 살고 있나?"를 확인하는 웹 취약점 스캐너입니다.
설정 미흡(Misconfiguration), 기본 파일 방치, 구버전 서버 소프트웨어 탐지에 탁월합니다.
최신 웹 애플리케이션 취약점(SQLi, XSS)을 찾는 건 Burp Suite나 Zap 같은 도구들이 더 잘하지만, "서버 관리자가 실수로 놔둔 것들"을 찾는 데는 Nikto만한 게 없습니다.
서버 설정 파일, 백업 파일, 아웃데이트된 아파치 모듈... 이런 '인프라 레벨의 구멍'을 Nikto는 놓치지 않습니다.
◎ 기본 중의 기본 스캔
- Nikto는 펄(Perl) 기반으로 만들어져 있어 사용법이 매우 직관적입니다.
① 가장 단순한 스캔 (-h)
| # nikto -h http://target.com |
- -h (Host): 타겟 도메인이나 IP를 지정합니다.
> 이 명령어 하나만으로 Nikto는 6,700개 이상의 잠재적 위험 항목을 체크합니다.
② SSL(HTTPS) 스캔 (-ssl)
> 만약 타겟이 HTTPS(443)를 사용한다면 -ssl 옵션을 붙여주는 것이 좋습니다. (최신 버전은 자동으로 탐지하기도 하지만, 명시하는 게 안전합니다.)
| # nikto -h target.com -ssl |
◎ 정밀 타격을 위한 튜닝 (-Tuning)
- Nikto를 그냥 돌리면 시간이 꽤 걸립니다.
- 불필요한 테스트는 빼고 내가 원하는 것만 골라서 검사하고 싶다면 -Tuning 옵션을 사용하세요.
| 코드 | 검사 항목 (의미) | 예시 상황 |
| 1 | Interesting File | 로그 파일, 비밀번호 파일 등이 있는지 |
| 2 | Misconfiguration | 설정 실수(기본 설정 등) 확인 |
| 4 | Injection | XSS/Script 취약점 확인 |
| 8 | Command Execution | 원격 쉘 실행 가능성 확인 |
| 9 | SQL Injection | SQL 인젝션 패턴 확인 |
| x | Reverse Tuning | 해당 항목은 제외하고 스캔 |
> 사용 예시:
| 파일 업로드(0)와 설정 미흡(2)만 빠르게 보고 싶다! # nikto -h http://target.com -Tuning 02 |
◎ 방화벽(IDS)을 속이는 기술 (-evasion)
- Nikto는 워낙 유명한 도구라 보안 장비(IDS/WAF)가 시그니처를 다 알고 있습니다.
- 이를 우회하기 위해 패킷을 변조하는 Evasion 기법을 제공합니다.
| 코드 | 기법 (의미) |
| 1 | Random URI Encoding |
| 2 | Self-Reference |
| A | Fake Parameter |
| B | Binary Encoding |
> 사용 예시:
| 1번(인코딩)과 2번(경로 변조) 기법을 섞어서 스캔 # nikto -h http://target.com -evasion 12 |
◎ 결과 저장 및 보고서 작성 (-o, -Format)
> 스캔 결과는 반드시 파일로 남겨야 합니다. Nikto는 아주 예쁜 HTML 보고서를 만들어 줍니다.
| # nikto -h http://target.com -o result.html -Format htm |
- -o [파일명]: 저장할 파일 이름
- -Format [형식]: htm(HTML), csv(엑셀용), txt(텍스트) 등 지원
◎ 전문가의 One-Liner (실무 활용)
- 실무에서 "서버 인프라 취약점만 빠르게 훑어볼 때" 사용하는 명령어입니다.
| # nikto -h http://192.168.1.100 \ -Tuning 123b \ -o scan_report.html -Format htm \ -C all |
- -Tuning 123b: 흥미로운 파일(1), 설정 미흡(2), 정보 노출(3), 소프트웨어 식별(b)만 골라서 검사 (시간 절약)
- -o ...: HTML 보고서로 저장해서 브라우저로 편하게 확인
- -C all: CGI 디렉터리(cgi-bin)도 꼼꼼하게 다 뒤져라
◎ Nikto가 "아무것도 안 나온다"면?
- 최신 WAF(웹 방화벽)는 Nikto의 기본 User-Agent(Nikto/2.x.x)를 칼같이 차단합니다.
> 이럴 땐 User-Agent를 일반 브라우저처럼 위장해야 합니다.
| nikto.conf 파일을 수정하거나, 아래 옵션 사용 (버전에 따라 다름) 보통은 프록시(Burp)를 태워서 Burp에서 헤더를 바꾸는 게 가장 확실합니다. # nikto -h http://target.com -useproxy http://127.0.0.1:8080 |
- Nikto는 오래됐지만, 여전히 "가장 쉽고 빠르게 서버의 민낯을 보여주는 도구"입니다.
- 복잡한 로직 해킹 전에 Nikto로 '열려 있는 창문'이 없는지 먼저 확인해 보세요.
'OFFENSIVE > Vulnerable Web Application' 카테고리의 다른 글
| [WAPT] 웹 애플리케이션 모의해킹 Sqlmap 가이드 (1) | 2025.12.13 |
|---|---|
| [WAPT] 웹 애플리케이션 모의해킹 nf(NucleiFuzzer) 가이드 (0) | 2025.12.13 |
| [WAPT] 웹 애플리케이션 모의해킹 Wfuzz 가이드 (0) | 2025.12.13 |
| [WAPT] 웹 애플리케이션 모의해킹 Curl 가이드 (0) | 2025.12.13 |
| [WAPT] 웹 애플리케이션 모의해킹 Spyhunt 가이드 (0) | 2025.12.13 |
