비표준 포트에서 SSL 모드 강제 실행
이 단계에서는 일반적으로 암호화되지 않은 트래픽을 처리하는 포트에서도 Nikto 가 SSL 을 사용하도록 "강제"하는 방법을 살펴봅니다. 이는 8080과 같이 특이한 포트에서 HTTPS 를 실행하는 잘못 구성된 서비스를 식별하는 데 유용합니다.
먼저 기존 서버를 중지하고 포트 8080에서 새 서버를 시작해야 합니다.
## 이전 서버 중지
pkill -f "python3 /home/labex/project/https_server/server.py"
## 포트 8080에 대한 새 서버 구성 생성
cat << EOF > /home/labex/project/https_server/server_8080.py
import http.server
import ssl
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
server_address = ('0.0.0.0', 8080)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,
server_side=True,
certfile='cert.pem',
keyfile='key.pem',
ssl_version=ssl.PROTOCOL_TLS)
httpd.serve_forever()
EOF
## 새 서버를 백그라운드에서 시작하고 잠시 대기
python3 /home/labex/project/https_server/server_8080.py &> /dev/null &
sleep 3
이제 보안 서버가 포트 8080에서 실행됩니다. -ssl 플래그가 없으면 Nikto 는 이를 표준 HTTP 포트로 가정합니다. -ssl을 포함하면 TLS 핸드셰이크를 시작하도록 강제합니다.
포트 8080에 대한 스캔을 실행합니다:
nikto -h localhost -p 8080 -ssl
출력은 이전 스캔과 유사하며, Nikto 가 비표준 포트에서 SSL/TLS를 사용하여 성공적으로 연결하고 테스트를 수행했음을 확인합니다.
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP: 127.0.0.1
+ Target Hostname: localhost
+ Target Port: 8080
+ SSL Info: Self-signed certificate.
...
이를 통해 임의의 포트에서 SSL/TLS 서비스를 스캔하기 위해 Nikto 를 사용할 수 있음을 확인할 수 있습니다.