những điểm cốt lõi tôi muốn chia xẻ với bạn trong loạt bài những cuộc đối thoại với rookie. Loạt bài này không có dụng đích phân tích kỹ thuật (mặc dù để hình thành nội dung bài viết chắc chắn không thể thiếu những chi tiết về kỹ thuật). Nó được khai triển ở dạng trò chuyện, trao đổi giữa hai (hoặc nhiều nhân vật) xen vào những chi tiết kỹ thuật. Những nhân vật này là tổng hợp từ tính cách của nhiều nhân vật có thật. Tuy nhiên, ngôn từ trao đổi trong bài viết đã được điều chỉnh và xây dựng lại cho thích hợp với tình tiết của các mẩu chuyện.
Trang 1TÀI LIỆU THAM KHẢO NHẬP MÔN HACKING - HVA
FORUM
Trang 2CHAP 1
1 Mở đầu:
Tôi không nhớ rõ bao nhiêu lần tôi nhận được thông điệp với dạng "Anh chỉ cho em cách hack với" Những thông điệp này đến từ e-mail, offline message của Yahoo, personal message trên diễn đàn v v Điều lý thú là những người gởi thông điệp này có khả năng và kinh nghiệm về CNTT ở mức độ khác nhau (sau khi tôi thử tìm hiểu và tiếp xúc để biết được điều này) Lý do tại sao những câu hỏi như trên được đặt ra quá nhiều? Họ hiểu thế nào là "hack"? Họ muốn
"hack" để làm gì? Họ tìm tòi những gì về "hack"? Lúc bắt đầu tiếp cận với các câu hỏi thế này, tôi cố gắng giải thích ít nhiều (trong phạm vi cho phép) nhưng dần dà, tôi đâm ra nản vì biết chắc những điều tôi trả lời không có kết quả hoặc tác dụng gì cả Tuy vậy, những cuộc trao đổi này dẫn tôi đến chỗ thích thú khai phá, tìm tòi tâm lý của những người đặt câu hỏi Tôi nhận ra vài điều lý thú:
- những lối mòn của cách suy tư (nếu có suy tư)
- khả năng tiếp cận và hình thành giải pháp cho vấn đề
- ý muốn đào sâu và rèn luyện
Đây là những điểm cốt lõi tôi muốn chia xẻ với bạn trong loạt bài "những cuộc đối thoại với rookie" Loạt bài này không có dụng đích phân tích kỹ thuật (mặc dù để hình thành nội dung bài viết chắc chắn không thể thiếu những chi tiết về kỹ thuật) Nó được khai triển ở dạng trò chuyện, trao đổi giữa hai (hoặc nhiều nhân vật) xen vào những chi tiết kỹ thuật Những nhân vật này là tổng hợp từ tính cách của nhiều nhân vật có thật Tuy nhiên, ngôn từ trao đổi trong bài viết đã được điều chỉnh và xây dựng lại cho thích hợp với tình tiết của các mẩu chuyện
Trang 3Xin lưu ý rằng, những vấn đề được đưa ra trong chuỗi bài này nhằm thúc đẩy kỹ năng tiếp cận vấn đề, nghiên cứu và giải quyết vấn đề Bởi thế, mọi giải đáp cho thắc mắc (nếu có) đều tìm thấy từ việc đọc và suy nghĩ kỹ lưỡng
2 Gặp gỡ:
Chiều nay, một buổi chiều Chủ Nhật, rảnh rỗi và yên tĩnh Tôi mở máy và log vào Yahoo Instance Messenger (đã gần một tuần lễ tôi không vào YIM) Chà,
có vài cái "thỉnh cầu" đưa tên tôi vào danh sách YIM của ai đó Thử xem nào ngoại trừ một "thỉnh cầu" khá ngổ ngáo, tôi tiếp nhận các thỉnh cầu còn lại Trong số "thỉnh cầu" này, có một cái làm tôi chú ý Người thỉnh cầu có cái "nick" khá ngộ nghĩnh là "cuti" và thông điệp thỉnh cầu như sau: "nếu không phiền, xin phép anh add em với Em có một số thắc mắc muốn nhờ anh chỉ dẫn, Nghe nói anh khó tính lắm nhưng em cũng liều một phen."
Tôi mỉm cười và nhấn nút "accept" và sau đó gởi đi thông điệp "Được, anh khó tính lắm Thử xem! Và đây là điểm khởi đầu của những cuộc trò chuyện giữa tôi và "cuti"
Trang 4Tôi chuyển trạng thái YIM của mình sang "invisible" vì không muốn trò chuyện lúc này Tôi muốn kiểm tra mail và duyệt web để tìm một số thông tin cần thiết Chừng năm phút sau, tôi nhận được một thông điệp nhấp nháy Tôi mở ra và thấy rằng "cuti" vừa trả lời:
"Cám ơn anh đã add em, khi nào anh online, cho em biết với!"
Tôi muốn "thử" anh chàng một phát, bèn trả lời như sau:
"Anh đã online, nhưng anh chưa nói chuyện được, em chờ được không?
"cuti" hồi đáp:
Ồ may quá, may quá dạ được chứ Trưa Chủ Nhật em chẳng có chuyện gì đâu Khi nào rảnh cho em biết với"
Tôi yên lặng, thâu gọn cửa sổ của YIM và tiếp tục kiểm tra mail, trả lời mail Gần nữa giờ trôi qua, tôi quên bẵng có "cuti" đang chờ Tôi mở cửa sổ YIM lên xem và thấy "cuti" vẫn còn online Tôi gởi cho anh chàng một thông điệp:
"Chà, nãy giờ chat đã đời rồi hả? Anh rảnh rồi, em cần hỏi gì?"
Tôi không ngờ trong tích tắt "cuti" đã trả lời tôi ngay Điều này chứng tỏ cu cậu không bận rộn và quả thật đang chờ Nó cũng chứng tỏ cu cậu là một "cao thủ" gõ chữ vì trong tích tắc tôi đã nhận được thông điệp như sau:
"Dạ, em đâu có chat, chỉ đang duyệt mấy trang web thôi Em có vài thắc mắc là nếu mình muốn học hỏi, tham khảo tài liệu, cứ cho là mình đã có một mớ sách, cách nào để giúp mình nhớ được mọi thứ trong đống sách đó? À mà, anh cho phép em hỏi thăm anh bao nhiêu tuổi để tiện xưng hô Nếu anh không muốn nói cũng không sao"
Trang 5Tôi mỉm cười thầm nghĩ "cu cậu này liếng lắm, muốn nói chuyện phương pháp và rào trước, đón sau" Tôi trả lời:
"Anh nghĩ là anh lớn hơn em đó, em thấy xưng hô thế nào tiện thì xưng hô nhưng có lẽ nên xưng anh em thì hay nhất vì anh đoán em nhỏ tuổi hơn anh."
"cuti" nằng nặc muốn rõ chuyện tuổi tác:
"Nhưng em muốn biết mà, lỡ xưng hô không phải đạo thì kẹt lắm!"
Tôi trả lời:
"Được rồi, nếu em muốn biết thì anh mem mém tứ tuần."
"cuti" im lặng một chặp, có lẽ cu cậu nghĩ ngợi gì đây Sau đó, một thông điệp khác đến từ "cuti" như sau:
"Ùm thôi, để cháu gọi chú bằng chú đi, chú chỉ kém ba cháu có vài tuổi, gọi bằng anh kỳ cục sao đó!"
À, hoá ra cu cậu im lặng một chặp là vì lý do này Tôi mỉm cười trả lời:
"Thôi đi, chú với chả cháu Xưng anh em vui hơn!"
Trang 63 Khai mở:
Tôi tiếp tục giải đáp thắc mắc của "cuti":
"Về việc đọc và nhớ những gì mình đọc thì như thế này Để có thể đọc và nhớ, em phải tập cho mình thói quen tổng kết những gì mình đọc được ở dạng ngắn gọn và có hệ thống nhất có thể được (trong khả năng của em) Đây là một kỹ năng hẳn hòi và nó cần sự rèn luyện liên tục Ví dụ, đọc xong một chương, thử tóm tắt lại chương này đề cập những chuyện gì? những điểm cốt lõi của nó nằm ở đâu? Nếu chưa có thói quen tổng kết trong não thì thử tổng kết trên giấy Ghi lại những điểm mình nắm được Đừng ngại sai đúng, đủ thiếu gì cả Sau đó so sánh lại với thông tin trong sách xem thử mình thu thập được bao nhiêu sau lần đọc thứ nhất Sau một thời gian, chắc chắn khả năng này sẽ thay đổi."
"cuti" trả lời ngay:
Trang 7"Ôi trời! sao mà khó vậy?"
Tôi phá lên cười và hỏi tiếp:
"Em đã thử chưa mà thấy khó? Em tự xét xem em có đủ kiên nhẫn để đạt được điều mình muốn không?"
Lần này "cuti" im lặng khá lâu, chứng tỏ cu cậu đắn đo lắm trước khi trả lời Tôi biết cu cậu không chat với ai khác bằng YIM bởi vì thanh "status" của YIM không hiển thị thông điệp "cuti is typing a message" Tôi thong thả đốt điếu thuốc và chờ Gần hai phút sau, "cuti" mới hồi đáp một câu:
"Cho em nói thật cái này nha? Em thấy là anh không khó tánh như người ta nói nhưng nói chuyện với anh em bị cảm giác căng thẳng vì phát biểu không cẩn thận sẽ bị anh "bẻ" ngay."
Tôi cười phá lên và đáp:
"Em sắc sảo đấy Anh chả khó tính tí nào Có lẽ em bị 'chạm' vì anh hỏi vặn lại 'em thử chưa mà thấy khó?' chứ gì? Câu hỏi đơn giản này của anh hàm chứa một điều như sau: đừng xét vấn đề dựa trên cảm tính mà hãy xét nó một cách khoa học Hãy cân nhắc, thử nghiệm, rút tỉa rồi mới hình thành ý kiến của mình
về một vấn đề nếu như vấn đề ấy mình chưa bao giờ kinh qua Rõ ràng là em chưa hề thử qua cách đọc, suy nghĩ và tổng kết bao giờ thì làm sao em có thể kết luận ngay 'sao mà khó vậy?' Cho nên câu phát biểu này theo anh thấy, nó đầy cảm tính Đây là một trở ngại đầu tiên và thường thấy, nó sẽ làm em chùn bước trước những cái còn 'khó' hơn nhiều À mà em vẫn chưa trả lời câu hỏi của anh là em có đủ kiên nhẫn hay không?"
"cuti" trả lời:
Trang 8"Có lẽ em suy nghĩ quá đơn giản Thông thường nếu em nói là 'cái đó khó quá' thì người đối diện hay trả lời là 'khó thì thôi' chớ ít ai hỏi ngược lại 'chưa thử
mà biết khó hay sao?' Cái này làm em chột dạ, nhưng không sao, em phải làm quen với lối suy nghĩ và cân nhắc vấn đề này Còn chuyện kiên nhẫn hay không thì hy vọng em có đủ kiên nhẫn."
Tôi đáp:
"Vậy thì tốt Thử dùng cái kiên nhẫn của em, tìm ngay một cuốn sách nào đó, về vấn đề gì đó em rất thích Đọc và thử nghiệm cách tổng kết rồi cho anh biết kết quả ra sao nha?"
4 'hack' là gì?
"cuti" vui vẻ trả lời:
"hi hi, nhất định rồi Để tối nay em 'thử nghiệm' xem sao À mà đúng ra em muốn hỏi anh câu này ngay từ đầu nhưng hơi ngại Anh có thể chỉ em cách hack được không? Em mê 'hack' lắm á, em muốn học mà chẳng biết bắt đầu từ đâu
Tôi có phần cụt hứng khi nhận được câu hỏi này, không phải là vì "cuti" đề cập đến chuyện hack mà cách "cuti" hỏi về chuyện hack trong một câu ngắn gọn đến thế Tôi hỏi thêm:
"Em hiểu thế nào là 'hack' vậy? May mà em không hỏi câu này ngay từ đầu không thì anh lại 'bẻ' cho hụt hơi"
"cuti" trả lời ngay:
"Ồ, hack hả anh? anh hỏi theo kiểu mẹo hay hỏi thiệt vậy? Hack là gì ai mà không biết?"
Trang 9Tôi gõ ngay câu trả lời:
"Ừa, vậy mà anh vẫn muốn biết em hiểu thế nào là 'hack' Em thử trả lời anh xem?"
"cuti" tỏ vẻ đắn đo vì cu cậu im lặng vài chục giây rồi mới trả lời:
"Ùm em nghĩ rằng hack là thâm nhập vào một máy nào đó phải không anh?"
Tôi phá lên cười vì tính thành thật và đơn giản của "cuti" trong khi gõ thông điệp trả lời cho cu cậu:
"Em lầm rồi, 'hack' không phải và không chỉ đơn giản là 'thâm nhập vào một máy nào đó'!"
Cu cậu hồi báo ngay:
"Anh lại trêu em rồi Thôi đi, bày cho em cách hack đi mà."
Tôi trả lời:
"Không đâu, anh nói thật Em hiểu sai về 'hack' rồi đó!"
Lần này "cuti" thật sự sửng sốt:
Trang 10"Vậy theo anh 'hack' là gì? Em hy vọng là anh không trêu em tội nghiệp."
Tôi mỉm cười trả lời:
"theo anh? Vậy ý em theo anh nghĩ thì khác, theo em nghĩ thì khác và theo ai đó nghĩ thì khác về khái niệm 'hack' là gì phải không? Nếu vậy thì theo anh, chỉ
có hai khả năng: hiểu đúng về cái gọi là 'hack' hoặc hiểu chưa đúng về cái gọi là 'hack', thế thôi
Theo anh (hiểu), 'hack' là sự sửa đổi nào đó có dụng đích rõ ràng trên hệ thống (trên nền tảng của hệ thống, trên cơ chế làm việc của hệ thống ) và sửa đổi này làm thay đổi 'thái độ' làm việc của hệ thống ấy 'Sửa đổi' này là một trong những biểu thị của việc 'hack' 'Thái độ' này đúng hay sai, thiện hay ác, ngắn hay dài là chuyện khác "
"cuti" im lặng khá lâu Có lẽ cu cậu đang "tiêu hoá" đoạn định nghĩa lỏng chỏng của tôi Sau một hồi, "cuti" trả lời:
"Chà, phức tạp quá vậy? nhưng việc thâm nhập vào một máy nào đó cũng là 'hack' theo định nghĩa của anh cơ mà?"
Tôi cười đáp:
"Không đâu em, nếu em phân tích kỹ hơn một tí thì sẽ thấy điểm khác biệt ở đây
a 'hack' là sự thay đổi nào đó đến hệ thống Điều này có nghĩa em phải có quyền truy cập, sử dụng rồi mới có thể thực hiện sự thay đổi Ít nhất em phải có một chủ quyền nào đó, dù nhỏ bé nhất, mong manh nhất thì mới có thể 'hành động' được
b thâm nhập vào một máy nào đó có nghĩa là em ở trong giai đoạn trước khi xác định được chủ quyền cần thiết để thực hiện 'hành động' hack."
Trang 11Nói một cách khác, phải có a thì mới có b
Lần này "cuti" im lặng khá lâu Tôi để yên cho cu cậu nghĩ ngợi thoả thích Sau một hồi, "cuti" hỏi tiếp:
"Nếu thế thì việc thâm nhập vào một máy nào đó bao gồm 'hành động' hack chớ chính nó không phải là 'hack'? Mình gọi chung chung tất cả là 'hack' không được sao?"
Tôi đáp:
"Đúng vậy, nếu như em muốn xét vấn đề trên phương diện hiện tượng thay vì phương diện thứ tự thời gian Việc gọi như thế nào không quan trọng bằng việc hiểu thực chất vấn đề là ở đâu."
"cuti" hồi đáp ngay:
"Hình như anh đang chỉ cho em chỉ phần lý thuyết mà thôi? Em cố gắng hình dung việc áp dụng lý thuyết này vào thực tiễn nhưng sao thấy mù mờ quá."
Tôi trả lời:
"Được rồi, hãy xét xem một vài trường hợp anh nghĩ thuộc dạng 'hack'
Trang 12a nếu em thay đổi một giá trị trong Windows registry để đạt được mục đích nào đó hoặc 'mở' ra thêm một chức năng nào đó mà Windows không có ở chế độ mặc định Đây chính là 'hack' Để có thể thực hiện chuyện này, em phải được phép (có quyền) khởi động lệnh regedit Nếu không, hành động 'hack' này không thể xảy ra
b tương tự cho hệ thống *nix, nếu những giá trị mặc định nào đó trong /proc system của Linux không ứng hiệu theo ý em, khi em thay đổi chúng có nghĩa là
em đã 'hack' Để làm được chuyện này, em phải có chủ quyền nhất định
c em có thể duyệt một trang web nào đó nhưng không thể thay đổi 'thái độ' của nó (cách hiển thị, giá trị hiển thị ) Tuy nhiên, để ứng dụng web (của trang web này) hiển thị những thứ khác hơn (đáng lẽ ra nó không được hiển thị như thế), em phải tác động đến nó bằng cách này hoặc cách khác (dùng telnet, dùng netcat, dùng string ngay trên chính trình duyệt ) Để làm được chuyện này, em phải có chủ quyền nào đó
Trong phạm vi truy cập, nếu em có thể duyệt trang này, ít nhất em đã có chủ quyền như một guest và ít nhất, em đã truy cập được vào trang web trước khi có thể thực thi một 'hành động' nào đó Làm guest có giá trị chủ quyền nhất định
Nói một cách tổng quát, giả sử dịch vụ cho phép truy cập nhưng lại đòi hỏi tên người dùng và mật khẩu hẳn hòi, em hoàn toàn không có chủ quyền nếu như
em duyệt trang web này với tư cách guest Nói một cách khác, cơ hội để em 'hack' (hay tạo một tác động nào đó) trên web server này là rất thấp (hoặc giả không có) Tuy nhiên, nếu em phân tích tỉ mỉ thì thấy rằng, khi em truy cập vào một trang web đòi hỏi xác thực danh tánh, sẽ có giai đoạn em vẫn là guest và vẫn có thể tác động đến web server (để thực thi giai đoạn xác thực danh tánh) Giai đoạn ngắn ngủi này là chổ trống (có thể) để em tạo một tác động gì đó đến máy chủ (hay còn gọi là 'hack')
Trang 13"cuti" trả lời (kèm theo một emotion icon biểu thị cho sự 'buồn bã'):
"Chà, càng lúc càng rối bòng bong cả lên Nếu vậy, em muốn thâm nhập vào một máy con nào đó trên Internet thì có nghĩa em phải có chủ quyền gì đó trên máy kia?"
Tôi cười đáp:
"Tất nhiên Nếu không em không thể 'hack' được Anh nhắc lại: 'hack' là một hành động chỉ có thể xảy ra khi có được chủ quyền, có thể truy cập đến mục tiêu mình muốn thâm nhập Đây mới chỉ là khái niệm tổng quát Nếu em muốn thâm nhập vào một máy nào đó trên Internet, em phải biết rõ máy đó là máy gì? nó chạy trên hệ điều hành nào? Kế tiếp em mới tìm hiểu xem em có thể truy cập nó vào vị trí nào và xem thử em có được chủ quyền gì? Nói trên bình diện thâm nhập xuyên qua mạng và dùng phương tiện truyền tải TCP/IP, lối vào duy nhất và hiển nhiên nhất là cổng dịch vụ Nếu dịch vụ không chạy > không có cổng Nếu không có cổng > không thể vào."
"cuti" nhăn nhó:
"Gì mà khó khăn, rắc rối vậy? Bộ không có một phần mềm nào đó, mình chỉ cần gõ tên hoặc địa chỉ của máy mình muốn thâm nhập và mình "chui' vào máy đó?"
Tôi phá lên cười và có phần thất vọng (sau khi cố gắng giải thích một cách có đầu đũa, có nguyên tắc với cu cậu) Tuy nhiên, tôi vẫn trả lời:
"Tất nhiên là có phần mềm làm những chuyện này ở mức độ nào đó Tuy nhiên, dựa vào phần mềm để làm chuyện này có lẽ không còn là 'hack' nữa nói theo khái niệm nãy giờ anh cố gắng trao đổi với em."
"cuti" cãi lại: