Bạn hỏi: Khác biệt giữa CEH và pentest? Có nên chơi CTF khi chỉ mới có kiến thức cơ bản? Có thể làm series về OSINT không?

Xin chào,

Chào mừng bạn đã đến với bài viết tiếp theo trong chuyên mục Hỏi Đáp Tự Học Cybersecurity hôm nay. Trong bài hôm nay chúng ta sẽ giải đáp 3 thắc mắc sau đây.


Câu hỏi 1: Thắc mắc về lộ trình học pentest và sự khác biệt giữa CEH và pentest

Bạn có nickname tạo có câu hỏi sau:

Hôm trước anh có đưa ra quá trình học pentest và em có vài thắc mắc về từng quá trình đó ạ

1) Ở bước phần pentest+ thì nó có khác gì so với những phần còn lại (như là pentest hoặc ceh) không và nội dung học của nó là những gì ạ ? Và tại sao nó lại xếp đứng trước bước “học KALI LINUX” ạ em nghĩ học KALI trước thì mới có thể biết thực hành và hiểu được lap chứ nhỉ ?

2) Ở bước 3 anh cho em hỏi ceh và pentest có phải là 1 không ạ ? Nếu không thì anh cho em hỏi khái niệm về 2 cái đó ạ? (Tại hồi giờ em chỉ biết pentest là dùng cho hack thôi à)

Trả lời

Sau khi liên lạc với bạn Tạo và hỏi thêm về lộ trình chi tiết, thì bạn cho mình biết lộ trình mà bạn thắc mắc nằm ở bài sau. Cụ thể trong bài, mình đã tư vấn lộ trình học pentest như sau:

  1. Pentest+
  2. Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali
  3. CEH hoặc Penetration Testing: A Hands-On Introduction to Hacking
  4. OSCP

Trả lời câu hỏi số 1 của bạn

1) Ở bước phần pentest+ thì nó có khác gì so với những phần còn lại (như là pentest hoặc ceh) không và nội dung học của nó là những gì ạ ? Và tại sao nó lại xếp đứng trước bước “học KALI LINUX” ạ em nghĩ học KALI trước thì mới có thể biết thực hành và hiểu được lap chứ nhỉ ?

Trước khi mình đi vào chi tiết, mình muốn lưu ý trước, lộ trình mình đề cập phía trên không dành cho những người chưa biết gì về Linux, hệ thống mạng, các dịch vụ mạng và các kiến thức căn bản có liên quan khác. Vì ở câu hỏi trước khi mình tư vấn lộ trình trên, bạn đặt câu hỏi cho mình biết đang đọc sách Security để tự học pentest, nên mình tư vấn với niềm tin rằng người hỏi câu trên đã có kiến thức nền tảng rồi.

Dụng ý của mình khi tư vấn lộ trình trên là như thế này.

Cá nhân mình thấy, khi nhắc đến các giáo trình của Comptia nói chung và Pentest+ nói riêng, nếu bạn nào đã đọc qua các sách dạy chứng chỉ của Comptia rồi thì sẽ thấy một điều đó là giáo trình của họ rất nặng về lý thuyết và phần thực hành thường không được chú trọng.

Lấy ví dụ như giáo trình Pentest+, phần trình bày lý thuyết về các kỹ thuật tấn công, quy trình pentest của họ rất chi tiết, nhưng phần lab và demo thì lại khá chung chung. Vì thế khi đề xuất giáo trình này, mình chỉ kỳ vọng các bạn có thể theo được phần lý thuyết thôi.

Sau pentest+, mình đề xuất học Kali Linux, nếu bạn nào đã xem qua giáo trình “Linux Basics for Hackers: Getting Started with Networking, Scripting, and Security in Kali”, thì sẽ thấy nó thiêng về việc hướng dẫn các bạn làm quen với các công cụ của Kali Linux và ôn lại một tí kiến thức Linux căn bản.

Mục đích của bước 1 và 2 là để chuẩn bị cho các bạn kiến thức về pentest cũng như đã phần nào quen thuộc với Kali Linux để có thể áp dụng ở bước 3 và 4.

Kiến thức bước 2 sẽ giúp bạn thực hành sử dụng các công cụ Kali Linux cho System pentest, Wireless pentest, Web pentest, v.v. ở bước 3 dễ dàng hơn.

Và kiến thức ở bước 1 cùng các kỹ năng ở bước 2 và 3 sẽ giúp bạn luyện OSCP tốt hơn.

Mình cũng muốn lưu ý là do mỗi người có background, mục tiêu và khả năng của mỗi người mỗi khác, dẫn đến lộ trình được thiết kế cho người này, chưa chắc đã phù hợp cho người kia. Nên để tư vấn hướng đi cho các bạn một cách chính xác nhất, các bạn vui lòng inbox fanpage nhé. Còn nếu hỏi thông qua form, mình chỉ có thể tư vấn một quy trình chung chung theo thông tin mà các bạn cung cấp mà thôi.

Trả lời câu số 2

2) Ở bước 3 anh cho em hỏi ceh và pentest có phải là 1 không ạ ? Nếu không thì anh cho em hỏi khái niệm về 2 cái đó ạ? (Tại hồi giờ em chỉ biết pentest là dùng cho hack thôi à)

Theo ý kiến cá nhân của mình, nếu lấy OSCP là mức mà khi bạn đạt đến, bạn đã có thể tự tin là mình có đủ kiến thức và kỹ năng tối thiểu để đi xin việc thực tập pentest, thì kiến thức của CEH nằm giữa mức căn bản và OSCP.

Khi xem qua giáo trình CEH, bạn sẽ thấy nó bao gồm rất nhiều mảng nhỏ, mỗi mảng sẽ được trình bày một lượng kiến thức vừa đủ để bạn có thể hiểu được công việc và kỹ năng cần có của mảng đang trình bày là gì. Tất cả các mảng này chính là các mảng trong penetration testing hoặc kiến thức liên quan đến penetration testing. Thật vậy, penetration testing chia ra làm các mảng như:

  • Web application pentest
  • Wireless pentest
  • Systems pentest
  • Mobile pentest
  • IoT pentest
  • Cloud pentest
  • ICS pentest
  • v.v.

Nhiệm vụ chính của CEH là ngoài việc trang bị một vài kiến thức và kỹ năng cần thiết cho việc pentest ở cấp độ trên căn bản, nó còn giúp bạn trải nghiệm và từ đó giúp bạn định hướng xem là ở giai đoạn bắt đầu làm pentest, bạn muốn làm ở mảng nào? Ví dụ như bạn muốn làm web pentest hay mobile pentest.

Nói cách khác, bản thân CEH (Certified Ethical Hacking) không phải là một cái nghề mà là một mảng kiến thức giúp bạn định hướng xem bạn nên tập trung vào đâu ở giai đoạn bắt đầu sự nghiệp pentest.

H1.1

Câu hỏi 2: Hỏi về sách học pentest và Metasploit cho trình độ căn bản? Có nên chơi CTF khi chỉ mới có kiến thức cơ bản? Series Pentest Linux Căn Bản khi nào sẽ được hoàn thành?

Bạn riu nem có câu hỏi sau:

1 ) Ngoài “Penetration Testing: A Hands-on Introduction to Hacking” thì Anh có thể cho em xin vài tài liệu về pentest cũng như sách về Metasploit cho beginner được không ạ ?

2) Em có nghe nhiều người recommend về việc học pentest là chỉ cần biết cơ bản kiến thức thì nhảy vô làm thực hành luôn (CTF chẳng hạn) và nếu không biết chỗ nào thì google về vấn đề đó . Ad nghĩ cách học này sao ạ ?

3) Ngoài lề tí ạ 😀 ad cho em hỏi dự kiến bao lâu thì series này sẽ được hoàn thành ạ ?

Trả lời:

Trả lời câu 1:

1 ) Ngoài “Penetration Testing: A Hands-on Introduction to Hacking” thì Anh có thể cho em xin vài tài liệu về pentest cũng như sách về Metasploit cho beginner được không ạ ?

Cá nhân mình nghĩ ở giai đoạn căn bản, việc quan trọng nhất là các bạn cần làm quen cách sử dụng các công cụ, hiểu được quy trình pentest, nắm được nguyên nhân cũng như cách kiểm tra và khai thác lỗi. Vì lẽ đó mình nghĩ chẳng thà đọc ít mà nó đủ còn hơn đọc quá nhiều mà lang man.

Tuy nhiên, nếu bạn vẫn muốn có thêm lựa chọn, bạn có thể tham khảo giáo trình CEHv11.

Về giáo trình tự học Metasploit cho người căn bản, bạn có thể tham khảo giáo trình miễn phí sau từ Offensive Security, công ty đứng đằng sau hệ điều hành Kali Linux.

Chia sẻ ngoài lề một tí. Một điểm mà mình rất thích ở giáo trình Penetration Testing: A Hands-on Introduction to Hacking đó là vì nó đã được xuất bản từ tận năm 2014, nên rất nhiều đường link hướng dẫn tải và xây dựng lab đã không còn hoạt động nữa. Nghĩa là để xây dựng được lab, bạn phải tra cứu Google rất nhiều, tìm các phần mềm được đề cập từ các trang khác với trong sách, rồi từ đó vừa dựng lab vừa Google để sửa lỗi cho đến khi lab chạy mới thôi. Và trong quá trình này, mình học được rất nhiều thứ hay ho đồng thời còn luyện được mindset của hacker nữa.

Thực tế khi đi làm pentest, sẽ có những lúc từ những thông tin hệ thống mục tiêu đã được thu thập, bạn sẽ phải mô phỏng lại môi trường đó để có thể thử nghiệm các giải pháp pentest khác nhau. Lúc này, bạn phải tự build môi trường từ những thông tin đã có, và không phải lúc nào các công ty cũng sẽ sử dụng hệ điều hành hay các phiên bản phần mềm mới nhất, bạn sẽ phải dùng Google để tìm, sau đó tra cứu cách cài đặt, tra cứu cách sửa lỗi khi cài đặt và vận hành v.v. cho đến khi môi trường mô phỏng chạy ổn định mới thôi. Vì lẽ đó, mình rất thích trải nghiệm mà cuốn sách Penetration Testing: A Hands-on Introduction to Hacking mang đến cho mình.

Mình hiểu, nó sẽ khó khăn với những bạn ở trình độ căn bản, nhưng cách đây 3 năm khi học sách này, mình cũng chỉ ở trình độ căn bản như các bạn thôi và mình dành gần 5 ngày chỉ để dựng lab. Nên mình nghĩ khó hay không không quan trọng bằng việc bạn có muốn hay không mà thôi.

Trả lời câu 2:

2) Em có nghe nhiều người recommend về việc học pentest là chỉ cần biết cơ bản kiến thức thì nhảy vô làm thực hành luôn (CTF chẳng hạn) và nếu không biết chỗ nào thì google về vấn đề đó . Ad nghĩ cách học này sao ạ ?

Trùng hợp là trước đây khi mới bắt đầu học pentest mình cũng đã học theo cách này và xin thú thật với bạn là mình thất bại thảm hại và mình không khuyến khích bạn làm theo cách này.

Cách đây 3 năm, trước khi học pentest, mình khá tự tin với kiến thức về hệ thống mạng và Linux của mình. Tuy nhiên, khi bắt đầu thực hành pentest, mình nhận ra kiến thức mà mình có là hoàn toàn không đủ. Lúc đó khi xem bài demo pentest Kioptrix 1, mình hòan toàn không hiểu bất kỳ một chi tiết nào trong bài cả.

Những ngày tiếp theo, mình theo đúng kiểu walkthrough trình bày cái gì, học cái đó. Walkthrough chỉ đăng nhập FTP bằng annonymous account, dùng câu lệnh này, câu lệnh kia để tìm file thì mình chỉ biết làm theo chứ chẳng hiểu tại sao phải làm như vậy. Cái cảm giác lúc đó là rất khó chịu, mình có cảm giác như đang học vẹt và chán nản vô cùng.

Những gì không hiểu lúc đó, mình đều Google để tìm hiểu thêm, thế nhưng mỗi lần Google nó lại dẫn đến một mảng kiến thức to khác mà mình không hề biết. Ví dụ, để hiểu SQL injection, bạn tối thiểu phải hiểu câu lệnh SQL cũng như cách SQL được sử dụng để xác thực mật khẩu và username và từ đó đưa ra quyết định có cấp quyền truy cập cho bạn hay không?

Để hiểu được XSS, bạn phải hiểu được cơ bản JavaScript, và để sử dụng XSS cho mục đích tấn công người dùng, bạn còn phải hiểu thêm về cookie và nhiều thứ khác nữa.

Để có thể khai thác và tấn công XML, bạn lại phải hiểu về XML. Để có thể xâm nhập SSH không dùng mật khẩu, bạn phải hiểu cách thức SSH hoạt động, cách tìm private key của SSH, cách crack key để lấy mật khẩu, v.v.

Tóm lại, kiến thức pentest nó không phải là kiến thức ở cấp độ cơ bản chỉ cần Google, ngồi đọc là hiểu. Kiến thức pentest được xây dựng dựa trên kiến thức và kinh nghiệm của những chuyên gia có kinh nghiệm nhiều năm về hệ thống và phần mềm, họ đã biết quá rõ về hệ thống và phần mềm, nên họ mới có thể tìm ra cách để hack nó. Những kỹ thuật pentest khó nhất chính là những kỹ thuật mới tìm ra gần nhất, còn những kỹ thuật dễ nhất chính là những kỹ thuật được tìm ra ở thời kỳ đầu của thời đại Internet bùng nổ khi nhiều công ty chưa quá chú trọng vào vấn đề an ninh hệ thống. Tuy nhiên dù là kỹ thuật dễ nhất, để hiểu và sử dụng được nó bạn vẫn phải cần có một nền tảng tối thiểu.

Đó cũng là lí do không ít các công ty yêu cầu ứng viên thử việc trong lĩnh vực cybersecurity phải có tối thiểu 3-5 năm làm system admin, hay lập trình để đảm bảo ứng viên có kiến thức tối thiểu về hệ thống và phần mềm.

Nói một cách ngắn gọn, bạn sẽ không bao giờ có thể hack được bất cứ thứ gì nếu như bạn không hiểu rõ nó.

Thế nên, lần tới khi bạn nghe ai đó nói chỉ cần biết cơ bản, thì hãy hỏi lại họ “biết cơ bản là biết những gì?”. Với mình, cái cơ bản cần có bao gồm:

  • Kali Linux, Ubuntu, CentOS
  • Bash, Power Shell, Command Prompt, Python, PhP, C, SQL, no SQL, XML, HTML, CSS, JavaScript
  • Hiểu cách hoạt động của website chạy server Linux và Windows cùng các thành phần của nó
  • Hiểu cách thức vận hành và đặc tính của những protocols phổ biến nhất như Telnet, HTTP, HTTPS, SSH, FTP, SMB, v.v.
  • Hiểu cấu trúc và cách thức họat động của bộ nhớ máy tính từ đó áp dụng cho buffer overflow, heap overflow, v.v.
  • Có khả năng tự xây dựng máy ảo và tự sửa lỗi
  • Hiểu phân quyền trên Linux và Windows
  • Hiểu về active directory

Những kiến thức bên trên là cái nền cần có để có thể thực hành CTF hiệu quả và học thêm các kỹ thuật mới. Nếu không có cái nền trên, bạn chỉ đang học vẹt thôi. Thế nên, nếu được quay ngược trở lại cách đây 3 năm, thay vì dành 6 tháng liên tục làm CTF và học các kỹ thuật mới nhưng chẳng hiểu mấy về nó, mình sẽ dành 6 tháng để học được nhiều nhất có thể những mục bên trên.

Trả lời câu 3

Series Pentest Linux Căn Bản hiện nay đang gần kết thúc giai đoạn 2 và sẽ chuyển sang giai đoạn 3 học về các công cụ của Kali Linux vào đầu tháng 12. Theo tiến độ hiện tại, có lẽ chúng ta sẽ hoàn thành hoàn toàn cả 4 giai đoạn bao gồm trước tết.

H2.1

Câu hỏi 3: Có thể làm series về OSINT không?

Bạn mr-WitchX có hỏi

Chào ad, ad có thể làm về các kĩ thuật OSINT được chứ ạ? em đợi câu trả lời từ anh. Em xin cảm ơn và chúc anh một ngày vui vẻ.

Trả lời

OSINT (Open-source Intelligence) là một chủ đề khá thú vị. Tuy nhiên ở thời điểm hiện tại mình chưa có dự định sẽ thực hiện một series về chủ đề này. Sau series Pentest Linux Căn Bản (khoảng sau tết 2021), mình sẽ tiến hành lập group riêng với các series thiên về xâm nhập web và một series dành cho cộng đồng về tự bảo vệ bản thân trước các hackers. Đó là dự định của mình từ đây cho đến nửa đầu năm 2021.

Tuy nhiên nếu bạn muốn tìm tài liệu về OSINT, bạn có thể thử cuốn Open Source Intelligence Techniques: Resources for Searching and Analyzing Online Information

H3.1


Cám ơn các bạn đã đặt câu hỏi và hi vọng phần trả lời của mình sẽ phần nào làm hài lòng các bạn.

Xin cám ơn và chúc các bạn nhiều sức khỏe,

Vincent Nguyễn

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s