如何成为一名黑客

“黑客”(hacker)这个词,一开始只是单纯地用来指代在电脑系统和信息科技方面的能手,最近几年才因为一些臭名昭著的网络罪犯而蒙上了一层灰色阴影 。实际上,现在有很多公司专门雇佣黑客来测试系统安全强度,这样的“黑客”懂得适可而止,遵守法律,获得公司信任的同时还能拿到不菲的薪酬 。

如何成为一名黑客

文章插图
 
在成为黑客之前,你需要做两点准备:
1、学一门编程语言 。学哪一门不重要,但你要参考一下下面的条例:
  • C语言是Unix系统的基础 。它(连同汇编语言)能让你学习对黑客非常重要的知识:内存的工作原理 。
  • Python或Ruby是高级而强大的脚本语言,能够实现多项任务的自动化 。
  • Perl也是这方面的一个合理选择,同时php也值得一学,因为大部分网络应用都使用了PHP 。
  • Bash脚本编程是必须掌握的 。它能帮助你轻松地控制Unix/linux系统 -- 通过编写脚本程序,让它们为你完成大部分工作 。
  • 汇编语言也是必须了解的 。它是处理器能理解的基本语言,且现实中存在着多种版本的汇编语言 。所有的程序最终都会被解释成汇编语言 。如果你不懂得汇编语言,你将无法深入钻研每一程序 。
2、确定你的目标 。收集和目标相关信息的过程又被称为枚举 。你事先掌握的信息越多,你的准备就越充分 。
 
好了,接下来,黑客十部曲:
1、使用*nix命令终端 。Cygwin将为windows用户提供模拟的*nix环境 。Nmap专门使用了WinPCap,它可以运行在Windows系统上,且不需要Cygwin的支持 。然而,由于缺乏原始套接字功能,Nmap并不能很好地在Windows系统上工作 。你也应该考虑使用Linux或BSD,它们更灵活、更可靠、更安全 。大部分Linux发行版都附带了很多预装的有用工具 。
2、首先加强你的机器的安全性 。确保你已经充分理解所有能保护自己系统的常用技术 。从基础开始 -- 你是否曾发现有服务器托管着含有非法或不良信息的网站?尝试通过各种方法入侵它 。不要更改网站,只要取得其控制权即可 。
3、测试目标系统 。你是否能连通远程系统?虽然你能使用ping实用程序(大部分操作系统包含有该程序)了解目标系统是否活跃,但其结果并不总是可靠的 -- 该程序需要以ICMP协议为基础,这能轻易地被谨慎的系统管理员所屏蔽 。
4、确定操作系统(OS) 。进行端口扫描,你可以使用pOf或者nmap进行扫描 。该方法能让你了解目标机器上开放了哪些端口,运行着哪种操作系统,甚至还能获取关于所使用的防火墙或路由器等信息,以便你能准备好一系列的攻击计划 。你可以使用nmap的-O选项进行操作系统的探测 。
5、找出系统中的路径或开放端口 。FTP(21)及HTTP(80)等常用端口通常都得到了较好的保护,找出尚未被发现的漏洞可能比较容易发起攻击 。
  • 尝试其他不太常用的TCP和UDP端口,例如Telnet及一些用于局域网游戏的UDP端口 。
  • 如果系统开放了22号端口,通常能证明该目标系统上运行着SSH(secure shell)服务,对此有时可以进行暴力破解 。
6、破解密码或认证过程 。有几种方法能破解密码,其中包括暴力破解 。对密码的暴力破解就是使用暴力破解软件,尝试每一个包含在预定义词典中的可能密码 。
  • 用户通常被建议不要使用过于简单的密码,因此暴力破解可能需要较长时间 。然而,暴力破解技术已经得到了长足的改进 。
  • 大部分散列算法都存有漏洞,因此你可以通过发掘这些漏洞来显著加快破解速度(例如你可以缩减MD5算法至1/4的比例,这将大幅提高其运行速度) 。
  • 较新的技术使用显示卡作为另一个处理器 - 这能提高速度达数千倍 。
  • 你可以尝试使用彩虹表来达到最快的破解速度 。请注意,只有当你掌握了密码的散列值时,密码破解才是一项可行的好技术 。
  • 在登录远程系统时,尝试每一个可能的密码并不是一种好的方法,因为这中行为将会轻易地被系统的入侵检测程序所检测到,同时会污染系统日志,并且可能需要数年时间才能破解密码 。
  • 比起采用密码破解,采用别的方法也许能更容易入侵一个系统 。
7、获得超级用户权限 。尝试获得*nix机器的根用户权限,或者是Windows系统上的管理员权限 。