❶ 怎么使用kalilinux系统
首先,下载虚拟机vm。
其次,下载kali镜像。
再次,就按照虚拟机安装windows操作系统的方法安装,有提示的,进入安装界面,语言选择中文,这样就不吃力了,逐步按照提示按照即可。有时候估计要配置下网络,是图形化界面的,很容易操作的,如果修改不成功就按照Linux配置网络的方式去修改网络文件。
最后,安装完成后,输入创建的账号和密码。登录成功后,就可以使用里面集成的黑客工具做一些测试或什么的。当然自己也可以安装一些黑客工具。工具有很多,每个工具用法不一样,但都是通过命令终端打开,输入工具的命令,这些工具都有教材,网上可以搜索到。
❷ 史上最全kali Linux目录结构详解
www.dadengxiuli.com
/: 根目录,一般根目录下只存放目录,不要存放件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
/boot: 放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可
/dev: 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
/etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。
注:/etc/X11存放与x windows有关的设置。
/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/lib:/usr/lib:/usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/moles。
/lost+fount: 系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
/mnt:/media: 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
/opt: 给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
/proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root: 系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
www.dadengxiuli.com
/sbin:/usr/sbin:/usr/local/sbin: 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。
/tmp: 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
/srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
/usr: 应用程序存放目录
/usr/bin 存放应用程序
/usr/share 存放共享数据
/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包
/usr/share/doc: 系统说明文件存放目录
/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
/var: 放置系统执行过程中经常变化的文件,如随时更改的日志文件
/var/log,/var/log/message: 所有的登录文件存放目录
/var/spool/mail: 邮件存放的目录
/var/run: 程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间
❸ Kali Linux 网络扫描秘籍 第三章 端口扫描(二)
执行 TCP 端口扫描的一种方式就是执行一部分。目标端口上的 TCP 三次握手用于识别端口是否接受连接。这一类型的扫描指代隐秘扫描, SYN 扫描,或者半开放扫描。这个秘籍演示了如何使用 Scapy 执行 TCP 隐秘扫描。
为了使用 Scapy 执行 TCP 隐秘 扫描,你需要一个运行 TCP 网络服务的远程服务器。这个例子中我们使用 Metasploitable2 实例来执行任务。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。
此外,这一节也需要编写脚本的更多信息,请参考第一章中的“使用文本编辑器*VIM 和 Nano)。
为了展示如何执行 SYN 扫描,我们需要使用 Scapy 构造 TCP SYN 请求,并识别和开放端口、关闭端口以及无响应系统有关的响应。为了向给定端口发送 TCP SYN 请求,我们首先需要构建请求的各个层面。我们需要构建的第一层就是 IP 层:
为了构建请求的 IP 层,我们需要将 IP 对象赋给变量 i 。通过调用 display 函数,我们可以确定对象的属性配置。通常,发送和接受地址都设为回送地址, 127.0.0.1 。这些值可以通过修改目标地址来修改,也就是设置 i.dst 为想要扫描的地址的字符串值。通过再次调用 dislay 函数,我们看到不仅仅更新的目标地址,也自动更新了和默认接口相关的源 IP 地址。现在我们构建了请求的 IP 层,我们可以构建 TCP 层了。
为了构建请求的 TCP 层,我们使用和 IP 层相同的技巧。在这个立即中, TCP 对象赋给了 t 变量。像之前提到的那样,默认的配置可以通过调用 display 函数来确定。这里我们可以看到目标端口的默认值为 HTTP 端口 80。对于我们的首次扫描,我们将 TCP 设置保留默认。现在我们创建了 TCP 和 IP 层,我们需要将它们叠放来构造请求。
我们可以通过以斜杠分离变量来叠放 IP 和 TCP 层。这些层面之后赋给了新的变量,它代表整个请求。我们之后可以调用 dispaly 函数来查看请求的配置。一旦构建了请求,可以将其传递给 sr1 函数来分析响应:
相同的请求可以不通过构建和堆叠每一层来执行。反之,我们使用单独的一条命令,通过直接调用函数并传递合适的参数:
要注意当 SYN 封包发往目标 Web 服务器的 TCP 端口 80,并且该端口上运行了 HTTP 服务时,响应中会带有 TCP 标识 SA 的值,这表明 SYN 和 ACK 标识都被激活。这个响应表明特定的目标端口是开放的,并接受连接。如果相同类型的封包发往不接受连接的端口,会收到不同的请求。
当 SYN 请求发送给关闭的端口时,返回的响应中带有 TCP 标识 RA,这表明 RST 和 ACK 标识为都被激活。ACK 为仅仅用于承认请求被接受,RST 为用于断开连接,因为端口不接受连接。作为替代,如果 SYN 封包发往崩溃的系统,或者防火墙过滤了这个请求,就可能接受不到任何信息。由于这个原因,在 sr1 函数在脚本中使用时,应该始终使用 timeout 选项,来确保脚本不会在无响应的主机上挂起。
如果函数对无响应的主机使用时, timeout 值没有指定,函数会无限继续下去。这个演示中, timout 值为 1秒,用于使这个函数更加完备,响应的值可以用于判断是否收到了响应:
Python 的使用使其更易于测试变量来识别 sr1 函数是否对其复制。这可以用作初步检验,来判断是否接收到了任何响应。对于接收到的响应,可以执行一系列后续检查来判断响应表明端口开放还是关闭。这些东西可以轻易使用 Python 脚本来完成,像这样:
在这个 Python 脚本中,用于被提示来输入 IP 地址,脚本之后会对定义好的端口序列执行 SYN 扫描。脚本之后会得到每个连接的响应,并尝试判断响应的 SYN 和 ACK 标识是否激活。如果响应中出现并仅仅出现了这些标识,那么会输出相应的端口号码。
运行这个脚本之后,输出会显示所提供的 IP 地址的系统上,前 100 个端口中的开放端口。
这一类型的扫描由发送初始 SYN 封包给远程系统的目标 TCP 端口,并且通过返回的响应类型来判断端口状态来完成。如果远程系统返回了 SYN+ACK 响应,那么它正在准备建立连接,我们可以假设这个端口开放。如果服务返回了 RST 封包,这就表明端口关闭并且不接收连接。此外,如果没有返回响应,扫描系统和远程系统之间可能存在防火墙,它丢弃了请求。这也可能表明主机崩溃或者目标 IP 上没有关联任何系统。
Nmap 拥有可以执行远程系统 SYN 扫描的扫描模式。这个秘籍展示了如何使用 Namp 执行 TCP 隐秘扫描。
为了使用 Nmap 执行 TCP 隐秘扫描,你需要一个运行 TCP 网络服务的远程服务器。这个例子中我们使用 Metasploitable2 实例来执行任务。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。
就像多数扫描需求那样,Nmap 拥有简化 TCP 隐秘扫描执行过程的选项。为了使用 Nmap 执行 TCP 隐秘扫描,应使用 -sS 选项,并附带被扫描主机的 IP 地址。
在提供的例子中,特定的 IP 地址的 TCP 80 端口上执行了 TCP 隐秘扫描。和 Scapy 中的技巧相似,Nmap 监听响应并通过分析响应中所激活的 TCP 标识来识别开放端口。我们也可以使用 Namp 执行多个特定端口的扫描,通过传递逗号分隔的端口号列表。
在这个例子中,目标 IP 地址的端口 21、80 和 443 上执行了 SYN 扫描。我们也可以使用 Namp 来扫描主机序列,通过标明要扫描的第一个和最后一个端口号,以破折号分隔:
在所提供的例子中,SYN 扫描在 TCP 20 到 25 端口上执行。除了拥有指定被扫描端口的能力之外。Nmap 同时拥有配置好的 1000 和常用端口的列表。我们可以执行这些端口上的扫描,通过不带任何端口指定信息来运行 Nmap:
在上面的例子中,扫描了 Nmap 定义的 1000 个常用端口,用于识别 Metasploitable2 系统上的大量开放端口。虽然这个技巧在是被多数设备上很高效,但是也可能无法识别模糊的服务或者不常见的端口组合。如果扫描在所有可能的 TCP 端口上执行,所有可能的端口地址值都需要被扫描。定义了源端口和目标端口地址的 TCP 头部部分是 16 位长。并且,每一位可以为 1 或者 0。因此,共有 2 ** 16 或者 65536 个可能的 TCP 端口地址。对于要扫描的全部可能的地址空间,需要提供 0 到 65535 的端口范围,像这样:
这个例子中,Metasploitable2 系统上所有可能的 65536 和 TCP 地址都扫描了一遍。要注意该扫描中识别的多数服务都在标准的 Nmap 1000 扫描中识别过了。这就表明在尝试识别目标的所有可能的攻击面的时候,完整扫描是个最佳实践。Nmap 可以使用破折号记法,扫描主机列表上的 TCP 端口:
这个例子中,TCP 80 端口的 SYN 扫描在指定地址范围内的所有主机上执行。虽然这个特定的扫描仅仅执行在单个端口上,Nmap 也能够同时扫描多个系统上的多个端口和端口范围。此外,Nmap 也能够进行配置,基于 IP 地址的输入列表来扫描主机。这可以通过 -iL 选项并指定文件名,如果文件存放于执行目录中,或者文件路径来完成。Nmap 之后会遍历输入列表中的每个地址,并对地址执行特定的扫描。
Nmap SYN 扫描背后的底层机制已经讨论过了。但是,Nmap 拥有多线程功能,是用于执行这类扫描的快速高效的方式。
除了其它已经讨论过的工具之外,Metasploit 拥有用于 SYN 扫描的辅助模块。这个秘籍展示了如何使用 Metasploit 来执行 TCP 隐秘扫描。
为了使用 Metasploit 执行 TCP 隐秘扫描,你需要一个运行 TCP 网络服务的远程服务器。这个例子中我们使用 Metasploitable2 实例来执行任务。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。
Metasploit 拥有可以对特定 TCP 端口执行 SYN 扫描的辅助模块。为了在 Kali 中启动 Metasploit,我们在终端中执行 msfconsole 命令。
为了在 Metasploit 中执行 SYN 扫描,以辅助模块的相对路径调用 use 命令。一旦模块被选中,可以执行 show options 命令来确认或修改扫描配置。这个命令会展示四列的表格,包括 name 、 current settings 、 required 和 description 。 name 列标出了每个可配置变量的名称。 current settings 列列出了任何给定变量的现有配置。 required 列标出对于任何给定变量,值是否是必须的。 description 列描述了每个变量的功能。任何给定变量的值可以使用 set 命令,并且将新的值作为参数来修改。
在上面的例子中, RHOSTS 值修改为我们打算扫描的远程系统的 IP 地址。地外,线程数量修改为 20。 THREADS 的值定义了在后台执行的当前任务数量。确定线程数量涉及到寻找一个平衡,既能提升任务速度,又不会过度消耗系统资源。对于多数系统,20 个线程可以足够快,并且相当合理。 PORTS 值设为 TCP 端口 80(HTTP)。修改了必要的变量之后,可以再次使用 show options 命令来验证。一旦所需配置验证完毕,就可以执行扫描了。
上面的例子中,所指定的远程主机的钱 100 个 TCP 端口上执行了 TCP SYN 扫描。虽然这个扫描识别了目标系统的多个设备,我们不能确认所有设备都识别出来,除非所有可能的端口地址都扫描到。定义来源和目标端口地址的TCP 头部部分是 16 位长。并且,每一位可以为 1 或者 0。因此,共有 2 ** 16 或 65536 个可能的 TCP 端口地址。对于要扫描的整个地址空间,需要提供 0 到 65535 的 端口范围,像这样:
在这个李忠,远程系统的所有开放端口都由扫描所有可能的 TCP 端口地址来识别。我们也可以修改扫描配置使用破折号记法来扫描地址序列。
这个例子中,TCP SYN 扫描执行在由 RHOST 变量指定的所有主机地址的 80 端口上。与之相似, RHOSTS 可以使用 CIDR 记法定义网络范围。
Metasploit SYN 扫描辅助模块背后的底层原理和任何其它 SYN 扫描工具一样。对于每个被扫描的端口,会发送 SYN 封包。SYN+ACK 封包会用于识别活动服务。使用 MEtasploit 可能更加有吸引力,因为它拥有交互控制台,也因为它是个已经被多数渗透测试者熟知的工具。
除了我们之前学到了探索技巧,hping3 也可以用于执行端口扫描。这个秘籍展示了如何使用 hping3 来执行 TCP 隐秘扫描。
为了使用 hping3 执行 TCP 隐秘扫描,你需要一个运行 TCP 网络服务的远程服务器。这个例子中我们使用 Metasploitable2 实例来执行任务。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。
除了我们之前学到了探索技巧,hping3 也可以用于执行端口扫描。为了使用 hping3 执行端口扫描,我们需要以一个整数值使用 --scan 模式来指定要扫描的端口号。
上面的例子中,SYN 扫描执行在指定 IP 地址的 TCP 端口 80 上。 -S 选项指明了发给远程系统的封包中激活的 TCP 标识。表格展示了接收到的响应封包中的属性。我们可以从输出中看到,接收到了SYN+ACK 响应,所以这表示目标主机端口 80 是开放的。此外,我们可以通过输入够好分隔的端口号列表来扫描多个端口,像这样:
在上面的扫描输出中,你可以看到,仅仅展示了接受到 SYN+ACK 标识的结果。要注意和发送到 443 端口的 SYN 请求相关的响应并没有展示。从输出中可以看出,我们可以通过使用 -v 选项增加详细读来查看所有响应。此外,可以通过传递第一个和最后一个端口地址值,来扫描端口范围,像这样:
这个例子中,100 个端口的扫描足以识别 Metasploitable2 系统上的服务。但是,为了执行 所有 TCP 端口的扫描,需要扫描所有可能的端口地址值。定义了源端口和目标端口地址的 TCP 头部部分是 16 位长。并且,每一位可以为 1 或者 0。因此,共有 2 ** 16 或者 65536 个可能的 TCP 端口地址。对于要扫描的全部可能的地址空间,需要提供 0 到 65535 的端口范围,像这样:
hping3 不用于一些已经提到的其它工具,因为它并没有 SYN 扫描模式。但是反之,它允许你指定 TCP 封包发送时的激活的 TCP 标识。在秘籍中的例子中, -S 选项让 hping3 使用 TCP 封包的 SYN 标识。
在多数扫描工具当中,TCP 连接扫描比 SYN 扫描更加容易。这是因为 TCP 连接扫描并不需要为了生成和注入 SYN 扫描中使用的原始封包而提升权限。Scapy 是它的一大例外。Scapy 实际上非常难以执行完全的 TCP 三次握手,也不实用。但是,出于更好理解这个过程的目的,我们来看看如何使用 Scapy 执行连接扫描。
为了使用 Scapy 执行全连接扫描,你需要一个运行 UDP 网络服务的远程服务器。这个例子中我们使用 Metasploitable2 实例来执行任务。配置 Metasploitable2 的更多信息请参考第一章中的“安装 Metasploitable2”秘籍。
此外,这一节也需要编写脚本的更多信息,请参考第一章中的“使用文本编辑器*VIM 和 Nano)。
Scapy 中很难执行全连接扫描,因为系统内核不知道你在 Scapy 中发送的请求,并且尝试阻止你和远程系统建立完整的三次握手。你可以在 Wireshark 或 tcpmp 中,通过发送 SYN 请求并嗅探相关流量来看到这个过程。当你接收到来自远程系统的 SYN+ACK 响应时,Linux 内核会拦截它,并将其看做来源不明的响应,因为它不知道你在 Scapy 中 发送的请求。并且系统会自动使用 TCP RST 封包来回复,因此会断开握手过程。考虑下面的例子:
这个 Python 脚本的例子可以用做 POC 来演系统破坏三次握手的问题。这个脚本假设你将带有开放端口活动系统作为目标。因此,假设 SYN+ACK 回复会作为初始 SYN 请求的响应而返回。即使发送了最后的 ACK 回复,完成了握手,RST 封包也会阻止连接建立。我们可以通过观察封包发送和接受来进一步演示。
在这个 Python 脚本中,每个发送的封包都在传输之前展示,并且每个收到的封包都在到达之后展示。在检验每个封包所激活的 TCP 标识的过程中,我们可以看到,三次握手失败了。考虑由脚本生成的下列输出:
在脚本的输出中,我们看到了四个封包。第一个封包是发送的 SYN 请求,第二个封包时接收到的 SYN+ACK 回复,第三个封包时发送的 ACK 回复,之后接收到了 RST 封包,它是最后的 ACK 回复的响应。最后一个封包表明,在建立连接时出现了问题。Scapy 中可能能够建立完成的三次握手,但是它需要对本地 IP 表做一些调整。尤其是,如果你去掉发往远程系统的 TSR 封包,你就可以完成握手。通过使用 IP 表建立过滤机制,我们可以去掉 RST 封包来完成三次握手,而不会干扰到整个系统(这个配置出于功能上的原理并不推荐)。为了展示完整三次握手的成功建立,我们使用 Netcat 建立 TCP 监听服务。之后尝试使用 Scapy 连接开放的端口。
这个例子中,我们在 TCP 端口 4444 开启了监听服务。我们之后可以修改之前的脚本来尝试连接 端口 4444 上的 Netcat 监听服务。
这个脚本中,SYN 请求发送给了监听端口。收到 SYN+ACK 回复之后,会发送 ACK回复。为了验证连接尝试被系统生成的 RST 封包打断,这个脚本应该在 Wireshark 启动之后执行,来捕获请求蓄力。我们使用 Wireshark 的过滤器来隔离连接尝试序列。所使用的过滤器是 tcp && (ip.src == 172.16.36.135 || ip.dst == 172.16.36.135) 。过滤器仅仅用于展示来自或发往被扫描系统的 TCP 流量。像这样:
既然我们已经精确定位了问题。我们可以建立过滤器,让我们能够去除系统生成的 RST 封包。这个过滤器可以通过修改本地 IP 表来建立:
在这个例子中,本地 IP 表的修改去除了所有发往被扫描主机的目标地址的 TCP RST 封包。 list 选项随后可以用于查看 IP 表的条目,以及验证配置已经做了修改。为了执行另一次连接尝试,我们需要确保 Natcat 仍旧监听目标的 4444 端口,像这样:
和之前相同的 Python 脚本可以再次使用,同时 WIreshark 会捕获后台的流量。使用之前讨论的显示过滤器,我们可以轻易专注于所需的流量。要注意三次握手的所有步骤现在都可以完成,而不会收到系统生成的 RST 封包的打断,像这样:
此外,如果我们看一看运行在目标系统的 Netcat 服务,我们可以注意到,已经建立了连接。这是用于确认成功建立连接的进一步的证据。这可以在下面的输出中看到:
虽然这个练习对理解和解决 TCP 连接的问题十分有帮助,恢复 IP 表的条目也十分重要。RST 封包 是 TCP 通信的重要组成部分,去除这些响应会影响正常的通信功能。洗唛按的命令可以用于刷新我们的 iptable 规则,并验证刷新成功:
就像例子中展示的那样, flush 选项应该用于清楚 IP 表的条目。我们可以多次使用 list 选项来验证 IP 表的条目已经移除了。
执行 TCP 连接扫描的同居通过执行完整的三次握手,和远程系统的所有被扫描端口建立连接。端口的状态取决于连接是否成功建立。如果连接建立,端口被认为是开放的,如果连接不能成功建立,端口被认为是关闭的。
❹ Kali Linux该怎么进行网络配置
Kali Linux拥有强大的网络功能,所使用的网络配置文件与其他的Linux发行版也不同,Kali Linux属于Debian Linux
1、基本的网络命令
ifconfig命令用于显示当前主机中状态为“激活”的网络接口信息。
ifconfig -a命令用于显示当前主机中所有网络接口信息(包括未激活的网络接口)
route命令:
route命令用于显示当前Linux系统中的路由信息,从route命令的显示结果可以看到当前主机所在的子网和默认网关的地址
netstat命令
netstat -r 命令可以实现与“route"命令相同的功能,即显示Linux系统中的路由信息(路由表)。
”netstat -au"显示udp传输协议的连接情况
"netstat -at"显示tcp传输协议的连接状况
网卡的启用和停用:
#ifconfig up
#ifconfig down
配置动态获取IP地址:
在大型网络中,客户端主机通常设置为从DHCP服务器自动获取IP地址、子网掩码等网络信息,因此可以大大简化网络设置,下面是如何配置DHCP客户端
"/etc/network/"目录下的”interfaces"文件是kali linux中最重要的网络配置文件之一,该文件用于描述主机中所有的网络接口的信息,不论Linux主机中作为DHCP客户端还是配置使用静态IP地址,都需要对该文件进行修改。
以下是作为DHCP客户端的“interfaces”文件的配置内容,其中“iface eth0 inet dhcp"设置网络接口eth0 通过DHCP获取网络地址。
iface eth0 inet dhcp //用于设置网络接口eth0 通过dhcp协议获取网络配置
重启网络服务:
对”interfaces“文件进行更改后,需要重新启动Linux中的networking 服务
# /etc/init.d/networking restart
配置使用静态IP地址
配置Kali Linux使用静态IP地址同样需要在”/etc/networking"目录下的“interfaces”文件中进行配置。静态IP地址的配置将使用“interfaces"文件中更多的配置项。
如下所示是eth0配置为使用静态IP地址的”interfaces"文件的内容,配置文件中各配置项的功能如下所示
❺ Kali Linux系统连接Wifi无线网络命令:
第一种:
第二种:
查找可用WiFi适配器:
检查无线网卡设备状态:
打开WiFi接口:
显示网络信息:
查看连接状态:
扫描无线网络:
生成wpa/wpa2配置文件:
修改/etc/wpa_supplicant.con配置文件:
连接WPA/WPA2 WiFi网络:
测试连接:
使用dhclient获得IP:
查看无线网络:
开启无线网卡:
添加理由规则:
测试谷歌连接:
重启:
❻ Kali Linux 秘籍 第七章 权限提升
我们已经获得了想要攻击的计算机的权限。于是将权限尽可能提升就非常重要。通常,我们能访问较低权限的用户账户(计算机用户),但是,我们的目标账户可能是管理员账户。这一章中我们会探索几种提升权限的方式。
这个秘籍中,我们会通过使用模拟令牌,模拟网络上的另一个用户。令牌包含用于登录会话和识别用户、用户组合用户权限的安全信息。当用春此户登入 Windows 系统是,它们会得到一个访问令牌,作为授权会话的一部分。令牌模拟允许我们通过模拟指定用户来提升自己的权限。例如,系统账户可能需要以管理员身份运行来处理特定的任务。并且他通常会在结束后让渡提升的权限。我们会使用这个弱点来提升我们禅模的访问权限。
为了执行这个秘籍,我们需要:
我们从 Meterpreter 开始探索模拟令牌。你需要使用 Metasploit 来攻击主机,以便获得 Meterpreter shell。你可以使用第六章的秘籍之一,来通过 Metasploit 获得访问权限。
下面是具体步骤:
这个秘籍中,我们以具有漏洞的主机开始,之后使用 Meterpreter 在这台主机上模拟另一个用户的令牌。模拟攻击的目的是尽可能选择最高等级的用户,最好是同样跨域连接的某个人,并且使用它们的账户来深入挖掘该网络。
这个秘籍中,我们会在一台具有漏洞的主机上进行提权。本地提权允许我们访问系统或域的用户账户,从而利用我们所连接的当前系统。
为了执行这个秘籍,我们需要:
让我们在 Meterpreter shell 中开始执行本地提权攻击。你需要使用 Metasploit 攻击某个主机来获得 Meterpreter shell。你可以使用第六章的秘籍之一,来通过 Metasploit 获得主机的访问。
这个秘籍中,我们使用了 Meterpreter 对受害者的主机进行本地提权攻击。我们从 Meterpreter 中开始这个秘籍。之后我们执行了 getsystem 命令,它允许 Meterpreter 尝试在系统中提升我们的证书。如果成功了,我们就有了受害者主机上的系统级访问权限。
这个秘籍中,我们会探索社会工程工具包(SET)。SET 是个包含一些工具的框架,让你能够通过骗术来攻击受害者。SET 由 David Kennedy 设计。这个工具很快就成为了贺森缓渗透测试者工具库中的标准。
掌握 SET 的步骤如下所示。
这个秘籍中,我们探索了 SET 的用法。SET 拥有菜单风格的接口,使它易于生成用于欺骗受害者的工具。我们以初始化 SET 开始,之后,SET 为我们提供了几种攻击方式。一旦我们选择了它,SET 会跟 Metasploit 交互,同时询问用户一系列问题。在这个秘籍的最后,我们创建了可执行文件,它会提供给我们目标主机的 Meterpreter 活动会话。
作为替代,你可以从桌面上启动 SET,访问 Applications | Kali Linux | Exploitation Tools | Social Engineering Tools | Social Engineering Toolkit | Set 。
将你的载荷传给受害者
下面的步骤会将你的载荷传给受害者。
这个秘籍中,我们会探索如何使用 Metasploit 来收集受害者的数据。有几种方式来完成这个任务,但是我们会探索在目标机器上记录用户击键顺序的方式。收集受害者数据可以让我们获得潜在的额外信息,我们可以将其用于进一步的攻击中。对于我们的例子,我们会收集目标主机上用户输入的击键顺序。
为了执行这个秘籍,我们需要:
让我们开始通过 Meterpreter shell 来收集受害者数据。你需要使用 Metasploit 攻击某个主机来获得 Meterpreter shell。你可以使用第六章的秘籍之一,来通过 Metasploit 获得目标主机的访问。
这个秘籍中,我们使用 Meterpreter 收集了受害者的数据。
有一种不同的方式,你可以使用它们来收集受害者机器上的数据。这个秘籍中,我们使用了 Metasploit 和 Metasploit keyscan 来记录击键顺序,但是我们也可以使用 Wireshark 或 airomp-ng 来更简单地收集数据。
这里的关键是探索其它工具,便于你找到最喜欢的工具来完成你的目标。
这个秘籍中,我们会使用 Metasploit 来清除我们的踪迹。在黑进主机之后执行清理是个非常重要的步骤,因为你不想在经历所有麻烦来获得访问权限之后还被人查水表。幸运的是,Metasploit 拥有一种方式来非常简单地清除我们的踪迹。
为了执行这个秘籍,我们需要:
需要执行步骤如下所示:
这个秘籍中,我们使用 Meterpreter 来清理我们在目标主机上的踪迹。我们从 Meterpreter 中开始这个秘籍,并启动了 IRB(一个 Ruby 解释器 shell)。下面,我们指定了想要清理的文件,并且最后键入了 Log.clear 命令来清理日志。要记住,一旦我们黑进了某个主机,你需要在最后执行这一步。你不能在清理踪迹之后再执行更多的操作,这样只会更加更多的日志条目。
这个秘籍中,我们会使用 Metasploit persistence 来创建永久后门。一旦你成功获得了目标机器的访问权限,你需要探索重新获得机器访问权的方式,而不需要再次黑进它。如果目标机器的用户做了一些事情来终端连接,比如重启机器,后门的作用就是允许重新建立到你机器的连接。这就是创建后门非常方便的原因,它可以让你控制目标机器的访问。
为了执行这个秘籍,我们需要:
让我们开始植入我们的永久后门。你需要使用 Metasploit 攻击某个主机来获得 Meterpreter shell。你可以使用第六章的秘籍之一,来通过 Metasploit 获得目标主机的访问。
这个秘籍中,我们使用 Meterpreter 来建立永久后门。我们在黑进目标主机并获得 Meterpreter shell 之后开始了这个秘籍。之后我们通过浏览帮助文档那个,探索了一些可用的永久化方式。最后,我们通过运行安装命令并设置它的选项来完成后门的安装。
这个秘籍中,我们会对目标进行中间人(MITM)攻击。MITM攻击允许我们窃听目标和别人的通信。在我们的例子中,当某个 Windows 主机在 http://www.yahoo.com 收发邮件时,我们使用 Ettercap 来窃听它的通信。
为了执行这个秘籍,我们需要:
让我们启动 Ettercap 来开始中间人攻击。
这个秘籍包括 MITM 攻击,它通过 ARP 包毒化来窃听由用户传输的无线通信。
❼ Kali Linux全部默认字典目录+crunch字典生成工具详细使用介绍
kali默认字典目录
dirb——
big.txt #大的段衡字典
small.txt #小的字典
catala.txt #项目配置字典
common.txt #公共字典
euskera.txt #数据目录字典
extensions_common.txt #常用文件扩展名字典
indexes.txt #首页字典
mutations_common.txt #备份扩展名
spanish.txt #方法名或库目录
others #扩展目录,默认用户名等
stress #压力测试
vulns #漏洞测试
dirbuster——
apache-user-enum-** #apache用户枚举
directories.jbrofuzz #目录枚举
directory-list-1.0.txt #目录列表大,中,小 big,medium,small
fern-wifi——
common.txt #公共wifi账户密码
metasploit——
… #各种类型的字典
wfuzz——
模糊测试,各种字典…
常用生成字典
表示生成一个长度最小三位,最大四位的密码,且都由1234中的四个数字组成 (需要生成空格,则写成"1234 ",4后面有一个空格)
把生成的字典保存在Desktop上的pass.txt中
表示生成一个个人信息的字典,包含李四的姓名,生活的城市,出生年月,年龄等。(ps:前面的最大和最小长度必须要输入,不过对结果不影响)
生成以2018开头的8位纯数字密码(ps:其中%代表所有的数字,@代表所有的小写字母,逗号扒胡代表所有大写字母)
1.特殊标记字符:
'%' 插入数字
'@' 插入小写字母
',' 插入大写字母
'^' 插入符号
2.命令参数:
-b 按指定的大小单位分割字典文件成若干个指定的大小的字典,避免一个字典文件过大,如:
./crunch 4 5 -b 20mib -o START 按每个文件20mib分割字典文件。
说明:单位有 kb, mb, gb, kib, mib, gib ,前三个单位是以1000单位计算的,后三个是以1024计算的。
注意数字和单位之间没有空格,例如:500mb 是正确的, 500 mb 格式是不对的(中间有空格),-b参数必须和-o START结合使用
-c 指定要写入字典文件中的行数,只在有 -o START参数时才生效,单个字典超过指定的行数会被分割成两个或多个字典文件。例如: -c 5000
-d 限制同一字符连续出现的数量, -d 2 表示限制一个字符最多连续出现2次如 aabd,ccda。aaab就表示超过了2个字符连续的限制了。
-e 定义到那个字符串就停止生成密码,例如: -e 999999 就表示在生成密码到99999时就停止生成密码
-f 调用密码库文件,例如:/usr/share/crunch/charset.lst
-i 改变输出格式,例如: 原本输入为aaa,aab,aac,aad再使用了-i之后,就会变成aaa,baa,caa,daa的格式了
-m 与-p搭配使用
-o 输出生成的密码到指定的文件,如: -o lybbnwordlist.txt
-p 定握此做义密码元素
-q 读取密码元素
-r 定义从某一个地方重新开始
-s 第一个密码,从自己定义的密码xxx开始
-t 定义密码输出格式
1.@代表插入小写字母
2.,代表插入大写字母
3. %代表插入数字
4.^代表插入符号
-u The -u option disables the printpercentage thread. This should be the last option.
-z 压缩生成的字典文件,有效的参数是gzip, bzip2, lzma, and 7z,其中gzip压缩最快,bzip2压缩速度比gzip慢单压缩效率比gzip好,7z压缩速度最慢,但是压缩效率最高。
参数解释
min-len 开始的最小长度字符串(这个选项是必须的)
max-len 结束的最大长度字符串(这个选项是必须的)
charset string 要生成密码包含的字符集(小写字符、大写字符、数字、符号),这个选项是可选的,如果你不写这个选项,将使用默认字符集(默认为小写字符)。如果你想生成的密码包含空格字符,你可以使用来代替,
如:123abc
你可以把带有空格的字符集放在双引号“”中,如“123abc ”
❽ 如何使用Kali Linux破解WPA或WPA2无线局域网
目录部分1:准备工作1、了解在什么情况下可以合法破解无线局域网。2、下载Kali Linux磁盘镜像。3、将U盘插入电脑。4、制作可启动U盘5、将Kali Linux ISO文件复制到U盘上。6、安装Kali Linux。7、购买支持监听模式的无线网卡。8、以root用户身份登录Kali Linux电脑。9、将无线网卡插入Kali Linux电脑。部分2:破解无线局域网1、打开Kali Linux电脑上的"终端"应用程序。2、输入Aircrack-ng安装命令。3、出现提示时输入密码。4、安装Aircrack-ng。5、开启airmon-ng。6、找到监听接口名称。7、开始监听网络。8、启用监听模式接口。9、终止返回错误的进程。10、复查监听接口的名称。11、让电脑监听附近的路由器。12、找到要破解的路由器。13、确保路由器使用的是WPA或WPA2加密方式。14、记住路由器的MAC地址和信道号。15、监听所选网络以抓取握手包。16、等待握手。17、退出airomp-ng,然后打开桌面。18、重命名".cap"文件。19、将".cap"文件转换为"hccapx"格式。20、安装naive-hashcat。21、运行naive-hashcat。22、等到网络密码破解完成。部分3:在没有独显的电脑上使用Aircrack-Ng1、下载字典文件。2、通过aircrack-ng破解密码。3、等待"终端"显示结果。部分4:使用Deauth攻击强制握手1、了解Deauth攻击的机制。2、监听网络。3、等待设备连接网络。4、打开新的"终端"窗口。5、发送Deauth包。6、重新打开原"终端"窗口。7、搜索握手包。本指南介绍如何通过Kali Linux破解WPA或WPA2网络的密码。
部分1:准备工作
1、了解在什么情况下可以合法破解无线局域网。在大部分地区,你只能破解自己的WPA或WPA2网络,或在明确获得同意的情况下破解别人的网络。如果不符合上述条件,破解将被视为非法,甚至可能构成犯罪。
2、下载Kali Linux磁盘镜像。要破解WPA或WPA2网络,首推使用Kali Linux。你可以通过以下方式下载Kali Linux安装镜像(ISO):在电脑浏览器中前往https://www.kali.org/downloads/。
找到要使用的Kali版本,然后单击旁边的HTTP。
等待文件下载完成。
3、将U盘插入电脑。U盘至少要有4GB的存储空间。
4、制作可启动U盘。只有这样才能选择U盘作为安装位置。还可以使用Mac来制作启动盘。
5、将Kali Linux ISO文件复制到U盘上。打开U盘,然后将下载的Kali Linux ISO文件拖曳到U盘窗口中。完成后不要拔出U盘。
6、安装Kali Linux。要在电脑上安装Kali Linux,按以下步骤操作:重启Windows。
进入BIOS菜单。
找到"启动选项"或类似的选项,选项U盘名称,然后移到列表的顶部,这样就可以从U盘启动电脑了。
保存并退出,然后等待Kali Linux安装窗口出现。之后可能还需要再重启一次电脑。
按照Kali Linux安装窗口中的提示操作。
7、购买支持监听模式的无线网卡。可以在网上买或去电子商店买。一定要买支持监听(RFMON)的无线网卡,否则无法破解网络。很多电脑内置RFMON无线网卡,在购买前可以先试试下一节中的前四个步骤。
如果是在虚拟机上使用Kali Linux,无论电脑本身是否内置了无线网卡,都需要购买RFMON无线网卡。
8、以root用户身份登录Kali Linux电脑。输入root用户名和密码进行登录。整个破解过程都需要root帐户。
9、将无线网卡插入Kali Linux电脑。随后会立即开始安装网卡并下载驱动。如果看到提示,按屏幕上的说明完成安装。完成后,就可以开始进行网络破解了。即使之前曾在电脑上安装过该网卡,插入后仍需要在Kali Linux上重新安装。
大部分情况下,只需要将网卡插入电脑就能完成安装。
部分2:破解无线局域网
1、打开Kali Linux电脑上的"终端"应用程序。找到并单击"终端"应用程序,图标是一个中间带有白色"$_"图案的黑色方块。也可以按Alt+Ctrl+T来打开"终端"。
2、输入Aircrack-ng安装命令。输入以下命令,然后按? Enter:
sudo apt-get install aircrack-ng
3、出现提示时输入密码。输入电脑的登录密码,然后按? Enter。这样就可以使用root权限在"终端"中执行命令。如果稍后根据本文中的说明打开了另一个"终端"窗口,可能还需要运行sudo命令和/或再次输入密码。
4、安装Aircrack-ng。出现提示时输入Y,然后等待程序完成安装。
5、开启airmon-ng。输入以下命令,然后按? Enter。
airmon-ng
6、找到监听接口名称。它位于"Interface"列中。如果破解的是自己的网络,名称通常是"wlan0"。
如果没有看到监听接口,无线网卡可能不支持监听。
7、开始监听网络。输入以下命令,然后按? Enter开始监听:
airmon-ng start wlan0将"wlan0"替换为目标网络的名称。
8、启用监听模式接口。输入以下命令:
iwconfig
9、终止返回错误的进程。某些情况下,无线网卡会和电脑上运行的服务冲突。输入以下命令终止这些进程:
airmon-ng check kill
10、复查监听接口的名称。大部分情况下,名称类似"mon0"或"wlan0mon"。
11、让电脑监听附近的路由器。要获取附近的路由器列表,输入以下命令:
airomp-ng mon0将"mon0"替换为上一步中的监听接口名称。
12、找到要破解的路由器。在每一行字符串的末尾都有一个名称,找到要破解的网络名称。
13、确保路由器使用的是WPA或WPA2加密方式。如果在网络名称旁看到"WPA"或"WPA2",可以继续下一步骤,否则就无法破解网络。
14、记住路由器的MAC地址和信道号。这些信息在网络名称的左侧:MAC地址——它是路由器所在行最左侧的一串数字。
信道——它是WPA或WPA2标记左侧的数字,比如0、1、2等。
15、监听所选网络以抓取握手包。有设备连接网络时就会发生"握手",比如电脑连接路由器时。输入以下代码,注意将命令中的以下部分替换为网络的实际信息:
airomp-ng -c channel --bssid MAC -w /root/Desktop/ mon0将"channel"替换为上一步中找到的信道号。
将"MAC"替换为上一步中找到的MAC地址。
将"mon0"替换为实际的接口名称。
以下为地址示例:
airomp-ng -c 3 --bssid 1C:1C:1E:C1:AB:C1 -w /root/Desktop/ wlan0mon
16、等待握手。看到屏幕右上角出现"WPA handshake: <Mac地址>"的提示后,继续下一步。如果不想等待,可以使用Deauth攻击强行握手,然后再继续下一步。
17、退出airomp-ng,然后打开桌面。按Ctrl+C退出,检查电脑桌面上是否有".cap"文件。
18、重命名".cap"文件。改名的目的是方便你稍后找到它,但也可以不改。输入以下命令更改名称,注意将"name"替换为期望的名称:
mv ./-01.cap name.cap如果".cap"文件的当前名称不是"-01.cap",将它替换为实际的名称。
19、将".cap"文件转换为"hccapx"格式。可以使用Kali Linux的转换工具来转换。输入以下命令,注意将"name"替换为文件名称:
cap2hccapx.bin name.cap name.hccapx还可以前往https://hashcat.net/cap2hccapx/,然后单击 Choose File(选择文件)将".cap"文件上传到转换工具。完成后,单击Convert(转换)进行转换,将转换的文件下载到桌面,然后继续下一步。
20、安装naive-hashcat。你将它用来破解密码。按顺序输入以下命令:
sudo git clone https://github.com/brannondorsey/naive-hashcatcd naive-hashcatcurl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt如果电脑上没有独显,需要改用aircrack-ng。
21、运行naive-hashcat。安装完成后,输入以下命令,注意将所有"name"替换为".cap"文件的名称:
HASH_FILE=name.hccapx POT_FILE=name.pot HASH_TYPE=2500 ./naive-hashcat.sh
22、等到网络密码破解完成。密码被破解后,"naive-hashcat"目录下的"name.pot"文件中会多出一个字符串,字符串中的最后一个分号后的文字或短语就是密码。破解密码所需的时间从几小时到几个月不等。
部分3:在没有独显的电脑上使用Aircrack-Ng
1、下载字典文件。最常用的是"Rock You"。可以输入以下命令下载它:
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt注意,如果WPA或WPA2密码不在字典里,aircrack-ng就无法破解。
2、通过aircrack-ng破解密码。输入以下命令,根据需要替换以下网络信息:
aircrack-ng -a2 -b MAC -w rockyou.txt name.cap如果破解的不是WPA2网络,而是WPA网络,将"-a2"替换为-a。
将"MAC"替换为上一节中找到的MAC地址。
将"name替换为".cap"文件的名称。
3、等待"终端"显示结果。如果看见"KEY FOUND!"标题,就代表aircrack-ng找到了密码。密码显示在此标题右侧的括号中。
部分4:使用Deauth攻击强制握手
1、了解Deauth攻击的机制。Deauth攻击会向你尝试破解的路由器发送恶意的取消身份验证包,从而造成网络断线并要求用户重新登录。一旦用户登录,你就能获得握手包。
2、监听网络。输入以下命令,根据需要输入网络信息:
airomp-ng -c channel --bssid MAC比如:
airomp-ng -c 1 --bssid 9C:5C:8E:C9:AB:C0
3、等待设备连接网络。看到两个连续的MAC地址以及包含生产商名称的字符串后,继续下一步。这表示已有客户端连接网络,比如电脑。
4、打开新的"终端"窗口。按Alt+Ctrl+T就可以打开。在原本的"终端"窗口中继续运行airomp-ng。
5、发送Deauth包。输入以下命令,注意将以下部分替换为实际的网络信息:
aireplay-ng -0 2 -a MAC1 -c MAC2 mon0"2"是指发送的数据包数量。可以增加或减少,但要注意,超过2个包可能会让对方察觉到有人在入侵。
将"MAC1"替换为原"终端"窗口底部最左侧的MAC地址。
将"MAC2"替换为原"终端"窗口底部最右侧的MAC地址。
将"mon0"替换为电脑最初搜索路由器时找到的接口名称。
以下是命令示例:
aireplay-ng -0 3 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
6、重新打开原"终端"窗口。在发送deauth包后,返回原"终端"窗口。
7、搜索握手包。在找到"WPA handshake: <地址>"后,继续破解网络。
小提示在启动服务器前,用此方法测试无线局域网中的漏洞,这样可以预防类似攻击。
警告擅自破解其他人的无线局域网在大部分国家都是违法行为。只能对自己的网络,或明确同意你测试的网络执行上述步骤。
发送两个以上的Deauth包可能会造成目标电脑崩溃,这样会让对方起疑。
❾ kali linux打开终端的快捷键是什么
kali Linux 是没有像Ubuntu一样的Ctrl+Alt+T打开终端的快捷方式的,所以我们可以自己设置我们喜欢的快捷方式。具体设置的步骤如下:
1、在Kali下,打开控制中心的代码:gnome-control-center;
2、打开终端的代码:gnome-terminal;
3、在设置中心里,选择键盘(keyboard),在选择快捷键(shortcut),拉到最下面有一个小小的加号,点击;
4、设置快捷键,名字(name)是这个快捷键的名字,命令(command)是终端里的命令(打开终端在里面填写gnome-terminal即可),快捷键(shortcut)是自己设置的按键,根据自己的需要设置即可。
❿ kali解压命令
kali linux 压缩文件解压缩命令(包含7z)
tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
.tar.bz
解压:tar jxvf FileName.tar.bz
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.tgz
解压:tar zxvf FileName.tgz
.tar.tgz
解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar a FileName.rar
压缩:rar e FileName.rar
———————————————
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
7z命令的使用
1. 解压缩7z文件
7za x phpMyAdmin-3.3.8.1-all-languages.7z -r -o./
参数含义:
x 代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也是解压缩文件,但其会将所有文件都解压到根下,而不是自己原有的文件夹下)
phpMyAdmin-3.3.8.1-all-languages.7z 是压缩文件,这里我用phpadmin做测试。这里默认使用当前目录下的phpMyAdmin-3.3.8.1-all-languages.7z
-r 表示递归解压缩所有的子文件夹
-o 是指定解压到的目录, -o后是没有空格的,直接接目录。这一点需要注意。
2. 压缩文件/文件夹
7za a -t7z -r Mytest.7z /opt/phpMyAdmin-3.3.8.1-all-languages/*
参数含义:
a 代表添加文件/文件夹到压缩包
-t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z。
-r 表示递归所有的子文件夹
Mytest.7z 是压缩好后的压缩包名
/opt/phpMyAdmin-3.3.8.1-all-languages/*:是压缩目标。
注意:7za不仅仅支持.7z压缩格式,还支持.tar.bz2等压缩类型的。如上所述,用-t指定即可。