知识源:https://github.com/OpenCyberTranslationProject/TP1
警告:完善的教育环境应该自己主动去阅读知识源,本博客更多的是用于沉淀,有的引子,上下文会跳过,请知晓。跳过的信息,比如:工具下载,安装,前景现状,厉害关系等。
本质上来说,科技家都是行动派。他们经常触摸和玩弄一些实验,希望创造并有时可能会伴随预料之外的不可控情况出现,破坏了一些事物。他们思考之后,会直接动手去证明用结果和总结来反驳理论中的长篇大论。此书从本质入手,更多的去覆盖知识面,而不是把某一个知识点解释得像一本书一样厚。
介绍术语和概率
二进制文件 可执行的文件,类似windows中可执行文件。二进制文件通常位于/usr/bin或usr/sbin目录中,包括ps,cat,ls和cd等实用程序以及无线应用程序黑客工具aircrackng和入侵检测系统(IDS)Snort
区分大小写 linux区分大小写。如果您收到错误消息“找不到文件或目录”,并且您确定文件或目录存在,则可能需要检查您的大小写。
目录 与windows中的文件夹相同。目录提供了一种组织文件的方式,通常是采用分层方式。
Home 每个用户都有自己的/home目录,这默认情况下保存您创建的文件的位置。
kali linux 是专为渗透测试而设计的linux发行版。它预装了数百种工具,可以节省自己下载和安装它们所需的时间。在撰写本文时,使用最新版本为kali 2018.2,于2018年4月首发。
root linux拥有管理员或超级用户账户,专为可以在系统上执行任何操作的受信任人员使用而设计。这包括重新配置系统,添加用户和更改密码等内容。在linux中,该账户称为root。作为黑客或测试者,您通常会使用root账户来控制系统。实际上,许多黑客工具都要求您使用root账户。
脚本 在解释环境中运行的一系列命令,可将每行转换为源代码。许多黑客工具都是简单的脚本。脚本可以使用bash解释器或任何其他脚本语言解释器运行,例如python,perl或ruby。python是目前黑客中最受欢迎的解释器。
shell 在linux中运行命令的环境和解释器。最广泛使用的shell是bash,它代表bourneagain shell,但其他流行的shell包括C shell和Z shell。本书中专门使用bash shell。
终端 命令行界面(CLI)
kali之旅
登陆界面,账户是root,默认密码是toor 要更改密码,使用命令passwd
终端 CTRL-ALT-T 此终端打开命令行环境(称为shell),使您可在底层操作系统上运行命令并编写脚本。虽然linux有许多不同的shell环境,但最受欢迎的是bash shell,它也是kali和许多其他linux发行版中的默认shell。
linux文件系统
linux文件系统结构与windows有些不同。它在文件系统的基础上没有物理驱动器(例如C:驱动器),使用逻辑文件系统。在文件系统结构的最顶层是/,被称为文件系统的根。
/root root用户的主目录
/etc 通常包含linux配置文件 - 控制程序启动时间和方式的文件
/home 用户的主目录
/mnt 将其他文件系统附加或安装到文件系统的位置
/media CD和USB设备通常连接或安装到文件系统的位置
/bin 其中包含应用程序二进制文件
/lib lib库文件(与windows dll类似的共享程序)
这些目录是本书中的关键。
在开始之前,知道在执行例行任务时不应该以root用户身份登录也很重要,当你以root身份登录时,任何攻击你的系统的人(黑客有时会被黑客入侵)会立即获得root权限。
LINUX基本命令
用PWD查看当前目录
要导航到新目录,通常需要知道你现在的位置。显示当前工作目录使用命令pwd
使用whoami查看登录用户
浏览linux文件系统
使用cd更改目录 cd /etc
在文件结构中向上移动一级 cd .. 二级 cd .. .. 移动到根 cd /
使用ls列出目录的内容
这与windows中的dir命令类似
列出目录中包含的文件和目录。也可以在任何特定目录上使用此命令。例如,ls /etc显示/etc目录中的内容。
ls -l 代表long,称为长列表。
ls -la 要显示隐藏文件,请添加小写-a
获取帮助
每个命令,应用程序或实用程序都在linux中有一个专用的帮助文件,为其使用提供指导。
aircrack-ng - help 许多应用程序支持所有三个选项 -help -h -?
使用man引用手册页
大多数命令和应用程序都有一个手册
man aircrack-ng ENTER键滚动浏览 PG DN和PG UP上下翻页 Q退出
搜索查找
使用locate搜索 lacote aircrack-ng 遍历整个文件系统找关键字 这个命令不完美,可能刚刚几分钟或几个小时前创建的文件,在第二天才会搜到
用whereis查找二进制文件
whereis aircrack-ng 返回二进制文件,源和手册页
用which在PATH变量中查找二进制文件
PATH保存操作系统在命令行执行的命令目录
命令行输入aircrack-ng时,操作系统怎么知道这个命令在哪里,通过看PATH变量来知道在哪个目录
which aircrack-ng
使用find执行更强大的搜索
如果想在根目录中搜索一个名为apache2的文件,输入以下命令
kali >find / -type f -name apache2 f表示普通文件
比如正在寻找配置文件,可以在/etc目录中开始搜索
kali >find /etc -type f -name apache2
find只显示确切的名称匹配,扩展名找不到,比如apache2.conf则找不到。使用通配符 * . , ? []
kali >find /etc -type f -name apache2.*
快速查看通配符
假设我们正在搜索包含cat,hat,what和bat的文件目录。
?表示单个字符 ?at 会找到 hat,cat和bat
*表示任意长度的任何字符
[b,c]匹配方括号内显示的字符
用grep过滤
当输出从一个命令传到另一个命令时,用grep命令。linux允许我们获取一个命令的输出并将其作为输入发送到另一个命令。这叫管道 |,使用它执行此操作。
ps命令用于显示有关计算机上运行的进程信息。
kali > ps aux aux参数指定要显示的进程信息
如果只是想找到一个进程来查看它是否正在运行呢?
kali >ps aux | grep apache2
修改文件和目录
创建文件 cat命令通常用于显示文件的内容,但也可用于创建小文件。要创建更大的文件,最好在文本编辑器(如vim,emacs,leafpad,gedit或kate)中输入代码,然后另存为。
用 > 重定向功能来创建文件
cat > hackingskills 回城以后,等待你开始输入内容,其他提示都将消失。要退出并返回提示,按CTRL-D
hacking is the most valuable skill set of the 21st century!
查看hackingskills中的内容时,输入命令
cat hackingskills
要向文件添加或附加更多内容,可使用双重定向 >> 如果要覆盖以前的内容 用单重定向 >
cat >> hackingskills
everyone should learn hacking
用touch创建文件
此命令最初开发是用来用户只需touch文件即可更改某些详细信息,例如创建或修改日期。但是,该文件不存在,则默认情况下会创建该文件。
touch newfile 创建文件newfile
创建目录
mkdir make directory
mkdir newdirectory 创建目录
复制文件
cp命令,在新的目录位置创建文件的副本,并保留旧文件
touch oldfile
重命名文件是可选的,只需要将新的名称加到目录路径末尾即可。
cp oldfile /root/newdirectory/newfile
重命名文件
不幸的是,linux没有专门用于重命名文件的命令。使用mv命令可用于将文件或目录移动到新的目录位置,或者为现有文件重命名
mv newfile newfile2
删除文件
rm newfile2
删除目录
rmdir newdirectory 重要的是要注意rmdir不会删除非空的目录
如果想一次性删除一个目录及其下的内容,可以在rm之后使用-r参数
rm -r newdirectory