在成为黑客之前,你需要做两点准备:
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系统上的管理员权限。
- 很多重要信息都会得到特别保护,因此你需要通过一定程度的认证才能获得这些信息。要查看系统上的所有文件,你需要取得超级用户权限 -- 即Linux和BSD系统上"root"用户所具备的权限。
- 对于路由器,默认的超级用户是"admin"帐户(除非已被更改);对于Windows,即为管理员账户。
- 和系统取得连接并不意味着你就能获得一切。只有超级用户,管理员帐户,或root帐户能具备一切权限。
8、多管齐下。通常,要获得超级用户身份,你必须采用多种方法,例如制造缓冲区溢出,从而导致内存转储,并允许你在比一般情况下更高级的层次中进行代码注入或执行任务。
- 在类Unix系统中,如果一个软件设置了setuid权限,该程序将可以以另一个用户的身份(例如超级用户)被执行。
- 这只能通过编写或找出你能在他们的机器上运行的不安全程序才能这样做。
9、建立后门。当你对机器取得完全控制后,最好能确保下一次你也能顺利地再次登录。这可以通过建立后门来实现,这是一种重要的服务,例如SSH服务器。然而,你的后门有可能会在下一次系统升级时被删除。 经验老道的黑客会在编译器当中设置后门,因此每次软件编译后都能留有一条路径让他们再次回来。
10、掩饰你的痕迹。不要让管理员知道系统已经被入侵。不要更改网站(如果有的话),也不要创建不必要的文件。不要创建额外的用户。动作要迅速。如果你修补了一个服务器,如SSHD,确保你的密码已被硬编码。如果有人尝试使用该密码登录,系统将允许他们的进入,但不应该包含任何重要信息。
【一一帮助网络安全提升点我一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
那么入门黑客要掌握的技术有哪些呢!
1、黑客术语
去一个地方就要学会人家的家乡话,不然就不知所云了。就好比:肉鸡是什么?端口、shell、webshell、shellcode、bypass…等等,你得知道它是什么意思,了解术语的话可以去看看这里的百度文库,写的还很不错,对大多数的黑客术语都有过渡,而且对计算机网络原理需要有着一定的基础,所以务必要去学习一下。
了解好黑客术语后,你是不是就以为:我现在是不是就能去入侵别人家的电脑、网站挂黑页了?不可能的,你还需要掌握一些网络的协议,比如TCP/IP协议,了解一些渗透技术和技巧。
2、网络协议
在成为黑客前呢,还有一件重要的事,你必须要知道网络协议:TCP/IP协议。因为你只要懂了个大概,对后期做渗透测试以及了解一些漏洞原理帮助是非常大的,网站的重要性就不需要多说了吧,要想成为一名黑客,不懂网站怎么可以。http、www、html、css、JavaScript等建站所需的技术都要会,这算是基本功!!
3、编程
知道为什么要学习编程吗?因为编程能让我们懂得很多原理,就好比你学会PHP编程,你就懂得了网站的基本运作原理。
有一句话说得好:“只有对原理了然如心,才能突破更多的限制!”,也就是说,当你懂得了原理以后,你就会知道哪些地方可能会存在漏洞,哪些地方可以进行突破,最终得到一个shell。
推荐大家前期要学习的编程语言:Python、Web前端(HTML、CSS、JavaScript)和PHP,编程是最基础的技能,新手学习建议从Python开始。好多小白总感觉学编程得从C语言开始,其实没必要,语言只是工具,编程最核心的还是编程思想,要学会用计算机的思维去思考问题。
宋丹丹的小品不是有这么一个笑话嘛:“把大象装冰箱需要几步”。如果是真的开发一个程序把大象装冰箱里,还真就得一步步都要考虑到,而且每一步操作,可能出现的异常都要充分考虑清楚,尽可能在程序中把可能出现的所有异常都要做出处理。语言都是一通百通,所以找一个相对容易入门的语言开始学就可以,不必纠结到底什么语言好。
4、漏洞原理
当你学会了一些工具的使用,那么你就可以去学习一些漏洞原理了,比如:XSS、CSRF、CORS、SSRF、SQL注入、文件上传、文件包含、未授权访问…等等。我之前说过,当你学会编程后,你学这些漏洞原理理解起来会很快!!
5、熟练掌握常用的操作系统
Windows是使用人数最多的操作系统,这个是必须要掌握的。其次就是Linux系统,选择一个合适的发行版,开始学习就可以,比如:Ubuntu和CentOS。
6.网安&黑客学习资料包
基于最新的web安全教程和最新的网络安全学习路线,循序渐进地对黑客攻防剖析。适合不同层次的粉丝。我希望能为大家提供切实的帮助,讲解通俗易懂,风趣幽默,风格清新活泼,学起来轻松自如,酣畅淋漓!
压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。