본문으로 바로가기

[TryHackMe] Ninja Skills

category Pentest/TryHackMe 2023. 3. 18. 19:07
728x90
반응형

Let's have some fun with Linux. Deploy the machine and get started.
This machine may take up to 3 minutes to configure.
(If you prefer to SSH into the machine, use the credentials new-user as the username and password)
Answer the questions about the following files:
8V2L
bny0
c4ZX
D8B3
FHl1
oiMO
PFbD
rmfX
SRSq
uqyw
v2Vb
X1Uy
The aim is to answer the questions as efficiently as possible.

오랜만에 TryHackMe에 접속해서 문제 하나를 풀어봤다.  리눅스 명령어를 잘 이용하면 풀리는 문제지만 주어진 환경이 ssh이다 보니 python에서 ssh에 원격으로 명령어를 날릴 수 있는 paramiko를 이용해 풀어봤다.

Question 1

Which of the above files are owned by the best-group group(enter the answer separated by spaces in alphabetical order)

위에 나열된 목록 중에서 “best-group”에 속한 file을 찾는 문제이다. 간단히 'ls -l' 명령어를 이용해 풀 수 있고 아래 스크립트 돌려서 best-group이라고 속한 놈들을 찾아서 제출해 주자

import paramiko

host = "10.10.132.207"

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
ssh.connect("10.10.132.207", username="new-user", password="new-user")

files = [
    "8V2L", "bny0", "c4ZX", "D8B3", "FHl1", "oiMO",
    "PFbD", "rmfX", "SRSq", "uqyw", "v2Vb", "X1Uy"
]
binds = []

for file_name in files:
    command = "find / -name %s -exec ls -l {} \; 2>/dev/null" % file_name

    stdin, stdout, stderr = ssh.exec_command(command)

    lines = stdout.read().decode()
    if lines and 'best-group' in lines:
        print(lines)

    del stdin, stdout, stderr

ssh.close()

 

Question 2

Which of these files contain an IP address?

IP 주소를 포함한 파일이 어떤 건지 물어본다. 위에서 사용한 스크립트를 수정하자.

for file_name in files:
    command = "find / -name %s -exec ls -l {} \; 2>/dev/null" % file_name

    stdin, stdout, stderr = ssh.exec_command(command)

    line = stdout.read().decode()
    lines = line.split()
    if lines:
        file_path = lines[-1]
        stdin, stdout, stderr = ssh.exec_command("cat %s" % file_path)

        print(file_path)

        line = stdout.read().decode()
        print(line)

        print("=====")

    del stdin, stdout, stderr

ssh.close()

이후 나온 결과에서 dot(.)을 검색해서 나온 파일의 위치(file_path)를 제출한다.


Question 3

Which file has the SHA1 hash of 9d54da7584015647ba052173b84d45e8007eba94

‘9d54da7584015647ba052173b84d45e8007eba94’ 라는 hash 값을 가진 파일은 어떤 것인지 물어보는 문제이다. sha1sum 명령어를 이용해서 다음과 같이 스크립트를 조정해 주자.

...

for file_name in files:
    command = "find / -name %s -exec ls -l {} \; 2>/dev/null" % file_name

    stdin, stdout, stderr = ssh.exec_command(command)

    line = stdout.read().decode()
    lines = line.split()
    if lines:
        file_path = lines[-1]
        command = "sha1sum %s" % file_path
        stdin, stdout, stderr = ssh.exec_command(command)

        result = stdout.read().decode()

        if '9d54da7584015647ba052173b84d45e8007eba94' in result:
            print(line)
            print("=====")

    del stdin, stdout, stderr

ssh.close()


Question 4

Which file contains 230 lines?

어떤 파일이 230라인인지 물어보는 문제이다. wc 명령어를 이용하자.

...

for file_name in files:
    command = "find / -name %s -exec ls -l {} \; 2>/dev/null" % file_name

    stdin, stdout, stderr = ssh.exec_command(command)

    line = stdout.read().decode()
    lines = line.split()

    if lines:
        file_path = lines[-1]
        command = "wc -l " + file_path
        stdin, stdout, stderr = ssh.exec_command(command)

        result = stdout.read().decode()
        print(result)
        print("----")

    del stdin, stdout, stderr

ssh.close()

 

그런데  bny0파일에 대한 결괏값이 안 나온다. 혹시 이게 답인가 싶어 제출했더니 답이었다.

Question 5

Which file's owner has an ID of 502?

어떤 파일이 502이라는 사용자의 파일인지 확인하는 문제이다. /etc/passwd를 뒤져서 502 uid가 누구인지 확인한 다음 주어진 file에서 해당 소유자의 파일을 찾아주자.

for file_name in files:
    command = "find / -name %s -exec ls -l {} \; 2>/dev/null" % file_name

    stdin, stdout, stderr = ssh.exec_command(command)

    line = stdout.read().decode()
    lines = line.split()
    print(lines)

    del stdin, stdout, stderr

ssh.close()

 

Question 6

Which file is executable by everyone?

어떤 파일이 권한 상관없이 실행할 수 있는 파일인지 묻는 문제이다. Q5에서 사용한 스크립트를 그대로 사용해서 권한을 확인하고 제출해 주자.

728x90
반응형

'Pentest > TryHackMe' 카테고리의 다른 글

[TryHackMe] Easy Peasy  (0) 2023.07.23
[TryHackMe] OverPass2  (0) 2023.07.15
[TryHackMe] IDE  (0) 2021.10.17
JPGChat : ServerSide Injection  (0) 2021.03.11
[Try Hack Me] : Chill Hack ( part.2 Root)  (0) 2020.12.12