본문 바로가기

Work & Study/Security

쇼단(shodan) 검색 기본 방법

반응형

모든 검색엔진이 그렇지만 쇼단을 최대한 활용하기 위해서는 정제된 검색 쿼리를 입력하는 것이 중요하다.

실제 검색 쿼리 구문을 자세히 살펴보기 전에 Shodan에서 검색할 내용을 살펴보면 다음과 같다.

The Banner - 배너

쇼단은 서비스를 제공하는 장비의 정보를 수집한다. 예를 들어, 웹 사이트는 웹 서비스를 실행하는 장치에서 호스팅되며 쇼단은 웹 서비스에 질의를 하면서 정보를 수집한다. 각 서비스들은 각기 서비스 정보가 저장된 객체가 있는데 이를 배너라고 한다. 쇼단이 수집하는 자료들의 기본 단위이면서 우리가 검색하고자 하는 정보이다. 배너의 형태를 간단히 요약하자면 아래와 같다.

{
    "data": "Moxa Nport Device
            Status: Authentication disabled
            Name: NP5232I_4728
            MAC: 00:90:e8:47:10:2d",
    "ip_str": "46.252.132.235",
    "port": 4800,
    "org": "Starhub Mobile",
    "location": {
        "country_code": "SG"
    }
}

위의 배너에는 5가지 속성이 있는데 실제 배너에는 서비스에 대한 더 많은 속성과 자세한 정보가 포함되어 있다. 각 속성은 서비스에 대한 다른 유형의 정보를 저장한다.

* data: 서비스의 Main response
* ip_str: 장치의 IP 주소
* port: 서비스 포트 번호
* org: IP를 사용/제공하는 기관
* location.country_code: 장치가 위치한 국가

기본적으로 data 속성만 쇼단이 검색을 하는 부분이다. data 속성의 내용은 서비스 유형에 따라 크게 달라질 수 있다. 예를 들어, 다음은 일반적인 HTTP 배너이다.

HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sat, 03 Oct 2015 06:09:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6466
Connection: keep-alive

위의 배너 정보는 응답한 장치가 1.1.19 버전의 nginx WAS가 동작하고 있는 것을 알 수 있다. 다른 배너와 비교하기 위해 Siemens S7 산업 제어 시스템 프로토콜용 배너를 살펴보겠다.

Copyright: Original Siemens Equipment
PLC name: S7_Turbine
Module type: CPU 313C
Unknown (129): Boot Loader           A
Module: 6ES7 313-5BG04-0AB0  v.0.3
Basic Firmware: v.3.3.8
Module name: CPU 313C
Serial number of module: S Q-D9U083642013
Plant identification: 
Basic Hardware: 6ES7 313-5BG04-0AB0  v.0.3

Siemens S7 프로토콜은 완전히 다른 형태의 배너를 반환한다. 이번에는 펌웨어에 대한 정보, 일련 번호 및 장치를 설명하는 많은 세부 데이터를 제공한다. 이처럼 배너는 장비, 서비스마다 내용이 크게 다르기 때문에 쇼단에서 검색을 할 때에는 대상을 명확히 하는것이 중요하다.

Search Syntax - 검색구문

Moxa 배너를 다시 살펴보도록 하겠다. 

{
    "data": "Moxa Nport Device
            Status: Authentication disabled
            Name: NP5232I_4728
            MAC: 00:90:e8:47:10:2d",
    "ip_str": "46.252.132.235",
    "port": 4800,
    "org": "Starhub Mobile",
    "location": {
        "country_code": "SG"
    }
}

Moxa Nport 장치를 쇼단을 통해 찾으려면 다음과 검색 쿼리를 사용하면 된다.

Moxa Nport

그러나 쇼단은 기본적으로 data 속성만 검색하기 때문에  org 속성에 있는 "Starhub Mobile"은 검색을 해도 결과가 나오지 않는다.
그렇다면 한국에서 SK텔레콤을 사용하는 장치를 쇼단에서 검색하기 위해서는 어떻게 검색을 해야 하는지 알아보도록 하겠다.

Search Filters - 검색 필터

검색 필터는 쇼단에서 특정 속성을 검색할 때 사용하는 방법이다. 간단한 형식은 아래와 같다.

filtername:value

검색필터와 검색값 사이에는 공백이 없어야 한다. 위의 예를 사용하여 한국에 있는 장치를 찾으려면 2글자로 된 국가코드를 찾으면 된다.

country:KR

검색값에 공백이 있으면 따옴표로 묶어줘야 한다. 다음 검색 쿼리는 SK텔레콤을 사용하는 장치를 보여준다.

org:"SK Telecom"

필터를 결합해 검색 결과를 더욱 좁힐 수 있다. 예를 들어, 다음은 서울에서 SK텔레콤을 사용하는 장치를 찾기 위한 검색어이다.

org:"SK Telecom" city:Seoul

Conclusion - 마무리지으며

필터를 사용해 검색을하는 이유는 긍정오류(False Positive)를 방지하여 엉뚱한 검색 결과가 나오는 것을 막을 수 있다. 예를 들어 Apache를 검색하는 경우 Apache WAS 대한 결과만 얻어야 하지만 실수로 미국의 애리조나의 Apache Junction 도시가 나올수도 있다.

검색 질의 구문을 기본적으로 이해하고 필터를 적용하는 방법을 알아보았다. 아래 주소에서는 다른 쇼단 유저들이 검색한 쿼리들을 살펴 볼 수 있다.

 

Shodan - Explore the Internet

Explore Discover the Internet using search queries shared by other users.

www.shodan.io

 

반응형