Trong phần này, mình sẽ giới thiệu sơ lược về các công cụ, công dụng của các công cụ đó mà mình đã từng sử dụng cũng như trong suốt quá trình mình trình bày trong series Learn PWN the hard way .
Hệ điều hành nhân Linux
Lạ nhỉ? Chủ đề đang nói về công cụ, tại sao lại nhắc đến tên của 1 nhân hệ điều hành trong này?
Có thể các bạn sẽ thắc mắc nhưng mà mình sẽ giải thích luôn là đối với 1 pwn-er nói riêng và những ai thích hacking/security nói chung thì việc sử dụng những phần mềm mã nguồn mở là điều nên tập làm quen dần trong những ngày mới tập tành bước vào IT. Có thể ở Việt Nam, việc sử dụng hệ điều hành Linux là khá ít ỏi nhưng mà khi bạn đã sử dụng quen chúng, các bạn có thể tùy ý điều chỉnh hay trong giới gọi là "mod" lại theo ý thích của mình, có thể bảo mật hơn, an toàn hơn Windows rất nhiều.
Ngoài ra, Linux là 1 "công cụ" chứa những công cụ khác phục vụ cho công việc IT rất nhiều. Đa số những công cụ dành cho dân hacking/security đều được viết trên nền tảng Linux. Có thể trên Windows có Cygwin hay những phần mềm khác giả lập 1 terminal của Linux nhưng chắc chắn là chúng không thể nào ổn định được như trên Linux.
Bạn có thể sử dụng Ubuntu, Linux Mint, Debian, CentOS, Fedora, ArchLinux, .. không quan trọng. Vấn đề ở đây là bạn phải biết Linux là gì? Tập quen dần với Linux, tập sử dụng Linux, nhớ các câu lệnh, .. Mình sẽ có 1 series riêng về vấn đề học Linux này sau.
Hãy chọn 1 distro Linux, cài đặt và làm bạn với nó như đã từng làm bạn với Windows vậy
.
GDB-PEDA
GDB-PEDA là công cụ debugging luôn luôn phải có trong máy của 1 pwn-er, đây là 1 bộ công cụ đầy đủ các chức năng cần thiết nhất như generate shellcode, pattern, xem thông tin các thanh ghi, ..
GDB là công cụ được cài đặt mặc định trên hầu hết các distro Linux thông dụng hiện nay. Các bạn chỉ việc cài thêm gói PEDA vào để sử dụng.
Ngoài ra, GDB còn giúp hỗ trợ cho IDA khi cần để debug các file thực thi trên Windows.
Mình sẽ có 1 series riêng về công cụ GDB này ở phần khác.
Link download: GDB-PEDA
Pwntools
Đây là bộ CTF Framework được viết bằng Python hỗ trợ cho mảng Pwnable.
Đối với mình thì bộ framework này cũng không cần thiết cho lắm, nó hỗ trợ các payload, các exploit cần thiết khi bạn exploit 1 hệ thống, ngoài ra còn hỗ trợ các kết nối socket đến hệ thống, tiện dụng hơn khi sử dụng các thư viện socket
. Nhưng theo mình thấy, đối với những ai mới biết về pwn thì các bạn nên dùng tay, để hiểu được việc tính toán các địa chỉ, làm quen với code và thuật toán rồi sau đó mới sử dụng pwntools.
Cái gì tự động hóa quá thì cũng không tốt lắm
.
Cũng như trên, mình sẽ có 1 series riêng về bộ framework này. Mặc dù có file doc nhưng mà cũng nên làm 1 cái gọi là tutorial cho các bạn mới biết có thể hiểu được
.
Link download: Pwntools
IDA
IDA thì mình cũng ít xài đến, chủ yếu là do đồ họa nhìn đẹp hơn GDB với nó có đồ thị các function và plugin chuyển qua mã giả C.
Mã giả C có thể không tham chiếu đúng từ ASM nhưng cũng dễ đọc và gọn hơn ASM nhiều, mình có thể dò tìm các function lỗi trong đó dễ dàng hơn.
Bộ công cụ này chỉ có trên Windows thôi nhe.
Link tham khảo: IDA
Các công cụ khác
Mình chưa đi chuyên sâu vào pwn nên có thể có các công cụ khác nhưng mà mình chỉ xài nhiêu đây công cụ vì như ở trên đã nói là Cái gì tự động hóa quá sẽ không tốt. Mình chỉ xài các công cụ có chức năng bao quát các công cụ khác như IDA mình không xài chức năng ASM Debug vì GDB đã có rồi, hay mình không xài Immune Debugging hay OllyDbg vì nó cũng có những chức năng tương tự như IDA hay GDB.
Ngoài ra mình có thể giới thiệu thêm 1 số công cụ mà mình biết nhưng chưa sử dụng qua, nếu các bạn đã sử dụng và thấy hay thì chia sẻ với mọi người nữa nhe
.
Các công cụ khác:
- OllyDbg: Công cụ debugging cho Windows. (Anh kienmannowar có 1 series vì công cụ này rất hay).
- JD-GUI: Công cụ decomplier các file .class
của Java.
- Hopper: Công cụ debugging cho Linux, Windows, OSX.
- androguad: Công cụ phân tích các phần mềm trên Android.
- ...