转载自极安中国
原作者:善良是我本性@
原帖地址 https://bbs.secgeeker.net/thread-612-1-1.html
一开始还在考虑要不要写这篇帖子,但思考过三之后,还是写下自己的一些看法。希望这个能给予你一些绵薄的帮助。 先说说一下身边的朋友吧!
其实一开始我学习安全的时候,总以为学校找不到喜欢安全的人,以为身边都不是同路人,但后来我发现我错了。
A君:
专业是:计算机专业
(1)一个正在专研linux操作系统的内核的童鞋,本身比较擅长c/c++.偶尔会接触安全方面的知识。不过只是随着学习需要。前两周,突然想到两个比较有意思的想法。然后就开始写demo去实现了。
他的两个想法分别是
[1]替换系统的explorer.exe,不过他只是测试作用(将原来的exploer.exe改名,然后写了另外一个explorer.exe来替代系统进行打开资源管理器或者窗口的操作),这个可以实现什么?虽然是一个简单的demo,但是假如测试通过的话,我们可以在exploer.exe加入关闭杀毒软件的代码段。当识别到杀毒软件的窗口的时候触发
[2]第二个,是利用钩子函数来做一个防软件弹出广告的程序。比如快播资讯,迅雷资讯,搜狗新闻的。约莫花了两个小时写出了一个可用的demo。
B君:
专业:计算机专业
(1)从事web开发的一位童鞋,熟悉Python。平常除了开发外,还会按照知道创宇的技能研发表v2.2努力成长。
他让我印象比较深刻的是,一开始交流的时候。聊到安全的领域,然后他给我展示了我们学校教务系统的漏洞,可以根据学号读取学生的所有信息。
我之所以提到这两个人,是想强调一下“研发实力在安全方面的重要性”。A,B君都是具备一定的研发能力,接触过大大小小的项目。在研发的基础上去理解安全,这样达到的效果是显而易见,至少他们有一套自己解决问题的方法,掌握了属于自己的学习方法;以及拥有和别人交换信息的资本。
因而,他们不会纠结于这么多知识该学什么,因为他们知道,自己需要用到的矛是那一根!要用到的盾是那一个!
也许你会说,他们是计算机专业的,但我想告诉你,并不是专业确定你是否适合学习攻防。而是你的兴趣。
顺带提一下,我就不是计算机专业的。那还不是照样学这个,因为我喜欢它!不是这方面的学习这个多的去了,关键是你想学它的目的,是想炫耀还是纯粹的喜欢。
关于称谓:
一直都有关注Evilm0的微信公众平台。之前他做了一个粉丝职业调查,其中有50%选择的是学生。
其中不乏初中生,高中生,因而我想说:“不要单纯的认为’大学生’这个称号能给你带来什么不同的待遇”。你具备了这个称号就应该具备一定的学习能力以及自己的世界观。
这个称号所给予你的,应该是你能够更自由的追随你所喜欢的事或物,兴趣使然。不用像初中生,高中生那样被应试教育束缚着。你可以选择所做的事情。有很多的安全的好手,都是在大学开始他们的探索之旅。道哥,余弦,太多人了。
关于方法:
之前在知乎看了不同的学习方法,觉得余弦推荐的方法不错!
我们的恐惧来自于未知,未知让我们心生恐惧,于是开始怀疑自己的能否入门,能否融入圈子。
描述:
-> 一门新知识。
-> 了解这门知识的概要轮廓(大概了解:是什么、能做什么、为什么会存在)。
-> 哪个群体创造/发展的这个知识,这个群体背后的八卦是什么(比如微积分,莱布尼茨和牛顿的八卦),看八卦能更好理解牛人们的思维。
-> 原来是这样一门有趣的知识呀,开始深入学习。
-> 查遍全球关键资料,我可不想听一家之言。
-> 了解这门知识的关联知识是什么。
-> 心中了然了,原来这门知识是这样的,还有几个XX问题没解决。
-> 运用知识创造出有趣的或以前不存在的东西,如果能解决几个没解决的XX问题最好。
-> 一抖身加入这个知识所在的圈子,成为圈内人。
-> 用跨界思维给这个圈子带来新鲜感,成为圈内认可的人。
关于实践:对于系统攻防,可以借助虚拟机来模拟实战.
不过在这里需要提醒一句,培养起自己的调试能力很重要,还有需要熟悉数据结构和以及懂得怎样用算法来描述你的问题。
推荐书目:
(1)假如你是非计算机专业,对自己的能力有质疑,不妨从Python开始学起。了解一定的基础后,看一下下面推荐的书
假如你是python开发者,可以看一下[Python灰帽子:黑客与逆向工程师的Python编程之道],有了一定了解后,之后自己再去读更多的国外的干货。
(2)假如有C或者C++基础,可以先借阅一本windows API编程的书籍,在有了一定的基础后。
可以阅读下列数目:
基础:
[小小黑客之路–黑客工具、攻防及防火墙.门]
[精通黑客编程完整版]
方向:
[Visual C++黑客编程揭秘与防范]
这本书涵盖了加壳,调试破解,rootkit等不同方面的知识,设计方面广,需要了解一些控件的知识,pe文件结构等。
[加密与解密第三版]
(3)还有在windows平台下,vb和dephi用来编写恶意程序也比较多,不过主要都是依赖于微软提供的API函数来实现的。
对于web安全方面:
基础:
可以在w3c school在线学习关于各种脚本语言,数据库等的知识。
练手的地方:
还是回归到研发能力上,假如你有一定的研发能力能够自己搭建一个平台进行测试。
假如没有就要学会利用搜索引擎,google有个google dork,请自行查询。
现在不是没有注入点,关键是你自己能否找得到。
书籍方面太多了,建议挑一个技术点进行了解。
关于师傅:
很多人一开始想找个人带,这种心情谁都可以理解,但是有几个能找到。你想知道为什么吗?
这个问题也和你怎样才能融入这个圈子有关?
我们渴望找到大牛来教自己,换个角度想,大牛也希望找一个在某方面有悟性或者有某种特性的人。也是你的处事态度,也许是你的世界观。也许是你的学习能力。你要将你的这种能力展现出来,才会有人关注你,并开始了解你。
圈子也是同样的道理,你有什么信息可以进行交换的?你这个人的品德怎样?是不是一个好基友?等等!他们见到过不少的新人,那些只是想通过学习这门知识来宣布自己的“特立独行”的人,很容易看出来。
关于世界观,关于坚持:
拥有的自己的世界观是很重的,这决定了你是否能从入门到进阶。但正如你所了解到的,世界观是通过自己身边所接触到事和物对你的思想,行为造成一种思维判断逻辑。它是后天养成的,因而不要将你将思维局限在编程和安全的时候,那才能看得更清楚。
知乎上总是引用黑哥的"整就牛"。我是这样解读的,你还年轻,在大学期间喜欢一件事,就去做,相信你的判断,错了也不后悔。我有条件犯错,但要知道错在哪里,这样你前方的路才会逐渐明晰。放长来说,你的人生假如有那么几年能专注做一件事情,持续的努力,总会看到你想要的结果。
关于大学:
假如有那么一段时光,我可以肆无忌惮的做着我感兴趣的事情,可以在实验室一待就是一天,可以在晚上通宵达旦,只为了解决一个难题,可以和志同道合的好基友一起研究某个知识,开发那些属于我们自己的项目,我想应该是那段大学的时光。
补充:
对于那些想询问怎样才能步入网络安全达人的人:
我写下一些自己傻傻笨笨的方法
(1)google dork:意为“谷歌傻子”,就是我们通过google这个搜索引擎会找很多好玩的东西,
[1]有现成的,比如一般别人入侵了网站,留下了webshell,我们只需要根据特定webshell名称搜索,就可以不牢而获
[2]有注入点的网站:
inurl:view.php?board1_sn=
[3]还有其他好玩的可以看这里(传送门)
先是体会一下漏洞怎样被利用,关于这个注入点还可以发生什么更好玩的事情?
(2)然后你会发现很多东西都读不懂,读不懂脚本语言怎么办?
想快速了解语法,去w3c school上面已经给出了链接
有了基础再去分析一下漏洞的成因,以及工具是怎样注入的。这时就需要各种资料了,不过最好先是从一个点去了解。
(3)有了基础,有了找注入点的能力;
想要提高效率,这时,需要一些合手的工具。工具这个到这里或者搜索引擎找去吧!