13 bước để trờ thành Hacker chuyên nghiệp (How to become a professional hacker)


Nếu bạn có ý định trở thành một hacker chuyên nghiệp hoặc đơn giản chỉ là tò mò muốn biết các hacker đang học những gì, thì bài viết này dành cho bạn.

Trước tiên, bạn cần biết rằng hacking nói riêng và an toàn thông tin nói chung là những công việc cực kì khó và nặng nhọc. Chúng đòi hỏi tính kiên nhẫn cũng như kiến thức tốt. Nếu bạn không xây dựng một nền tảng vững chắc ngay từ đầu, bạn sẽ không bao giờ đặt chân vào con đường hacking thực thụ.

#1 Lập trình C

C Programming

C là một ngôn ngữ lập trình mạnh mẽ bậc nhất. Thành thạo ngôn ngữ C là rất cần thiết đối với lập trình viên nói chung và hacker nói riêng.

C là ngôn ngữ lập trình hướng cấu trúc. Với ngôn ngữ C, các tác vụ được chia thành từng phần nhỏ hơn và các phần nhỏ này được hoàn thành bởi một số đoạn mã. Khi học lập trình C, quan trọng nhất là bạn phải sử dụng biến con trỏ một cách thành thạo cũng như hiểu được cơ chế cấp phát bộ nhớ.

Nếu bạn muốn học C theo cách của hacker, hãy tham khảo cuốn Learn C The Hardway của Zed.A Shaw.

#2 Học thêm các ngôn ngữ lập trình khác

java

Với Hacker, ngoài C, anh ta vẫn cần thêm các công cụ đắc lực khác. Một trong số các công cụ đó là những ngôn ngữ lập trình bậc cao như Java, Perl, và đặc biệt là Python.

Học thêm các ngôn ngữ lập trình khác ngoài C giúp ích rất nhiều cho việc khai thác cũng như vá lỗ hổng của các ứng dụng.

Java là ngôn ngữ lập trình hướng đối tượng phổ biến nhất thế giới theo bảng xếp hạng Tiobe 2016. Nó được biết đến như là ngôn ngữ ổn định, manh mẽ, linh hoạt cùng với độ bảo mật rất cao. Tìm hiểu mô hình bảo mật áp dụng trong Java là cách nhanh nhất giúp bạn nắm được những nền tảng bảo mật áp dụng trong ngôn ngữ lập trình.

Perl là ngôn ngữ lập trình đa dụng khá linh hoạt, một số tính năng của Perl đưjc lấy ý tưởng từ C. Python nổi tiếng với cú pháp ngắn gọn, dễ học. Tuy cú pháp đơn giản nhưng Python có thể làm được nhiều thứ hơn bạn nghĩ: lập trình web, lập trình big data, viết tool automation,…

#3 Hệ điều hành UNIX

unix

UNIX là hệ điều hành đa nhiệm và đa người dùng, được thiết kế để mang lại độ tin cậy và bảo mật cho bất kỳ hệ thống nào sử dụng nó.

UNIX được phát triển bởi một nhóm nghiên cứu viên tại AT&T Bell Lab.

Cách tốt nhất để học về UNIX là cài đặt và chạy nó trên máy tính của chính bạn. Sau đó kiếm một cuốn sách kinh điển về nó, Unix in a nutshell của Arnold Robbins là một ví dụ.

Sau khi biết cách sử dụng UNIX, bạn nên tìm hiểu sâu về kiến trúc cũng như phần lõi của UNIX. Với mảng này, chúng tôi khuyên bạn nên đọc cuốn “The Design of the UNIX OS” của Maurice J. Bach.

Hiện nay, một số lượng rất rất lớn web server đang chạy các hệ điều hành nhân UNIX. Do đó việc sử dụng thành thạo và hiểu được design của UNIX là một kỹ năng không thể thiếu của lập trình viên nói chung và hacker nói riêng.

#4 Học thêm một hệ điều hành khác

windows

Ngoài tượng đài UNIX, các hệ điều hành Window cũng là một mục tiêu thú vị để tìm hiểu.

Có 2 lý do để bạn học Window:

  1. Các máy tính cá nhân đều sử dụng window.
  2. Hệ điều hành này có rất rất nhiều lỗ hổng.

Việc thực hành khai thác lỗ hổng vừa mang lại cho bạn kỹ năng hacking căn bản, vừa dạy cho bạn biết sự quý giá và tầm quan trọng của việc cập nhật Windows nói riêng và các phần mềm khác nói chung.

#5 Mạng máy tính

computer networking

Để chính thức đặt một chân vào thế giới Hacker, bạn cần thành thạo việc xây dựng, cấu hình, quản lý và khai thác mạng máy tính.

Một số kiến thức căn bản mà bạn cần nắm rõ gồm có: các mô hình mạng OSI, TCP/IP; các bộ giao thức sử dụng ở các tầng khác nhau trong mạng máy tính: TCP, UDP, Telnet, HTTP,… Quá nhiều thứ để liệt kê trong khuôn khổ của bài viết này. Vì vậy, bạn cần một cuốn sách về mạng máy tính. Chúng tôi gợi ý cuốn: Computer Networking: A Top-Down Approach By James F. Kurose and Keith W. Ross.

hacking network

Sau khi nắm được kiến thức mạng máy tính căn bản, hãy chuyển qua tìm hiểu các công cụ giám sát và dò quét trên mạng. Chúng tôi recommend một cuốn nữa cho bạn:  Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning

nmap hacking

#6 Khởi động bằng các tutorial

linux
Kali linux – một công cụ hacking khá phổ biến với nhiều tool đi kèm

Để trở thành Hacker, con đường ngắn nhất là …. bắt tay vào hack.

Tuy nhiên “động chạm” vào các hệ thống lớn không phải là chuyện dễ dàng khi có rất nhiều rào cản cả về mặt pháp lý lẫn chuyên môn  đối với newbie. Do đó, con đường tối ưu nhất là “tập hack” theo các kịch bản có sẵn.

Lời khuyên của chúng tôi: hãy bắt đầu với Kali Linux – một hệ điều hành kinh điển của nhiều hacker, được tích hợp hàng trăm công cụ phát hiện, khai thác và tấn công các lỗ hổng bảo mật.

#7 Mật mã học

cryptoghraphy

Nếu bạn muốn tiến thêm một bước nữa trong sự nghiệp hacking, bạn không thể thiếu kiến thức mật mã học.

Nhu cầu che giấu thông tin đã hình thành từ hàng ngàn năm trước với mật mã Caesar. Hiện nay, khi thông tin vẫn liên tục được truyền đi trên khoảng cách xa thì mã hóa là phương pháp an toàn duy nhất để bảo vệ thông tin.

Các phương pháp mật mã bảo vệ thông tin đảm bảo mã hóa và giải mã các dữ liệu mật (tính bí mật) và cũng được dùng để khẳng định tính chân thực (xác thực) của nguồn dữ liệu và kiểm soát tính toàn vẹn của dữ liệu.

Việc nắm bắt được đặc tính, ưu nhược điểm của các công cụ mật mã hiện đại như hệ mật đối xứng, bất đối xứng, hàm băm, chữ ký số… là yêu cầu tối thiểu đối với cả hacker mũ đen và mũ trắng.

#8 Thực nghiệm

hacking

Các chuyên gia của Tây lông đã thống kê rất chi tiết. Để trở thành chuyên gia của một lĩnh vực bất kỳ, bạn cần giành tối thiểu 10.000 giờ làm việc trong lĩnh vực đó.

Hacking không phải là ngoại lệ.

Việc thực hành liên tục và đều đặn là một yếu tố tiên quyết giúp bạn tiến tới cảnh giới cao hơn của một hacker.

Để bắt tay thực hành những gì đã học được, có lẽ thứ đầu tiên các bạn cần là một “phòng lab cá nhân” với đầy đủ trang thiết bị cần thiết. Ở mức đơn giản nhất, bạn cần chuẩn bị: máy tính cá nhân – tối thiểu 2 chiếc – cấu hình tương đối, đủ để chạy song song nhiều máy ảo trên đó; đường truyền Internet; các thiết bị mạng: Router, Switch (nếu có)….

Sau khi đã chuẩn bị đủ trang thiết bị và bắt tay vào làm việc, bạn cũng cần lưu ý 5 điều sau:

  1. Luôn backup hệ thống trước khi thử nghiệm bất kỳ thứ gì mới.
  2. Khởi đầu một cách nhẹ nhàng, cố gắng hoàn thành các mục tiêu nhỏ trước.
  3. Ghi chép lại quá trình hack một cách cẩn thận
  4. Không giới hạn bản thân nhưng phải biết điểm dừng
  5. Tự động hóa các công việc lặp đi lặp lại.

#9 Đọc sách của chuyên gia

book

Không cứ gì hacker, kỹ năng đọc là một trong số các kỹ năng cần thiết cho tất cả mọi người

Khi trở thành một Hacker, bạn luôn phải thu thập thông tin cũng như cập nhật kiến thức và kỹ năng của mình với tần suất nhiều gấp 4-5 lần người bình thường. Khi đó, kĩ năng đọc tốt (cụ thể là tốc độ đọc và khả năng cô đọng thông tin) sẽ mang lại cho bạn rất nhiều lợi thế trong việc dò quét và nắm bắt thông tin.

Bước đầu, bạn có thể luyện tập một số kỹ thuật đọc như Skimming hoặc chunk reading…

#10 Tham gia các cuộc thi

contest

Học đi đôi với hành. Và việc tham gia các cuộc thi hacking là cách nhanh nhất để tiếp cận và nâng cao khả năng xử lý các tình huống thực tế. Có khá nhiều công ty tổ chức các cuộc thi hacking, vừa nhằm mục đích kiểm tra lỗ hổng trong một sản phẩm nào đó, vừa nhắm tớiviệc thu hút và phát hiện nhân tài. Tại các sự kiện kiểu này, có rất nhiều hình thức thi đấu đa dạng như tấn công – phòng thủ, cướp cờ, mật mã học,…

Bạn có thể tham khảo danh sách 13 website thường xuyên tổ chức các cuộc thi hacking tại đây

#11 Lên level bằng việc tự phát hiện các lỗ hổng

vunerabilities

Lỗ hổng là một điểm yếu trong hệ thống, có thể được sử dụng để gây hại cho hệ thống và người sử dụng.

Việc dò quét, phát hiện lỗ hổng cũng là một cách tiếp cận kinh điển nếu bạn muốn tiến sâu vào thế giới bảo mật. Một số lỗ hổng nổi tiếng đến mức bạn có thể thực hành khai thác chúng ngay bây giờ: lỗ hổng MS 08-067 (dẫn tới việc máy tính bị điều khiển từ xa trái phép), lỗ hổng web server Apache (phiên bản dưới 2.0),….

Tuy nhiên việc đào bới các lỗ hổng cũ không phải là công việc của chuyên gia bảo mật thực thụ (và hacker thực thụ). Trong khi các hacker mũ đen cố gắng phát hiện và khai thác các lỗ hổng zero-day (lỗ hổng chưa được công bố) thì ở bên kia chiến tuyến, phe mũ trắng cũng tích cực dò quét và và các lỗ hổng kiểu này.

Điều tôi muốn nói ở đây là hãy cố gắng làm quen với việc phát hiện và vá các lỗ hổng mới, bởi công việc này có thể trở thành nguồn thu nhập chính cho bạn.

facebook
Lỗ hổng “bèo nhất” của facebook cũng được treo thưởng 500 USD

#12 Đóng góp cho các Open Source Security Project

Open Source
Chắc chắn bạn đã dùng ít nhất 1 sản phẩm trong danh sách này

 

Đóng góp cho các dự án nguồn mở sẽ đưa bạn lên một nấc thang nữa trong sự nghiệp. Không phải ai cũng đủ tâm và đủ tầm để làm được điều này. Bằng việc đóng góp chất xám của mình cho những sản phẩm nguồn mở, bạn đã góp một viên gạch để xây dựng cộng đồng Open Source ngày càng lớn mạnh. Và dĩ nhiên với một cộng đồng lớn mạnh, hoàn toàn có thể thay đổi thế giới.

#13 Học, học nữa, học mãi

Rome

Thành Rome không thể xây trong một ngày.

Chìa khóa của sự thành công chính là quá trình học hỏi KHÔNG NGỪNG.

————-

Bài gốc tiếng anh:

If you want to become a hacker or you choose the term hacker as the career option then this is the article for you.

A attitude of the master mind is required for the hacker to develop in the mindset.

Step 1: Learn To Program In C

C programming being one of the most powerful languages in computer programming, It is necessary to really master this language. This programming language was invented by Denise Ritchie in between the years 1969 and 1973 at AT& T Bell Labs. C programming will essentially help you divide the task in smaller pieces and these pieces can be expressed by a sequence of commands. Try writing some program on your own by assessing the logic.

There are hundreds of Free C Programming PDF & tutorials available on web to learn, however I would recommend you to start with a simple and well written c programming book of your choice and then read this book (C Programming Language
By Brian W. Kernighan and Dennis M. Ritchie) to understand the real power of c language.
This books is not an easy read however its a must read book to get in depth understanding for C Programming.

Step 2: Learn More Than One Programming Language

When you are trying to become a hacker, it is very important to learn other modern computer programming languages such as JAVA, Perl, PHP and Python. One of the best ways to learn these is by reading books from experts. It will also help to know about markup languages like XML, HTML and data formats such as Json, Protobuf and others which are common way to transfer data between client and server.

Java is one of the most popular programming languages. It has been claimed that its also very secure. Knowing Java security model will empower you to understand how this language achieve security. Learn about the security loop holes in Java language and related frameworks. Pick and read from many free PDF, tutorials and ebooks available to learn java online.

Perl is a general purpose dynamic programming language, which is high level and can be interpreted. This language borrows some features of C language. On the other hand, JAVA is concurrent, class based and objects oriented programming language. Python is really handy when you are trying to automate some repetitive tasks.

HTML is the mark up language based on which the web pages are designed, created and displayed. The web browsers read the HTML code to display the web page.

Python is best language for web development and favorite language of a lot of programmer due to its simplicity and quick turn around. A lot of people use Python to do simple and complex automation.

Step 3: Learn UNIX

UNIX is a multi-tasking and multi-user computer operating system that is designed to provide good security to the systems.This operating system was developed by some employees of AT&T in Bell Labs.The best way to learn it is to get into an open-source version (e.g. centos) and install/run the same on your own. You can operate internet without learning UNIX, but it is not possible for you to be an internet hacker without understanding UNIX.

If you have not used Unix operating system yet, a few essential linux commands will make your comfortable in getting quickly started.

Unix in a Nutshell by Arnold Robbins is a good way to start. This book will teach you how to use Unix.

The next thing you need to know is the internals of this operating system. I recommend
The Design of the UNIX Operating System by Maurice J. Bach for getting in depth understanding of Unix operating system.

A large number of web servers are hosted on Unix based servers and knowing internals of this operating system is going to be really a big boost in your skills.

Step 4: Learn More Than One Operating Systems

There are many other operating systems apart from UNIX. Windows operating system is one of the most commonly compromised systems, hence it is good to learn hacking Microsoft systems, which are closed-source systems.

According to the National Vulnerability Database, Microsoft operating systems have a large number of vulnerabilities.

Windows OS installers are distributed in binary, therefore it is not easy for you to read the code. Binary code is basically the digital representation of text and data that computer understands. However, knowing how programs are written for windows and how different applications behave on this operating system will help.

One of the recent vulnerabilities of a popular OS was that Java Web Start applications get launched automatically even if the Java plug-ins are disabled. How to be a hacker is about knowing the weaknesses of these operating systems and targeting them systematically.

Step 5: Learn Networking Concepts

The networking concept needs to be sharp when you want to be a hacker.

Understanding how the networks are created is important, however you need to know the differences between different types are networks. Having a clear understanding of TCP/IP and UDP protocol is a must to be able to exploit the vulnerabilities on world wide web.

Understand what is subnet, LAN, WAN and VPN.

I recommend Computer Networking: A Top-Down Approach By James F. Kurose and Keith W. Ross

The networking commands to do a HTTP request needs to be on your fingertips. The HTTP protocol, is the gateway through which one enters the internet world. Hence it is necessary to learn this protocol in order to break the barriers. The hackers often use the HTTP gateway to breach the security of the system and take control over it.

Apache Httpd is one of the most commonly used web servers and knowing in and out of it is going to empower you on any HTTP or other application layer protocol related endeavors.

Nmap is a powerful network scanning tool that is used by hackers and security professional across the world to identify vulnerable hosts. However, to effectively start using it you must understand the networking basics. To get advanced skills on NMap you can refer the book by creators – Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning

Step 6: Start Simple: Read Some Tutorials About Hacking

This is the simple and best way to start. Read as many tutorials as possible that are meant for hacking. These articles will give you insight and help you develop the attitude to be a hacker. Some tutorials will initiate you with Nmap, Nessus and SuperScan, some of the hacking programs or tools that hackers generally use. These tutorials are readily available over the internet; Both text and video tutorials are available for you to answer your question how to be a hacker.

Step 7: Learn Cryptography

As an expert hacker, you need to understand and master the art of cryptography. The technology of cryptography and encryption is very important for internet and networking. It is the practice and study of techniques that are used for secure communication in the presence of third parties. The encryption is done for various aspects of information security such as confidentiality of the data, integrity of the data and authentication. Moreover, the technology of cryptography is extensively used in ATM cards, computer passwords and e-commerce. While hacking, these encrypted codes needs to be broken, which is called decryption.

Cryptography is heavily used in SSL based internet communication. An expert hacker should be able to understand how SSL works and what is the importance of cryptography in keeping SSL secure.

Try reading about various encryption algorithms and see why they are difficult to decrypt. Participate in challenges for decrypting a powerful encryption. An expert hacker will be able to demonstrate weaknesses in a encryption algorithm and should be able to write a program that can show how decryption can be performed without much information about keys.

Understand various techniques used for password cracking. There are dozens of tools available to do password cracking, and using it is not hacking. To be expert at hacking its important for you to understand how to create a program that can crack a password from cypher text.

Step 8: Experiment A Lot

This is an important step for setting yourself up as an expert hacker. Setup a laboratory on your own to experiment the learning on the practical applications. A simplest lab will have your computer, however once you advance you may want to add more and more computers and required hardware for your experiments.

It is good to try experimenting on your own computers, where you can rectify if you have done any mistake. Many hackers initially start off by downloading virtual lab applications such as Oracle VirtualBox. You require at least 3 GBs of RAM and a comparatively powerful processor to carry out your hacking experiments. Setting up the virtual machine is crucial, as it will allow you to test virus, applications and different servers without affecting your own PC.

Some of the things you may need to keep in mind when doing experiments

  • Keep a backup before any experiment.
  • Start small and have check points.
  • Know when to stop.
  • Document your progress
  • Keep improvising
  • Automate repetitive tasks

Step 9: Read Some Good Books From Experts

Reading will always enhance your knowledge. Try to read as many books and articles as possiblewritten by the experts in the field field of ethical hacking and enterprise security

Reading a lot about anything related is so important in a hackers world that you must also consider enhancing your reading speed. If your reading speed is slow then you may not be able to progress fast in this field. Practice speed reading techniques like skimming, chunk reading etc.

When it comes to reading a lot, its also important to know that a majority of content on web is not worth your time. Many people use search engine tricks to attract traffic but have little value in it. If you skim thru an article within seconds and decide not to read that is going to save you a lot of time for some really well researched content.

Step 10: Participate In Hacking Challenges

Regular participation in the hacking challenges can help you learn more and sharpen your knowledge. There are several companies that organize these challenges in order to check the vulnerability of their software products. The most common hacking challenge includes breaching the security system of the software and taking control of the third party computer systems. Apart from that, there are some websites listed below that regularly offer hacking challenges online.

Step 11: Go Next Level: Write Vulnerability

Vulnerability of a program is the weakness of the program. It is a good approach to look for the vulnerability of an existing program and share the same with others. In this way you will have the option to collect varied opinions from different sources, enabling you to hone your current skill set.

The examples of computer vulnerabilities include memory safety violation, input validation error, privilege confusion bugs and user interface failure. For instance, Microsoft’s Internet Explorer 11 had the vulnerability bug in its preview version which several hackers exploited.

Identifying a new weakness in any software is the real work any expert hackers would perform.

Step 12: Contribute To Open Source Security Projects

Contributing to an open-source computer security project is great platform to test your skills. This is not everyone’s cup of tea. Many organizations like Mozilla and Apache offer these types of open source projects. Try to be a part of these projects and add a valuable contribution to the benefit of the community.

Participating in the open source security projects such as anti-spam, anti-virus, firewall and data removals help you augment your dexterity as a hacker.

Contribute your vulnerability findings to the global vulnerability databases and give back to the community.

Remember that it does not matter if your contribution is small, as long as you participate and add value it helps.

Step 13: Continue Learning And Keep Listening To Security Talks

The key to success in the hacking career is continuous learning. Reading blogs for hacking available at sites such as hackerfactor blog and IKEA hacker blog; participating in the forums such as hackforums.net and elite hack are great ways to refresh your knowledge as a hacker. The online video forums like TED or TechTalk are good sources to know more about the emergent hacking techniques and technologies that are being deployed. You should also try following the posts of famous hackers such as Adrian Lamo, Kevin Mitnick, Kevin Poulsen and Robert Tappan Morris.

Take your time to comment on this article.

Thank for your comments

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s