Advertisement

Responsive Advertisement

TryHackMe! Advent of Cyber 3 (2021) - Day 17

 Task 22  [Day 17] Cloud Elf Leaks

Trong một động thái nhằm chế nhạo Công ty Lễ hội Tốt nhất, Grinch Enterprises gửi một email đến toàn bộ công ty với tên và ngày sinh của mọi người. McSkidy trông khá căng thẳng với vụ vi phạm và nghĩ về những hậu quả pháp lý có thể xảy ra. Cô ấy nói chuyện với McInfra để cố gắng xác định nguồn gốc của vi phạm.



Shadow IT

Đôi khi các đơn vị kinh doanh xoay quanh công việc CNTT, mua sắm, pháp lý và bảo mật của công ty khi họ cần hoàn thành công việc một cách nhanh chóng. Điều này dẫn đến việc các nhóm bảo mật không biết họ cần bảo vệ những gì và các hệ thống không được xây dựng theo tiêu chuẩn CNTT hoặc Bảo mật.



Đám mây công cộng là một cách dễ dàng để các đơn vị kinh doanh tham gia vào CNTT bóng tối. Và đám mây công cộng dễ tiếp cận nhất để bắt đầu là AWS.



Sự khác biệt giữa hai hình ảnh này là gì? (Gợi ý: nhấp chuột phải và xem địa chỉ hình ảnh)



Một trong số đó là liên kết bên ngoài từ Nhóm Amazon S3.


Bắt đầu

Bạn sẽ cần khởi động AttackBox của mình để chạy các lệnh bằng AWS CLI cho bài học hôm nay. Mục tiêu của bạn sẽ là tài khoản AWS và một số tài nguyên do TryHackMe lưu trữ cho Advent of Cyber năm nay.


Xin lưu ý: Nếu bạn đang sử dụng gói miễn phí TryHackMe, hộp tấn công không có quyền truy cập internet và không thể truy cập AWS. Bạn sẽ cần cài đặt curl và AWS CLI trên máy của riêng mình để hoàn thành thử thách này. Hướng dẫn cài đặt AWS CLI tại đây:

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html


Mục tiêu học tập hôm nay

Hôm nay chúng ta sẽ trình bày những kiến thức cơ bản về AWS - một trong những nhà cung cấp đám mây công cộng hàng đầu và hai trong số các dịch vụ phổ biến nhất của AWS - Amazon S3 (Simple Storage Service)  và AWS IAM (Identity and Access Management). 


Chúng tôi sẽ hướng dẫn bạn cách bắt đầu với AWS CLI, sau đó mô tả cách khám phá các nhóm S3 công khai, xem nội dung bên trong. Chúng tôi cũng sẽ xem xét cách bạn có thể tận dụng Bí mật & Khóa truy cập IAM.


Amazon AWS

Amazon AWS là nhà cung cấp dịch vụ đám mây công cộng. Theo tiết lộ tài chính gần đây nhất của họ, AWS chiếm phần lớn lợi nhuận của Amazon. Hầu hết các doanh nghiệp lớn đều tận dụng AWS ở một số hình thức khác cho Dịch vụ tính toán, Dữ liệu lớn hoặc Học máy, Lưu trữ dữ liệu, Truyền video, IoT, v.v.

Đôi mắt của bạn không đánh lừa bạn. Bạn có thể truy cập vào rô bốt, chuỗi khối, vệ tinh và điện toán lượng tử từ AWS.


AWS divides its infrastructure into Regionschủ yếu là các cụm trung tâm dữ liệu độc lập. Trong mỗi khu vực là các khu vực khả dụng (AZ). Mỗi AZ trong một khu vực sử dụng các lưới điện riêng biệt và thường nằm ở các vùng đồng bằng ngập lụt khác nhau. Sự dự phòng này cho phép bạn thiết lập các kiến trúc có khả năng phục hồi cao để chống chọi với các sự kiện thời tiết hoặc địa chất quan trọng, hoặc thường xuyên hơn là các lỗi phần cứng hoặc cơ sở vật chất.


Bởi vì các khu vực độc lập - bạn sẽ nhận được các câu trả lời khác nhau cho các câu hỏi tùy thuộc vào khu vực bạn đang truy vấn. Bạn có thể chỉ định một khu vực với tùy chọn --region cho AWS CLI.


Bạn có thể truy cập AWS thông qua Bảng điều khiển AWS, AWS CLI, API AWS hoặc các SDK được liên kết cho các ngôn ngữ lập trình yêu thích của bạn.


Amazon S3

Amazon S3 (Dịch vụ lưu trữ đơn giản) là dịch vụ lưu trữ đối tượng được lưu trữ của họ. Các đối tượng được lưu trữ trong Thùng. Để đơn giản hóa khái niệm lưu trữ đối tượng, Nhóm là kho lưu trữ khóa-giá trị, với Khóa đối tượng là tên đường dẫn đầy đủ cho tệp và giá trị là nội dung của tệp. S3 là một dịch vụ được lưu trữ công khai - nó không tồn tại sau tường lửa của công ty, giúp thuận tiện cho việc lưu trữ nội dung công cộng. AWS có toàn bộ tính năng xung quanh hosting a public website in S3.


Nhóm AWS sử dụng không gian tên chung. Chỉ một khách hàng AWS có thể tạo nhóm có tên bestfestivalcompany-images


Amazon S3 được sử dụng cho nhiều mục đích hơn là lưu trữ công cộng. Nó có nhiều công dụng để lưu trữ dữ liệu, xử lý video, lưu giữ hồ sơ theo quy định, v.v. Thách thức đối với Best Festival Company, giống như bất kỳ doanh nghiệp nào sử dụng S3, là đôi khi dữ liệu bị trộn lẫn và dữ liệu không nên công khai sẽ được công khai.


Khám phá tên nhóm

Có nhiều cách để khám phá tên của Xô. Một trong những cách dễ nhất là khi một công ty nhúng nội dung được lưu trữ trong S3 trên trang web của họ. Hình ảnh, PDF, v.v., tất cả đều có thể được lưu trữ với giá rẻ trong S3 và được liên kết từ một trang khác. Các liên kết này sẽ giống như sau:

http://BUCKETNAME.s3.amazonaws.com/FILENAME.ext 

hoặc

http://s3.amazonaws.com/BUCKETNAME/FILENAME.ext

Trong cả hai trường hợp này, có thể dễ dàng xác định tên của thùng S3. Bây giờ, chúng ta có thể làm gì với thông tin đó?

Liệt kê nội dung của nhóm

Amazon S3 là một trong những dịch vụ lâu đời nhất của AWS. Nó quá cũ nên có hai phương pháp kiểm soát truy cập khác nhau: Bucket Policies và S3 ACLs. Điều này dẫn đến sự nhầm lẫn lớn cho các nhà phát triển, những người phải quản lý các chính sách, ACL và sự khác biệt giữa Bất kỳ người dùng nào và người dùng được xác thực


Nhiều nhóm chứa thông tin công khai cho phép bạn liệt kê nội dung của nhóm. Trong AttackBox của bạn, hãy thử chạy lệnh: 

curl http://irs-form-990.s3.amazonaws.com/

Một đống XML khổng lồ đó là danh sách tất cả các hồ sơ IRS Biểu mẫu 990 cho các công ty được Miễn thuế của Hoa Kỳ. AWS cung cấp dữ liệu này dưới dạng tập dữ liệu công khai.


Nếu phân tích cú pháp XML không chứa ngắt dòng không phải là tách trà của bạn, AWS CLI cũng cung cấp khả năng liệt kê nội dung của một thùng (Bạn có thể muốn nhấn Ctrl-C sau một vài giây, có rất nhiều Các tổ chức phi lợi nhuận của Hoa Kỳ).

aws s3 ls s3://irs-form-990/ --no-sign-request


Lựa chọn --no-sign-request cho phép bạn yêu cầu dữ liệu từ S3 mà không cần phải là Khách hàng AWS.

Tải xuống các đối tượng

Tải xuống một đối tượng từ S3 cũng dễ dàng. Bạn có thể sử dụng curl:

curl http://irs-form-990.s3.amazonaws.com/201101319349101615_public.xml

hoặc AWS CLI:

aws s3 cp s3://irs-form-990/201101319349101615_public.xml . --no-sign-request

Lưu ý hai URI khác nhau cho một đối tượng. Đối tượng có thể được giải quyết bằng http: // hoặc qua s3: //


Các cấp độ khác nhau của Xác thực Amazon S3

Trong Amazon S3, quyền Đối tượng khác với quyền Nhóm. Quyền của nhóm cho phép bạn liệt kê các đối tượng trong một nhóm, trong khi quyền của đối tượng sẽ cho phép bạn tải xuống đối tượng. Trong trường hợp của thùng irs-form-990, cả thùng và tất cả các đối tượng trong thùng đều có thể đọc được công khai. Nhưng đó không phải là trường hợp. Các đối tượng có thể được đọc trong khi nhóm thì không hoặc có thể đọc được công khai, nhưng Đối tượng thì không.


Lưu ý: bạn cũng có thể có quyền ghi công khai vào Nhóm. Đây thường là một ý tưởng tồi và đã là vectơ của một số sự cố khai thác tiền điện tử


Ngoài ra còn có hai cấp độ thùng công cộng và đối tượng. Cấp độ đầu tiên là "Bất kỳ ai." Đây là những gì bạn đã trải nghiệm với thùng irs-form-990. Bạn chỉ có thể nhấn URL đó từ trình duyệt cục bộ của mình. Cấp thứ hai cũng công khai - và công khai cho Bất kỳ Khách hàng AWS nào (AWS gọi một cách ngu ngốc là Người dùng xác thực trong nhiều năm). Bất kỳ ai có thẻ tín dụng đều có thể tạo tài khoản AWS; do đó, Người dùng được xác thực không cung cấp nhiều bảo vệ dữ liệu.



ACL NameBUCKETOBJECT
Anyone

Anonymously list contents of

the bucket via curl or with

aws s3 ls --no-sign-request

Ability to download via curl or

aws s3 cp --no-sign-request

AuthenticatedUsers

Can only list the bucket with

active AWS keys via

aws s3 ls  

You can only download the object with

active AWS Keys via

aws s3 cp

AWS IAM

Ngoại trừ một số dịch vụ cũ hơn như Amazon S3, tất cả các yêu cầu đối với dịch vụ AWS đều phải được ký. Điều này thường được thực hiện ở hậu trường bởi AWS CLI hoặc các Bộ phát triển phần mềm khác nhau mà AWS cung cấp. Quá trình ký sử dụng Khóa truy cập IAM. Các khóa truy cập này là một trong những cách chính mà tài khoản AWS bị xâm phạm.


IAM Access Keys 

IAM Access Keys bao gồm ID khóa truy cập và Khóa truy cập bí mật.. 


ID Khóa truy cập luôn bắt đầu bằng các chữ cái AKIA và dài 20 ký tự. Chúng hoạt động như một tên người dùng cho AWS API. Khóa truy cập bí mật dài 40 ký tự. AWS tạo cả hai chuỗi; tuy nhiên, AWS không cung cấp Khóa truy cập bí mật để tải xuống sau lần tạo ban đầu.


Có một loại thông tin xác thực khác, thông tin xác thực ngắn hạn, trong đó ID khóa truy cập bắt đầu bằng các chữ cái ASIA và bao gồm một chuỗi bổ sung được gọi là Mã phiên.


Tiến hành trinh sát với IAM

Khi bạn tìm thấy bằng chứng xác thực cho AWS, bạn có thể thêm chúng vào  Hồ sơ AWS của bạn trong AWS CLI. Đối với điều này, bạn sử dụng lệnh:

aws configure --profile PROFILENAME


Lệnh này sẽ thêm các mục nhập vào các tệp .aws /config.aws /credentials trong thư mục chính của người dùng của bạn.


Khi bạn đã định cấu hình cấu hình mới với các khóa truy cập mới, bạn có thể thực thi bất kỳ lệnh nào bằng cách sử dụng bộ thông tin đăng nhập khác này. Ví dụ: để liệt kê tất cả Nhóm S3 trong tài khoản AWS mà bạn đã tìm thấy bằng chứng xác thực, hãy thử:

aws s3 ls --profile PROFILENAME


Mẹo: Không bao giờ lưu trữ một bộ khóa truy cập trong cấu hình [mặc định]. Làm như vậy buộc bạn phải luôn chỉ định một hồ sơ và không bao giờ vô tình chạy lệnh chống lại tài khoản mà bạn không có ý định.


Một số kỹ thuật trinh sát AWS phổ biến khác là:

  1. Tìm ID tài khoản thuộc một khóa truy cập:

    aws sts get-access-key-info --access-key-id AKIAEXAMPLE 

  2. Xác định Tên người dùng mà khóa truy cập bạn đang sử dụng thuộc về

    aws sts get-caller-identity --profile PROFILENAME

  3. Liệt kê tất cả các phiên bản EC2 đang chạy trong một tài khoản

    aws ec2 describe-instances --output text --profile PROFILENAME

  4. Liệt kê tất cả các phiên bản EC2 đang chạy trong một tài khoản ở một khu vực khác
    aws ec2 describe-instances --output text --region us-east-1 --profile PROFILENAME

AWS ARNs

Amazon ARN là cách họ tạo mã nhận dạng duy nhất cho tất cả các tài nguyên trong Đám mây AWS. Nó bao gồm nhiều chuỗi được phân tách bằng dấu hai chấm.


Định dạng là:

arn:aws:<service>:<region>:<account_id>:<resource_type>/<resource_name>

    Thử thách

    Bằng cách nào đó, Grinch đã nắm được tất cả tên và địa chỉ email của Yêu tinh. Lam thê nao ma cai nao đa co thể xảy ra? Với phạm vi vi phạm, McSkidy tin rằng ai đó trong bộ phận nhân sự phải có liên quan. Bạn biết rằng HR gần đây đã khởi chạy một trang cổng thông tin mới sử dụng WordPress. Bạn cũng biết rằng HR không yêu cầu bất kỳ cơ sở hạ tầng nào từ CNTT để triển khai trang cổng thông tin này. Cổng thông tin đó được lưu trữ ở đâu?


    Đây là hình ảnh HR gửi ra thông báo về địa điểm mới:




    Dựa vào đó, bạn có thể tìm ra cách Grinch có quyền truy cập vào cơ sở dữ liệu nhân viên không?


    Answer the questions below

    What is the name of the S3 Bucket used to host the HR Website announcement?


    What is the message left in the flag.txt object from that bucket?


    What other file in that bucket looks interesting to you?


    What is the AWS Access Key ID in that file?


    What is the AWS Account ID that access-key works for?


    What is the Username for that access-key?


    There is an EC2 Instance in this account. Under the TAGs, what is the Name of the instance?


    What is the database password stored in Secrets Manager?



    Post a Comment

    0 Comments