Tôi có thể giấu trứng Phục sinh ở đâu cho sinh viên học về bảo mật Linux? [đóng cửa]


7

Tôi cảm thấy đây không phải là nơi tốt nhất để hỏi điều này (vì không có câu trả lời đúng duy nhất), nhưng tôi không thể nghĩ ra nơi nào tốt hơn. Nếu bạn có một đề xuất tốt hơn, bạn có thể vui lòng giới thiệu nó không và tôi có thể chuyển câu hỏi thay vì chỉ đóng nó lại không?

Tôi đang dạy một lớp học sinh trung học về bảo mật Linux nói chung. Ở mức độ cao, tôi muốn họ có thể sử dụng một máy chủ Linux nhất định và biết cách làm cứng nó trước các vấn đề bảo mật phổ biến - ví dụ: đóng tài khoản cũ, sử dụng thuật toán băm pw mạnh, đảm bảo không có quy trình lạ nào đang chạy hoặc chạy khi khởi động . Cấp độ kỹ năng của họ là một phạm vi rộng và tôi đang tìm cách để thúc đẩy họ sử dụng những gì chúng ta đã thảo luận (ví dụ: nhìn vào crontab; nhìn vào cấu hình người dùng và nhóm; nhìn vào các cổng mở).

Tôi đã được tặng 200 đô la để tổ chức một cuộc thi để khuyến khích họ và tôi nghĩ có lẽ tôi có thể mua một loạt thẻ quà tặng Amazon với số tiền tăng thêm 10 đô la. Ý tưởng sẽ là "ẩn" các mã đổi quà ở nhiều nơi trên máy chủ hộp cát của chúng tôi để bọn trẻ tìm thấy. Ví dụ: tôi có thể lưu trữ mật khẩu trong văn bản gốc và có một trong những tài khoản người dùng mẫu được gán mật khẩu của một trong các mã. Hoặc có lẽ tôi có thể thiết lập một công việc định kỳ để ghi nhật ký một trong các mã vào nhật ký hệ thống cứ sau 30 giây.

Những gì tôi đang tìm kiếm là các địa điểm / phương thức để ẩn các mã này để ai đó tìm cách bảo mật máy chủ sẽ vấp phải chúng.

Cảm ơn!


Bạn có thể muốn đặt trứng có giá trị cao hơn ở những nơi khó tìm hơn. Ví dụ: bạn có thể có một quả trứng chỉ có thể được tìm thấy với nhiều bước đầu mối mật mã, giả sử chạy một máy chủ web chạy trên cổng 80 đưa ra manh mối trong Tiêu đề HTTP để kết nối với máy chủ khác chạy trên cổng không chuẩn. Trang web sau đó đưa ra manh mối rằng nó dễ bị tấn công SQL. Cơ sở dữ liệu có thể chứa các manh mối mà mã cuối cùng có thể được tìm thấy bằng cách chạy stringtrên hệ nhị phân của một công cụ tiêu chuẩn giả mạo (ví dụ: chuỗi ls).
Lie Ryan

Câu trả lời:


6
  • Chạy một trình nclắng nghe tiếng vang của một trong các mã phiếu thưởng khi bạn telnethoặc ncvới nó. Nếu họ nhìn vào tập tin, họ cũng nhận được nó.

    #!/bin/sh
    nc -i 2 -l -p 3128 -c "echo amazoncode"
    

    Đặt tên cho nó một cái gì đó hữu ích, như squid

  • Tạo một số quy tắc tường lửa cục bộ với tên hoặc tham số của mã amazon.

    iptables -N amazoncode -P ACCEPT
    iptables -I INPUT -j amazoncode
    
  • Không một số thông tin sshđăng nhập với mã làm tên người dùng.

  • Chạy một cá thể mysql không được bảo mật hoặc được bảo mật kém với một số cơ sở dữ liệu chứa mã.

Bạn có thể có được một số kẻ khôn ngoan mà chỉ cần grep -r amazoncodekhông có một số phương pháp che giấu. Điều này cho thấy sự khéo léo nếu họ có thể tìm ra một biểu thức chính quy, nhưng không giúp ích nhiều cho bảo mật.


Cuộc gọi tốt trên grep. Không thể chê họ là xảo quyệt, nhưng không muốn họ ăn cắp toàn bộ cuộc thi. :-) Chúng tôi đang xem xét chỉ đăng các bảng băm của riêng chúng tôi về mã Amazon mà họ có thể đổi cho chúng tôi để lấy mã thực tế. Điều này cũng sẽ cho phép chúng tôi theo dõi những cái nào đã được phân phối tại bất kỳ thời điểm nào. Cảm ơn!
loneboat

5

Tôi không biết phương pháp này có phải là thứ có thể khiến học sinh thích thú không.

  1. Tôi tạo một tập tin dưới dạng amazoncode với mã gốc.

    cat amazoncode
    125622234
    
  2. Bây giờ, mã hóa tập tin bằng lệnh dưới đây.

    openssl aes-128-cbc -salt -in amazoncode -out amazoncode.aes -k somepassword
    
    • somepassword là mật khẩu mà bạn đặt cho tập tin.
  3. Bây giờ, loại bỏ các tập tin ban đầu.

    rm amazoncode
    
  4. Bây giờ, hướng dẫn các sinh viên rằng mã quà tặng amazon được mã hóa và nếu họ cần mã họ phải giải mã nó. Bạn cũng có thể chia sẻ lệnh gốc được sử dụng để mã hóa và mật khẩu cho sinh viên.

  5. Các sinh viên có thể tìm ra từ lệnh ban đầu rằng họ nên làm ngược lại để giải mã tập tin như dưới đây. Bạn cũng có thể nói với họ -dtùy chọn là để giải mã và tệp được mã hóa phải là đầu vào để tạo mã làm đầu ra. Tại đây, bạn cũng có thể nói với các sinh viên tìm ra kỹ thuật giải mã từ mantrang của openssl.

     openssl aes-128-cbc -d -salt -in amazoncode.aes -out amazoncode
    
  6. Bây giờ, tôi nhận được mã sau khi học một số kỹ thuật mã hóa / giải mã.

    cat amazoncode
    125622234
    

Trên thực tế, opensslmật khẩu có thể được đặt dưới dạng một tập tin ẩn trong thư mục chính của người dùng. Sau đó, các sinh viên cũng sẽ biết cách truy cập các tệp ẩn và lấy opensslmật khẩu từ đó và sau đó thử giải mã.


3

Một vài ý tưởng:

  • Tệp văn bản thuần túy trong thư mục chính của người dùng (" Amazon Code.txt" hoặc một cái gì đó rõ ràng khác), có thể đọc được trên thế giới
  • Tệp văn bản thuần trong thư mục chính của người dùng, không thể đọc được trên thế giới nhưng người dùng có mật khẩu dễ đoán
  • Quá trình với khóa bị xáo trộn trong mã nguồn, nhưng nó gọi một cái gì đó khác (giả sử system("sleep 864000 $key")) để lộ khóa trong psđầu ra
  • Tương tự, nhưng chạy từ crontab và chỉ cho con ngủ vài giây
  • Xử lý khóa được mã hóa trong mã nguồn, nhưng nó sẽ mở một ổ cắm TCP và in khóa cho bất kỳ ai kết nối

3

Có lẽ một tập lệnh 'hài hước' trong ~ / bin / hoặc / etc / bin /. Làm một cái gì đó như thay thế chức năng của LS, mèo hoặc CD để hành xử khác đi một chút và cho họ biết một chút rằng có gì đó không ổn, (điều đầu tiên bạn nghĩ đến là ls / cd có thay đổi liệt kê / di chuyển thư mục sai) và có mã được liệt kê trong một nhận xét của tệp sh.

Có lẽ chạy một quá trình tiêu thụ quá nhiều ram / mở các cổng lạ; có tên quy trình là một mã amazon.

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.