Muốn trải nghiệm viết shellcode, chèn payload thì phải biết về assembly. Yêu cầu tối thiểu. Nhưng nếu chưa biết thì sao? Đọc cuốn Reversing: Secrets of Reverse Engineering của tác giả Eldad Eilam do Wiley xuất bản, từ đầu tới cuối, mỗi ngày, luyện tập và hiểu thật sâu những gì nó viết trong đó. Tiếp tục, học NASM. Và cuối cùng luyện tập hàng ngày. Nếu có điều kiện, mua sách gốc học. Không có điều kiện, đi tìm và in ra sách giấy để đọc bất cứ khi nào cần. Hiệu quả nhất tự cổ chí kim vẫn là sách giấy.

Nhớ hồi trước học môn Hệ điều hành, tôi với thằng bạn hùn tiền đi in cuốn sách tiếng Anh Operating System Concepts hơn 900 pages để đọc =))))) Chuyện bình thường.

Ồ nếu viết vậy thì cái bài viết này tới đây hết là được rồi! =))))

Thật ra tôi cũng chưa vững lắm về assembly, nói thẳng ra là còn ngáo ngơ tập tành lắm. Nhưng kiên trì đọc, nhai và ngồi hàng giờ kiên trì, cũng có biết được chút ít. Phạm vi bài này chỉ là hướng dẫn gợi ý xây dựng cái môi trường sao để viết, chạy và tận hưởng cảm giác exploit nó vui thế nào.

Tất cả đều trên nền tảng máy ảo. Tôi đang xài máy ảo VMWare, tại do quen chứ không phải phân biệt gì hết. Cài nhiều máy ảo thì càng tốt, nhưng trước mắt, bạn chỉ cần 3 cái là đủ rồi. Thậm chí tôi chỉ xài nhiều nhất là 2 máy, mà càng về sau do tự giới hạn phạm vi học và tìm hiểu lại, tôi chỉ xài có một máy ảo Windows 7 mà thôi =))

Các máy ảo phải có là Windows XP, Windows 7 và Ubuntu. 2 cái Windows ta dùng để test sản phẩm trên môi trường Windows, sau này muốn test trên Linux thì dùng Ubuntu. Hoặc khi dùng nasm, không muốn giả lập thì nhảy qua Ubuntu nhờ nó assembler giúp.

Tiếp tục, cài gì trên các máy đó? Với 2 cái Windows, ta cài khá nhiều thứ tương đồng. Nên có một cái tool nhỏ giúp tìm địa chỉ của function sẽ dùng trong các thư viện DLL của Windows. Một tool nữa dùng để complie và build chương trình như DevC++. Tiếp tục, cài cygwin để giả lập các lệnh của Linux trong Windows. Nhớ chọn các gói gcc-core và nasm của thư viện Devel khi cài. Do cywin các bản sau 2.5 hết hỗ trợ XP, nên ta chỉ cần cài trên Windows 7 là đủ rồi.

Thể thôi, chia sẻ nhiêu đó thôi. Ở các bài sau, sẽ là bắt tay vào viết một cái shellcode thật thú vị nhưng đơn giản để minh họa.

VÕ TÌNH THƯƠNG

votinhthuong9@gmail.com

Advertisements