安装 Kali Linux 之后要做的10件事
默认情况下,Kali Linux 可能不具备轻松进行常规渗透测试所需的一切。但只需要通过一些技巧、窍门和应用程序,您就可以像专业的白帽黑客一样迅速开始使用 Kali。
大多数 Linux 发行版都是高度可定制的。这使得个性化渗透测试布局有些困难。而仅需几个命令,您就可以自动化任务、安装喜欢的软件、创建其他用户帐户、正确配置匿名软件、以及优化与终端的交互。
01
安装Git
Git是一个开源软件版本控制应用程序。它可用于协作共享和编辑代码,但也经常被用于 “克隆” GitHub上的代码存储库的主要工具。
对于渗透测试人员来说,Git 是必不可少的工具,尤其当您希望将工具集扩展到默认 Kali 存储库中可用的工具之外时。
可以使用以下 apt-get 命令安装 Git。
apt-get install git
02
配置Bash别名
Bash 别名非常适合创建自定义的命令行快捷方式。例如可以重新分配 ls 命令以自动使用您喜欢的参数。以下是普通 ls 输出的示例。
ls
androidbins.txt folder-pictures.png smtp.cracked text-x-generic.png
bogus_gmail.creds folder.png smtp.list Windows-10
dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39 package-x-generic.png text-x-generic.ico 'Windows 10 Icons'
下面是创建 ls 别名之后再次输出的示例。
ls
total 220K
-rw------- 1 root root 15K Aug 24 2015 folder-pictures.png
-rw------- 1 root root 8.7K Aug 24 2015 folder.png
-rw------- 1 root root 11K Aug 24 2015 package-x-generic.png
-rw------- 1 root root 5.5K Sep 3 2015 text-x-generic.png
drwxr-xr-x 12 root root 4.0K May 31 00:44 'Windows 10 Icons'/
drwxr-xr-x 18 root root 4.0K May 31 00:44 Windows-10/
-rwxr-x--- 1 root root 103K May 31 00:49 text-x-generic.ico*
drwxr-xr-x 5 root root 4.0K Jun 11 21:57 dumpzilla-b3075d1960874ce82ea76a5be9f58602afb61c39/
-rw-r--r-- 1 root root 52 Jul 5 18:13 bogus_gmail.creds
-rw-r--r-- 1 root root 15K Jul 5 18:28 smtp.list
-rw-r--r-- 1 root root 181 Jul 5 18:43 smtp.cracked
-rw-r--r-- 1 root root 23K Jul 23 18:18 androidbins.txt
drwxr-xr-x 5 root root 4.0K Jul 23 19:22 ./
drwxr-xr-x 23 root root 4.0K Aug 9 04:25 ../
得到的输出更加详细了。ls 命令现在自动使用 -l, -a, -t, -h, 和 -r 参数。所有这些参数都将指示 ls 使用列表 (-l) 格式,列出所有 (-a) 文件 —— 包括隐藏文件 —— 并输出为人类可读 (-h) 的格式(例如 1K,234M, 5G)。
别名还将按修改时间 (-t) 对输出进行排序,还可以按反向 (-r) 排序以便令最近的修改出现在终端的底部。
要创建别名,请使用 nano 或您喜欢的文本编辑器打开 /root/.bash_aliases,添加以下行以创建别名。
alias ls='ls --color=always -rthla'
还可以做更多,向 .bash_aliases 文件添加更多复杂的功能。以下是一个旨在使 Kali 保持最新状态的简单示例。
function apt-updater {
apt-get update && apt-get dist-upgrade -Vy &&
apt-get autoremove -y &&
apt-get autoclean &&
apt-get clean &&
reboot }
保存对 .bash_aliases 文件所做的更改后,打开新终端以使更改生效。
运行新创建的 apt-updater 函数将调用一系列 apt-get 命令,这些命令将自动更新和维护您的系统。
如果前一个的命令失败,& 符号(&&)可确保该函数不会继续执行以下命令。
apt-updater
03
创建一个新的低权限用户
如 Chromium 浏览器和 Tor 浏览器等应用程序都不应该以 root 用户身份打开或使用。此类应用程序在很大程度上依赖于低级别权限来提供某种程度的安全性。为这些活动创建低特权用户帐户对于某些用户来说可能是有益的。
04
安装一个终端复用器
复用器是一种平铺终端仿真器,它允许在一个窗口内打开多个终端会话。
这样做的主要好处是能够立即看到所有打开的终端会话,而不是将窗口叠加在一起。以下是复用器的示例。
有许多值得注意的复用器。如上面的屏幕截图所示,Tilix 是一个开源且可靠的选项。还有其他替代方案包括 tmux 和 screen。
Tilix 可在 Kali 的 APT 存储库中使用,可以使用以下命令进行安装。
apt-get install tilix
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libgtkd-3-0 libphobos2-ldc-shared78 libvted-3-0 tilix-common
Suggested packages:
python-nautilus
The following NEW packages will be installed:
libgtkd-3-0 libphobos2-ldc-shared78 libvted-3-0 tilix tilix-common
0 upgraded, 5 newly installed, 0 to remove and 466 not upgraded.
Need to get 10.7 MB of archives.
After this operation, 49.1 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
05
安装你喜欢的黑客工具
有些 Kali 版本是面向极简主义的渗透测试者,那些不希望预先安装数百个黑客工具的人。这意味着必须手动安装您喜欢的工具。人们使用的工具类型根据自己的技能和专业领域而有所不同,但以下是一些流行的黑客工具。
Aircrack-ng:无线WEP/WPA破解实用程序。
BeEF:通过Web应用程序的浏览器漏洞利用框架。
Burp Suite:专为Web应用程序安全性而设计的图形应用。
Hydra:登录密码暴力破解实用程序。
Nikto:Web服务器安全扫描器。
Maltego:开源取证和情报收集。
Nmap:端口扫描器和网络映射器。
Wireshark:用于网络流量分析的图形应用程序。
可以使用以下命令安装这些工具。
apt-get install maltego metasploit-framework burpsuite wireshark aircrack-ng hydra nmap beef-xss nikto
Reading package lists...
Done Building dependency tree
Reading state information... Done
hydra is already the newest version (8.6-1kali1).
The following NEW packages will be installed:
beef-xss binfmt-support burpsuite fastjar fonts-droid-fallback fonts-lato
fonts-noto-mono ghostscript gsfonts imagemagick imagemagick-6-common
imagemagick-6.q16 jarwrapper java-wrappers javascript-common libc-ares2
libcupsfilters1 libcupsimage2 libdjvulibre-text libdjvulibre21 libdouble-conversion1
libfftw3-double3 libgmp-dev libgmpxx4ldbl libgs9 libgs9-common libhttp-parser2.8
libijs-0.35 libilmbase23 libjbig2dec0 libjs-jquery libjs-jquery-easing
libjs-jquery-fancybox libjs-jquery-mousewheel libjs-jquery-ui libjs-source-map
libjs-uglify libjxr-tools libjxr0 liblqr-1-0 liblua5.2-0 libmagickcore-6.q16-6
libmagickcore-6.q16-6-extra libmagickwand-6.q16-6 libnetpbm10 libnl-route-3-200
libopenexr23 libpaper-utils libpaper1 libpcre2-16-0 libqt5core5a libqt5dbus5
libqt5gui5 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediagsttools5
libqt5multimediawidgets5 libqt5network5 libqt5opengl5 libqt5printsupport5 libqt5svg5
libqt5widgets5 libruby2.5 libsbc1 libsmi2ldbl libspandsp2 libssh-gcrypt-4 libuv1
libwhisker2-perl libwireshark-data libwireshark11 libwiretap8 libwmf0.2-7
libwscodecs2 libwsutil9 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0
libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxkbcommon-x11-0 libyaml-0-2
maltego netpbm nikto nodejs nodejs-doc openjdk-8-jre openjdk-8-jre-headless
qt5-gtk-platformtheme qttranslations5-l10n rake ruby ruby-addressable ruby-ansi
ruby-atomic ruby-buftok ruby-celluloid ruby-celluloid-io ruby-daemons
ruby-dataobjects ruby-dataobjects-mysql ruby-dataobjects-postgres
ruby-dataobjects-sqlite3 ruby-dev ruby-did-you-mean ruby-diff-lcs
ruby-dm-core ruby-dm-do-adapter ruby-dm-migrations ruby-dm-serializer
ruby-dm-sqlite-adapter ruby-docile ruby-domain-name ruby-em-websocket
ruby-equalizer ruby-erubis ruby-eventmachine ruby-execjs ruby-faraday
ruby-geoip ruby-hitimes ruby-http ruby-http-cookie ruby-http-form-data
ruby-http-parser.rb ruby-json ruby-librex ruby-libv8 ruby-memoizable
ruby-mime-types ruby-mime-types-data ruby-minitest ruby-mojo-magick
ruby-msfrpc-client ruby-msgpack ruby-multi-json ruby-multipart-post
ruby-naught ruby-net-telnet ruby-nio4r ruby-oj ruby-parseconfig
ruby-power-assert ruby-public-suffix ruby-qr4r ruby-rack
ruby-rack-protection ruby-ref ruby-rqrcode ruby-rspec-expectations
ruby-rspec-support ruby-rubydns ruby-simple-oauth ruby-simplecov
ruby-simplecov-html ruby-sinatra ruby-sqlite3 ruby-term-ansicolor
ruby-test-unit ruby-therubyracer ruby-thread-safe ruby-tilt
ruby-timers ruby-tins ruby-twitter ruby-uglifier ruby-unf
ruby-unf-ext ruby-xmlrpc ruby-zip ruby2.5 ruby2.5-dev
ruby2.5-doc rubygems-integration thin wireshark wireshark-common
wireshark-qt zip
The following packages will be upgraded:
aircrack-ng libcups2 libnl-3-200 libnl-genl-3-200 libxkbcommon0 metasploit-framework
nmap nmap-common
8 upgraded, 182 newly installed, 0 to remove and 458 not upgraded.
Need to get 381 MB of archives.
After this operation, 616 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
06
安装最新版本的 Tor
Tor 可以在 Kali 的存储库中使用,但匿名软件应该直接从源代码获取(torproject.org)。
此外,Kali 的 Tor 版本无法可靠地维护或更新。这意味着可能会缺少关键的稳定性和安全性更新。
将 Tor 项目存储库添加到 APT 存储库列表中。
echo 'deb https://deb.torproject.org/torproject.org stretch main
deb-src https://deb.torproject.org/torproject.org stretch main' > /etc/apt/sources.list.d/tor.list
然后,下载 Tor Project 包签名密钥并将其导入 APT 密钥环。
wget -O- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
--2019-02-18 19:28:23-- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
Resolving deb.torproject.org (deb.torproject.org)... 138.201.14.197
Connecting to deb.torproject.org (deb.torproject.org)|138.201.14.197|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 19665 (19K) [text/plain]
Saving to: ‘STDOUT’
-
100%[=================================================================================================>] 19.20K 47.5KB/s in 0.4s
2009-02-18 19:28:25 (47.5 KB/s) - written to stdout [19665/19665] OK
将签名密钥添加到密钥环后您将看到 “OK” 输出。接下来,使用以下 apt-get 命令更新 APT。
apt-get update
Hit:1 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid InRelease
Get:2 https://deb.torproject.org/torproject.org stretch InRelease [4,965 B]
Get:4 https://deb.torproject.org/torproject.org stretch/main Sources [1,169 B]
Get:5 https://deb.torproject.org/torproject.org stretch/main amd64 Packages [2,400 B]
Hit:3 http://archive-3.kali.org/kali kali-rolling InRelease
Fetched 8,534 B in 8s (1,091 B/s)
Reading package lists... Done
使用以下命令安装 Tor,这样就完成了。
apt-get install tor deb.torproject.org-keyring
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
mixmaster torbrowser-launcher socat tor-arm apparmor-utils obfs4proxy
The following NEW packages will be installed:
deb.torproject.org-keyring
The following packages will be upgraded:
tor
07
使用 Syncthing 配置文件共享
由 Jakob Borg 创建的 Syncthing 是一种 跨平台的,私有的、且轻量级的文件同步替代方案。
作为渗透测试人员,在 VPS 和本地 Kali 机器之间传输按键日志、屏幕截图、网络摄像头录像、和敏感的战利品文件,可能是一项令人沮丧的任务。Syncthing 则使安全的文件共享完全更加轻松。
08
安装代码编辑器
Atom 是一个免费开源的,功能丰富且高度可定制的文本编辑器。其功能包括实时协作共享代码,直观的编码自动补全功能,以及安装软件包的能力,这些都进一步增强了 Atom 的多功能性。
其他值得注意的文本编辑包括 Geany 和 Gedit。
要安装 Atom,请访问他们的网站并下载最新的 Debian安装程序。接下来使用下面的 apt-get 命令打开终端并安装所需的依赖项。
apt-get install gvfs gvfs-common gvfs-daemons gvfs-libs gconf-service gconf2 gconf2-common gvfs-bin psmisc
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following NEW packages will be installed:
gconf-service (3.2.6-4.1)
gconf2 (3.2.6-4.1)
gconf2-common (3.2.6-4.1)
gvfs-bin (1.36.2-1)
libgconf-2-4 (3.2.6-4.1)
psmisc (23.1-1+b1)
The following packages will be upgraded:
gvfs (1.36.1-1 => 1.36.2-1)
gvfs-common (1.36.1-1 => 1.36.2-1)
gvfs-daemons (1.36.1-1 => 1.36.2-1)
gvfs-libs (1.36.1-1 => 1.36.2-1)
4 upgraded, 6 newly installed, 0 to remove and 462 not upgraded.
1 not fully installed or removed.
Need to get 3,317 kB of archives.
After this operation, 8,909 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
最后,使用命令行包管理器 dpkg 和 install(-i)参数。
dpkg -i ~/Downloads/atom-amd64.deb
(Reading database ... 191882 files and directories currently installed.)
Preparing to unpack atom-amd64.deb ...
Unpacking atom (1.29.0) over (1.29.0) ...
Setting up atom (1.29.0) ...
Processing triggers for desktop-file-utils (0.23-3) ...
Processing triggers for mime-support (3.60) ...
完成后,Atom 将显示在 “应用程序” 菜单中。
09
克隆 Rubber Ducky 编码器
USB橡皮鸭是臭名昭著的按键注入工具。利用 DuckToolKit 网站可以很容易创建 ducky payloads,但作为一个渗透测试人员,与随机网站共享客户信息是不安全的。
将有效载荷内容上载到第三方网站可能很危险。
相反,可以使用 Git 克隆USB橡皮鸭存储库并在本地编码有效载荷。
git clone https://github.com/hak5darren/USB-Rubber-Ducky
Cloning into 'USB-Rubber-Ducky'...
remote: Counting objects: 1657, done.
remote: Total 1657 (delta 0), reused 0 (delta 0), pack-reused 1657
Receiving objects: 100% (1657/1657), 31.88 MiB | 162.00 KiB/s, done.
Resolving deltas: 100% (745/745), done.
Checking out files: 100% (1509/1509), done.
然后,将当前目录更改(cd)为 USB-Rubber-Ducky/Encoder/ ,并使用以下 java 命令开始编码没有第三方网站的 ducky payloads。
cd USB-Rubber-Ducky/Encoder/
java -jar encoder.jar -i input_payload.txt -o inject.bin
10
更改SSH密钥和默认密码
每个 Kali Linux 安装的默认密码都是相同的(toor),这使得自动化攻击非常容易。
此外,当你通过 SSH 控制树莓派之类的东西时,默认的 SSH 密钥可以允许攻击者拦截你的通信。
要更改 SSH 密钥,请首先切换目录,执行以下两个命令将重置 SSH 密钥的默认值。
cd /etc/ssh/
dpkg-reconfigure openssh-server
rescue-ssh.target is a disabled or a static unit, not starting it.
现在,对于你的 Kali 系统密码,输入 passwd root,然后输入你的新密码。
然后,重新输入以确认。
如果你您以 root 用户身份登录,可能会在执行此操作之前询问您当前的密码。
passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
就是这样。每个人都有不同的兴趣、技能和经验水平,并没有一个能适合任何人的安装步骤。但本文至少列出了关键的一些步骤。
扫描二维码获取优质内容
计算机科学的艺术