虚拟机Ubuntu以及pwn的工具安装

之前pwn入门在kali上装了,师兄说用Ubuntu会比kali好得多,更有利于pwn的学习,本着少走弯路的想法我就决定装一个,再把工具什么的配了

一、Ubuntu的安装

参考博客及镜像来源:VMware虚拟机安装Ubuntu教程(超详细)_vmware安装ubuntu-优快云博客

我个人觉得这篇博客还是挺详细的,并且还附带资源,VMware没有的话也可以装

新建虚拟机

选择稍后安装操作系统

操作系统选择Linux,版本选择Ubuntu 64位,然后名字和位置就不说了,不在C盘就行

这里要选择配置,官方建议是双核2 GHz处理器或更高、4 GB系统内存、25 GB磁盘存储空间,但也要根据电脑配置来决定

用ctrl+shift+esc打开任务管理器,选择性能,然后选择cpu,这里只要不超过物理机的核心数就可以了

补充:

处理器数量:虚拟机上的CPU个数

每个处理器的内核数量:每个虚拟的CPU有几个内核

处理器内核总数:处理器数量 * 每个处理器的内核数量(即物理机分配给虚拟机的CPU线程数,只要该参数一样,不管上面两个参数怎么调整整机性能都是一致的)

我选了4+2,这里应该够用了

接下来是虚拟机内存,内存官方推荐是 4GB

同样使用任务管理器查看本机配置,32够用了

那就用推荐的了

选择使用网络地址转换(NAT)(E),然后下一步

接下来两步都是默认推荐,就不赘述了

这里选择创建新虚拟磁盘

官方推荐的是硬盘容量是 25GB,直接给 50GB 够用了,后期不够的话还可以扩容。

觉得ok了就点击完成,不满意就自定义硬件修改配置

接下来就可以进入操作系统的安装了

选中Ubuntu虚拟机后选择编辑虚拟机设置

根据图片框起来的选择,镜像就选择刚刚下载好的,原文中是22年的了,我就用24的新一点,安装方式基本一样,不用过多纠结,选好了就点确定,然后就可以开启虚拟机了

这里由于选择了24年的,以后不知道还会不会用到别的年份的Ubuntu,就重命名一下,在侧边栏右键虚拟机选择重命名就可以了

开启后回车选择第一个就可以了

到这个界面以后选择中文简体(反正我英语不好,只能看懂中文,要选别的随你们)

这里键盘布局选汉语

无语了,这个教程是22年的

这里重新找了一个教程:VMWare虚拟机安装Ubuntu24.04系统及其相关配置_安装ubuntu24.04 命令版-优快云博客

接下来都是默认选项

然后就是用户名及密码,自己设置就可以了

选择中国大陆就可以了(中国的地图应该没人不认识吧)

可以看到正在安装了,耐心等待即可

这样就安装成功了

接下来安装vmtools

这里可以看到显示灰色说明安装成功

连接网络不多赘述了,不知道的可以跳转这篇博客,很详细,包会的:ubuntu下网络环境搭建_ubuntu网络设置-优快云博客

设置root密码

这样就可以切换到root了

安装vim编辑器

sudo apt install vim

这里在操作中发现终端无法复制粘贴内容,应该是vmtools装的时候有点什么问题,用命令解决了一下

sudo apt-get autoremove open-vm-tools     //卸载已有工具
sudo apt-get install open-vm-tools     //安装工具open-vm-tools
sudo apt-get install open-vm-tools-desktop         //安装open-vm-tools-desktop

然后重启虚拟机就发现复制粘贴和文件传输都可以了

这里可以根据图片编辑快捷键,用的顺手就行

二、pwn所需工具安装

更新源和软件

sudo apt-get update
sudo apt-get upgrade

这里有可能会报错,像下图一样

解决方法如下

sudo nano /etc/apt/sources.list     //这里使用的是nano

这里是移除CDROM源,通过编辑/etc/apt/sources.list文件,直接在前面加上#注释掉即可然后ctrl+x离开,y确认保存,enter确认命名,退出后就可以正常安装了

sudo apt-get install python3-pip

安装pip工具

sudo apt install build-essential -y
sudo apt install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y
sudo apt-get install zlib1g-dev

安装编译Python源程序所需要的包,包括build-essentiallibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-devzlib1g-de

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools

我这里报错了

dpkg -l | grep python3-venv    //检查python3-venv是否安装
sudo apt install python3-venv    //安装python3-venv
mkdir -p ~/venvs
python3 -m venv ~/venvs/pwntools-env   //选择一个目录存放虚拟环境
source ~/venvs/pwntools-env/bin/activate    //激活环境
pip install --upgrade pip
pip install pwntools        //在虚拟环境下安装pip包
deactivate     //退出虚拟环境

可以看到我的python3-venv是没有安装的,就要进行剩下的操作

这里venvs目录是自己建的,叫什么名字都行

这样就说明虚拟环境创建成功了

这样就可以了

还可以通过pipx安装pwntools,命令如下

sudo apt install pipx
pipx install pwntools

这里会有警告,为了使 pwntools 的命令行工具全局可用,可以按照回显中的建议执行以下命令:

pipx ensurepath

这个命令会自动将 /root/.local/bin 添加到你的 PATH 环境变量中

但是还是在python中找不到pwn模块,要用pipx运行pwntools,命令如下

pipx run pwn

试了一下也是可以的

接下来就是安装pwn用得到的工具了,这里上一篇博客都有写过就不赘述了,有需要的可以看一下,checksec(动态分析)、checksec(动态分析)、one_gadget、libc database search、gdb与peda、pwngdb、pwndbg(动态分析)组合安装、radare2、vscod的安装及C/C++和python环境配置、IDA等,使用教程也有链接

03-19
### IEEE 802.1Q VLAN Tagging Protocol Standard IEEE 802.1Q 是支持虚拟局域网(VLAN)的标准协议之一,通常被称为 Dot1q。该标准定义了一种用于以太网帧的 VLAN 标记系统以及交换机和桥接器处理这些标记帧的操作流程[^2]。 #### 协议结构概述 IEEE 802.1Q 的核心功能在于通过在以太网数据帧中插入特定字段来实现 VLAN 标签的功能。这种标签使得网络设备能够识别哪些流量属于哪个 VLAN,并据此执行转发决策。具体来说: - **Tag Header**: 在原始以太网帧头部增加了一个额外的 4 字节字段作为 VLAN 标签头。这四个字节包含了以下部分: - **Priority Code Point (PCP)**: 使用 3 比特表示优先级级别,范围从 0 到 7,主要用于 QoS 控制。 - **Canonical Format Indicator (CFI)**: 这是一个单比特位,在传统以太网环境中设置为零。 - **VLAN Identifier (VID)**: 使用 12 比特标识具体的 VLAN ID,理论上可以支持多达 4096 个不同的 VLAN(编号从 0 至 4095),其中某些特殊值保留给内部用途或管理目的。 #### 数据包处理机制 当一个带有 VLAN tag 的数据包进入支持 IEEE 802.1Q 的交换机时,它会依据此标签决定如何路由或者过滤该数据流。如果目标端口不属于同一 VLAN,则不会传输至其他无关联的物理接口上;反之亦然——只有相同 VLAN 成员之间才允许互相通信除非经过路由器跨网段访问[^1]。 此外,为了简化管理和配置过程并增强互操作性,还引入了一些辅助性的子协议和服务组件比如 GARP(通用属性注册协议)。GARP 可帮助分发有关 VLAN 成员资格的信息到各个连接节点以便动态调整其行为模式而无需频繁手动干预[^3]。 以下是创建带 VLAN TAG 的 Python 示例代码片段展示如何模拟构建这样的 Ethernet Frame: ```python from scapy.all import Ether, Dot1Q, IP, sendp def create_vlan_packet(src_mac="00:aa:bb:cc:dd:ee", dst_mac="ff:ff:ff:ff:ff:ff", vlan_id=100, src_ip="192.168.1.1", dst_ip="192.168.1.2"): ether = Ether(src=src_mac, dst=dst_mac) dot1q = Dot1Q(vlan=vlan_id) ip_layer = IP(src=src_ip, dst=dst_ip) packet = ether / dot1q / ip_layer return packet packet = create_vlan_packet() sendp(packet, iface="eth0") # Replace 'eth0' with your network interface name. ``` 上述脚本利用 Scapy 库生成包含指定源地址、目的地址及所属 VLAN 编号的数据报文并通过选定的网卡发送出去测试实际效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值