Try   HackMD

Roadmap WebSec Warrior

1. Kiến thức cần chuẩn bị (3-4 tháng)

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

I. Am hiểu về các ngôn ngữ lập trình

  • 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ả ở:

  • geeksforgeek

  • w3schools

  • 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.

II. Thành thạo sử dụng các hệ điều hành UNIX/LINUX

  • Lý thuyết thì distro, rcm Ubuntu, Kali khi mới bắt đầu. Sau này khi đã quen có thể tìm tới Fedora hoặc Arch.

Luyện tập:

III. Networking

  • Đơn giản thì không hiểu được cấu trúc của một hệ thống thì khó mà đánh giá được mức độ ảnh hưởng và chọn bàn đạp tấn công sâu.

Luyện tập cơ bản:

Luyện tập chuyên sâu:

  • Tìm hiểu các kỹ thuật Port Forwarding, Tunneling ( icmp tunnel, ssh tunnel) and Privoting

Này trên mạng nhiều quá lười gắn link :D

2. Tiến cấp (2 năm)

I. Học và phân tích các lỗ hổng Web cơ bản nhất

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

  • Black box là một cuộc tấn công giống như tin tặc, bạn phải tự mình xử lý mọi thứ
  • Grey box cũng là một cuộc tấn công, nhưng với sự trợ giúp của khách hàng, author như xóa tường lửa ứng dụng web trước khi tấn công
  • White box là cung cấp nguồn để đọc và tìm lỗ hổng thông qua việc review source.

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:

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

  • Biết dùng Dockerizing (Optional)
    +, Docker - Docker là gì? Các thao tác với images, containers như start, stop, port binding,
    +, Dockerfile - Triển khai một project nhỏ bằng Dockerfile
    +, Docker-Compose - Triển khai một project bao gồm nhiều component bằng Dockerfile & docker-compose

III. Học Leo thang đặc quyền

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

IV. Học lỗ hổng nâng cao

  • 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:

V. Bổ sung kiến thức của các mảng khác

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.

VI. Đọc sách, CTF WarGame và CTF Competitions

1. Sách:

  • Web Hacking 101 của Peter Yaworski

  • The Web Application hacker's handbook: Discovering and Exploiting Security Flaws

image

  • The Web Application Hacker's Handbook - Finding and Exploiting Security Flaw

https://drive.google.com/file/d/1am-rh7bDHTRyGzboQ03NKKY-dFpd1ZNo/view?usp=sharing

image

2. CTF một cách nghiêm túc, CTF có tham vọng

  • Nếu tuần nào bạn cũng clear hết Web CTF trên mọi platform CTF thì không vô địch do bạn đen :D

Sẽ update chi tiết sau

3. Build Profile (3 năm)

1. Chọn con đường muốn theo

dài vlon viết sau =))

2. Pentester / Red Teamer / Bug bounty hunter / Researcher là làm gì?

Tổng hợp những thứ sẽ có trong Pentest

  • Website
  • Web Application
  • web API
  • Cloud sec
  • System
  • Web infra
  • Mobile
    Học ở: https://github.com/tsug0d/AndroidMobilePentest101
    Cần nắm bắt được:
    | ADB | Thành thạo về cách sử dụng adb |
    | Frida | Cách sử dụng frida, frida-ps để áp dụng các JS script cho mục đích exploit & bypass |
    | Hooking | Học cách đọc source code, thâm nhập & sửa đổi một số input parameter ở runtime code level |
    | SSL Cert Pinning & Bypass | Tìm hiểu các phương pháp SSL Cert Pinning hiện tại & các cách bypass tương ứng |
    | Root & VM detection & Bypass | Tìm hiểu các cơ chế Root & VM detection hiện tại & các cách bypass tương ứng |
    | SharedPreferences | SharedPref là gì? Có những gì có thể khai thác từ đó? |

Ngoài ra:

  • Pentest IOT
  • Pentest Firware

3. CVE, Certificate, BugBounty

  • Cái này thì nên đọc thêm các bài của Hack em all vì họ đã làm rất tốt về các vấn đề này. Nếu chưa thể tự đi kiếm CVE hay Bugbounty chúng ta có thể đi reproduce lại 1day, n-day,để quen tay từ đó phát triển kỹ năng cho các target lớn hơn.

https://hackemall.live/index.php/2020/04/26/web-application-security-roadmap/

https://hackemall.live/index.php/2020/08/08/pentester-roadmap/

  • Về target thì có thể tìm kiếm các framework thịnh hành như:

Java

  • Confluence
  • Jira
  • Zimbra
  • Liferay

C#/.Net

  • dotnetnuke
  • Umbraco
  • SharePoint
  • Kentico
  • Orchard Core

4. Expert (4-5 năm)

  • Tìm 0-day, CVE của các vendor nổi tiếng
  • Bug bounty hunter trên các nền tảng HackerOne, Bugcrowd, DevHunt, intigriti, yeswehack,
  • Tự viết tool để xài và chia sẻ cho anh em, bạn bè nếu muốn :v

Refer:
https://hackemall.live/index.php/2020/04/26/web-application-security-roadmap/

https://hackemall.live/index.php/2020/08/08/pentester-roadmap/

5. Lời cuối

image

Hack to learn, not learn to hack!