pEnTester Roadmap

By admin, August 8, 2020

Hello các bạn, nếu đã đọc được những dòng này nghĩa là bạn có quan tâm đến việc trở thành 1 pentester đúng không? Ok, với gần 5 năm kinh nghiệm thực tiễn và 50 năm kinh nghiệm OT, hy vọng mình có thể chia sẽ cho các bạn hình dung được bức tranh về ngành này 😀

Nhắc đến pentest thì nhiều bạn sẽ nghĩ ngay đến Web Exploit, thật ra pentest là khái niệm chung, và không có giới hạn, bạn có thể pentest web, Mobile, các thiết bị IoT, các hệ điều hành tự chế (như của các kiosk ATM ngân hàng), thiết bị phần cứng khi được yêu cầu.

Gói gọn trong bài này thì mình chỉ nói vài mảng thôi, tại vì mình cũng chỉ biết có chừng đấy, trên tinh thần đụng đâu học đấy mà.

Những ngày còn thơ

Mình bắt đầu “pentest” sau 2 năm chơi CTF mảng web và mobile

Vào tầm năm 2015, mình bắt đầu thực tập trong tập đoàn “H” ở quận 7 và dự án đầu tiên mình được giao là target 1 cái CMS =)) đơ người, mò được vài cái XSS nhưng không có “phê” như lúc chơi CTF ra flag, lúc này mình nhận ra pentest và CTF là 2 lĩnh vực khác nhau, có thể bổ trợ cho nhau, nhưng về cơ bản vẫn cứ là khác nhau.

CTF là gói gọn một hoặc vài lỗi trong 1 thử thách, lời giải luôn ở đó, chỉ chờ bạn tìm ra, nó thiên về hướng tận dụng lỗi hoặc kết hợp các lỗi lại để đạt được 1 cái gì đó cao hơn như là flag.

Ngược lại, về pentest thì bạn cần tìm nhiều lỗi càng tốt, có những lỗi mà CTF không thể mô phỏng lại (vì mấy lỗi này không lấy flag được), có thể tận dụng lỗi tìm được để xâm nhập sâu vào hệ thống tùy yêu cầu khách hàng, nhưng mình thấy đa phần dừng lại ở việc xác định lỗi thôi.

Ok, biết bản chất nó rồi thì bắt đầu rèn luyện thôi, sau đây là những gì mình đã làm trong giai đoạn này:

Tiếp tục chơi CTF và các trang wargame

Việc chơi CTF giúp mình rèn được 1 tư duy logic và khả năng keep up với suy nghĩ của các hacker khác, vì mỗi bài CTF là mỗi bài học mà tác giả đặt tâm huyết vào để dạy chúng ta (trừ mấy cái CTF đoán đoán tào lao ra nhé, chọn mặt gửi vàng), có thể là một dạng lỗi mới, một kiểu tấn công mới, hoặc là tư duy kết hợp các lỗi lại với nhau.

Khi đi pentest sẽ có 3 kiểu: Black box, Grey box và White box

Định nghĩa chuẩn những cái này thì mình sẽ không bàn, nhưng nó đôi khi sẽ linh hoạt và biến tướng một tí, ví dụ như định nghĩa của mình và các khách hàng thường như này:
– Black box là tấn công như 1 hacker, bạn phải tự xử mọi thứ
– Grey box cũng là tấn công, nhưng được giúp đỡ từ khách hàng như gỡ mấy cái web app firewall ra rồi mới tấn công
– White box là cho luôn source ngồi đọc

Khả năng rất rất rất cao là bạn sẽ phải làm Black box, vì khách hàng thích thế, nghĩa là bạn sẽ phải gặp mấy cái gọi là Web App Firewall (WAF), lúc này bạn cần kĩ năng “BYPASS”, và CTF sẽ dạy bạn kĩ năng đó.

Tập chơi bug bounty

Bug Bounty là một môi trường lý tưởng dành cho các bạn tập làm pentester, ở đây bạn có thể vừa rèn kĩ năng, vừa kiếm tiền một cách hợp pháp, có tiếng lại còn có miếng.

Bạn có thể nghĩ nó khó, nhưng thực tế vẫn có những bug dạng low-hanging fruit như XSS được report hàng ngày, nếu XSS vẫn còn khó với bạn thì mình nghĩ bạn nên suy nghĩ lại về việc bạn có hợp với con đường này không.

Có thể bạn sẽ không tìm được bug nào, hoặc bị đúp quá nhiều, nhưng sau tất cả, bạn sẽ có được thứ rất quan trọng với một pentester: “KINH NGHIỆM”, biết phải làm gì khi nhìn vào 1 website, không có cách học nào tốt hơn thực hành 🙂

Đọc sách

Để tìm được nhiều dạng lỗi, việc đầu tiên của bạn là phải biết lỗi đó là gì, có rất nhiều cách như tham gia wargame, chơi CTF, và tất nhiên là đọc sách, sách đầu tiên mình đọc là cuốn:

Web Hacking 101 của Peter Yaworski

sau đó là cuốn

The Basics of Web Hacking: Tools and Techniques to Attack the Web của Josh Pauli

The Tangled Web: A Guide to Securing Modern Web Applications của Michał Zalewski

Thật ra mình đọc nhiều lắm, nhưng nhớ được 3 cuốn này, có mấy cái whitepaper chỉ chuyên về client-side nói về DOM cũng hay ho mà quên tên rồi =))

Hoàn thành các kĩ năng cơ bản của 1 hacker

Code, bash script, kiến thức về network, những thứ cơ bản đủ để bạn hiểu được người ta đang nói về những gì.

Bớt trẻ trâu nghĩ mình là cái rốn vũ trụ luôn nha, đừng vì hack được cái này, đập được cái kia mà khoe ra, khách hàng không vui đâu, công ty của bạn cũng vậy, nhớ là hãy luôn làm trong scope, đừng vượt biên, vào tù lúc nào không hay =))

Lên trình một tí

Vẫn cày CTF, học, làm mọi cách để những kiến thức và kĩ năng của bạn trở thành bản năng, kiểu như mới sinh ra đã biết hít thở vậy.

Có thể làm thêm những việc sau:

Follow các nắc cơ giỏi trên thế giới

Này thì nhiều, tùy gu của bạn mà follow thôi, follow hết cũng được, mình thì không cần người đó siêu giỏi, chỉ cần hay chia sẻ là mình sẽ follow, ví dụ như Orange Tsai, hoặc Osanda Malith, blah….

Đọc report trên các trang bug bounty

Đây là cách nhanh nhất để bạn update được tình hình security trên thế giới, vì đây là lỗi thật, việc thật, có thể target bạn tìm không ra lỗi, nhưng người khác lại tìm ra, hãy học từ những người đó và ngẫm lại bạn thiếu sót ở đâu

Chia sẻ kiến thức

Hãy chia sẻ lại kiến thức của bạn cho người khác, cố gắng đặt vị trí của bạn vào người đọc và viết cho họ hiểu, đây là một cách để bạn tự review lại xem bạn có thực sự hiểu “Kiến thức” bạn chia sẻ hay không, như mình có viết vài cái writeup CTF, tạo vài cái challenge, viết vài dạng lỗi web lạ lạ hay cái tutorial pentest app Android đấy =))

Teamwork

Nhiều bạn sẽ tập trung quá nhiều vào kĩ thuật mà quên rằng khi đi làm, đi pentest thì bạn sẽ tương tác với nhiều đồng nghiệp, hãy học cách teamwork, ví dụ một dự án bạn và 1 đồng nghiệp được giao làm, mình đã từng thấy 1 bạn chỉ lo làm phần mình và cố hơn thua với bạn còn lại chỉ để “chứng tỏ”, ganh đua là tốt, nhưng hãy hợp tác và bàn luận nhé, theo kinh nghiệm của mình càng chia sẻ và thảo luận với đồng nghiệp thì càng nhiều lỗi được phát hiện ra đấy 🙂

Kiếm một vài cái chứng chỉ tốt

Nếu có điều kiện, hoặc được công ty tài trợ thì bạn nên kiếm một cái chứng chỉ về pentest, mình nghĩ phổ biến nhất bây giờ là OSCP

Nhiều bạn sẽ bảo là chứng chỉ vô nghĩa, mình trình cao ai chả biết, ok mình đồng ý, nhưng có bao giờ bạn nghĩ là khách hàng cũng sẽ biết bạn? Hoặc là đi xin việc công ty khác thì HR sẽ cho bạn vào thẳng?

Chứng chỉ sinh ra là để chứng minh bạn đã đạt được kĩ năng, năng lực tầm này, dựa vào đó để những người “không biết” bạn đánh giá bạn.

Bản thân mình cũng học qua cái OSCP rồi, nên mình biết những gì nó dạy và cần những kĩ năng gì để thi đậu cái chứng chỉ này, cho nên những ai mà mình không biết mà có chứng chỉ OSCP thì mình sẽ hiểu level họ đang ở đâu hơn.

Nên nhớ là chúng ta đang nói về nghề pentester, không phải researcher hay CTF-er nhé 🙂

Thuộc dạng có số má

Vẫn tiếp tục làm những việc ở trên, ở level này thì bạn thuộc dạng văn võ song toàn rồi, cứ nhắc tới bạn trong project là đồng nghiệp tin yêu, sếp yên tâm. Một số việc nên làm:

Research

Có một thực tế là không phải lúc nào cũng có job để bạn làm, còn nếu ngồi chơi bug bounty nhiều thì sẽ đi vào ngõ cụt (vì không update thêm kiến thức, chỉ xài kiến thức có sẵn để săn bug).

Nếu bạn có theo dõi mình trên HackerOne hoặc các trang bug bounty ở Việt Nam thì có thể thấy mình đã nghỉ săn bounty từ lâu, phần lớn thời gian mình dành ra để research, download vài cái CMS về tìm bug, reproduce 1-day, bypass mấy cái cơ chế anti trên mobile, emulate lại mấy cái firmware để hack IoT, hay reverse mấy cái driver window để pwn chơi.

Thuần web thì mình nghĩ ở VN nhiều bạn target Dot Net hoặc mấy cái framework Java cũng hay đó.

Những thứ như này giúp bạn rèn tư duy, và học thêm được những thứ mới, mình không bảo chơi bug bounty xấu, nhưng hãy tạm dừng lại khi bạn cảm thấy không có lối đi nữa.

Kĩ năng viết Report

Khi đi làm sẽ không có ai viết report giùm bạn cả đời, người ta chỉ review thôi, bạn là người hiểu hết tất cả các bug bạn tìm ra, hãy học cách viết report cho sạch đẹp, làm sao cho người đọc (cụ thể là sếp và khách hàng) hiểu nhé.

Kĩ năng lead Project

Rồi một ngày bạn sẽ thành team lead nếu làm đủ lâu, hãy học cách manage thời gian, phân bổ nhiệm vụ cho thành viên team bạn cũng như báo cáo với cấp trên về hoạt động của nhóm nhé.

Like Page Hack ‘Em All

Câu like thôi, không có gì đâu
https://www.facebook.com/hackemall.live/

Tsu

3 Comments

  1. pyi phyo says:

    not in english?

  2. admin says:

    yup, only in vietnamese, you can use google translate to read in english

  3. Tan Nhat Nguyen says:

    I can help translate into English.

What do you think?

Leave a Reply

Your email address will not be published. Required fields are marked *

-->