Marcus1337
VIP Members
-
01/04/2021
-
62
-
76 bài viết
Hành trình đỗ OSCP ở lần thi đầu tiên (Phần 1)
Xin chào tất cả các bạn từ bài trước mình đã giới thiệu tổng quan về OSCP. Còn ở bài viết này mình xin được viết lại hành trình và chiến lược mình ôn thi OSCP hi vọng có thể giúp các bạn có một hướng nhìn khác, và có thêm kinh nghiệm khi ôn luyện OSCP. Bài viết này sẽ không phải chỉ có quá trình màu hồng mà mình sẽ hơi lan man chút về những sai lầm của mình mong có thể giúp các bạn rút kinh nghiệm.
Dù đã có ý định ôn thi OSCP từ trước đó khá lâu nhưng đến giữa năm 2021 mình mới có thời gian và cơ hội học. Từ đầu năm 2021, mình bắt đầu tìm hiểu về OSCP bằng cách đọc các blog giới thiệu về cách học cách thi, xin được quyển sách giáo trình OSCP từ những người đi trước để tự nhủ đọc trước rồi đến lúc bỏ tiền ra mua thì đã học được cơ bản lý thuyết và chuyển qua làm luôn phần thực hành. Nhưng dự định mãi chỉ nằm ở dự định vì sự lười nhác của bản thân nên đến tận tháng 05/2021 mình cũng chỉ dừng lại đọc được ở vài trang sách đầu tiên. Đúng là khi không có gì để thúc đít mình thì thật khó để tập trung
Tháng 5: Khởi nguồn
Giữa tháng 05/2021 mình xin được hỗ trợ từ công ty và quyết định mua khóa OSCP với thời gian lab thực hành là 3 tháng. Thời điểm này mình như một trang giấy trắng và bắt đầu với kiến thức gần như bằng không.
Sau khi mua lab thì mình mới bắt đầu nhận bộ tài liệu và bỏ thời gian đi đọc quyển sách OSCP file pdf với chiến lược là mình sẽ lướt qua một vòng lý thuyết trước rồi mới bước chân vào làm làm. Tất nhiên các bạn phải đọc sách vì trong sách ngoài các kiến thức về các kỹ năng khai thác thì sẽ có thêm các phần giới thiệu về khóa học, cách sử dụng lab, hỗ trợ và luật của cuộc thi sẽ giúp bạn hiểu rõ hơn về OSCP và các quy định, môi trường học tập của nó.
Vì mình đã đi làm nên khoảng thời gian ôn thi phần lớn của mình là vào buổi tối và cuối tuần đấy là chưa kể sẽ có những việc khác xen vào. Thời gian đầu ôn thi mình đang khá thoải mái vì mình có nhiều thời gian mình mua tận 3 tháng lab mà? Với quỹ thời gian đó cộng với sự lười nhác mình đã mất tận 2 tuần đầu tiên chỉ đọc quyển sách OSCP.
Tháng 6: Ăn chơi và sai lầm
Sau khi hoàn thành hơn 800 trang sách PDF thì theo lý thuyết mình có tận 2,5 tháng để cày lab và đang còn khá nhiều thời gian nên tâm lý của mình cũng không lo lắm. Mặc dù sau khi đọc xong sách mình vẫn chưa nắm được phương pháp chính để làm một bài lab. Bạn tưởng tượng lúc này bạn có tất cả các nguyên liệu nhưng làm sao để ghép đống nguyên liệu này thành một món ăn là một chuyện hoàn toàn khác.
Thời gian này do đang có nhiều thời gian với bận việc công ty, đi làm về thử mò mấy bài lab lại bí ý tưởng, không biết bắt đầu từ đâu nên mình bắt đầu thấy chán. Cái này sẽ giống y hệt các bạn muốn chơi CTF nhưng khi gặp một bài CTF bạn biết chắc phải làm những gì mặc dù cũng bỏ thời gian đọc qua mấy dạng lỗ hổng, hay đọc 1 tá writeup? Vấn đề ở đây là do mình chưa hình thành được phương pháp để làm, tất nhiên sau này khi nắm được phương pháp thì việc này lại không còn làm khó các bạn nữa. Giữa lúc cái đầu đang mệt vì công việc rồi khói bụi Hà Nội lại tiếp xúc cái mệt hơn tất nhiên mình sẽ chọn đi ngủ, rồi đi chơi (một chút ngụy biện cho cái sự lười của mình thôi )
Đây là sai lầm trong tháng đầu tiên. Thực sự, do mình chưa có phương pháp học đúng, cân bằng giữa công việc, cuộc sống và ôn thi trong tháng đầu tiên và cũng một phần do chủ quan mình còn nhiều thời gian cho nên kết thúc tháng đầu tiên mình chỉ làm được 2-3 lab OSCP bằng cách lượn lờ lên diễn đàn lấy hint chứ không làm được trọn vẹn từ đầu đến cuối.
Thời gian này do đang có nhiều thời gian với bận việc công ty, đi làm về thử mò mấy bài lab lại bí ý tưởng, không biết bắt đầu từ đâu nên mình bắt đầu thấy chán. Cái này sẽ giống y hệt các bạn muốn chơi CTF nhưng khi gặp một bài CTF bạn biết chắc phải làm những gì mặc dù cũng bỏ thời gian đọc qua mấy dạng lỗ hổng, hay đọc 1 tá writeup? Vấn đề ở đây là do mình chưa hình thành được phương pháp để làm, tất nhiên sau này khi nắm được phương pháp thì việc này lại không còn làm khó các bạn nữa. Giữa lúc cái đầu đang mệt vì công việc rồi khói bụi Hà Nội lại tiếp xúc cái mệt hơn tất nhiên mình sẽ chọn đi ngủ, rồi đi chơi (một chút ngụy biện cho cái sự lười của mình thôi )
Đây là sai lầm trong tháng đầu tiên. Thực sự, do mình chưa có phương pháp học đúng, cân bằng giữa công việc, cuộc sống và ôn thi trong tháng đầu tiên và cũng một phần do chủ quan mình còn nhiều thời gian cho nên kết thúc tháng đầu tiên mình chỉ làm được 2-3 lab OSCP bằng cách lượn lờ lên diễn đàn lấy hint chứ không làm được trọn vẹn từ đầu đến cuối.
Tháng 7: Hành động và sữa chữa sai lầm
Sau tháng đầu tiên trôi qua chóng vánh mà kết quả thu lại chẳng được bao nhiêu, thời gian lab thì chỉ còn hơn 1 tháng nữa, không còn nhiều với quỹ thời gian vừa làm vừa tranh thủ học. Sau sai lầm này mình dừng lại lang thang trên mạng đọc kinh nghiệm của những người đi trước (ví dụ bài 1, bài 2). Mình rút ra được 2 cái gốc rễ của vấn đề mình đang gặp phải:
- Mình chưa nắm được phương pháp làm bài. Tức là khi gặp một bài lab mình chưa biết cách recon hiệu quả, chưa biết tận dụng các thông tin và còn rất yếu về việc leo quyền. Lúc này, 1 lab đi xa nhất mình mới chỉ dừng lại là tìm cách lên được shell với quyền local user. Còn lại là nhờ hint lấy được trên diễn đàn. Vậy mà nhiều khi đọc hint mình còn không hiểu. Vì các lab OSCP thường sẽ không có writeup public nên khá mông lung khi mình chưa có phương pháp, nếu có các hint thì lúc đó bạn chỉ biết làm theo mà không nắm được gốc rễ vấn đề do đó gặp các bài lab khác thì cũng sẽ rơi vào vòng lặp tương tự là không biết bắt đầu từ đâu. Mà lúc mình không nắm được phương pháp cứ làm mà không hiểu thì rất dễ nản, xong lại chán.
- Quản lý thời gian cân bằng được giữa công việc, cuộc sống và ôn thi để mình có nhiều năng lượng và thời gian nhất dành cho việc ôn thi.
Cũng khá may mắn là thời điểm này Hà Nội bắt đầu giãn cách xã hội nên thay vì ngày nào cũng phải đi lên công ty thì mình chỉ làm remote và có thời gian reset bản thân và sắp xếp lại công việc. Còn vấn đề phải thay đổi phương pháp học thì mình đã đưa ra một quyết định là mình sẽ không làm mấy bài LAB trong gói thực hành đi kèm của khóa OSCP nữa mà chuyển qua làm trên các nền tảng có các lab tương tự như hackthebox, vulnhub bởi trên này các bài viết có rất nhiều writeup và cộng đồng support nhiều hơn nên đối với những người mới bắt đầu thì luyện tập trên này sẽ bớt bỡ ngỡ hơn và có hướng đi rõ ràng hơn.
Mình bắt đầu đăng ký tài khoản VIP của hackthebox để có thêm nhiều lab luyện tập. Mấy tuần đầu thì mình sẽ làm lab theo dạng vừa làm vừa xem writeup để nắm được các dạng và phương pháp làm bài. Đối với ý kiến cá nhân mình thì thời gian đầu các bạn nên vừa làm vừa xem writeup để tiết kiệm thời gian và học được cách làm của người khác vì ở giai đoạn mới bắt đầu này hầu như các bạn chưa có kinh nghiệm nên dành thời gian nhiều tryhard thường sẽ dẫn tới dễ nản mà kết quả mang lại không như mong muốn. Tất nhiên là càng về sau càng phải hạn chế xem writeup mà tự làm trước.
Trong giai đoạn đầu tiên mình đi theo các bài trên kênh Youtube. Kênh này cực kỳ hay và đã cho mình khá nhiều kinh nghiệm để bắt đầu 1 bài lab cần làm những gì và ngoài ra mình còn học được nhiều kinh nghiệm và kỹ năng sử dụng linux qua các bài lab.
Mình chỉ lựa chọn các bài có mức độ easy và medium trên hackthebox và có trên ippsec để luyện tập (các bạn không nên đâm đầu vào các bài từ mức HARD đổ lên ở giai đoạn đầu với 2 lý do: Một là các bài này sẽ khó không phù hợp khi mới bắt đầu tìm phương pháp học, lý do thứ hai là theo kinh nghiệm của mình thì nó có nhiều bài không sát quá hơn đề OSCP tất nhiên sau các bạn có thời gian cũng nên thử sức).
Khoảng 10 bài đầu tiên thì mình xem videos và làm theo hướng dẫn đồng thời ghi note lại cách làm. Sau khoảng 10 bài sau khi mình nắm được kha khá kinh nghiệm thì mình chuyển qua chiến thuật khác là mình sẽ tự làm trước xong sau đó tắc quá lâu hoặc mình đã làm xong thì mình mới chuyển qua xem hướng dẫn và writeup (nếu các bạn làm xong rồi cũng nên xem lại nhanh videos hoặc writeup vì biết đâu sẽ có các hướng khác cho bài đó và củng cố lại kiến thức cho bài mới làm).
Trong OSCP thường sẽ có 2 dạng OS là Linux và Windows thì chiến lược của mình là tách riêng 2 cái này ra. Mình không thích làm 1 bài Linux rồi nhảy sang làm 1 bài Windows vì nó có nhiều thứ khác nhau nên như thế cùng một lúc phải học rất nhiều thứ. Cho nên ở giai đoạn đầu mình muốn tách nhỏ công việc ra. Thời gian đầu mình chỉ tập trung làm các bài lab Linux (vì đối với mình Linux sẽ dễ hơn và mình biết nhiều hơn nên mình chọn cái mình biết để bắt đầu). Sau khi làm được kha khá các bài lab Linux đã nắm được cơ bản phương pháp làm một bài lab Linux thế nào mình mới dừng lại và chuyển sang chủ đề Windows. Khi nào cả Linux và Windows mình đã nắm kha khá thì mình mới chuyển qua giai đoạn là làm xen kẽ cả Windows và Linux.
Sau khi nắm được cơ bản về phương pháp làm từ recon, scan, lên shell, leo quyền, thì mình mới đi vào sâu học từng chủ đề nhỏ riêng hơn như học thêm các course leo quyền trên Linux, Windows để bổ sung thêm kiến thức và kỹ năng leo quyền. Còn chủ để buffer-overflow mình chuyển qua học sau cùng và cũng dành khoảng thời gian chỉ học mỗi BOF chứ không học xen kẽ. Tất nhiên đối với năm 2022 thì cấu trúc đề thi sẽ khác hơn như chú trọng AD ( Active Directory) thì các chủ đề bạn học và ưu tiên nó sẽ khác đi nhưng mình nghĩ các bạn nên tập trung cho từng chủ đề trong 1 khoảng thời gian nhất định chứ không nên học xen nhiều chủ đề cùng lúc sẽ gây loãng và khó khi mới bắt đầu. Khi có một lượng kiến thức nhất định các bạn nên chuyển qua giai đoạn luyện tập tổng hợp sau.
Mình tập cách ghi chú lại các bài mình làm được, các cheatsheet... mà mình tìm thấy từ các nguồn khác nhau. Về cơ bản các bạn có thể tìm thấy nào là check list, writeup và rất nhiều thứ có sẵn ở trên mạng nhưng các bạn cũng nên tạo riêng cho bản thân mình một bộ như thế. Vì biến cái của người khác thành của mình các bạn sẽ hiểu rõ hơn và tận dụng tốt hơn.
Mỗi ngày mình sẽ cố gắng làm trung bình từ 1 đến 2 lab và khoảng ít nhất 2 tiếng để ôn luyện OSCP (tất nhiên với những hôm có nhiều thời gian không phải đi làm thì có thể hơn). Kết thúc tháng 7 mình chưa làm được nhiều lab trên playground của OSCP nhưng bù lại mình đã nắm được phương pháp học và đã khá tự tin khi gặp một bài lab mình biết phải làm gì chứ không còn mông lung như trước đây.
Đến đây bài khá dài mình xin tách phần cuối trong bài viết tiếp theo hi vọng các bạn sẽ đón nhận.
Update: Phần 2
Còn nữa
Happy hacking
Happy hacking
Chỉnh sửa lần cuối: