오늘은 웹 모의해킹의 고전이자 기본 중의 기본, 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로 '열려 있는 창문'이 없는지 먼저 확인해 보세요.

반응형

+ Recent posts