Kali Linux学习提要

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/myfather103/article/details/79101068

自我第一次接触Kali Linux已经过去3年有余,当时的系统还是2.0。时光匆匆,白马过隙,如今到了2017.3。

在此期间,我安装了Deb系和RPM系的大多数发行版本。在此,对某些还没有学会走路就想着跑步的小白提出劝告,如果步子迈得太大会扯到蛋蛋,疼了可就没人能治了。

有一个人曾经跑到群里直接问我:我是中专生,看到我的大哥直接用工具搞逆向,感觉很厉害。所以跑群里问该如何学。我问他:你之前接触过吗?他说:没有,我没有任何基础。我建议他先看一些基础书籍,结果他却这么说:不要,我想现在就学,直接看逆向的书籍不行吗?

还有一位直接跟我说,我很羡慕那些现场挖漏洞的,他们很厉害,就几分钟,没你说的那么长时间呀。我当即回了一句:你看到了他们在现场的潇洒,你看到他们十年如一日的翻阅代码了吗?

首先第一个,逆向需要你有正向思维。我曾经逆向过一个APK,当时我已经开发了6个月。当然,这个时间对于一些大牛来说还差得很远。然而,我也是从基础入手。先学好如何正向开发APK程序,然后学习大牛写一篇关于逆向的文章,通过这篇文章,知道逆向的基本思路和方法。接着,我就自己尝试。我尝试着去阅读smali汇编代码,这个时候我才逐渐体会到,只有当自己对API的结构熟悉以后,看smali才能比较迅速的转化为java代码。接着信心满满的去看so文件解析,但是,看不懂。因为其涉及ELF文件格式,也就是Linux可执行文件加载过程。因此,如果你连正向开发经验都没有,逆向又从何谈起?

谈下我的一次逆向过程,当时是为了写DocumentFile的功能,API文档写的不详细,网上也没有现成例子可以借鉴。于是反编译了同行的APK文件,面对着smali语法我只能先通过搜索功能一步步找到File关键字,再通过smali语法规则和自己的开发经验逐步定位,然后摸索出了API的使用方式,这样两天和同事之间的交流以后,也就成功的写了出来。比如判断语句中的15我想了好久,十进制是不可能的,我尝试转化成十六进制则正好是21,也就是引入了DocumentFile API的功能的API Level,因此也就能很好定位。

接着我也反编译过混淆的,同样,只有开发了很久,也尝试过混淆的才知道系统API是不会被混淆的。则不用说了,你必须对系统级API非常非常熟悉,否则定位都成问题,更何况改别人的东西。

第二个,就是总想着一夜成名天下知,从未忍受十年寒窗无人问。就是浮躁。

Ubuntu

请你先从Ubuntu开始,因为Ubuntu的安装非常亲民,基本上都是下一步。设置也很简单。但是Kali面向的是专业化人士,自然设置会非常细致,肯定会让大多数初学者止步于安装步骤。

英语

大部分渗透资料都是英文,这是毋庸置疑的,不会英文不要来学渗透。只能学到皮毛,不能深入精通。更明显的,Kali Linux上面的工具都是英文的,某些小白连

No such file or directory

都看不懂,还指望学个啥?

物理机

不要想着装什么物理机,U盘都洗洗睡了。不会用,装上去干啥?装上了就能提高你的渗透能力?工具都玩不会,最多吃灰,然后到群里炫耀,你看我装上了耶。然后呢?

有些人还想着一下子装双系统,然后崩溃了。总之,这样的心态就是太浮躁,看了几篇文章觉得很简单。但是很遗憾,可能就是因为你对某个知识点的不理解,不透彻,可能你确实按照步骤走了,但是却造成了难以挽回的损失。所以一般在群里,我都直接跟新手说:用虚拟机,别来问了。

那么,前提条件呢,学习Kali Linux到底要什么前提条件呢?

前提条件

1、C语言,不要说什么Python,C语言长期霸榜TOBIE编程排行榜,不用解释。
2、Ubuntu,之前解释过了。
3、English,No such explanations。
4、你在虚拟机装Ubuntu到10次以上,虚拟机使用五年以上,各大Deb系和RPM系发行版本都安装过,通过源码编译过Apache、MySQL、PHP并能正确运行,再来讨论实体机。除非你能自己安装ArchLinux,否则老老实实呆在虚拟机上而不是成天想入非非。
5、The quieter you become, the more you are able to hear.
6、不要迷信工具,好好买书学习数据结构、离散数学、APUE、TCP/IP Illustrated、UNP之类的书籍,没有捷径。工具是工具,还是要懂的人用。否则出错了,还是动也不动的跑到群里截图问,百度也不知道一个所以然。

展开阅读全文

没有更多推荐了,返回首页