如何成为一个网络高手

来源:互联网 发布:c语言水仙花数有哪些 编辑:程序博客网 时间:2024/05/04 09:51

引自(黑色海岸线)

http://www.thysea.com/lb/cgi-bin/topic.cgi?forum=127&topic=371&show=0

[这个贴子最后由bigblock在 2004/04/22 05:49pm 第 1 次编辑]

[ 我写这个并不是因为我已经厌倦了一遍又一遍的回答一样的问题,而是考虑到这确实是一个有意义的问题,其实很多人确实需要问这个问题而从来没有去问.]

我被问了很多次有关于很多领域的问题.
比如:什么编程语言你最推荐?
总而言之,如何在安全领域内成为一个有影响的人.
既然我的答案和一般的答案有所不同,我打算把我的看法说出来.

-----------------------------------------------------------------------
从那里开始?
-----------------------------------------------------------------------

我的观点可能和一般的看法十分的不一样。如果你是刚刚起步,我建议你不要以
攻击,入侵,漏洞等等地方为开始。

没错!不要从那里开始。
原因十分简单。如果你以为通晓“安全”就是知道最新的漏洞,你将会发现你自己一无所获。
我同意,知道什么是好的,什么有漏洞是十分有必要的。但是这些并不能够给你的高手之路打下坚实的基础知识。很好,你知道RDS 是最新的漏洞,你知道如何下载并使用利用这个漏洞的SCRIPT工具。你知道如何修补这个漏洞(也许。很多人只知如何攻击,不知道如何防护)3个月后,补丁漫天飞舞。这个漏洞已经不存再了------现在你的那些知识还有什么用?而且还不算你可能根本没有理解漏洞的分析。
你的知识是什么? 分析?还是攻击手段?
这是我想要再一次强调的。人们可能没有注意,已经有很多人认为只要他们知道最新的漏洞他们就是安全专家。NO! NO ! NO!所有他们知道的只不过是“漏洞”,而不是“安全”。


例如:你知道有关于PHP。 的漏洞,SHOWCODE.ASP 的漏洞。 COUNT.CGI 和TEST-CGI 的漏洞。
但是你知道为什么他们会成为CGI 的漏洞吗?你知道如何编一个安全的通用网关吗?你会根据一个CGI的工作状态来判断他可能有哪些漏洞或那方面的漏洞吗?或者,你是不是只知道这些CGI有漏洞呢?

所以我建议你不要从漏洞开始。就当他们不存在(你知道我的意思)。你真正需要做的是从一个普通用户开始。

-----------------------------------------------------------------------
做一个用户。
-----------------------------------------------------------------------

我的意思是你至少要有一个基本的常规的知识。例如:如果你要从事 WEB HACKING你是否可能连浏览器都不会使用?你会打开NETSCAPE , 打开IE? 很好! 你会输入姓名。你知道 。HTML是网页。很好...你要一直这样下去,变成一个熟练的用户。你会区别ASP和CGI 是动态的。
什么是PHP?什么是转向?COOKIE?SSL?你要知道任何一个普通用户可能接触到的关于WEB的事物。
不是进攻漏洞,仅仅是使用。没有基础的(也许是枯燥的)的这些东西你不可能成为高手。
这里没有任何捷径。好,现在你知道这里的一切了,你用过了。在你HACK UNIX 之前你至少要知道如何LOGIN.LOGOUT. 使用SHELL COMMAND。使用一般的常用的程序。(MAIL,FTP,WEB 。LYNX 。等等)。你要想成为一个管理员,你要知道基本的操作。


-----------------------------------------------------------------------
成为一个管理员。
-----------------------------------------------------------------------
现在你已经超过了一个普通用户的领域了。 进入了更复杂的领域。你要掌握更多的东西。
例如:WEB 服务器的类型。 和其他的有什么区别?如何去配置他。想这样的知识你知道的越多意味着你更了解他是如何工作的。他是干什么的。你理解HTTP 协议吗?你知道HTTP 1.0 和HTTP1.1 之间的区别吗?WEBDAV 是什么?知道HTTP1.1 虚拟主机有助于你建立你的WEB 服务器... 深入,深入。

操作系统?如果你从来没有配置过NT 你怎么可能去进攻一个NT 服务器?你从来没有用过
RDISK, 用户管理器,却期望CRACK 一个ADMIN 的密码,得到用户权限?你想使用RDS 而一切你在NT 下的操作你一直是使用图形界面?再一次,你需要从管理员上升到一个”超级管理员“。这里不是指你有一个超级用户的权限。而是你的知识要贯穿你的所有领域。很
好,你会在图形界面下添加用户,命令行方式怎么样?而且,那些在 SYSTERM32 里的。EXE文件都是干什么的?你知道为什么USERNETCTL 必须要有超级用户权限?你是不是从来没有接触过USERNETCTL?深入, 深入...

成为一个"百晓生"这是关键。不要以为知道如何作到就行了(骗老板可以,骗进攻
者??...)尽可能的知道越多越好。成为一个技术上的首脑。但是...


-----------------------------------------------------------------------
你不可能知道所有的事情。
-----------------------------------------------------------------------

哎!这是生命中不得不面对的悲惨事实。不要以为你能....如果你认为你可以。你在自欺欺人。你需要做的是选择一个领域。一个你最感兴趣的领域。进一步的学习更多的知识。
成为一个用户, 成为一个管理员,成为一个首脑。成为在某领域的最优秀的家伙(小伙,姑娘)不要仅仅学习如何使用WEB 浏览器,怎样写CGI 就行了。知道HTTP ,知道WEB 服务器是干什么的,怎么干的。知道在那里找答案。知道当服务器不正常工作时应该怎样让他工作。

当你在你的领域内有一定经验时,你自然就知道怎样进攻了。

这其实是很简单的道理。如果你知道所有的关于这里的知识,那么。你也知道安全隐患在那里。所有的漏洞,新的,旧的,将来的,你自己就能够发现未知的漏洞(你这时已经是一个网络高手了),你,找漏洞,是的,可以,但你必须了解你要找的一切先。

所以,放下你手中的WHISKER 的拷贝。去学习到底那些CGI是干什么的。他们怎么使通过HTTP使WEB 服务器有漏洞的?很快你就会知道到底WHISKER是干什么的了。


-----------------------------------------------------------------------
编程语言。
-----------------------------------------------------------------------

一些最近我经常被问的问题中最常听的问题就是 我认为什么编程语言应该学:

我想这要根据一些具体情况。----大致上是你准备花费多少时间在上面,你想让这个语言有多么
有用。一个程序要多长时间完成。和这个程序能完成多么复杂的事情。
以下有几个选项(排列没有什么意义)。

Visual Basic.
- 非常容易学习的语言。很多这方面的书,公开的免费原代码也很多。你应该可以很快的使用他。
但是这个语言有一个限度。他并不是象 比如c++一样强大。你需要在WINDOWS 下运行他。需要一个VB 的编程环境(不论盗版还是正版的 , 反正他不是免费的)。想用VB 来编攻击代码,或补丁是十分困难的。

C++
- 也许是最强大的语言.在所有的操作系统里都有.在网上有上吨的原代码和书是免费的。
,包括编程环境。比VB 要复杂一点。也许要掌握他花费的时间要比VB 要多一点。简单的东西容易学,干复杂的活的东西理解起来也要复杂一点。你自己衡量。

Assembly
- 最复杂的,也是最难学习的语言,如果你把他当作第一个你要学习的语言,那么将会难的你头要爆裂。但是,你先学了汇编,其余的还不是小菜;)
有一些书,这方面的教材有减少的趋势。但是汇编知识对某些方面来说是致关紧要的。比如:缓冲逸出。攻击。很多这类的免费软件。但从这个语言开始是十分困难。

Perl
- 一个很不错的语言. 他象VB一样容易.学习他相应的容易一些.他也象VB一样有限制,但是他在多数操作平台都能运行.(UNIX和WIN).所以这是他的优势.很多这方面的书.而且这个语言是完全免费的.你可以使用他来作一些普通的攻击工具.他主要是作用于一些文本的技巧攻击.不适合做二进制程序.

还有很多语言需要猎及到。例如asp,php,汇编等。总之一句话:精一门,学多门。

我想这是所有你想知道的. 有把握的说 C/C++是最佳选择.

我的心得:找一个你感兴趣的领域专心去钻研.

原创粉丝点击