SMB 열거 및 게스트 액세스

LinuxBeginner
지금 연습하기

소개

서버 메시지 블록 (SMB) 열거 및 악용에 초점을 맞춘 실습 랩에 오신 것을 환영합니다. SMB 는 컴퓨터 네트워크에서 애플리케이션이 파일에 읽고 쓰거나 서버 프로그램의 서비스 요청을 할 수 있도록 하는 네트워크 파일 공유 프로토콜입니다. 광범위하게 사용되기 때문에 공격자들에게 흔한 표적이 됩니다.

이 랩에서는 모의 침투 테스터의 역할을 수행하게 됩니다. 먼저 기본적인 네트워크 정찰을 통해 대상이 온라인 상태인지 확인합니다. 다음으로 강력한 스캐닝 도구인 nmap을 사용하여 열린 SMB 서비스를 검색합니다. 마지막으로 smbclient를 사용하여 서비스를 조사하고, 익명 게스트 액세스를 허용하는 잘못된 구성을 찾아 공개 공유에서 숨겨진 플래그를 검색합니다.

완료 후에는 다음을 수행하는 방법을 이해하게 됩니다.

  • ping을 사용하여 네트워크 연결 확인
  • nmap을 사용하여 열린 SMB 포트 및 서비스 스캔
  • smbclient를 사용하여 SMB 공유 열거 및 연결
  • 게스트 액세스 잘못된 구성을 악용하여 파일 검색

시작해 봅시다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 85%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Ping 으로 대상 연결 확인

첫 번째 단계에서는 기본적인 정찰 작업을 수행합니다. 즉, 대상 시스템이 온라인 상태이며 공격자 시스템에서 접근 가능한지 확인합니다. ping 명령은 호스트에 ICMP 패킷을 보내 응답을 테스트하는 표준 유틸리티입니다.

환경에는 target이라는 별칭으로 지정된 대상 시스템이 포함되어 있습니다. 연결을 확인하려면 터미널에서 다음 명령을 실행하여 네 개의 패킷을 보냅니다.

ping -c 4 target

-c 4 플래그는 ping에 정확히 네 개의 패킷을 보내고 중지하도록 지시합니다. 성공적인 결과는 아래 출력과 유사하게 대상으로부터의 응답을 보여줍니다. IP 주소 및 시간 값은 다를 수 있습니다.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms

"4 received, 0% packet loss"라는 메시지를 보는 것은 시스템이 대상과 통신할 수 있음을 확인하며, 다음 단계인 열거를 위한 준비를 마쳤음을 의미합니다.

Nmap 으로 열린 포트 스캔

이 단계에서는 nmap (Network Mapper) 을 사용하여 대상의 열린 포트를 스캔하고 실행 중인 서비스를 식별합니다. 이는 잠재적인 공격 벡터를 찾는 데 중요한 단계입니다. SMB 서비스에 스캔을 집중할 것입니다.

서비스 버전 감지 (-sV) 스캔을 수행하고 target에서 SMB 프로토콜을 확인하는 스크립트 (--script) 를 실행하기 위해 다음 nmap 명령을 실행합니다.

nmap -sV --script smb-protocols target

잠시 후 nmap이 결과를 보고합니다. 출력은 다음과 유사하게 표시됩니다.

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE     VERSION
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2

Host script results:
| smb-protocols:
|   dialects:
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.40 seconds

출력은 139/tcp445/tcp 포트가 열려 있고 Samba 서비스가 실행 중임을 확인합니다. 포트 445 는 SMB 의 최신 포트입니다. 이 발견은 SMB 서비스의 취약점을 조사하라는 신호입니다.

SMB 를 통해 대상에 연결

이 단계에서는 smbclient 유틸리티를 사용하여 대상의 SMB 서비스와 상호 작용합니다. 목표는 암호 없이 연결할 수 있는지 확인하는 것입니다. 이 기법은 "null session" 또는 익명 로그인으로 알려져 있습니다.

먼저 대상에서 사용 가능한 공유 목록을 살펴보겠습니다. -L 플래그는 서비스를 나열하고, -N 플래그는 암호 없이 연결을 시도합니다.

다음 명령을 실행합니다.

smbclient -L //target -N

서버가 게스트 액세스를 허용하도록 잘못 구성된 경우 사용 가능한 공유 목록이 표시됩니다. 출력은 다음과 유사하게 표시됩니다.

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk
        IPC$            IPC       IPC Service (Samba Server)
SMB1 disabled -- no workgroup available

여기서 핵심적인 발견은 public 공유입니다. 이름에서 알 수 있듯이 누구나 액세스할 수 있을 수 있습니다. 다음 단계에서는 이 공유에 연결하여 내용을 탐색할 것입니다.

대상 시스템 탐색 및 플래그 찾기

이 마지막 단계에서는 발견한 public 공유에 연결하여 플래그를 검색합니다. 이는 공격자가 귀중한 데이터를 검색하는 사후 공격 (post-exploitation) 단계를 시뮬레이션합니다.

익명 액세스를 위해 -N 플래그를 다시 사용하여 smbclientpublic 공유에 직접 연결합니다.

smbclient //target/public -N

성공적으로 연결되면 smb: \>와 같은 smbclient 프롬프트로 진입합니다. 이제 원격 파일 공유를 탐색하고 있습니다.

Try "help" to get a list of possible commands.
smb: \>

ls 명령을 사용하여 공유의 내용을 나열합니다.

ls

flag.txt 파일이 나열된 것을 볼 수 있습니다.

smb: \> ls
  .                                   D        0  Fri Sep 19 10:29:39 2025
  ..                                  D        0  Fri Sep 19 10:29:39 2025
  flag.txt                            N       29  Fri Sep 19 10:29:39 2025

  40901312 blocks of size 1024. 22067688 blocks available

이제 get 명령을 사용하여 파일을 로컬 컴퓨터로 다운로드합니다.

get flag.txt

참고: smbclient 유틸리티에는 파일 내용을 직접 볼 수 있는 내장 cat 명령이 없습니다. 먼저 get을 사용하여 파일을 다운로드해야 합니다.

다운로드가 완료되면 exit를 입력하여 smbclient 세션을 종료합니다. 마지막으로 로컬 터미널에서 cat 명령을 사용하여 다운로드한 플래그의 내용을 표시합니다.

cat flag.txt

터미널에 플래그 값이 표시됩니다.

labex{smb_gu3st_acc3ss_fl4g}

축하합니다! SMB 서비스를 성공적으로 열거하고, 게스트 액세스 잘못된 구성을 악용했으며, 플래그를 검색했습니다. 플래그 값을 복사하여 랩을 완료하세요.

요약

이 랩에서는 잘못 구성된 SMB 서비스에 대한 기본적인 침투 테스트 워크플로우를 성공적으로 완료했습니다. 다음을 학습하고 실습했습니다.

  • ping을 사용하여 대상과의 네트워크 연결을 확인합니다.
  • nmap을 사용하여 열린 포트를 스캔하고 SMB 서비스를 식별합니다.
  • smbclient -L을 사용하여 익명으로 사용 가능한 네트워크 공유를 열거합니다.
  • null session 을 사용하여 smbclient로 열린 SMB 공유에 연결합니다.
  • lsget을 사용하여 원격 공유를 탐색하고 파일을 다운로드합니다.

이 연습은 일반적이고 중요한 취약점인 네트워크 공유에 대한 익명 또는 게스트 액세스를 허용하는 것을 보여줍니다. 이러한 잘못된 구성은 민감한 데이터 노출로 이어질 수 있습니다. 이러한 약점을 찾고 악용하는 방법을 이해함으로써 자체 시스템을 보호하는 데 더 잘 대비할 수 있습니다.