배너 그래빙(Banner Grabbing)
대상 서버나 시스템의 운영체제를 탐지하기 위한 기술에 대해 설명한다. 배너그래빙은 서버로부터 서비스 또는 애플리케이션 정보, 운영체제 정보를 수집한다. 애플리케이션 버전 탐지 등에 활용된다.
대상과 직접 네트워크 연결을 맺어서 운영체제 정보나 서비스 및 애플리케이션 정보를 담고 있는 배너를 받아오는 방법이다. 배너에서 필요한 부분만을 파싱한 결과에 관련 정보가 담겨있는 경우, 간단하게 버전을 확인할 수 있다.
배너그래빙은 포트에서 실행 중인 운영 체제 정보 및 서비스를 해당 버전을 획득하기 위한 작업이다. 실행 중인 서비스의 버전이 취약하고 모든 사용자가 볼 수 있는 경우 공격자가 원격 호스트 시스템 전체를 처리할 수 있기 때문에 원격 호스트 시스템에 침투할 수 있다.
도구 소개
1. Curl
cURL은 다양한 네트워크 프로토콜을 사용하여 데이터를 전송하기 위한 라이브러리와 명령줄 도구를 제공한다. 이 툴을 사용해 HTTP 서버로부터 배너로부터 버전정보를 얻을 수 있다. "-s" 플래그는 "사일런트 모드"를 나타내고 "I" 플래그는 "문서 정보만 표시"를 나타낸다.
curl -s -I 192.168.1.8
curl -s -I 192.168.1.8 | grep -e "Server: "
2. Wget
Wget은 명령줄을 통해 웹 서버에서 콘텐츠를 검색한다. 호스트의 헤더 세부 정보만 가져올 수도 있다. 명령어 사용 플래그를 "-q" 플래그는 조용한 모드, "S" 플래그는 서버 응답에 사용한다.
wget –q -S 192.168.1.8
3. Telnet
텔넷을 통해서도 정보를 획득할 수 있다. 다만 포트가 열려있고 서비스가 동작 중일 경우 확인 가능하다.
telnet 192.168.1.8 21
4. Nmap
Nmap은 패킷을 전송하여 컴퓨터 네트워크상의 호스트와 서비스를 스캔하는 데 사용된다. 여기서 다음 명령을 실행하여 포트 21에서 실행되고 있는 FTP 서비스 버전을 가져온다. 다양한 옵션이 있지만 배너그래빙을 위한 옵션을 사용한다.
nmap -p 21 -sV 192.168.1.8
5. Whatweb
「What Web」도구는, Web 사이트에서 사용되는 서비스와 버전를 특정하기 위해서 사용된다. 배너그래빙 뿐만 아니라 여러 명령 삽입, Active 스캐닝 기능이 존재하므로 이 툴의 기능에 주의해, 다음의 커맨드를 실행해야 한다. 자세한 내용을 보기 위해 "v" 플래그를 사용한다.
whatweb testphp.vulnweb.com -v
실행 결과로 서버에서 동작 중인 현재 버전을 확인할 수 있다.
6. Nikto
Nikto는 웹 서버에서 위험한 파일을 검색하고 웹 서버에서 허용되는 HTTP 메서드를 식별하는 스캐너 도구이다. OS, IP 주소 등을 확인할 수 있다. 명령어를 실행하면 Apache 서비스와 버전 및 현재 실행 중인 운영체제에 대한 정보를 얻을 수 있다.
nikto -h http://192.168.1.8
7. Burp Suite(또는 web proxy 도구)
웹 어플리케이션에서 배너 그래빙 뿐만 아니라 어떤 종류의 취약점도 발견할 수 있는 도구이다. 이 툴에서는 응답헤더에서 서버 정보를 쉽게 얻을 수 있다. Request를 리피터로 전송하고 결과를 바로 확인할 수 있다.
Metasploit 등 알려진 취약점들을 익스플로잇 하기 위한 취약점이 DB화 되어 있어 공격자가 쉽게 활용할 수 있다. 패치되지 않은 서버 버전 정보의 노출은 패치되지 않은 취약점의 노출과 같다.
서버 운영자는 이를 통한 공격을 방지하기 위해 서비스나 애플리케이션에서 노출되는 버전 정보를 제거해야 한다.
References
1. 배너 그래빙을 통한 서버 정보 수집에 관한 연구. 국방과학연구소, 고려대학교. 한국정보보안학회지. Dec. 2017.
'Security > WEB' 카테고리의 다른 글
2FA 인증 및 우회 방법 정리 (0) | 2022.08.31 |
---|---|
[웹해킹] SQL Injection 총정리 (2) | 2022.08.05 |
[CVE-2021-3281] Django Path Traversal 취약성 연구 (0) | 2021.08.31 |
[모의해킹 실습] 데이터 평문전송 취약 페이지 구현 및 공격 실습 (0) | 2021.08.06 |
[모의해킹 실습] 정보누출 취약 페이지 구현 및 공격 실습 (0) | 2021.08.02 |