Python渗透测试编程技术:方法与实践(第2版)
上QQ阅读APP看书,第一时间看更新

2.3.2 常用命令

长期使用Windows的用户往往习惯图形用户界面(Graphical User Interface),容易忽略命令行界面(Command-line Interface)的功能。甚至有人会觉得使用Windows就是按鼠标,使用Linux就是敲键盘,虽然这个理解有失偏颇,但是,在Linux中大量操作的确需要通过命令行界面完成。图形用户界面的易用性毋庸置疑,但是命令行界面也有其优势,尤其是在进行一些复杂操作的时候,如图2-19所示。

图2-19 在终端中打开的Bash Shell

而Kali Linux 2本身就是Linux系统,所以在使用时不可避免地要大量涉及命令行的操作。在学习命令之前,需要先了解3个名词:Shell、Bash和终端。

在Kali Linux 2中使用Shell来执行命令,Shell是一种应用程序,用户通过这种应用程序的界面访问操作系统内核的服务。Shell有很多种,在Kali Linux 2中使用的是Bash Shell,这也是目前比较流行的一种。而终端是用于与Shell交互的应用程序,是Shell和其中运行的其他命令行程序的交互界面。

首先使用Bash Shell执行一个输出“hello world”的命令,这里可以使用echo,它类似于Python编辑器中的print。

     kali@kali:~$ echo "hello world"
     hello world

接下来介绍一些常用的命令。首先是跟目录相关的一些命令。

pwd是print working directory的缩写,其功能是显示当前工作目录。

     kali@kali:~$ pwd
     /home/kali

如果需要切换目录,可以使用cd命令,cd是更改目录(change directory)的缩写,其功能为将活动目录更改为指定的路径。可以使用“cd+目标目录”的方式切换到目标目录,例如切换到目录var。

     kali@kali:~$ cd /var/
     kali@kali:/var$

如果要返回上一级目录,可以使用“cd..”,如果要返回到主目录,可以使用“cd”。

     kali@kali:/var$ cd
     kali@kali:~$

如果想要查看目录中的内容可以使用ls命令。例如查看目录/var里面的内容。

     kali@kali:~$ ls /var
     backups  cache  lib  local  lock  log  mail  msf.doc  opt  payload.dll  payload.exe
     run  spool
      tmp  www

ls命令后面还可以使用参数-a,表示列出文件夹中的所有隐藏文件,ls -l表示显示详细的文件列表。

mkdir是make directory的缩写,用于创建新的目录。

rmdir用于删除一个空目录,rm命令用于删除非空目录。

接着研究一些和文件相关的命令,主要是浏览、查找、复制和删除操作。这里大部分命令不再给出使用实例,在后面的应用中将会用到这些命令。

□ cat:用于显示文件内容,语法为“cat目录项”。

□ cp:复制文件或目录,语法为“cp源文件 目标文件”。

□ rm:移除文件或目录。

□ mv:移动文件与目录,语法为“mv源文件 目标文件”。

□ find:查找文件或者目录的操作,语法格式为“find[命令选项] [路径] [表达式选项]”。例如查找/var目录下所有名称以.log结尾的文件就可以使用如下命令:

     kali@kali:~$ sudo find /var/ -name "*.log"

这里使用了一个非常重要的命令sudo,它表示以系统管理者的身份执行命令,也就是说,经由sudo执行的命令就好像是root亲自执行。

如果一次要执行多个命令,可以使用管道运算符“|”,将一个命令的输出作为输入发送到另一个命令的方法如下:

     command1 | command2

当命令将其输出发送到管道时,该输出的接收端是另一个命令。

最后介绍的是一些和网络相关的命令。在之前的Linux版本中,用户已经习惯使用ifconfig命令,但是,在2020.1版本的Kali Linux 2中删除了ifconfig命令。这是因为ifconfig是net-tools中被废弃的一个命令,已经许多年没有维护了。目前Kali Linux 2的2020.1版本中使用的iproute2套件里提供了许多功能更强的命令,ip命令是其中之一。

要查看设备的网络连接信息,可以使用“ip addr”,这只是ip命令的一个功能。图2-20给出了ip命令的参数格式。

图2-20 ip命令的参数格式

ip命令常用的方法如下。

□ ip addr show:显示网络信息。

□ ip route show:显示路由。

□ ip neigh show:显示arp表(相当于arp命令)。