Đó là đêm trước lễ Giáng sinh và The Best Festival Company cuối cùng cũng có thể nghỉ ngơi. Tất cả đồ chơi đã được sản xuất và công ty đã phục hồi sau cuộc tấn công. Mọi thứ giờ đã nằm trong tay ông già Noel, để các chú lùn phải làm nhiều việc hơn là cầu chúc cho ông một hành trình an toàn phía trước. Elf McEager ngồi ở nhà ga nhìn lơ đãng nhìn tuyết nhẹ đã bắt đầu rơi. Ngay khi anh vừa chìm vào giấc ngủ, Elf McEager đã bị giật mình chú ý khi một bưu kiện nhỏ xuất hiện ngay rìa tầm nhìn của anh.
Món quà được bọc trong một lớp nhung màu xanh đậm, có vẻ như lấp lánh trong và ngoài ánh đèn, không khác gì một dấu nhắc đầu cuối nhấp nháy. Một cách cẩn thận, Elf McEager với lấy dải ruy băng màu xanh lam, từ từ tháo nó ra để không làm hỏng nó. Lớp nhung từ từ rơi ra, để lộ ra một chiếc máy tính NUC nhỏ với một bức thư bên trên. Mở thư, Elf McEager đọc to:
"Elf McEager - nỗ lực vô hạn của bạn để cứu Giáng sinh năm nay đã không được chú ý. Tuy nhiên, tôi muốn thưởng cho bạn một món quà đặc biệt. Elf McSkidy và tôi đã thấy kỹ năng của bạn tiến bộ và chúng tôi cảm thấy nó chỉ phù hợp để tặng bạn một món quà sau một thử thách cuối cùng. Bên trong gói này, bạn cũng sẽ tìm thấy một máy tính. Hãy cắm cái này vào mạng và xâm nhập vào nó. Chúc may mắn và Giáng sinh vui vẻ - Ông già Noel "
Không chậm trễ, Elf McEager đã kết nối NUC một cách thích hợp và theo dõi nó hoạt động mạnh mẽ. Một màn hình nhỏ gần nút nguồn nhấp nháy và sau đó hiển thị địa chỉ IP được gán cho thiết bị. Bên cạnh IP, một biểu tượng nhỏ xuất hiện. McEager lặng lẽ tự hỏi điều đó có nghĩa là gì khi anh đăng nhập vào thiết bị đầu cuối của mình, sẵn sàng bắt đầu thử thách cuối cùng của mình.
Nhiệm vụ hôm nay là sự tích lũy các kỹ năng bạn đã đạt được trong suốt Advent of Cyber 2. Một hồ sơ đã được cung cấp về các chủ đề khác nhau bên dưới cũng như sẽ hỗ trợ bạn trong cuộc hành trình. Đừng ngại yêu cầu sự giúp đỡ trong advent-of-cyber-2
Kênh Discord khi cần thiết, hãy nhớ cố gắng hết sức!
Bộ lọc phía máy client( sử dụng burpsuit):
Quay lại Ngày 2, chúng ta đã xem xét cách bỏ qua bộ lọc phía máy chủ xung quanh chức năng tải tệp lên. Bây giờ là lúc để xem cách bỏ qua bộ lọc phía máy khách.
Theo nhiều cách, các bộ lọc phía máy khách dễ dàng bỏ qua hơn các bộ lọc tương đương phía máy chủ khi chúng thực thi trên máy tính đang tấn công của bạn - đặt chúng dưới sự kiểm soát của kẻ tấn công. Vì lý do này, bộ lọc phía máy khách không bao giờ được sử dụng làm biện pháp bảo mật duy nhất cho chức năng tải tệp lên trên trang web.
Vì vậy, chúng ta sẽ bỏ qua bộ lọc phía máy khách như thế nào? Cách dễ nhất là sử dụng BurpSuite để chặn tệp mã JavaScript chứa bộ lọc trước khi nó thực sự truy cập trình duyệt của chúng tôi, sau đó thả tệp hoàn toàn hoặc xóa bộ lọc khỏi mã.
Mở một dự án BurpSuite mới, điều đầu tiên chúng ta phải làm là điều hướng đến tab "Proxy", sau đó là tiểu mục "Options":
Theo mặc định, BurpSuite không chặn các tệp JavaScript khi proxy lưu lượng truy cập, vì vậy chúng tôi cần bật tính năng này trước khi có thể bắt đầu xóa bất kỳ bộ lọc phía máy khách nào. Để thực hiện việc này, chúng tôi điều hướng đến phần "Chặn yêu cầu của khách hàng", nhấp vào dòng trên cùng (được đánh dấu bên dưới), sau đó nhấp vào chỉnh sửa:
Điều này sẽ cung cấp cho tôi tùy chọn để chỉnh sửa điều kiện. Tìm và loại bỏ |^js$
trong điều kiện, sau đó lưu bộ lọc:
Tiếp theo, đi tới phần "Intercept Server Responses" và chọn "Intercept responses based on the following rules":
Điều này bây giờ sẽ chặn tất cả các phản hồi từ máy chủ, bao gồm cả các tệp JavaScript!
Bây giờ bạn có thể tải lại trang tải lên bằng cách nhấn Ctrl + F5 (Lưu ý rằng điều này phải được thực hiện với làm mới cứng để tránh phản hồi 304 Not Modified
), ủy quyền thông qua BurpSuite. Theo dõi các câu trả lời khi họ quay lại - nếu một câu trả lời được gọi filter.js
,nó có lẽ sẽ là một ý tưởng tốt để bỏ nó đi!
Nếu bạn sử dụng Mac, trình tự tương đương để làm mới cứng là Tùy chọn -> Xóa lịch sử, sau đó là Control + R.
Để biết thêm thông tin về chủ đề này, hãy xem Upload Vulnerabilities room!
Shell Upgrading and Stabilization:
Bạn sẽ quen thuộc với các shell đảo ngược từ các nhiệm vụ hoặc phòng trước đó; tuy nhiên, các lớp vỏ mà bạn đã được dạy cho đến nay đã có một số sai sót chết người. Ví dụ, nhấn Ctrl + C
để ngắt tiến trình shell . Bạn không thể sử dụng các phím mũi tên để xem lịch sử shell của mình và tính năng tự động hoàn thành TAB không hoạt động. Ổn định shell là một kỹ năng quan trọng cần học vì nó khắc phục tất cả những vấn đề này, mang lại một môi trường làm việc tốt hơn nhiều.
Làm việc bên trong kết nối đảo ngược:
- Đầu tiên sử dụng
python3 -c 'import pty;pty.spawn("/bin/bash")'
, sử dụng Python để tạo ra một bash shell có tính năng tốt hơn. Tại thời điểm này, shell của chúng ta sẽ trông đẹp hơn một chút, nhưng chúng ta vẫn không thể sử dụng tính năng tự động hoàn thành tab hoặc các phím mũi tên và Ctrl + C sẽ vẫn giết shell. - Bước 2:
export TERM=xterm
– điều này sẽ cung cấp cho chúng tôi quyền truy cập vào các lệnh đặc thù chẳng hạn nhưclear
. - Cuối cùng (và quan trọng nhất), chúng tôi sẽ tạo nền cho shell bằng cách sử dụng
Ctrl + Z
. Quay lại thiết bị đầu cuối của chúng tôi mà chúng tôi sử dụngstty raw -echo; fg
. Điều này thực hiện hai điều: đầu tiên, nó tắt tiếng vọng đầu cuối của riêng chúng tôi (cho phép chúng tôi truy cập vào tự động hoàn thành tab, các phím mũi tên vàCtrl + C
dừng tiến trình). Sau đó, nó tạo nền trước cho shell, do đó hoàn thành quá trình.
Toàn bộ kỹ thuật có thể được xem ở đây:
Lưu ý rằng nếu trình bao bị chết, bất kỳ đầu vào nào trong thiết bị đầu cuối của chính bạn sẽ không hiển thị (do đã tắt tiếng vọng đầu cuối). Để khắc phục điều này, hãy nhập reset và nhấn enter.
See the Intro to Shells room for more information on this topic!
Your New Best Friend - The MySQL Client:
Cơ sở dữ liệu được hầu như mọi ứng dụng web trên hành tinh này sử dụng ở một mức độ nào đó hay cách khác. Vì lý do này, điều quan trọng là chúng ta phải biết cách truy cập chúng theo cách thủ công. Một trong những máy chủ cơ sở dữ liệu phổ biến nhất hiện có là MySQL (hoặc fork miễn phí của nó: MariaDB, sử dụng cú pháp giống hệt nhau và được truy cập theo cùng một cách). Điều này có thể được truy cập theo cách thủ công bằng máy khách mysql. Mặc dù vậy, có một điểm khó hiểu - để lộ cơ sở dữ liệu công khai là một ý tưởng rất tồi, vì vậy, mặc dù có thể kết nối với cơ sở dữ liệu từ xa từ máy tấn công của bạn bằng ứng dụng khách MySQL, chúng tôi sẽ tập trung vào việc kết nối với cơ sở dữ liệu đang chạy cục bộ.
Để truy cập cơ sở dữ liệu bằng máy khách MySQL, chúng tôi sẽ sử dụng cú pháp sau:
mysql -uUSERNAME -p
Điều này yêu cầu máy khách kết nối với cơ sở dữ liệu cục bộ bằng tên người dùng USERNAME (Lưu ý rằng thiếu khoảng cách giữa switch -u và giá trị!), Sử dụng mật khẩu mà nó sẽ yêu cầu chúng tôi nhập khi chúng tôi chạy lệnh.
Sau khi nhập mật khẩu, chúng tôi sẽ gặp phải một lời nhắc trông giống như sau:
Lưu ý rằng điều này sẽ trông hơi khác tùy thuộc vào việc đó là máy chủ MySQL hay máy chủ MariaDB.
Điều tiếp theo chúng ta nên làm là sử dụng show databases; lệnh để xem các cơ sở dữ liệu có sẵn:
Trong ảnh chụp màn hình này, ba cơ sở dữ liệu hàng đầu được mặc định cho cài đặt MySQL / MariaDB. Bất kỳ người khác không.
Hãy xem cơ sở dữ liệu top_secret.
Để nhập cơ sở dữ liệu, chúng tôi sử dụng use DATABASE; , trong đó DATABASE là tên của DB đích. Sau đó, chúng tôi có thể hiển thị tất cả các bảng trong cơ sở dữ liệu với show tables;
:
Trong ảnh chụp màn hình này chỉ có một bảng: người dùng.
Hãy bỏ bảng người dùng. Để làm điều này, chúng tôi sử dụng lệnh SQL: SELECT * FROM users;
.Bây giờ chúng tôi có một tên người dùng và một mật khẩu mà chúng tôi có thể xem xét việc bẻ khóa!
Online Password Cracking:
Trong thời đại bẻ khóa mật khẩu hiện đại, những mật khẩu yếu thường có thể bị bẻ khóa mà không cần bẻ khóa gì cả! Nhiều trang web hiện đang tồn tại với mục tiêu duy nhất là lưu trữ các bảng cầu vồng - bảng chứa các mật khẩu đã bị bẻ khóa trước đây. Điều này cho phép chúng tôi thường xuyên chỉ cần nhập mã băm mật khẩu và gần như ngay lập tức nhận được mật khẩu đã bẻ khóa. Một số trang web khác nhau mà tôi tự thấy (Tối) thường sử dụng, đặc biệt là trong trường hợp CTF, bao gồm những điều sau:
- https://hashes.com/en/decrypt/hash
The landing page of crackstation.net
Privilege Escalation with LXD:
Trong số các phương pháp báo cáo đặc quyền gây tò mò hơn trên Linux, lxd chắc chắn là một phương pháp đáng suy nghĩ, ít nhất phải nói rằng. Kỹ thuật này liên quan đến việc tận dụng một lỗ hổng trong lxd, một chương trình mà chúng ta có thể sử dụng để quay các vùng chứa tương tự như Docker. Việc khai thác này đặc biệt liên quan đến việc lạm dụng các điểm gắn kết để gắn các khối lượng từ máy nạn nhân của chúng tôi (máy mà chúng tôi đang tấn công) trong một vùng chứa mà chúng tôi không thể truy cập / đọc. Tuy nhiên, chúng tôi có quyền root trên vùng chứa lxd - do đó cho phép chúng tôi bỏ qua kiểm tra quyền đọc và nâng cao đặc quyền của chúng tôi. Chúng ta có thể thực hiện phương pháp privesc này qua các bước sau:
1. Đầu tiên, chúng ta cần kiểm tra và xem liệu người dùng của chúng ta có phải là thành viên của nhóm lxd hay không. Chúng ta có thể thực hiện việc này bằng lệnh: id
Trong trường hợp này, chúng ta có thể thấy rằng người dùng là thành viên của nhóm lxd. Lưu ý, hình ảnh từ phần này là từ nguồn được liên kết ở cuối liên quan đến thông tin bổ sung.
2. Thông thường, privesc này có thể là một quá trình kéo dài một chút, tuy nhiên, trong trường hợp của chúng tôi, chúng tôi có thể bỏ qua một phần của quá trình. Để thực hiện đúng cách, chúng ta phải thực hiện các bước sau:
- Các bước thực hiện trên máy tấn công:
- - Tải xuống build-alpine trên máy cục bộ của bạn thông qua kho lưu trữ git
- - Thực thi tập lệnh "build -alpine" sẽ xây dựng hình ảnh Alpine mới nhất dưới dạng tệp nén. Điều này phải được thực thi bởi người dùng root.
- - Chuyển tệp tar mới được tạo này sang máy nạn nhân
- Các bước thực hiện trên máy nạn nhân:
- - Tải xuống hình ảnh núi cao
- - Nhập hình ảnh cho lxd
- - Khởi tạo hình ảnh bên trong một vùng chứa mới <- Đáng kiểm tra các hình ảnh đã được nhập / có sẵn vì bạn có thể bỏ qua bước này
- - Gắn vùng chứa bên trong thư mục / root
3. Vì lợi ích của ví dụ này, chúng tôi sẽ bỏ qua phần gần cuối (xem phần được in đậm ở trên) bằng cách kiểm tra những hình ảnh nào có sẵn trên máy được đề cập. Chúng ta có thể làm điều đó thông qua lệnh sau: lxc image list
Kiểm tra những hình ảnh nào có sẵn thông qua lệnh: lxc image list
4. Bây giờ cho một chút vui vẻ. Tiếp theo, chúng ta sẽ chạy một loạt lệnh khởi tạo, cấu hình đĩa và khởi động vùng chứa. Tên hình ảnh cần khớp với hình ảnh đã nhập mà chúng tôi sẽ sử dụng. Trong trường hợp của hình trên, đó sẽ là bí danh myimage trước đây đã được gán cho nó. Tên vùng chứa và tên thiết bị là bất cứ điều gì trái tim bạn mong muốn. Trong ví dụ của tôi, tôi đang đặt tên vùng chứa của mình là Strongbad và thiết bị trogdor.
lxc init IMAGENAME CONTAINERNAME -c security.privileged=true
Ex: lxc init myimage strongbad -c security.privileged=true
lxc config device add CONTAINERNAME DEVICENAME disk source=/ path=/mnt/root recursive=true
Ex: lxc config device add strongbad trogdor disk source=/ path=/mnt/root recursive=true
lxc start CONTAINERNAME
Ex: lxc start strongbad
lxc exec CONTAINERNAME /bin/sh
Ex: lxc exec strongbad /bin/sh
Sau đó, tôi sẽ chỉ chạy thêm một số lệnh để gắn kết bộ nhớ của chúng tôi và xác minh rằng chúng tôi đã chuyển đến root:
id
cd /mnt/root/root
Và đó là nó! Nếu đó là một chút suy nghĩ, tôi thực sự khuyên bạn nên xem tài nguyên được cung cấp bên dưới.
Thông tin bổ sung về kỹ thuật privesc này có thể được tìm thấy ở đây:Link
Credits: This room was created as a collaboration between Dark, Muiri, Varg, and Spooky
Hãy nhớ rằng máy có thể mất đến năm phút để khởi động hoàn toàn!
What is the name of the hidden directory where file uploads are saved?
Bypass the filters. Upload and execute a reverse shell.
Vượt qua bộ lọc upload, kiểm tra mã nguồn thấy định dạng tệp upload
Có tệp filter.js lọc nội dung tệp upload sử dụng burpsuit bỏ qua bộ lọc này bằng hướng dẫn ở trên và sẽ thành công upload shell .
Một lỗi rất nguy hiểm nữa là chỉ kiểm tra định dạng đuôi đầu tiên sau dấu chấm nếu
bypass qua tệp filter.js
Upgrade and stabilize your shell.
Use su to login to the newly discovered user by exploiting password reuse.
Check the user's groups. Which group can be leveraged to escalate privileges?
0 Comments