매일 업데이트
2022-11-14 22:58 5 min

GoScan을 사용하여 네트워크 서비스 열거

네트워크 침투 테스트(pentesting)에서 열거 과정은 핵심적인 단계 중 하나입니다. GoScan은 이러한 과정을 간소화하고 자동화하는 데 유용한 도구입니다.

일반적으로 사용되는 Nmap이나 zmap과 같은 네트워크 스캐너들은 네트워크 규모에 따라 스캔 시간이 오래 걸리거나 사용법을 익히는 데 어려움이 있을 수 있습니다.

하지만 GoScan은 대화형 네트워크 스캐너로, 네트워크와 서비스를 신속하게 열거하고 작업을 자동화하는 데 효과적입니다.

GoScan이란 무엇인가?

GoScan은 Nmap 열거 기능을 자동화하는 대화형 인터페이스를 갖춘 네트워크 스캐너입니다. 스마트 탭 자동 완성 기능과 백엔드의 SQLite 데이터베이스를 통해 불안정한 상황에서도 연결과 데이터를 안정적으로 유지할 수 있습니다.

다른 일반적인 스캐너들과는 달리, GoScan은 여러 작업의 추상화 및 자동화를 위해 다양한 도구 위에 구축된 프레임워크로 구성되어 있습니다. GoScan은 Nmap의 포트 스캔 및 서비스 열거 기능을 활용하며, Nikto 스캐너와 같은 다른 포트 스캐너와 함께 사용됩니다.

GoScan은 네트워크 스캔의 주요 단계를 모두 수행할 수 있습니다.

  • 호스트 검색 (ARP + ping 스윕)
  • DNS 열거
  • 서비스 열거
  • 포트 스캐닝
  • 도메인 열거

도구 설치 방법

소스 코드 빌드

저장소 복제:

$ git clone https://github.com/marco-lancini/goscan.git

GoScan 디렉토리로 이동 후 빌드:

$ cd goscan/goscan
$ make setup
$ make build

다음 명령어를 실행하여 다양한 플랫폼을 위한 바이너리 생성:

$ make cross

Docker를 이용한 설치

$ git clone https://github.com/marco-lancini/goscan.git
$ cd goscan/
$ docker-compose up --build

바이너리 설치

가장 권장되는 설치 방법입니다. 바이너리 다운로드:

# Linux (64bit)
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_amd64.zip
$ unzip goscan_2.4_linux_amd64.zip

# Linux (32bit)
$ wget https://github.com/marco-lancini/goscan/releases/download/v2.4/goscan_2.4_linux_386.zip
$ unzip goscan_2.4_linux_386.zip

# PATH에 실행 파일 추가
$ chmod +x goscan
$ sudo mv ./goscan /usr/local/bin/goscan

GoScan 활용법

핑 스윕

GoScan은 자동 명령어 제안 및 탭 완성 기능을 제공하여 사용이 매우 편리합니다. 명령어를 입력하기 시작하면 관련 설명과 함께 제안이 나타납니다.

먼저 대상 시스템을 로드합니다. 여러 IP 주소 또는 특정 시스템의 단일 IP 주소를 로드할 수 있습니다.

[goscan] > load target SINGLE 10.0.1.24

[*] Imported target: 10.0.1.24

다음으로 핑 스윕을 실행합니다.

GoScan은 결과를 저장할 디렉토리를 먼저 설정합니다. 디렉토리는 변경할 수 있지만 기본 설정도 무난합니다. 사용된 Nmap 명령어와 소요 시간을 확인할 수 있습니다. 생성된 디렉토리를 살펴보면 다양한 형식의 출력 결과를 확인할 수 있습니다.

포트 스캔

GoScan의 포트 스캔 기능은 매우 강력합니다. 'portscan' 명령어를 입력하면 다양한 스캔 유형을 확인할 수 있습니다.

현재 GoScan에 저장된 모든 정보는 'show' 명령어를 통해 확인할 수 있습니다. 다음은 대상을 표시하는 예시입니다.

[goscan] > show targets

+------------+---------+
|  ADDRESS   |  STEP   |
+------------+---------+
| 10.0.1.24 | SWEEPED |
+------------+---------+

서비스 열거

GoScan을 사용하여 포트 스캔 외에도 대상에서 실행 중인 서비스를 열거할 수 있습니다. 'enumerate' 명령어를 입력하면 FINGER, FTP, HTTP, RDP, SMB 등 사용 가능한 모듈을 확인할 수 있습니다.

각 서비스에는 'DRY' (실행하지만 실제 공격을 피함), 'POLITE' (실행되지만 무차별 대입 공격을 피함), 'BRUTEFORCE' (실행 및 무차별 대입 공격 시도)와 같은 다양한 실행 옵션이 포함되어 있습니다.

특수 스캔

GoScan은 정찰에 유용한 몇 가지 특수 스캔 기능도 제공합니다. 사용 가능한 옵션을 확인하려면 프롬프트에서 'special'을 입력하세요.

[goscan] > special
                    eyewitness  웹사이트 및 개방된 VNC 서버의 스크린샷을 캡처
                    domain      열거된 데이터에서 도메인 정보 추출
                    dns         DNS 열거 수행

'eyewitness' 스캔은 웹 페이지와 VNC 서버의 스크린샷을 캡처하는 EyeWitness 기능을 포함합니다. 다만, EyeWitness가 정상적으로 작동하려면 시스템 PATH에 설치되어 있어야 합니다. 'domain' 스캔은 사용자, 호스트, 서버 등 도메인 정보를 열거하는 데 사용할 수 있습니다.

결론

GoScan은 네트워크와 서비스를 신속하게 검색하는 데 매우 유용한 도구이지만, 개선될 여지가 있는 부분도 있습니다. 예를 들어, SNMP, SMTP와 같은 더 많은 서비스 열거 모듈이 추가될 수 있습니다. 하지만 전반적으로 GoScan은 Nmap의 일부 열거 작업을 간소화하는 데 매우 효과적인 도구입니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.