it-swarm-vi.com

Làm thế nào để học kiểm tra thâm nhập tại nhà?

Tôi quan tâm đến việc học hack đạo đức hoặc kiểm tra thâm nhập để hướng tới sự nghiệp theo hướng đó.

Tôi có kiến ​​thức vững chắc về linux và unix, lý thuyết và thực hành máy tính cơ bản và kiến ​​thức lập trình cơ bản (mảng, phương pháp, vòng lặp).

Tôi đã xem xét gruyere và webgoat, tuy nhiên tôi thấy những thứ này quá cao cấp đối với tôi. Họ yêu cầu giải quyết vấn đề mà không giải thích đầy đủ vấn đề, tại sao nó có thể được sử dụng để tấn công và đưa ra ví dụ.

Có bất kỳ khóa học hoặc chương trình tương tác nào, miễn phí, mà tôi có thể làm ở nhà mà tôi có thể tự dạy mình thông tin này không?

Phần thưởng sẽ mang lại những bài học lập trình hữu ích trong lĩnh vực này, ví dụ như dạy JavaScript để thể hiện các cuộc tấn công và thao tác cookie.

48
Cyrus

Tùy chọn miễn phí rất ít, nhưng có hàng tấn video và hướng dẫn về các vectơ tấn công cụ thể hoặc sản phẩm/công cụ. Họ sẽ KHÔNG biến bạn thành Người kiểm tra thâm nhập, nhưng họ là tài nguyên học tập miễn phí.

Một số tùy chọn hợp lý để bắt đầu bạn:

Đối với thực tế, có một số tài nguyên:

  • Metasploitable VM (và các máy ảo dễ bị tổn thương khác)
  • DVWA
  • Đột biến
  • WebGoat
  • Vullahoma
  • hack.me

Thực hiện một số tìm kiếm trên trang web này cho những người khác đưa ra ý kiến ​​về các tài nguyên học tập miễn phí. Nhưng, cách duy nhất để học là làm bẩn tay bạn.

Hãy tiếp tục làm việc với nó, và tiếp tục đặt câu hỏi!

51
schroeder

Ngoài các liên kết đến các công cụ, các ứng dụng thực hành dễ bị tổn thương, v.v., Tiêu chuẩn thực thi kiểm tra thâm nhập nhằm mục đích trở thành tiêu chuẩn dứt khoát về cách kiểm tra : - http://www.pentest-st Chuẩn.org/index.php/Main_Page

8
Rory Alsop

Bạn có thể đặt chúng trên máy ảo bằng cách sử dụng VM Player và chơi xung quanh.

Linux dễ bị tổn thương ( http://sourceforge.jp/projects/sfnet_virtualhacking/doads/os/dvl/DVL_1.5_Ininfious_Disease.iso/ )

Khử băng/Hackerdemia ( http://forums.heorot.net/ )

Để tìm hiểu, tôi sẽ xem xét các phương pháp thử nghiệm thâm nhập khác nhau như Hướng dẫn phương pháp thử nghiệm bảo mật nguồn mở (http://isecom.securenetltd.com/osstmm.en.2.1.pdf). Chúng thường đưa ra một danh sách những điều cần kiểm tra. Sau đó, bạn có thể lấy các danh sách kiểm tra này và tìm kiếm các hướng dẫn khác nhau trên web về cách đánh bại các công nghệ khác nhau.

Một trong những cuốn sách hay hơn mà tôi đã đọc gần đây là Viết Công cụ bảo mật và khai thác ( http: // www <azon.com/Writing-Security-Tools-Exploits-Foster/dp/159749997/ref=sr_1_1?ie = UTF8 & qid = 1328592753 & sr = 8-1 ). Nó bao gồm hội cơ bản, tạo shellcode, mẹo tìm và viết tràn bộ đệm, chuỗi định dạng, tấn công heap và nhiều hơn nữa. Cuốn sách hơi cũ và không đề cập đến những thứ như ASLR và NX, nhưng cung cấp một nền tảng vững chắc với nhiều ví dụ với những lời giải thích tuyệt vời.

6
Dylan

Bảo mật thông tin là một lĩnh vực rất rộng, nó bao gồm nhiều lĩnh vực phụ khác nhau: bảo mật cơ sở hạ tầng, bảo mật ứng dụng, bảo mật mạng, v.v. Từ câu hỏi của bạn, tôi tin rằng lĩnh vực bạn quan tâm là Bảo mật Ứng dụng Web - WebGoat và Gruyeres là hai ứng dụng dễ bị tổn thương dành riêng để dạy các lỗ hổng phổ biến nhất trong Bảo mật Ứng dụng Web. Đây là chủ đề duy nhất họ đề cập và giải thích.

Theo ý kiến ​​trung thực của tôi, cách tốt nhất để bắt đầu trong bảo mật ứng dụng web, là đọc danh sách top 10 của OWASP và sau đó tiếp tục kiểm tra các ứng dụng web để tìm lỗ hổng (tất nhiên chỉ chống lại các máy QA của riêng bạn hoặc với sự đồng ý bằng văn bản của quản trị viên). Như đã đề cập, loạt Hacme của Fundstone (nay là McAfee) rất hay, có nhiều ngôn ngữ (vì vậy bạn có thể tìm thấy một ngôn ngữ mà bạn quen thuộc) và đi kèm với các hướng dẫn chi tiết về cách thao tác và phá vỡ các ứng dụng Hacme.

Để biết danh sách đầy đủ hơn về các ứng dụng và máy ảo dễ bị tấn công, bạn có thể muốn dùng thử Thị trường ứng dụng dễ bị tổn thương

Một cách tuyệt vời khác để học, mặc dù nó hơi cũ, là vượt qua MSDN Security Labs miễn phí và dạy nhiều môn học khác nhau:

  • Bộ khởi động dành cho nhà phát triển: Bộ đệm tràn
  • Bộ khởi động dành cho nhà phát triển: Phân tích mã
  • Bộ khởi động dành cho nhà phát triển: Bộ bảo vệ trình biên dịch
  • Bộ khởi động dành cho nhà phát triển: Thử nghiệm Fuzz
  • Bộ khởi động dành cho nhà phát triển: Đánh giá mã bảo mật Bộ khởi động dành cho nhà phát triển: Lỗ hổng SQL

Chúc may mắn!

5
Boaz Tirosh

Hầu hết các đề xuất ở đây chỉ ra một số tài nguyên và ý tưởng tuyệt vời. Tôi khuyên bạn nên sử dụng VirtualBox cho môi trường kiểm tra VM của bạn. Ngoài ra, nếu bạn có tiền dự phòng, hãy lấy Đăng ký TechNet để bạn có thể xây dựng nhiều hộp thử nghiệm. Tôi tin rằng CERT hoặc một tổ chức khác cũng đưa ra một số hình ảnh VM dựa trên Windows mà bạn có thể tải xuống, nhưng tôi không thể nhớ chắc ai sẽ tìm nó hoặc tìm ở đâu họ.

Mặc dù tôi thích và khuyên dùng VirtualBox để chạy VM, nhưng cần lưu ý rằng kiểm tra hoạt động tốt nhất khi tất cả các VM của bạn đang chạy trên cùng một nền tảng ảo hóa. Vì vậy, nếu bạn đang tìm cách hack các hệ thống đang chạy trong VMWare Player, bạn cũng nên có hệ thống tấn công của mình trong VMWare Player.

3
Iszi

Để thêm một chút vào câu trả lời xuất sắc (+1) của schroeder.

http://Exloit-exercises.com thật thú vị; Đó là một vài máy ảo với những thách thức để leo thang bằng cách nào đó. Tinh vân dạy cách leo thang từ một tài khoản bình thường để root trong các môi trường thiếu sót - nhiều giải pháp là các thủ thuật tiêu chuẩn (không tin tưởng các biến môi trường hoặc chạy eval trên đầu vào của người dùng hoặc đưa ra các giả định rằng việc thực thi sẽ được chạy như đề xuất).

Protostar/fusion cao cấp hơn (ví dụ: tràn bộ đệm).

Đồng thời khuyên bạn nên đọc WAHH (nó không miễn phí; nhưng giá rẻ) và Lập trình bảo mật trong Linux/Unix .

2
dr jimbob

Tôi chưa đọc tất cả các câu trả lời, nhưng để tìm hiểu về kiểm tra thâm nhập và để làm điều này miễn phí, bạn có thể thử bộ hướng dẫn này của irongeek.com tại đây: http://www.irongeek.com/i .php? page = videos/web-application-pen-tests-tut-with-mutillidae

Đây là hướng dẫn tải xuống một ứng dụng web dễ bị tấn công có tên là mutillidae mà bạn có thể sử dụng để thực hành kiểm tra bút. Ứng dụng, mutillidae, có những gợi ý mà bạn có thể kích hoạt để học hỏi. Nếu bạn có một số loại máy chủ LAMP, bạn có thể thả thư mục vào thư mục www của máy chủ và truy cập vào địa chỉ loopback cục bộ của bạn, 127.0.0.1. Bạn cũng phải tạo một số bảng cơ sở dữ liệu trong máy chủ MySQL mặc dù vậy công cụ kiểm tra bút này có thể tiên tiến hơn cho bạn ở thời điểm hiện tại. Bảng dân cư không phải là khó khăn mặc dù. Cũng không tạo ra cơ sở dữ liệu cần thiết. : D

Điều này sẽ rất tuyệt khi chạy trên một máy ảo chạy Kali Linux hoặc Ubuntu. Đặc biệt, nếu máy của bạn có đủ RAM và sức mạnh CPU.

Bạn có thể tìm hiểu tất cả mọi thứ từ việc này, chẳng hạn như SQL Injection, Cross Site Scripting và các loại tấn công khác mà bạn có thể tự học để có thể chống lại thông qua các thực hành mã hóa an toàn, v.v.

1
user_loser

Tải xuống nhiều ứng dụng PHP trong giai đoạn đầu Lưu trữ chúng trên máy chủ cục bộ của bạn và sau đó cố gắng tìm các lỗ hổng trong đó bằng cách sử dụng 2 phương pháp khác nhau tùy theo bạn thích

  1. Phương pháp thử nghiệm OWASP - https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf 2.WATC - http://projects.webappsec.org/f/ WASC-TC-v1_0.pdf

Nếu sau đó bạn không có nhiều kiến ​​thức về việc dồn nén thủ công, hãy chạy acunetix và nessus với ứng dụng được lưu trữ trên localhost để xem kết quả do chúng tạo ra và sau đó thử khai thác chúng bằng cách sử dụng bộ BURP. Điều đó sẽ giúp bạn tăng cường và tự tin.

Sau đó đi cho bất kỳ phương pháp này.

Một khi bạn có chuyên môn về phương pháp này, hãy cố gắng tạo một danh sách kiểm tra của riêng bạn và thêm các trường hợp kiểm thử mới mỗi khi bạn tìm thấy.

Một khi bạn làm tất cả những điều này đi cho chương trình tiền thưởng lỗi.

BUGCROWD là chương trình tiền thưởng lỗi rất có uy tín và tại đây bạn có thể tìm thấy danh sách các nhà cung cấp mà bạn có thể thực hiện. https://bugcrowd.com/list-of-orms-bounty-programs

Đây là cách toàn bộ quá trình nên đi như thế nào.

1
FrOgY

Bạn muốn bắt đầu từ những điều cơ bản? Nhảy tới 0:57

Gần như tất cả khai thác tồn tại bởi vì chúng tôi khai thác kiến ​​trúc Von Neumann. Bất cứ lúc nào bạn có thể coi dữ liệu là mã, bạn có một vectơ tấn công. Không quan trọng kiến ​​trúc là gì, nền tảng là gì, ngăn xếp công nghệ là gì ... các ứng dụng web hiện đại vượt qua nhiều bối cảnh: HTML/Javascript trong trình duyệt. (Vectơ tấn công!)

Khai thác có nghĩa là bạn đang nhận được mục tiêu của mình để thực thi mã của bạn. Đó là điểm đằng sau SQL tiêm, XSS, shellcodes - về tất cả mọi thứ! Nếu bạn muốn học cách trở thành một pentester ... hãy lấy "Bộ công cụ mã nguồn mở của Pentester." (Có phiên bản miễn phí có thể đạt được về mặt pháp lý.)

Các bài giảng Defcon có sẵn miễn phí, và chúng là một trong những lớp tổng thể tốt nhất mà tôi từng tham gia. Nhưng hơn bất cứ điều gì khác: bạn phải làm bẩn tay mình. Bạn đã đề cập đến webgoat. Bạn đã cài đặt Tamperdata trên firefox? Bạn đã cài đặt wireshark? Hacking là về việc có càng nhiều công cụ thu thập dữ liệu càng tốt để bạn biết điều gì đang xảy ra. Video này nói rất nhiều về việc theo dõi ... mọi thứ ...

https://www.youtube.com/watch?v=Jwot7S6NmLE

0
avgvstvs

Tôi muốn thêm hai xu của tôi vào nồi. Tôi nghĩ rằng việc xem lại một số video bảo mật của Tom Scott trên Computerphilekênh riêng của anh ấy là một cách tuyệt vời để bắt đầu. Về mặt kỹ thuật, chúng có âm thanh và giải thích các khái niệm một cách rất rõ ràng. Sau đó, hãy để sự tò mò hướng dẫn bạn.

Hãy thử cài đặt nmap và xem những gì bạn có thể tìm hiểu, giả sử máy chủ của Amazon. Tra cứu mọi thứ trên SQL Injection. Điều gì về tự do SHA-1 hoặc MD5? Nó sẽ có chi phí bao nhiêu? Những câu hỏi như thế này có thể hướng dẫn bạn sâu hơn vào lĩnh vực bảo mật thông tin.

Hãy ghi nhớ điều này để: Bạn cần biết những điều bạn đang cố gắng bảo vệ hoặc hack; ví dụ: bạn phải biết TCP để hack mạng và tương tự như vậy cho các trang web.


Câu trả lời của Jeff đưa ra một số hiểu biết, mặc dù theo kiểu đi ngang. Ví dụ, hãy thử thiết lập máy chủ Amazon AWS của riêng bạn và DDoS sử dụng nó bằng nhiều loại công cụ.

Bạn cũng có thể kiểm tra kỹ năng của mình với tư cách là một hacker (về mặt pháp lý) trên các trang web thực và kiếm được một ít bột nhão trên các chương trình tiền thưởng lỗi bảo mật. Hackerone cung cấp một thư mục của các chương trình như vậy.

0
noɥʇʎԀʎzɐɹƆ

Trước hết, bạn nên xem xét loại hoặc khu vực pentesting nào bạn muốn bắt đầu. Ví dụ: bạn có thể bắt đầu tìm kiếm các lỗ hổng trong web (OWASP, CTF), bạn có thể bắt đầu tìm kiếm các cổng mở và phân tích dịch vụ nào đang chạy (tìm kiếm thông tin về khai thác cho phiên bản hiện tại), v.v.

Tôi khuyên bạn nên cái đầu tiên. Thứ nhất vì dễ hiểu nhất, thứ hai vì phổ biến nhất là tìm thấy một lỗ hổng trong một trang web bị mã hóa kém hơn trong một hệ thống và thứ ba bởi vì có rất nhiều tài liệu về chủ đề này và các thách thức miễn phí nơi bạn có thể kiểm tra kiến ​​thức của mình (CTF)

0
eez0

Mặc dù tôi không phải là chuyên gia, tôi đã dành khá nhiều thời gian với Ngân hàng Hacme của Foundstone (chỉ nghĩ rằng sẽ rất tốt nếu thêm cái này nữa).

0
Lex