Lập trình C/C++ (3 tháng) để làm quen với ngôn ngữ lập trình và xem bản thân có phù hợp với ngành CNTT không.
Java Core: Hiểu sâu về OOP
Spring Boot: Hiểu sâu về Spring Boot, sẽ phục vụ tốt nhất cho kĩ năng Review code
PHP Web cơ bản: Hiểu về cơ chế client - server - database
Python (obligatory): Phục vụ cho việc tự động hoá một số tác vụ như viết script khai thác. Đây là ngôn ngữ quan trọng nhất đối với những ai theo Websec (Learn Python the Hard Way).
Go(Optional): Phục vụ cho việc tự động hoá một số tác vụ, web server, tool fuzz vì multithread dễ.
JavaScript(Optional) - (and its families: NodeJS, ReactJS, AngularJS, VUEJS,…): Đôi khi trong việc pentest, sẽ có các sản phẩm dạng web view, sử dụng khá nhiều script
C#/.NET : Master Java Core, Java web rồi học cũng được.
SQL: Hiểu cơ bản nhất về DB, khuyến khích start với Mysql/MariaDB/MongoDB. Nâng cao đùi thì MSSQL/Postgresql/Oracle
Học tất cả ở:
Cú pháp thần chưởng: awesome + something you want
+, https://asmcn.icopy.site/ (awesome list chinese)
Cần tìm source code: Thứ cần tìm bằng English -> dịch sang tiếng china simplified rồi tìm kiếm, có thể dùng hẳn 1 số trang của trung quốc như baidu
,…
Ngoài ra, việc đi code web nhiều để hiểu biết web nó hoạt động như nào, các design pattern họ hay dùng là gì, quen với các lang và setup các component trong web system như server, proxy, load balancing. Chính những kiến thức nền này sẽ giúp ích rất nhiều khi đi review source code.
Luyện tập:
picoCTF mảng General Skills
Luyện tập cơ bản:
Luyện tập chuyên sâu:
Này trên mạng nhiều quá lười gắn link :D
Về cơ bản, các ứng dụng web hiện nay sẽ có các lỗ hổng bảo mật được chia thành 2 loại chính như sau Server-side và Client-side. Khi học và làm lab về websec có 3 loại: Black box, Grey box và White box
Funny fact: Có khả năng rất cao là sẽ gặp Black box rất nhiều, nghĩa là bạn sẽ phải xử lý một thứ gọi là Web App Firewall (WAF), lúc này sẽ cần "BYPASS" skills và CTF sẽ dạy kỹ năng đó.
Luyện tập:
OWASP Top 10 for web
HackTheBox Academy:
CPTS
CBBH
CDSA
CWEE
Searh tên lỗ hổng + hackthebox
Tryhackme:
OWASP top 10 https://tryhackme.com/room/owasptop10
Vulnversity https://tryhackme.com/room/vulnversity
Juiceshop https://tryhackme.com/room/owaspjuiceshop
Overpass https://tryhackme.com/room/overpass
Year of the Rabbit https://tryhackme.com/room/yearoftherabbit
Develpy https://tryhackme.com/room/bsidesgtdevelpy
Jack of all trades https://tryhackme.com/room/jackofalltrades
Bolt https://tryhackme.com/room/bolt
Biết dùng BurpSuite:
+, Intercept requests
+, Repeater
+, Intruder
+, Extensions
Tham khảo: Nghiệp Burp hoặc các platform như TryHackMe, HackTheBox, Youtube…
Biết dùng Postman (API, microservice Pentesting) - (Optional): Tiện hơn rất nhiều so với ngồi gõ CURL, thường khi pentest, đặc biệt nhất là trong nội bộ, người ta sẽ đưa 1 file Postman cho mà test, Postman cũng có option proxy, ném qua Burp Suite mà chiến thì tiện quá rồi. Ngoài ra, tìm hiểu thêm về Swagger nữa nhé, cũng tương tự Postman thôi.
https://api.anhtester.com/swagger/index.html
https://demo.ctfd.io/api/v1/swagger.json
https://drugbank.vn/services/drugbank/api/public/thuoc
Kết quả cần đạt: triển khai một project nhỏ có sử dụng API & Microservices, khuyến khích sử dụng Java Spring Boot, áp dụng cả Authorization và Authentication thì càng tốt.
Biết dùng các tools recon, exploit, fuzz,…phần này khá dài vì nó rất quan trọng nên mình sẽ update dần dần. Để luyện tập dùng tool đúng cách chứ phải script kiddie cần hiểu rõ tool hoạt động như thế nào khi sử dùng, sense và exp được mài rũa qua các bài lab, CTF,…
Update chi tiết sau
Leo thang đặc quyền là nơi bạn có tài khoản người dùng và nhận quyền quản trị root/domain. Nó rất cần thiết đối với CTF và hack.
Sudo Security Bypass https://tryhackme.com/room/sudovulnsbypass
Sudo Buffer Overflow https://tryhackme.com/room/sudovulnsbof
Linux Privesc Arena https://tryhackme.com/room/linuxprivescarena
Windows Privesc Arena https://tryhackme.com/room/windowsprivescarena
Windows Privesc https://tryhackme.com/room/windows10privesc
Blaster https://tryhackme.com/room/blaster
Ignite https://tryhackme.com/room/ignite
Kenobi https://tryhackme.com/room/kenobi
Pickle Rick https://tryhackme.com/room/picklerick
Window
Blue https://tryhackme.com/room/blue
Ice https://tryhackme.com/room/ice
Attacktive Directory https://tryhackme.com/room/attacktivedirectory
Retro https://tryhackme.com/room/retro
Blue Print https://tryhackme.com/room/blueprint
Anthem https://tryhackme.com/room/anthem
Relevant https://tryhackme.com/room/relevant
Sau khi đã có kiến thức về lập trình + lỗ hổng để nâng cao và hiểu sâu hơn chúng ta sẽ đi tự dựng lại code bị dính lỗ hổng và tự patch nó. Đây là một cách học khá hay và rất nhanh lên tay. Việc dựng lại các lab về các lỗ hổng bảo mật web, tự vọc vạch, khai thác nó. Thay vì CTF, tác giả đã tạo sẵn challenge cho bạn, mình chỉ việc chơi thôi, thì khi làm lab, phải tự setup lại tất cả mọi thứ, từ network, config firewall, vhost, docker, setup env … Khi dựng lab, mình sẽ có thêm kha khá skill về debug, troubleshooting, network, system, database, điều này sẽ rất có lợi cho mình về giai đoạn sau, khi thực chiến trên các production thật sự.
Ngoài ra, biệc biết được các biện pháp mitigation vừa giúp ích cho bạn rất nhiều trong việc nhận biết, phán đoán ứng dụng web hiện tại sẽ có khả năng tồn tại lỗ hổng bảo mật nào, cũng như có ích rất nhiều khi bạn thực hiện audit / secure code review.
Audit / Secure Code Review: Về cơ bản, khi tiếp cận một vấn đề liên quan tới WebSec, bạn sẽ có được các thông tin của target đó được chia thành 3 loại (đã nói ở trên): Black box, White box và Gray box đúng như tên gọi của nó theo nghĩa bóng. Mình sẽ nói về White box trong context này. Đối với White box, bạn sẽ có được tất cả thông tin về đối tượng đó, source code front-end, back-end. Mọi thứ đều tường minh và rõ ràng, khi chơi CTF cũng vậy, các bài mà tác giả cung cấp đầy đủ source code đều là các bài khá hay và hấp dẫn (theo ý kiến cá nhân). Khi bạn đọc source code, debug để giải quyết các vấn đề của một thử thách, kỹ năng về audit, secure code review của bạn sẽ tăng lên rất đáng kể. Sau này khi tiếp các các target thực tế, bạn sẽ không bị bỡ ngỡ hoặc bị ngợp dưới số lượng dòng code hoàn toàn lên đến hơn 4 triệu dòng (Magento Framework).
Osint github, blog, X, Facebook, Discord,… của các cao thủ: Muốn đi nhanh thì phải tìm thầy :P
P/s: sẽ cập nhật thêm sau
Luyện tập:
Khái niệm mảng chỉ dành cho CTF thôi nha, còn thật sự là kiến thức nền tảng về tất cả các lĩnh vực trong security rất quan trọng và bạn phải hiểu được cơ bản đối với các mảng khác. Bạn phải có kiến thức tổng quát về system, database, network, crypto, RE thậm chí là pwnable / exploit, nó sẽ giúp ích cho bạn ít nhất là ngay từ ban đầu và giúp bạn đi được xa hơn nếu muốn theo đuổi web hacking.
Ví dụ:
+, WebAssembly: https://docs.google.com/presentation/d/1Al9_FroUjOoM2QryCtQUL_uyJ8xXszxxUbH9k9nCXhc/edit?usp=sharing
+, WebPWN: Router, các thiết bị IOT.
Web Hacking 101 của Peter Yaworski
The Web Application hacker's handbook: Discovering and Exploiting Security Flaws
https://drive.google.com/file/d/1am-rh7bDHTRyGzboQ03NKKY-dFpd1ZNo/view?usp=sharing
Cuốn này sếp cũ mình viết: https://drive.google.com/file/d/1YnuQgmi11ZXV1d8Y2-511mZHwmy5elz5/view?usp=sharing
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
Sẽ update chi tiết sau
dài vlon viết sau =))
Tổng hợp những thứ sẽ có trong Pentest
Ngoài ra:
https://hackemall.live/index.php/2020/04/26/web-application-security-roadmap/
https://hackemall.live/index.php/2020/08/08/pentester-roadmap/
Java
C#/.Net
Refer:
https://hackemall.live/index.php/2020/04/26/web-application-security-roadmap/
https://hackemall.live/index.php/2020/08/08/pentester-roadmap/
Hack to learn, not learn to hack!