本文目录一览:
Javascript 看看黑客怎么写的 [转]
它可以在大部分浏览器上运行。(虽然目前我测试过手头的浏览器都能运行,但理论上不能保证所有浏览器都能正确运行,原因见下文) 这段代码的好处(对于黑客)是,它不包含任何字符或数字,可以逃过某些过滤器的检查。比如说,如果假定一个AJAX请求将返回一个只包含数字的JSON,于是很可能会简单判断了一下其中不含字母就直接eval了,结果给黑客们留下了后门。上面的代码功能很简单,只是alert(1),但使用同样的原理,完全可以干出更复杂的事,例如alert(document.cookie)。更重要的是,这段代码再一次提醒我,黑客的想象力是无限的……正如Ryan Barnett的演讲标题:"XSS:The only rule is no rule"。 我们可以把它分为两个部分来理解: 第一部分: ($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])() 第二部分:[__[_/_]+__[_+~$]+$_[_]+$$](_/_) 其中第一部分是核心,我们首先对它进行分析,先缩进一下: ($= [$=[]][ (__=!$+$)[_=-~-~-~$] + ({}+$)[_/_] + ($$= ($_=!''+$)[_/_] + $_[+$]) ] )() 显然,最外层是(...)()形式的函数调用,我们需要看看这里究竟调用了什么函数,返回了什么。下一步,我们把原来代码中赋值表达式提取出来,将其改写为以下等价形式:$ = []; //1 __ = !$+$; //2 _ = -~-~-~$; //3 $_=!''+$; //4 $$ = $_[_/_] + $_[+$]; //5 $= [$][ __[_] + //6 ({}+$)[_/_] + //7 $$ //8 ]; //9 $(); //10 现在来一行行看: 1. $先赋值为一个空数组 (后面会被覆盖) 2. __ = ![] + [] = false + [] = "false" 这里利用了javascript运算的强制类型转换特性。首先空数组是一个非null值,因此![]的结果是false(布尔型)。在计算false + []时,由于数组对象无法与其他值相加,在加法之前会先做一个toString的转换,空数组的toString就是"",因此事实上在计算false + ""。这时false被自动转换为字符串。最终结果是"false"+"" = "false"。 **换句话说,在$为空数组时,使用 “+$”的方式可以将任何一个值转为字符串** 3. 在计算~[]时,~需要一个数字操作数,空数组无法直接转换为数字,则作为0处理。因此~[] = ~0 = -1。 参考: ~3 = -4 ~[3] = -4 ~[3,2] = -1 (无法转为数字) ~"3" = -4 ~"abc" = -1 因此: _ = -~-~-~[] = -~-~-(-1) = -~-~1 = -~-(-2) = -~2 = -(-3) = 3 理论上,可以用这种方式得出1-9所有数字 4. !''是true,使用+$将其变为字符串 "true" 5. 这里需要注意的是,之前一直用“值+[]”来获得“值”的字符串形式。而“+[]”则是0(正号导致[]被自动转换为数值0)。因此:$$ = "true"[3/3] + "true"[+[]] = "true"[1] + "true"[0] = "rt" 6. __[_] = "false"[3] = "s" 7. ({} + [])导致空对象{}被转换为字符串"[object Object]", 因此({}+$)[_/_] = "[object Object]"[1] = "o" 9. 这里把$覆盖为 [[]]["s"+"o"+"rt"]。注意这里[[]]本身是一个包含空数组的数组,其实对这一步来说,任何一个数组都没有关系(不一定要是嵌套数组),但作者巧妙地把$的首次赋值式放在了数组内部,使代码更为紧凑。最终结果是,$ = [[]]["sort"] = [[]].sort = Array.prototype.sort。 10. 调用$(),作为整个表达式最终的取值。需要注意,$是全局范围的,是window的一个属性,相当于window.$。而Array.prototype.sort会返回this。对于window.$来说,this就是window。因此,整个第一部分的值,就是window本身!当然,这个过程的正确运作依赖于当前浏览器的Array.prototype.sort实现能对this为window的情况容错。 通过第一部分,我们已经获得将任何值转换为字符串的简单方法,并能产生任意的数值,理论上就可以从javascript的取值系统中提取出大部分字母(不知道是不是全部,需要考证)。并且,我们获取到了window的引用。下面就可以开始上下其手,为所欲为了。木哈哈哈哈哈! 可以看出,上面的第10步是与浏览器的具体实现相关的,因此也存在着某些浏览器下需要对代码作出修改的可能。 现在看第二部分,事实上已经非常明朗了,唯一需要注意的是,现在$是一个函数,因此~$ = ~0 (无法直接转换为数字则作为0处理) = -1。[__[_/_]+__[_+~$]+$_[_]+$$](_/_) = ["false"[1]+"false"[3+(-1)]+"true"[3]+"rt"](1) = ["a"+"l"+"e"+"rt"](1) 所以,整条式子相当于:window["alert"](1) 最后只想再感慨一次:黑客的想象力是无限的。理解代码并不难,问题是一开始时他们是怎么能想出来的。。。
黑客是什么,能做什么
什么是黑客?
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。
根本的区别是:黑客们建设,而骇客们破坏。
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。
---黑客的态度
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。
So,如果你想做一名黑客,请重复以下事情直到你相信它们:
1 这世界充满待解决的迷人问题
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)
2. 一个问题不应该被解决两次
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)
3. 无聊和乏味的工作是罪恶
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)
4 自由就是好
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。
5. 态度不能替代能力
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。
基本黑客技术
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:
1 学习如何编程
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...
2 得到一个开放源码的Unix并学会使用、运行它
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。
关于学习Unix的更多信息,请看 The Loginataka.
要得到Linux,请看: 哪里能得到 Linux.
3 学会如何使用WWW和写HTML
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....
黑客文化中的地位大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。
什么是黑客?
黑客
一名黑客(hacker)是一个喜欢用智力通过创造性方法来挑战脑力极限的人,特别是他们所感兴趣的领域,例如电脑编程或电器工程。
黑客最早源自英文hacker,早期在美国的电脑界是带有褒义的。但在媒体报导中,黑客一词往往指那些“软件骇客”(software cracker)。
黑客一词,原指热心于计算机技术,水平高超的电脑专家,尤其是程序设计人员。
但到了今天,黑客一词已被用于泛指那些专门利用电脑搞破坏或恶作剧的家伙。对这些人的正确英文叫法是Cracker,有人翻译成“骇客”。
黑客和骇客根本的区别是:黑客们建设,而骇客们破坏。
黑客一词一般有以下四种意义:
一个对(某领域内的)编程语言有足够了解,可以不经长时间思考就能创造出有用的软件的人。
一个恶意(一般是非法地)试图破解或破坏某个程序、系统及网络安全的人。这个意义常常对那些符合条件(1)的黑客造成严重困扰,他们建议媒体将这群人称为“骇客”(cracker)。有时这群人也被叫做“黑帽黑客”。
一个试图破解某系统或网络以提醒该系统所有者的系统安全漏洞。这群人往往被称做“白帽黑客”或“匿名客”(sneaker)或红客。许多这样的人是电脑安全公司的雇员,并在完全合法的情况下攻击某系统。
一个通过知识或猜测而对某段程序做出(往往是好的)修改,并改变(或增强)该程序用途的人。
“脚本小孩”则指那些完全没有或仅有一点点骇客技巧,而只是按照指示或运行某种骇客程序来达到破解目的的人
著名黑客
Richard Stallman--传统型大黑客,Stallman在1971年受聘成为美国麻省理工学院人工智能实验室程序员。
Ken Thompson和Dennis Ritchie--贝尔实验室的电脑科学操作组程序员。两人在1969年发明了Unix操作系统。
John Draper(以咔嚓船长,Captain Crunch闻名)--发明了用一个塑料哨子打免费电话
Mark Abene(以Phiber Optik而闻名)--鼓舞了全美无数青少年“学习”美国内部电话系统是如何运作的
Robert Morris--康奈尔大学毕业生,在1988年不小心散布了第一只互联网蠕虫。
Kevin Mitnick--第一位被列入fbi通缉犯名单的骇客。
Kevin Poulsen--Poulsen于1990年成功地控制了所有进入洛杉矶地区KIIS-FM电台的电话线而赢得了该电台主办的有奖听众游戏。
Vladimir Levin--这位数学家领导了俄罗斯骇客组织诈骗花旗银行向其分发1000万美元。
Steve Wozniak--苹果电脑创办人之一。
Tsotumu Shimomura--于1994年攻破了当时最着名黑客Steve Wozniak的银行帐户。
Linus Torvalds--他于1991年开发了着名的Linux内核,当时他是芬兰赫尔辛基大学电脑系学生。
Johan Helsingius--黑尔森尤斯于1996年关闭自己的小商店后开发出了世界上最流行的,被称为“penet.fi"的匿名回函程序,他的麻烦从此开始接踵而至。其中最悲惨的就是sceintology教堂抱怨一个penet.fi用户在网上张贴教堂的秘密后芬兰警方在1995年对他进行了搜查,后来他封存了这个回函程序。
Tsutomu Shimomura--能记起他是因为抓了米特尼克。
Eric Raymond--Eric Raymond就一直活跃在计算机界,从事各种各样的计算机系统开发工作。同时,Eric Raymond更热衷于自由软件的开发与推广,并撰写文章、发表演说,积极推动自由软件运动的发展,为自由软件作出了巨大贡献。他写的《大教堂和市集》等文章,是自由软件界的经典美文,网景公司就是在这篇文章的影响下决定开放他们的源代码,使浏览器成为了自由软件大家族中的重要一员
红客 —— 一个让人肃然起敬的名字!
红客可以说是中国黑客起的名字。英文“honker”是红客的译音。
红客,是一群为捍卫中国的主权而战的黑客们!
他们的精神是令人敬佩的!
破解者 —— 喜欢探索软件程序!
破解者 —— Cracker
破解者,他们的目标是一些需要注册的软件。他们通常利用Debug,找出内存中的密码。
蓝客 —— 特别喜欢蓝色的黑客们!
蓝客,也属于黑客群。
蓝客,是指一些利用或发掘系统漏洞,D.o.S(Denial Of Service)系统,或者令个人操作系统(Windows)蓝屏。
“蓝客”一词由中国蓝客联盟()在2001年9月提出。当初的蓝客联盟(中国蓝客联盟)是一个非商业性的民间网络技术机构,联盟进行有组织有计划的计算机与网络安全技术方面的研究、交流、整理与推广工作,提倡自由、开放、平等、互助的原则。同时还是一个民间的爱国团体,蓝盟的行动将时刻紧密结合时政,蓝盟的一切言论和行动都建立在爱国和维护中国尊严、主权与领土完整的基础上,蓝盟的声音和行动是中华民族气节的体现。中国蓝客联盟(LUC)简称蓝盟,组建于2001年10月1日。2002年4月,公安部门受外交部压力开始调查此次事件,蓝盟核心人员在当月受到公安机关的传讯、调查,计算机被收缴送往上级公安厅取证、调查。后联盟被告知必须无条件无限期关闭网站,并永久停止使用“蓝客联盟”名号。
2002年6月2日,蓝盟在IRC频道召开“中国蓝客联盟告别会”,与会几百位网友了解、见证了蓝盟的组建及被迫关闭的内幕。
中国蓝客联盟只有一个,那便是2001年10月至2002年6月间的 cnlanker.net,那是我们美好的回忆,那是
曾经一起分享胜利的喜悦、共同度过那些灰暗的日子的唯一见证。可惜的是如今这个域名已不在国人手上。
从2002年6月开始,任何自称蓝客联盟或蓝盟的组织、网站均属于其他网友的自发的个人行为,与最初的蓝盟
毫无任何关系。
现在的 cnlanker.com 是最初组建蓝盟的一群人的回忆,蓝盟永远不会重建。
飞客 —— 电信网络的先行者!
飞客,经常利用程控交换机的漏洞,进入并研究电信网络。
虽然他们不出名,但对电信系统作出了很大的贡献!
一.什么是黑客
在力求当一个黑客前,我们要先了解什么是黑客
Hacker -- 黑客
热衷研究、撰写程序的专才,且必须具备乐于追根究底、穷究问题的特质。
在黑客圈中,hacker一词无疑是带有正面的意义,例如system hacker熟悉操作系统的设计与维护;password hacker精于找出使用者的密码,若是computer hacker则是通晓计算机,可让计算机乖乖听话的高手。
黑客基本上是一项业余嗜好,通常是出于自己的兴趣,而非为了赚钱或工作需要。
根据开放原始码计划创始人Eric Raymond对此字的解释,hacker与cracker是分属两个不同世界的族群,基本差异在于,hacker是有建设性的,而cracker则专门搞破坏。
hacker原意是指用斧头砍材的工人,最早被引进计算机圈则可追溯自1960年代。
加州柏克莱大学计算机教授Brian Harvey在考证此字时曾写到,当时在麻省理工学院中(MIT)的学生通常分成两派,一是tool,意指乖乖牌学生,成绩都拿甲等;另一则是所谓的hacker,也就是常逃课,上课爱睡觉,但晚上却又精力充沛喜欢搞课外活动的学生。
这跟计算机有什么关系?一开始并没有。不过当时hacker也有区分等级,就如同tool用成绩比高下一样。真正一流hacker并非整天不学无术,而是会热衷追求某种特殊嗜好,比如研究电话、铁道(模型或者真的)、科幻小说,无线电,或者是计算机。也因此后来才有所谓的computer hacker出现,意指计算机高手。
对一个黑客来说,学会入侵和破解是必要的,但最主要的还是编程,毕竟,使用工具是体现别人的思路,而程序是自己的想法.一句话--编程实现一切!
对于一个骇客来说,他们只追求入侵的快感,不在乎技术,他们不会编程,不知道入侵的具体细节.
"黑客"在人们脑中的形象就是一个蓬头乱发,戴着高度眼镜,驼着背弓着腰,成天趴在电脑面前的人.其实黑客和正常人一模一样,他们并无什么特殊之处.有些人也许很少上电脑,成天运动,工作,但他们的技术和精神已经达到的黑客的标准,有些人天天爬在电脑前,到处瞎混,但他们仍不是黑客.
人们总是认为黑客就是破坏者,其实从某种意义上来说,黑客也在为计算机技术的发展做出很大的贡献.如果没有高明的黑客,就没有资深的网管;如果没有完美的木马,就没有杰出的杀毒软件;没有了黑客,网络技术就很难发展下去.当然,网管其实也是黑客,如果他不知道别人怎么进攻,自己要怎么防守呢??
黑客一词在圈外或媒体上通常被定义为:专门入侵他人系统进行不法行为的计算机高手。不过这类人士在hacker眼中是属于层次较低的cracker(骇客)。如果黑客是炸弹制造专家,那么CRACKER就是恐怖分子.
现在,网络上出现了越来越多的Cracker,他们只会入侵,使用扫描器到处乱扫,用IP炸弹炸人家,毫无目的地入侵,破坏着,他们并无益于电脑技术的发展,反而有害于网络的安全和造成网络瘫痪,给人们带来巨大的经济和精神损失.
我们不能做Cracker,我们要力求当HACKER!!
二.HACKING的预备网络知识
1.什么是IP
IP就是一个地址,在外网没有一个IP是相同的,它就像身份证号码一样,给每台进入网络的电脑一个身份证号码.但是对于大部分用户来说,这个号码是不固定的,在你重新连接到INTERNET时,IP可能会被重新分配.不过有些机器申请了固定的IP,这样就便于其他电脑找到它,并提供服务.一般的IP的格式为: a.b.c.d (0 = a,b,c,d = 255)例如 218.242.161.231 , 212.13.123.52 ..... 由192.168开头的是局域网的IP,127.0.0.1是用来检测网络的自己的IP.就是说任何一台电脑来说,不管是否连接到INTERNET上,127.0.0.1对于自己来说都是自己.就是说,每台电脑都是由4位的256进制数组成的.
2.什么是网络协议,数据包
网络协议就是一套双方约定好的通信协议.就像对暗号一样,有特定的约定来达成连接.其中的"数据包就是一个一个
(1) 面向连接的TCP协议
TCP是面向连接的.“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control
Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。TCP协议能为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机,对可靠性要求高的数据通信系统往往使用TCP协议传输数据。
(2) 面向非连接的UDP协议
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。这与现在风行的手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!UDP协议是面向非连接的协议,没有建立连接的过程。正因为UDP协议没有连接的过程,所以它的通信效果高;但也正因为如此,它的可靠性不如TCP协议高。QQ就使用UDP发消息,因此有时会出现收不到消息的情况。
附表:tcp协议和udp协议的差别
|---------------------------------|
| 属性\协议 |TCP |UDP |
|------------+---------+----------|
|是否连接 |面向连接 |面向非连接|
|------------+---------+----------|
|传输可靠性 |可靠 |不可靠 |
|------------+---------+----------|
|应用场合 |大量数据 |少量数据 |
|------------+---------+----------|
|速度 |慢 |快 |
|---------------------------------|
(3)什么是端口(PORT)
PORT,意思为港口,但在电脑里叫端口.但是端口不是形象的,而是抽象的.电脑上有很多的端口(65535个),但是它们大部分都不开,每个网络连接都要用一个端口,就象把用一跟线把两个电脑连起来,插座就是端口.有些端口有他们特定的用途,例如网页服务器要开80端口,FTP服务器要开21端口
常用端口
21--ftp 下载
23--telnet 远程登陆,入侵后打开给自己留后门
25-smtp 尽管重要,但似乎没什么可利用的
53--domain 同上
79--finger 可知道用户信息了,但是现在很少了
80--http HTTP服务器
110--pop 收信的
139(445)--netbios 共享,远程登陆,很有价值,但是有经验的人不开
135--RPC 远程溢出的大洞的端口
3389--win2000超级终端
我们在入侵成功后就要为自己运行木马,打开一个端口,为自己以后回来留后门.
(4)什么是服务
服务就是SERVICE,例如要做HTTP服务器的就要安装World Wide Web Publishing服务.服务,是为他人提供服务的程序,这个程序会在开机时自动加载,并打开端口等待对方连接并向对方提供服务.我们可以在入侵对方机器后,启动或安装一些服务(SUCH AS 远程桌面,TELNET...),这些服务都是MICROSOFT的,所以不用担心被杀毒的发现.在开了一些远程管理的服务后,我们就可以很方便地回到被侵入过的主机了.
常见的服务列表:
名称 默认端口 98可装 2000Pro 2000SERVER
FTP 提供下载服务 21 x x o
SSH LINUX远程登陆 22 x x x
TELNET WINDOWS远程命令行管理 23 x o o
Simple Mail 邮件服务器 25 x x o
Finger 可以知道用户信息,现在很少了 79 x x x
WWW HTTP 网页服务器 80 x x o
pop2 一种邮件服务 109 x x o
pop3 同上 110 x x o
RpcDcom 最大的溢出漏洞的所在 135 x o默认 o默认
NetBios 共享,远程登陆,很有利用价值 139 o(无价值) o默认 o默认
REMOTE SERVICE 图形界面的远程登陆,最有价值 3389 x x o(强烈推荐)
(5)常用的工具
HACKER用的工具,大致可分这几种:
[1]扫描器
在攻击一个目标前要先了解对方开了什么端口,在扫肉鸡时要知道那些肉鸡开了端口可以被入侵.扫描器就是帮助你寻找攻击对象或了解攻击对象存在什么漏洞,开了什么端口.常用的扫描器有SUPERSCAN,X-SCAN,IP TOOLS....强烈推荐SUPERSCAN和X-SCAN.如果你在扫开端口的机器时,用SUPERSCAN,因为它快;在扫漏洞时,用X-SCAN,因为它功能全!!
[2]溢出工具
溢出就是把比一个寄存器能存放的东西还多的东西放到一个寄存器里,然后就造成溢出,使系统运行准备好了的SHELL CODE.
溢出的VB例子:
dim a as integer
a=111111111111111
在找到一些有溢出漏洞的机器后,就用溢出工具来对它进行溢出,然后直接拿到SHELL或帐号.
[3]后门程序
后门的服务端,安装在肉鸡上,开机自动等待对方控制.以前的后门都是一个标准的SOCKET在某个端口监听,但是这样很容易被发现,于是便出现了ICMP后门.但是现在的主流还是用TCP的后门.常用的后门有:冰河,TELNET(是WINDOWS的远程管理服务,用OPENTELNET可以远程开启TELNET服务!),DJXYXS.EXE(用来开SERVER的3389服务)
[4]连接工具
其实就是后门客户端.WINDOWS自带了很多,例如3389登陆器的MSTSC.EXE,TELNET客户端TELNET.EXE.......强烈推荐NC,它把许多网络功能汇集到了一起!
[5]破解密码程序
就是用很多的字符串来猜测密码.当猜不到时,就只好死算,A不行换B,B不行换C,C不行换D.......总之很浪费时间,密码长点1年都破不出来,不推荐
[6]进程程序
用来管理进程的,有PSECEC.EXE(远程开别人SHELL的,像TELNET一样,不过对方不需开),PSKILL.EXE(远程,本地杀进程),PSLIST.EXE(远程,本地查看进程).PS系列的3个程序是十分有用的,本人强烈推荐!!它不仅仅能够帮助你管理远程的肉鸡,而且在杀病毒时十分有用,它能杀掉WINDOWS TASK MANAGER杀不掉的进程.
(6)黑前准备
[1]首先,你要有一台能跑的电脑(这不是废话吗),
[2]是要有操作系统(最好是一个WINDOWS 2000 SERVER,一个LINUX,没LINUX也可以,2000PRO也可以,不过2000SERVER可以给自己练习,强烈推荐SERVER)
[3]有网络,最好是宽带,不是的话要有快的肉鸡才行.
[3]安装一个防火墙,推荐天网2.5.1
[4]注册一个QQ,有邮箱,注册一个空间(注册地址,支持FTP,WWW)
[5]别急,把前面的文章再看一便(别K我)
三.学习使用DOS基础命令
使用DOS是黑客最最基本的技能,每个人都要会熟练的使用DOS,使用2000的DOS,不用任何工具就可以完成一次入侵,而且大部分的工具都是在DOS窗口的环境下运行的,所以大家一定要学好!!
(1)如何启动DOS
这里说到的DOS,是XP,2000自带的DOS,98正因为对网络的支持很差,所以我们不能入侵98,也不能用98来入侵.所以用98的朋友请把98换成2000或者XP,NT,2003.
DOS在2000里就是CMD.EXE,98里是COMMAND.EXE(2000里也有COMMAND.EXE,不过这个DOS是不支持中文的).启动方法:开始,运行,CMD (或者COMMAND),确定.然后跳出来以下画面:
C:\documents and Settings\Administratorcmd
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版权所有 1985-2000 Microsoft Corp.
C:\documents and Settings\Administrator
==================================================================================================
《黒客有什么可怕 设个陷阱逮住他》
如今网上黑客横行,稍不留神就可能被黑客光顾,避如前段时间我们空间商的服务器就被入侵了,数据都被删光了,所以要想在网上生存,做好安全措施是必不可少的。一般我们都只重视对机器进行安全设置,而往往忽略了被入侵后的信息收集问题,今天我就介绍三种让黑客留下痕迹的方法,希望能对大家有所帮助。
一、利用“木马”进行记录
1.木马简介
这里要用到的是一个很特殊的dll木马,它可以把通过终端登陆的用户名、密码,以及域信息记录到指定文件中。不要以为这些信息没什么用哦!有时候就得靠这些零散的信息来找入侵的人。
下载地址:;;down=1
在下载的压缩包内,有三个文件:
SysGina32.dll--这个就是可以记录用户名和密码的东东了。
Gina.exe--这是安装DLL木马用的程序,有了它后安装起来就很方便了。
使用方法.txt--这个很熟悉吧!中文帮助文件哦!有什么不懂的可以查查。
2.安装木马
先把SysGina32.dll和Gina.exe放在同一目录下,并将Gina.exe改名为svchost.exe(你也可以改成其它名字,为的是不让黑客注意到),然后打开CMD,切换到保存这两个文件的文件夹,输入命令:svchost.exe -install,当出现“All Done,Gina setup success”信息时,安装就成功了。
注意:
a.该木马已被杀毒软件查杀,所以安装时请关闭杀毒软件(不是关闭防火墙哦!),而且以后重启时杀毒软件不能一起启动,以后杀一次毒重新装一次该木马。不过如果你能让该木马不被杀毒软件的话,那就没这么麻烦了。
b.为了不让黑客发现我们设的陷阱,最好将Gina.exe文件改名,而且要改的艺术一点,比如上面我把它改成了“svchost.exe”,这样就很难发现了,如果你改成了其它名字,安装时命令就要换成“文件名.exe -install”。
c.SysGina32.dll和Gina.exe这两个文件不一定要复制到系统安装目录的system32下,不过最好不要太引人注意,如果被黑客发现,那就可能适得其反了(木马也会记下你的密码的)。
d.如果出现的信息是“Found Exist Gina”,这说明你机器已经装过该木马了,此时键入“Y”覆盖即可。
3.查看“踪迹”
经过以上设置后,如果有人通过终端服务登录你的机器,那么他的用户名和密码就会被记录到“C:\WINNT\system32\GinaPwd.txt”这个文件中,打开这文件就可以看到入侵者的踪迹了。由于该木马也会记录你的密码,所以每次进入机器时,请先打开GinaPwd.txt这文件,把你的用户名和密码删掉,顺便查一下有没有其它人登录过。
4.删除木马
如果你的机器不幸被人中了该木马,那么请按如下方法删除:
先下载该木马,在CMD下输入命令:gina.exe -remove,当出现“ Gina Dll was removed success”时(如图3),就表示删除成功了,接着重启机器即可。
注意:如果你把gina.exe改名了,命令也要做相应改变:文件名.exe -remove。
二、写个批处理记录黑客行踪
1.认识批处理
对于批处理文件,你可以把它理解成批量完成你指定命令的文件,它的扩展名为 .bat 或 .cmd,只要在文本文件中写入一些命令,并把它保存为.bat 或 .cmd格式,然后双击该文件,系统就会按文本文件中的命令逐条执行,这样可以节省你许多的时间。
2.编写批处理文件
打开记事本,然后输入如下命令:
@echo off
date /t d:\3389.txt
attrib +s +h d:\3389.bat
attrib +s +h d:\3389.txt
time /t d:\3389.txt
netstat -an |find "ESTABLISHED" |find ":3389" d:\3389.txt
然后把文件保存为d:\3389.bat,这里我解释一下命令的意思,date和time是用于获取系统时间的,这样可以让你知道黑客在某天的某个时刻入侵。“attrib +s +h d:\3389.bat”和“attrib +s +h d:\3389.txt”这两个命令是用来隐藏3389.bat和3389.txt这两个文件的,因为在登录时,由于会启动d:\3389.bat这个文件,所以会有一个CMD窗口一闪而过,有经验的黑客应该能判断出这窗口是记录用的,所以他可能会到处找这个记录文件,用了以上两个命令后,即使他用系统自带的搜索功能以3389为关键字进行搜索,也找不到上面3389.bat和3389.txt这两个文件,哈哈!很棒吧!至于“netstat -an |find "ESTABLISHED" |find ":3389" d:\3389.txt”这个命令则是记录通过终端的连结状况的,明白了吧!
接下来我们要让系统启动时自动运行d:\3389.bat这文件,我用的方法是修改注册表,依次展开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon,找到“Userinit”这个键值,这个键值默认为c:\WINNT\system32\userinit.exe,不知你注意到没有,在最后有一个逗号,我们要利用的就是这逗号,比如我上面写的3389.bat文件路径为d:\3389.bat,那么我只要在逗号后面加上“d:\3389.bat”即可,这样启动时3389.bat这文件就会运行,选这个键值的原因是因为它隐蔽,如果是加在Run键值下的话是很容易被发现的。最后提醒一点,键值末尾的逗号别忘了加上去哦!
4.查看记录
前面我们用了attrib命令把3389.bat和3389.txt这两个文件隐藏起来,下面我们来让它们重新显示。
打开CMD,切换到保存这两个文件的路径,这里是切换到“d:\”目录,输入命令:attrib -s -h d:\3389.bat和attrib -s -h d:\3389.txt,这时再到d盘看看,是不是出现了?打开文件即可查看登录情况,从图中我们可以看出,10.51.5.36这IP连结到了我的3389端口(我的IP是10.51.5.35)。
三、记录黑客动作
有了以上两道防线,我们就能知道黑客的用户名、密码、以及入侵时的IP了,不过这样好像还不够,要是能知道黑客都干了些什么就更好了,下面我们再设置一个陷阱,这里要用到的工具是“计算机系统日志”。
下载地址:
该软件的特色就是可以在后台记录所有运行过的程序和窗口名称,并且有具体的时期,以及登录的用户名,很恐怖哦!下面咱们来设陷阱吧!
1.记录日志
双击压缩包内的主程序,点击“软件试用”进入主界面,在“日志文件保存路径”处点击“浏览”选择保存路径并进行命名,这里保存在c:\winnt\log.txt。然后钩选“日志记录随计算机自动启动”。
注意:
a.为了防止黑客找到记录日志的文件,你可以用上面提到的命令:attrib +s +h c:\winnt\log.txt进行隐藏。
b.最好不要将这个记录文件和上面的3389.txt放一个目录下,这样万一被发现其中一个,不至于使另一个也一同被发现。
c.软件在“任务管理器”的进程中显示名称为“syslog”,而且未注册版本会在20分钟后自动停止记录,所以只能用来对付菜鸟黑客啦!而且还得先花点“银子”,哈哈!
接下来在“程序密码保护”处输入一个复杂点的密码,点击“开始日志”。这时软件会提醒你隐藏后的热键为“Ctrl+Q”,请记住这个热键,以后要唤出软件时就得靠它了。
2.查看动作
想知道这样设置后记录下来的东西是什么样吗?那就快来看看吧。怎么样?对这种记录结果你还满意吗?
黑客入门基础知识有哪些?
黑客入门基础知识第一步要做的是掌握web前后端基础和服务器通讯原理,前后端包括h5,js,PHP,sql。单从技术上分黑客有专注web的web渗透测试黑客,有专注于挖掘软硬件漏洞的二进制黑客,有专注移动安全或无线安全的,例如手机端的黑客,还有喜欢破解软件的逆向破解型黑客。
黑客起源
黑客这个词源于上个世纪50年代的麻省理工,当时MIT的一帮聪明又精力充沛的年轻学生们,聚集在一起,思维的火花互相碰撞,有了共同想法的人组成了一个个兴趣小组。比如那个最著名Tech Model Railroad Cloub铁路技术俱乐部,大家在一起学习研究火车的构成,信号控制系统,自己动手组装模型,修改模型,一起研究做实验,把心中一个个idea付诸实现。
久而久之,大家把这些好玩,又有技术含量的idea叫hack。而这些俱乐部里的精英就自称hacker,这就是这个词的来源。而这些俱乐部也不负众望,不仅好玩,而且还玩出来了改变和影响当今世界的东西,Unix、互联网、开源软件,还有其他。
黑客是怎样在我的首页加上js代码的
实现这个很简单,黑客直接拿到你站点的SHELL,通过在生成页面的代码中加入JS,(通常是直接穿插在CONN里面)这样一来,只要是通过此代码生成的HTML也将被插入JS实现挂马!
如果要学习这类技术,可以到黑客武林报名学习!