前言
使用默认的Kali Linux设置来学习是可以的,但是我们通常要修改系统的一些基本设置,来最大化使用Kali平台的功能。
以下内容
网络的基础知识
使用图形用户界面来配置网卡
使用命令行来配置网卡
使用图形用户界面来配置网卡
使用命令行来配置无线网卡
启动、停止和重启Apache服务器
安装FTP服务器
启动、停止和重启SSH服务器
挂载外置媒体
更新Kali
升级Kali
增加Debian软件库
网络基础知识
1、私有IP地址
路由器的内网接口(或网卡)有一股IP地址 192.168.1.1,这成为私有地址。因为它在互联网上是无法使用的。
IP地址范围 可以IP数量
10.0.0.0 至 10.255.255.255 16 777 216
172.16.0.0 至 172.31.255.255 1 048 576
192.168.0.0 至 192.168.255.255 65 536
私有地址,要连接到互联网并能上网,路由器会使用一种叫做NAT(网络地址转换)的技术。它会将私有地址转换成互联网上可以使用的地址,这些地址通常是ISP提供的,并且分配到路由器的外网接口上(路由器的另一张网卡)。如果用户视图直接在互联网上使用私有地址,而不经过带有NAT技术的路由器,它的通信会失败。因为互联网上的路由器和设备会拒绝私有地址的访问。
私有IP地址用在哪些场合?
在内部或私有网络中,但是不能用在互联网上。是DHCP分配的。
2、默认网关
路由器分出了两个网络,内网和外网。并且提供了一些基本的安全功能,例如一个基础的防火墙。此外,路由器还提供了一个从内网访问外网的途径。因此,路由器的内网地址就是某两台客户端访问外网的必经之路。这个地址称作默认网关。
网关,就是将它看作是离开小镇的唯一出口。
而,计算机也需要知道离开内网的出口,这就是默认网关。
3、域名服务器
这里,很简单,不多赘述。
4、DHCP服务
在网络领域里,没有什么比DHCP更神奇的了,如果计算机已经配置为自动DHCP配置,那么用户只需要插上网线就可以上网了。当计算机启动网络通信查找DHCP服务器时,会发送广播请求寻找DHCP服务器。服务器会回复该客户端,并指定请求计算机所需的配置,包括IP地址,默认网关,域名服务器和子网掩码。在大部分情况下,这是配置网卡的好办法。但是如果你在进行渗透测试,使用DHCP来配置你的网络就会告诉整个网络的人你已经登录该网络了。这通常不是什么好事情。
5、子网划分
通过对IP地址使用一个掩码,我们就可以过滤出IP地址的一部分,然后用于寻址了。这里具体不多赘述。
6、Kali Linux默认配置
如前所述,大部分的渗透测试工程师、白帽子,并不想他们的网卡在接入网络时发出通知。但这正是Kali Linux启动并接入网络中时会做的。当进行渗透测试的时候,使用者必须注意,插上网线之前应该禁用网卡,以避免不必要的通信。在自定义安装时(无论是从硬盘、U盘或SD卡安装),可以更改这个自动网络设置。另一种方式是通过刻录自定义的Live盘,配置成手动网络配置。
使用图形用户界面来配置网络接口
“Application” -> “System Tools” -> “Perferences” -> "Network Connections"
当然,有些版本,稍微有点出入。我的是Kali 2.0
自行,可以去设置,增加网卡等。
这里,不多赘述了。
使用命令行来配置网络接口
理解如何使用命令行来配置,或者重新配置网络适配器是非常重要的,当无法使用Linux图形界面,或者通过终端窗口远程登录到一个系统上时这就非常有用了。在很多渗透测试的案例中,使用命令行来进行配置更改是唯一的选择。这些更改需要提升账户权限,在Live发行版上,可以使用root账户来进行更改,在Kali Linux安装版上,可以使用SDO命令。一旦提升了账户权限之后,就可以配置网卡了。
使用如下的命令查看计算机上的所有网卡和单个网卡的状态:
ifconfig -a
这个命令会显示所有网卡的当前配置。
停止第一个以太网适配器的命令
ifconfig eth0 down
启动第一个以太网适配器的命令
ifconfig rth0 up
将适配器的IP地址从192.168.1.66改为192.168.1.22
ifconfig eth0 192.168.1.66 192.168.1.22
同时更改IP地址和子网掩码,将IP地址设置为192.168.1.22,子网掩码设置为255.255.0.0
ifconfig eth0 192.168.1.22 netmask 255.255.255.0
使用命令行来配置网卡并不需要比使用图形用户界面做更多的工作,所进行的设置也并非都保存在同一位置。如将默认网关更改为192.168.1.2,可以使用
route add default gw 192.18.1.2
DNS服务器设置是通过修改/etc/resolv.conf来实现的。也可以使用文本编辑器来修改文件,或者使用
echo nameserver 4.4.4.4 > /etc/resolv.conf
上面的命令会删除已有的DNS服务器,并用4.4.4.4替换。要增加新DNS服务器,可以使用
echo nameserver 8.8.8.8 > /etc/resolv.conf
命令行配置DHCP
在这种模式下DHCP服务器会为网卡提供所有需要的配置设置。这对绝大多数最终用户来说都是方便的,但是呢,对于渗透测试来说却不理想,因为经过配置的系统会记录在DHCP服务器的数据库中。因此可以使用如下命令来在渗透测试时关闭DHCP自动配置。这里使用的是nano编辑器,你可以使用任意的编辑器输入下面的文本。
nano /etc/networking/interfaces
# 将下面的行写入文件
auto eth0
iface eth0 inet static
address {IP_Address}
netmask {netmask}
gateway { Gateway_IP_Address}
保存该文本文件并退出编辑器以完成修改,要使设置生效,可能需要停止再重新启动以太卡。
要配置第一张网卡,可以使用
dhclient eth0
这条命令会自动将网卡配置成使用DHCP服务器提供的设置。
使用GUI来配置无线网卡
配置无线网卡同样可以使用之前配置以太网接口所使用的GUI来完成。只需要在网络连接对话框中选择“Wireless”选项卡即可。
在这个选项卡,点击“Add”,弹出“Editing Wireless connection1(假设当前我为第一个无线适配器)”。
连接名称
默认的连接名是“Wireless connection”,后面跟着当前适配器的序号,比如Wireless connection1。可以自己更改为一个有意义的名称。
自动连接复选框
当“connection automatically”复选框被勾选时,即便没有用户的交互,系统也会在启动时自动连接无线网络。就像前面提到的DHCP,这可能对绝大多数Linux用户来说很方便。但是,对渗透测试来说并不是一个好的选择,因为它会在连接到网络时发出广播。如果这个复选框被取消了,测试者就可以手动连接无线适配器了。
“Wireless”标签页
服务集标识符
服务集标识器是网络的名字,即,SSID。用于逻辑识别一个无线网络。每个网络只有一个SSID,客户端会用这个标识连接网络。在有中心接入点的网络中,SSID是由中心接入点设置的,网络中的客户端必须使用这个SSID才能连接到网络中。在有多个接入点的网络中,这些接入点的SSID必须相同才能互相通信。
服务集标识符是通过对多个无线接入点AP(AccessPoint)设置不同的SSID,并要求无线工作站出示正确的SSID才能访问AP,这样就可以允许不同群组的用户接入,并对资源访问的权限进行区别限制。
模式
无线网卡可以被配置成两个模式,临时模式(ad hoc)和基础设施模式(infrastructure)。ad hoc模式的网络通常是在没有中心接入点进行网络管理的情况下由计算机无线互连而成。在这种模式下,每个无线连接的配置都应该符合其他计算机的无线网络配置才能建立起连接。在infrastructure模式下,中心接入点会管理每个连接到该网络和服务集中其他计算机的客户端。每个客户端的配置都应该符合接入点定义的设置。这两个模式的主要区别就是在ad hoc下没有中心管理,而infrastructure模式下有一个接入点来管理网络。
基本服务集标识符
基本服务集标识符,用来在infrastructure模式中识别接入点的MAC地址。和SSID的不同的是,每个接入点都会有唯一的BSSID,就像每个接入点都会有唯一的MAC地址。
设备MAC地址
设置MAC地址字段是用来将本配置指定在一个无线适配器上,对于有多个适配器的计算机来说这很方便。这个字段的下拉列表中会包括可用的无线适配器的MAC地址,用户只需要为要配置的无线适配器选择正确的MAC地址就可以了。
克隆MAC地址
很多时候渗透测试人员都会不想使用计算机所使用的适配器的真实MAC地址。可以非常简单地绕开一些安全规程,比如MAC地址过滤,只允许指定MAC地址的系统连接到网络。你也可以使用这种方法将自己的设备伪装成网络上的其他设备。
最大传输单元
MTU,这个很简单,不多赘述。
“Wireless Security”标签页
安全下拉列表
Security下拉列表是用来选择保护无线网络安全的方式的。对于ad hoc网络来说,网络中的用户决定了什么样的安全设置是正确的,请确定每个客户端的安全设置都和网络中某计算机是一样的。在infrastructure模式中,每个设置都必须设置为接入点指定安全设置。
有线等效保密
WEP是古老的安全方法,它使用基本的加密技术,可以提供与有线系统等效的安全性。WEP使用10位或26位16进制的密钥来加密通信。有人发现WEP加密标准有安全缺陷,渗透测试人员可以轻易地破解大多数WEP密钥。 IEEE802.1x标准中的动态WEP使用端口安全措施来为无线网络提供额外的安全措施。
轻量级可扩展身份验证协议
LEAP,这里不多赘述。
Wi-Fi网络安全接入
WPA是一种接入技术,可以使用临时密钥完整性,TKIP协议和完整性检查来提高无线网络的安全性,使用了WPA的网络比使用WEP的无线网络更安全。而且WPA2还在最初的WPA标准上做了进一步加强,使用了更加健壮的加密算法,在WPA个人模式中,每个计算机都会使用一个用密码生成的密钥。
密码和密钥
这个很简单,不多赘述。
“IPv4 Setting”标签页
这个很简单,不多赘述。
Web服务器
Kali Linux中包括了一个易于配置的Apache Web服务器。拥有一个易于配置的Web服务器对于渗透测试人员的作用很大。例如,通过使用Web服务,测试者可以创建钓鱼网站。通过使用社会工程学攻击使得这些网站向用户发送恶意代码,配置服务器后门,向其他恶意程序发送指令等。在渗透测试中用到HTTP服务的地方还有很多。
使用GUI启动、停止、重启Apache服务
使用GUI是启动、停止和重启Web服务最简单的方法。选择Kali界面上方的“Application”,然后在下拉菜单中选择“Kali Linux”,会出现相应的子菜单,从菜单中选择“System Services”,最后在菜单中选择“HTTP”,就会显示出启动、停止和重启Apache服务的选项。
当选择其中一项之后,就会弹出一个Shell窗口并在其中显示Web服务现在的状态。在默认安装的Kali中,启动和重启Apache时会显示一条错误信息,内容是“Could not reliably determine the server\'s fully domain name,using 127.0.0.1 for ServerName.”。这条错误现在不会引起问题,因为该Web服务器在本机IP上是可以访问的。要修正这条错误,编辑/etc/apache2 目录中的apache2.conf。在文件最后加上ServerName后面跟上服务器名,并保存文件。
ServerName localhost
当Apache服务器启动或重启之后,就可以通过在浏览器中输入计算机IP地址来访问默认网页了。
使用命令行启动、停止、重启Apache服务
Apache HTTP服务器可以通过在命令/etc/init.d/apache2后跟上相应的动作请求来启动、停止和重启。
/etc/init.d/apache2 start
/etc/init.d/apache2 stop
/etc/init.d/apache2 restart
Apache默认网页
这个,很简单,不多赘述。
FTP服务器
文件传输协议FTP,需要注意的是,FTP并不会加密文件或计算机之间的通信信道,因此网络上的文件传输是可以被监控者获取的。
Kali Linux并不包括FTP服务器程序,你可以安装一个FTP服务来让系统间的文件传输变得更容易。Kali上可以安装的FTP服务非常多,其中一个是Pure-FTPd。当然,其他的FTP服务也是可以使用的。你可以用apt-get来下载并安装Pure-FTPd。
apt-get install pure-ftpd-common pure-ftpd
这个命令会安装并设置FTP服务。此外还需一些小配置来保证Pure-FTP服务器可以正常工作。
cd /etc/pure-ftpd/conf
echo no > Bind
echo no > PAMAuthentication
echo no > UnixAuthentication
ln -s /etc/pure-ftpd/conf/PureDB/ /etc/pure-ftpd/auth/50pure
接下来需要创建FTP服务需要的用户组和用户,首先创建一个系统组
groupadd ftpgroup
接下来向新建的组里面添加新用户。这个命令会让添加的新用户没有访问home目录和登录shell的权限
useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser
为FTP文件新建一个目录
mkdir -p /home/
在FTP目录里面添加用户目录。在本例中,即将创建的用户sam需要这样一个目录
mkdir /home/pubftp/sam
然后给FTP服务添加一个新的用户和密码。在本例中,新用户是sam
pure -pw useradd sam -u fpgroup -d /home/pub/sam
接下来会提示你需要创建一个密码
使用如下命令来更新Pure-FTPd的数据库
pure-pw mkdb
最后用如下命令启动FTP服务
service pure-ftpd start
启动FTP之后,你可以这样测试一下该服务
ftp { IP_Address }
在提示符中输入用户名sam和密码。如果认证成功,就说明FTP服务器运行正常。否则,重启计算机并尝试再一次连接到FTP服务器。
关于使Pure-FTPd正常工作的必须步骤,请参考 http://samiux.blogspot.com/2011/08/howto-pure-ftpd-and-atftpd-on-backtrack.html
SSH服务器
SSH提供了一种更安全的远程访问Kali Linux的方式。SSH在通信的计算机之间提供一个安全的加密通道,这对渗透测试人员来说非常有用,它可以防止数据在传输过程中被网络中的安全工具所检测到,比如入侵检测系统(IDS)和入侵防御系统(IPS)。
生成SSh密钥
要安全地使用SSH,你需要生成密钥来对通信加密,提高通信的安全性。要生成密钥,在命令行中输入如下命令。
首先,将原始的SSH密钥从默认目录中移走,但是不要删除它们。
mkdir -p /etc/ssh/original_keys
mv /etc/ssh/ssh_host_* /etc/ssh/original_keys
cd /etc/ssh
生成新的SSH密钥
dkpg-reconfigure openssh-server
启动或者重启SSH守护进程
service ssh start 或者 service ssh restart
使用Kali GUI管理SSH服务
SSH服务被内置在kali的图形用户界面的主文件结构中,你可以用和操作Apache相同的方式来操作它:选择左上角的“Applicatin”,从下拉菜单中选择“Kali Linux”,在弹出的子菜单中选择“System Service”,然后从相应菜单中选择“SSH”,就会显示出启动、停止和重启SSH服务的选项。
使用命令行管理SSH服务
SSh服务也可以通过命令行来启动、停止和重启。只需要将start、stop和restart加在/etc/init.d/ssh后面就行了。
/etc/init.d/ssh start
/etc/init.d/ssh stop
/etc/init.d/ssh restart
远程访问系统
当在Kali系统中启动SSH服务之后,就可以从H-Linux系统远程访问计算机了。在Linux系统中输入如下命令来连接(如果用户名为sam,计算机的IP地址是192.168.1.66)
在windows客户端访问SSH需要使用SSH客户端。互联网上可以找到很多此类客户端,例如很常用的putty,你可以从http://putty.org下载。安装客户端之后,只需要填入Kali Linux的IP地址或主机名以及登录证书就可以远程连接到Kali计算机上了。
配置并访问外置媒体
在Kali Linux中使用外置媒体,例如硬盘和拇指驱动器,比在Backtrack中容易的多。通常使用USB连接到计算机上的媒体都会被操作系统自动识别,如果没有自动识别的话,可以使用下面的方法手动挂载驱动器。
手动挂载驱动器
要在Kali Linux中手动挂载驱动器,第一步是将物理设备连接到计算机上。然后打开终端并创建一个挂载点。要创建挂载点,首先需要提升账户的权限。如果计算机的root账户没有启动,也可以使用sudo 命令。下面的命令可以在media目录中创建一个叫做newdrive的挂载点:
mkdir /media/