kali 实战渗透环境配置指南



0x01 最近刚好看到kali有更新,想想自己用的系统似乎很久也没更新过了,这里就顺手记录一些关于部署渗透系统的注意事项,留给有需要的朋友做些简单参考

首先,到kali的官网去下载最新版的kali iso镜像或者虚拟机文件个人还是更建议直接用它官方提供的虚拟机,这里我就直接用它已经配好的虚拟机来做演示说明,也建议大家直接用它官方提供好的虚拟机,不用官方iso镜像是有原因的,以后大家就会明白的,只是不想在部署系统上浪费太多时间

1
2
https://images.offensive-security.com/virtual-images/Kali-Linux-2017.1-vm-amd64.7z
https://images.offensive-security.com/virtual-images/Kali-Linux-2017.1-vm-i686.7z

0x02 虚拟机下载好以后,解压该虚拟机文件,然后到VMware中选择并打开该虚拟机,root的默认密码是toor,进入系统后,编辑source.list文件,修改为官方提供的apt源,强烈建议这里只保留官网提供的apt源即可,尽量不要用任何第三方源,如果被挂马,概不负责,^_^ 务必谨记

1
2
# vi /etc/apt/sources.list
deb http://http.kali.org/kali kali-rolling main non-free contrib

0x03 下面是常用的一些vpn客户端,因为等会要全部连vpn操作,所以,需要事先装下,个人习惯如此,你大可不必像我这样,只是有些工具不连vpn可能更新不了

1
2
3
4
5
# apt-get update 先刷下缓存,要不然可能会提示找不到某些软件包
# apt-get install network-manager-openvpn-gnome \
network-manager-pptp network-manager-pptp-gnome \
network-manager-strongswan network-manager-vpnc \
network-manager-vpnc-gnome -y

0x04 配置并连接pptp
vpn

0x05 vpn连上没什么问题以后,再次刷新软件包缓存,注意这里单单只是刷新一下,千万不要大规模更新哦

1
# apt-get update

0x06 安装内核头文件,因为在编译一些工具时经常要用到该头文件,如果你跟我一样,也直接用的是kali提供好的vmware虚拟机,默认头文件就是已经装好了的,因为在装vmtools时要用到这个头文件

1
2
# apt-get install linux-headers-`uname -r` -y
# apt-get install vim -y

0x07 删除所有的登陆提示,关于系统的简单优化,还有很多,这里就不一一说了

1
2
3
# > /etc/issue
# > /etc/issue.net
# > /etc/motd

0x08 修复wireshark启动报错,这是自己用过的最好的渗透工具,没有之一

1
# vi /usr/share/wireshark/init.lua

vi
0x09 配置符合自己操作习惯的一些环境变量,这儿只是给大家做些简单参考,大家按照自己实际的习惯来即可

1
2
3
4
5
6
7
8
# vi ~/.bashrc
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias vi='vim'
alias pg='ping www.gogle.com -c 3'
alias vinet='vi /etc/network/interfaces'
alias grep='grep --color=auto'

1
# source ~/.bashrc 编辑完以后,顺手重启下环境变量

0x10 再来简单配置下vi,也是个人最喜欢的编辑器之一,下面的选项最多只能保证vi刚刚可以正常使用,但更多具体的配置选项还要按大家自己实际的编辑习惯来,说到底只是个编辑器,怎么顺手怎么来,不用太过纠结

1
# vi ~/.vimrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
syntax on " 语法高亮
autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd InsertEnter * se cul " 用浅色高亮当前行
set ruler " 显示标尺
set showcmd " 输入的命令显示出来,看的清楚些
"自动保存
set autowrite
set ruler " 打开状态栏标尺
set cursorline " 突出显示当前行
set magic " 设置魔术
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
" 不要使用vi的键盘模式,而是vim自己的
set nocompatible
" 去掉输入错误的提示声音
set noeb
" 在处理未保存或只读文件的时候,弹出确认
set confirm
" 自动缩进
set autoindent
set cindent
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
set shiftwidth=4
" 不要用空格代替制表符
set noexpandtab
" 在行和段开始处使用制表符
set smarttab
" 显示行号
set number
" 历史记录数
set history=1000
"禁止生成临时文件
set nobackup
set noswapfile
"搜索忽略大小写
set ignorecase
"搜索逐字符高亮
set hlsearch
set incsearch

vi 配置完以后的编辑效果,如下:
vi

0x11 开启系统的路由转发功能,很多工具运行时需要开启此功能,比如,各类嗅探工具,所以这儿就直接提前把它打开

1
2
# vi /etc/sysctl.conf
net.ipv4.ip_forward=1

0x12 现在该配置下浏览器了,把浏览器上的各种图标能隐藏起来的都隐藏起来吧乱七八糟的图标占地方,越简洁越好,反正我们要看的是主体内容,平时用不到的一些功能尽量把它都收起来,省的占页面,浏览历史设置为,从来不记住,burpsuite的默认代理也提前设置好,另外再安装一些常用的插件,仍然只是随便给几个参考,大家平时喜欢用什么装什么即可

1
2
3
4
5
6
7
8
hackbar
firebug
downthemall
noscript
tamper data
live http headers
nodirect
...

firefox

0x13 再来粗略配置下shell终端

1
2
3
4
修改成自己喜欢的终端字体字号,方便自己看就行
让终端以真正的shell程序来运行
选择自己喜欢的配色方案
添加所有中文简体字符集防止终端中文乱码

0x14 解压rockyou字典,有时候可能会用到,反正自己很少用,默认字典质量确实比较烂

1
2
# cd /usr/share/wordlists/
# gunzip rockyou.txt.gz

0x15 把系统默认的java环境配置为java jdk,这里库所在的目录要注意下,我用的是32位的系统所以是i386,如果你是64位的系统可能就是amd64,非常不建议使用系统默认的Openjdk

1
2
3
4
5
6
7
8
9
10
11
# tar xf jdk-7u45-linux-i586.tar.gz
# mv jdk1.7.0_45/ /opt/
# cd /opt/jdk1.7.0_45/
# update-alternatives --install /usr/bin/java java /opt/jdk1.7.0_45/bin/java 1
# update-alternatives --install /usr/bin/javac javac /opt/jdk1.7.0_45/bin/javac 1
# update-alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so mozilla-javaplugin.so /opt/jdk1.7.0_45/jre/lib/i386/libnpjp2.so 1
# update-alternatives --set java /opt/jdk1.7.0_45/bin/java
# update-alternatives --set javac /opt/jdk1.7.0_45/bin/javac
# update-alternatives --set mozilla-javaplugin.so /opt/jdk1.7.0_45/jre/lib/i386/libnpjp2.so
# java -version
# javac

0x16 安装各种压缩解压工具

1
# apt-get install unrar unace rar unrar p7zip zip unzip p7zip-full p7zip-rar file-roller -y

0x17 安装tor服务最好不要让它自启动和remmina远程桌面工具

1
2
# apt-get install tor -y
# apt-get install remmina -y

0x18 检查各种预装的服务,启动运行是否都正常,所有的服务默认都是不会自启动的,也不建议让它自启动,永远谨记,最少的服务,最大的安全

1
# /etc/init.d/apache2 start

1
2
# /etc/init.d/mysql start
# mysql -uroot -p 我们发现最新版的kali,已经把MySQL换成了MariaDB,其实对于使用者来说几乎没有任何区别,因为我们根本不必关心底层架构
1
# /etc/init.d/postgresql start
1
2
3
# /etc/init.d/ssh start
PermitRootLogin yes 允许root可以远程登录,最好顺便把ssh的默认端口也改下,root密码,我就不说什么了,大家都懂,务必严格遵守密码复杂性要求
# /etc/init.d/ssh restart
1
# netstat -tulnp 最后,看下各种服务端口都起来没

0x19 简单配置proxychains,注释掉原来默认的那个sock4代理,新增下面的代理,至于要代理的端口,你自己随意,只要不跟系统现有端口冲突即可,内网渗透可能经常用到,所以我在这里还是直接先把它配好,另外注意,类型选择 random_chain 随机选择代理

1
2
3
# vi /etc/proxychains.conf
random_chain
socks5 127.0.0.0 1000

0x20 检查各种工具启动运行时是否正常
msf:

1
2
3
# msfconsole
armitage
# msfdb init 如果启动报错,先执行此初始化语句

msf

beef:

1
2
# cd /usr/share/beef-xss/
# vi config.yaml

1
2
3
4
5
credentials:
user: "klion"
passwd: "admin!@#45"
metasploit:
enable: true
1
2
3
4
5
# cd extensions/metasploit/
# vi config.yaml 修改回连地址
# cd ../../
msf > load msgrpc ServerHost=192.168.3.5 User=msf Pass=abc123
# ./beef -x

beef

1
2
3
4
5
6
7
8
# responder
# commix -h
# wpscan --update
# hydra -h
# medusa -h
# weevely -h
# sqlmap --version
# tcpdump -h
1
burpsuite:

maltego:
maltego

其它更多的工具,这里就不一一测了,大家可以捡一些自己常用的测……

0x21 安装一些额外工具

安装配置nessus,去官网下载最新版的nessus deb包,然后解压安装该包,安装过程中如果没什么问题就可以启动nessus服务了,如下

1
2
# dpkg -i Nessus-6.10.5-debian6_i386.deb
# /etc/init.d/nessusd start

而后访问 https://127.0.0.1:8834 它会进行一些简单的初始化操作,如,创建登录用户,输入激活码,最后下载更新数据,跳出登录界面,进入nessus控制台,注意浏览器在此时不要使用使用代理,否则会更新出错,如果更新出错,可再使用下面的命令手动更新:

1
# /opt/nessus/sbin/nessuscli update

nessus

安装配置openvas:

1
2
3
4
5
6
7
8
# apt-get install openvas 安装openvas,此期间的过程非常的漫长,务必要保持网络畅通,耐心等待
# openvas-setup 自动配置下载各种插件
# openvas-check-setup 检查安装是否成功,看到所有的检测项ok,最后提示'it seems *** ok',即表示安装成功
# openvasmd --user admin --new-password admin123 创建登陆账号和密码
# openvas-feed-update 更新插件
# openvas-start 启动openvas服务
# openvas-stop 关闭openvas服务,注意,启动关闭时可能都会比较慢,正常,因为要加载很多插件
访问:https://127.0.0.1:9392 用刚刚创建的用户登陆openvas控制台即可

vpn

1
2
3
# vi /lib/systemd/system/greenbone-security-assistant.service 编辑该配置文件,把里面的--listen=127.0.0.1 改成0.0.0.0 默认只允许本地登陆,改成任意地址登陆
# systemctl daemon-reload
# openvas-start

顺手再装几个外部工具,都是我自己会用到的一些,如果你觉得不适合自己,就忽略掉吧

1
# apt-get install zmap masscan mitmf bettercap

0x22 稍微清理一下系统,就差不多可以收工了

1
2
# history -cw
# apt-get autoclean

0x23 关闭虚拟机,点击虚拟机设置,点击清理磁盘
vm

将硬盘设置为 独立-> 非永久,一定要记得,重要数据提前备份好,莫怪我没提醒,一旦关机,砸电脑也于事无补,已经不想再说被伤过多少次了,希望大家千万别再踏我踏过的坑,有些代价实在承受不起
vm

小结:
    至此,一个相对符合我们自己操作习惯的干净的渗透系统就基本部署完成了,至于后面还有很多各种各样的工具脚本,当我们用到时,再单独装就可以了,强烈建议不要一开始就把系统搞的特别臃肿,用什么开什么就好了,不用的时候全部关掉,尽可能的节省系统资源做更多的事情,大家可能注意到,我从始至终都没有执行过apt-get upgrdae 来更新系统,当然,这并不是因为我下的就是最新版的[没错,通常这时候更新也是最少的,这也正是我为什么选择在这个时候部署系统的主要原因],其实,对于渗透来讲,我们并不一定什么都必须要是最新的,相反,我们要的更多可能是实用和稳定,如果连这两点最基本的条件都不能保证,尤其对于一个渗透系统来讲,那就太可悲了,因为实际渗透中,我们可能并没有太多时间会花在解决系统自身的问题上,另外,还是那句话,强烈不建议隔一段时间就大规模更新系统,这样做的后果很可能会破坏掉系统原有的工具架构,尤其是一些依赖库版本的问题,最后可能导致的结果往往就是各种工具在运行时总是出现这样或那样的异常甚至不停报错,系统在第一次全部部署完成后,后续尽量就不要再进行大规模的更新,只要不是爆了很严重的,比如那种可以直接远程get到你的系统root的shell的0day,都不必太过担心,最后,因为我们部署该系统的初衷也并不是想把它作为我们的日常系统来用,所以,关于其他的一些娱乐办公方面的东西,这里不就说了,也强烈不建议把那些乱七八糟的东西都搞到系统里,很显然,这样做是非常不明智的,我们的最终目的,只是为了方便拿它来渗透,而不是装逼炫酷,所以,完全没必要把大把的时间都浪费在折腾系统上,真的不值当,只能告诉大家,东西装太多不好,是真的不好,尤其是我们很少用到的东西,除了会加重系统的负载,几乎是毫无用处,最后,再嘱咐大家一句,严禁安装flash[这个溢出王],要不然,哪一天被挂马,就尴尬了,总之一句话,用于实际渗渗透的系统尽量保持精简高效,实用和稳定即可,更具体情况还要根据大家自身的实际情况来考量,这里统统仅仅只是作为参考,当然,如果大家真的有非常熟练的LFS能力,完全可以自己去尝试从0构建一个专属的渗透发行版,这也是我一直想做的,不过,像我这种搓逼,也就只能用centos最小化或者在ubuntu[主要是看着舒服]上简单定制下了……总之,祝大家好运吧!