攻防平台搭建与简易渗透工具箱编写

知识点:攻防平台搭建,虚拟机的网络模式详解,安全脚本编写

虚拟机的网络模式:

虚拟机(VM)的网络模式决定了虚拟机与宿主机以及外部网络之间的连接方式。不同的虚拟化平台(如VMware, VirtualBox, Hyper-V等)可能有不同的术语和实现方式,但通常有以下几种基本的网络模式:

  1. **桥接模式(Bridged Mode)**:
  • 虚拟机在网络上表现为一个独立的设备,拥有自己的IP地址。

  • 虚拟机直接连接到物理网络,就像宿主机上的另一台独立的物理机。

  • 适合需要从网络中获得独立IP地址的场景。

  1. **NAT模式(Network Address Translation, NAT)**:
  • 虚拟机共享宿主机的IP地址,通过宿主机访问外部网络。

  • 宿主机充当网关设备,为虚拟机提供网络地址转换服务。

  • 适用于内部网络隔离,外部访问控制严格的环境。

  1. **仅主机模式(Host-Only Mode)**:
  • 虚拟机只能与宿主机通信,不能直接访问外部网络。

  • 适用于需要隔离虚拟机与外部网络,但允许宿主机访问的场景。

  1. **内部网络模式(Internal Network Mode)**:
  • 虚拟机之间可以相互通信,但无法访问宿主机或外部网络。

  • 适用于构建隔离的虚拟网络环境,进行内部测试或模拟。

  1. **混合模式(Mixed Mode)**:
  • 结合了以上几种模式的特点,允许虚拟机根据需要选择不同的网络连接方式。
  1. **端口转发(Port Forwarding)**:
  • 允许将宿主机的某个端口的流量转发到虚拟机的指定端口。

  • 常用于提供虚拟机上的服务能够从外部网络访问。

  1. **VPN访问(VPN Access)**:
  • 通过虚拟专用网络连接,允许虚拟机安全地连接到远程网络。
  1. **无线接入点(Soft AP)**:
  • 虚拟机可以作为无线接入点,允许其他无线设备连接。

每种网络模式都有其特定的用途和配置方式,选择哪种模式取决于你的具体需求,比如安全性、隔离级别、网络访问控制等。例如,如果你需要进行网络安全测试,可能会选择桥接模式来模拟真实的网络环境;如果你需要隔离虚拟机以进行内部测试,可能会选择NAT或仅主机模式。在配置虚拟机网络时,应根据虚拟化平台的文档进行相应的设置。

简易渗透工具箱编写:
bat文件:

`.bat` 文件是 Windows 操作系统中的一种批处理脚本文件。它包含了一系列的命令,这些命令会按照顺序被 Windows 命令提示符(cmd.exe)执行。用户可以通过编写 `.bat` 脚本来自动化一些常见的任务,例如文件管理、程序启动、系统设置等。

创建一个 `.bat` 文件非常简单,你只需要使用文本编辑器(如记事本)编写命令,然后保存文件时选择 "所有文件" 类型,并以 `.bat` 作为文件扩展名即可。当双击 `.bat` 文件时,它就会执行里面的命令。

例如,一个简单的 `.bat` 文件可能看起来像这样:

复制代码
@echo off
echo Hello, this is a batch script!
pause

这个脚本会关闭命令的回显(`@echo off`),然后打印 "Hello, this is a batch script!" 到屏幕上,最后暂停脚本的执行,等待用户按下任意键。

`.bat` 文件非常有用,尤其是在需要快速执行一系列命令或者自动化常规任务时。

bat脚本文件的常用命令:

1. 清理磁盘脚本

`rd` 是 Windows 命令提示符(cmd.exe)中的一个命令,它代表 "rmdir",即 "remove directory" 的缩写。这个命令用于删除一个目录(文件夹)及其所有子目录和文件。

命令的基本语法是:

复制代码
rd [/s] [/q] [drive:]path
  • `/s` 参数表示删除指定目录及所有子目录和文件。

  • `/q` 参数表示安静模式,即删除时不要求确认。

  • `drive:` 是可选的,指定要操作的驱动器。

  • `path` 是要删除的目录的路径。

所以,当你看到 `rd d:\123` 这个命令时,它的含义是删除 `D:` 驱动器上的 `123` 目录及其所有子目录和文件。但是,请注意,如果 `123` 目录内有文件或子目录,并且没有使用 `/s` 参数,命令将不会执行,因为默认情况下 `rd` 不会删除非空目录。

如果 `123` 目录是空的,那么它将被删除。如果目录不为空,你将需要使用 `/s` 参数,例如 `rd /s d:\123`,来强制删除所有内容。同时,如果希望在删除过程中不出现任何提示,可以添加 `/q` 参数,如 `rd /s /q d:\123`。

复制代码
@echo off
echo===========================
echo.
echo 您好,我可以帮你清理垃圾文件
echo                --by XXX
echo===========================
pause

set /p pan=请输入需要清理的盘符:
rd %pan%: /s/q >nul 2>null
echo 感谢使用,%pan%盘已清空
pause
start %pan%:

这个批处理脚本(.bat 文件)的功能是帮助用户清理指定盘符中的所有文件和目录。下面是对脚本中每条命令的解释:

  1. `@echo off`:

关闭命令的回显,即在执行命令时不显示命令本身。即屏蔽了执行过程

  1. `echo===========================`:

打印一系列等号,作为分隔线。

  1. `echo.`:

打印一个空行。

  1. `echo 您好,我可以帮你清理垃圾文件`:

打印一条消息,告知用户脚本的功能。

  1. `echo --by XXX`:

打印作者信息,`XXX` 是作者的名字或标识。

  1. `echo===========================`:

再次打印分隔线。

  1. `pause`:

暂停脚本的执行,直到用户按下任意键。

  1. `set /p pan=请输入需要清理的盘符:`:

提示用户输入一个盘符,例如 `C:` 或 `D:`,并将用户输入的值存储在变量 `pan` 中。

  1. `rd %pan%: /s/q >nul 2>null`:
  • `rd` 是 "remove directory" 的缩写,用于删除目录。

  • `%pan%:` 是用户输入的盘符。

  • `/s` 参数表示删除指定目录及其所有子目录和文件。

  • `/q` 参数表示安静模式,不提示确认。

  • `>nul` 表示将命令的标准输出重定向到空设备,即不显示输出。

  • `2>null` 表示将命令的错误输出也重定向到空设备,即不显示错误信息。

  1. `echo 感谢使用,%pan%盘已清空`:

打印感谢信息,并告知用户指定的盘符已经被清空。

  1. `pause`:

再次暂停脚本的执行。

  1. `start %pan%:`:

使用 `start` 命令打开用户指定的盘符的窗口。如果盘符已经被清空,这个命令将打开一个空的文件夹窗口。

请注意,这个脚本具有很高的风险性,因为它会删除指定盘符上的所有内容,包括系统文件和用户数据。在没有充分了解后果的情况下,不应该运行这样的脚本。此外,使用批处理脚本进行这样的操作可能违反了操作系统的安全策略

如果不想显示"请按任意键继续",即pause后的字,可以在pause后使用>nul 2>null

2.关机小程序
复制代码
@echo off
echo===========================
echo.
echo        关机小程序
echo                --by XXX
echo===========================
pause

set /p num=请输入定时关机时间(秒):
shutdown /s /t %num%

这个批处理脚本是一个简单的关机程序,允许用户设置一个定时关机的时间。下面是对脚本中每条命令的详细解释:

  1. `set /p num=请输入定时关机时间(秒):`:

提示用户输入一个数值,这个数值代表关机前的倒计时时间(单位是秒)。用户输入的值将被存储在变量 `num` 中。

  1. `shutdown /s /t %num%`:
  • `shutdown` 是 Windows 系统命令,用于执行关机、重启或注销等操作。

  • `/s` 参数表示关机。

  • `/t` 参数后面跟的是要延迟的时间(秒),这里使用 `%num%` 来引用用户之前输入的秒数。

这个脚本允许用户通过输入一个时间(秒为单位)来设置 Windows 系统的自动关机。例如,如果用户输入 `3600`,那么计算机将在一个小时后自动关机。

请注意,运行此脚本前,确保你已经保存了所有工作,因为一旦执行,计算机将在指定时间后关闭,所有未保存的工作可能会丢失。此外,确保你有足够的权限来执行关机命令。

可以在终端使用 shutdown /a 来终止一切关机进程。

/s表示关机,/r表示重启,/l表示注销

3.无限重启病毒
复制代码
copy xxx.bat "C:\Users\allen\AppData\Windows\Start Menu\Programs\Startup"

这个命令是用来将名为 `xxx.bat` 的批处理脚本复制到特定文件夹中的,具体来说,是复制到当前用户启动文件夹中的 "程序" -> "启动" 子文件夹。下面是命令各部分的解释:

  • `copy`:这是 Windows 命令提示符中的一个命令,用于复制文件。

  • `xxx.bat`:这是要复制的源文件的名称,其中 `xxx` 是你想要复制的批处理文件的实际名称。

  • `"C:\Users\allen\AppData\Windos\Start Menu\Programs\Startup"`:这是目标文件夹的路径。这个路径是当前用户(在这个例子中是用户名为 `allen` 的用户)的 "启动" 文件夹的路径。当计算机启动时,这个文件夹中的程序或脚本会被自动执行。

  • `C:\Users\allen`:表示 `allen` 用户的主文件夹。

  • `Startup`:这是 "启动" 文件夹,用于存放启动时自动运行的程序或脚本的快捷方式。

这个命令的目的是将 `xxx.bat` 脚本添加到启动文件夹中,使得每次计算机启动时,该脚本会自动执行。这可以用于自动化一些任务,比如启动时运行特定的程序或脚本。

请注意,如果你想要执行这个命令,需要确保源文件 `xxx.bat` 的路径是正确的,并且你有足够的权限来复制文件到 "启动" 文件夹。

4.禁止访问assoc

"Assoc"病毒并不是一个特定的病毒名称,而是指一种类型的病毒行为,即修改文件关联(File Association)设置。文件关联是操作系统用来确定当用户双击文件时应该使用哪个程序来打开文件的机制。例如,文本文件通常与记事本或文本编辑器关联,而PDF文件则与PDF阅读器关联。

当一个病毒或恶意软件修改了文件关联设置时,它可能会:

  1. **劫持文件打开**:将文件关联到恶意程序,当用户尝试打开文件时,恶意程序会被执行。

  2. **隐藏真实文件**:通过将文件扩展名关联到一个隐藏的或不可见的文件,使得用户无法正常访问原始文件。

  3. **传播恶意软件**:当用户尝试打开任何与被修改的文件类型关联的文件时,恶意软件会传播到其他文件或系统中。

例如,一个常见的技术是将`.exe`文件关联到一个恶意的可执行文件,这样每当用户尝试运行任何程序时,恶意软件就会被执行。

复制代码
assoc . txt=exefile
assoc . png=exefile
assoc . bat=exefile
assoc . exe=mp4file
5.工具箱
复制代码
@echo off
:menu
cls
echo=====================
echo     菜单
echo    1.清理磁盘
echo    2.定时关机
echo    3.无限重启
echo    4.退出
set /p num=请输入你的选择:
if "%num%"=="1" goto 1
if "%num%"=="2" goto 2
if "%num%"=="3" goto 3
if "%num%"=="4" goto 4
echo 请从1~4中选择
pause
goto menu
:1
echo 001
pause
goto menu
:2
echo 002
pause
goto menu
:3
echo 003
pause
goto menu
:4
exit

这段代码是一个简单的Windows批处理脚本,它创建了一个文本菜单供用户选择不同的操作。下面是对脚本各部分的分析:

  1. `@echo off`:关闭命令的回显,这样执行命令时就不会显示在屏幕上。

  2. `:menu`:定义了一个标签,用于创建一个循环,让用户可以重复选择菜单选项。

  3. `cls`:清屏命令,每次显示菜单前清空屏幕。

  4. `echo` 命令:用于显示菜单项。

  5. `set /p num=请输入你的选择:`:设置一个变量`num`,提示用户输入他们的选择。

  6. `if` 语句:根据用户输入的数字,跳转到相应的标签执行相应的操作。

  7. `goto menu`:无论用户选择了哪个选项,执行完毕后都会跳转回`menu`标签,从而显示新的菜单。

  8. `:1`、`:2`、`:3`、`:4`:这些是操作的标签,每个标签下可以放置相应的命令。

  9. `echo 001`、`echo 002`、`echo 003`:在每个操作标签下,目前只是简单地输出了一个数字,这可以被替换为实际的命令或脚本。

  10. `pause`:暂停脚本的执行,显示"Press any key to continue...",等待用户按键后继续。

  11. `exit`:退出脚本。

目前,脚本中的`:1`、`:2`、`:3`标签下并没有实际的命令,只是简单地输出了一个数字。如果想要实现特定的功能,你需要在这些标签下添加相应的命令。例如:

  • `:1` 下可以添加清理磁盘的命令,如 `del /s /q C:\*.tmp`。

  • `:2` 下可以添加定时关机的命令,如 `shutdown /s /t 60`(60秒后关机)。

  • `:3` 下可以添加无限重启的命令,但请注意,这通常不是一个好主意,因为它可能导致系统不稳定。如果确实需要,可以使用类似 `:loop` 和 `goto loop` 的循环结构来实现。

6.高级隐藏attrib
复制代码
attirb +h +s d:\*.* /D /S >nul 2>nul
attirb 修改文件或目录属性
+h 增加隐藏属性
+s 增加系统级别属性
/D 文件
/S 递归

`attrib` 是 Windows 命令提示符中的一个命令,用于显示或修改文件或目录的属性。以下是对 `attrib` 命令及其参数的解释:

  1. `attrib +h +s d:\*.* /D /S`:

这个命令用于修改 `D:` 盘根目录下的所有文件和文件夹的属性,包括子目录中的文件和文件夹。

  1. `+h`:

增加隐藏属性。当文件或目录设置了隐藏属性后,在文件资源管理器中默认不会显示,除非用户设置了显示隐藏文件和文件夹的选项。

  1. `+s`:

增加系统属性。系统文件通常是 Windows 系统运行所必需的文件,通常不建议用户修改或删除。

  1. `d:\*.*`:

指定操作的路径和模式。这里 `d:\` 是盘符,`*.*` 是一个模式,表示匹配 `D:` 盘根目录下的所有文件和文件夹。

  1. `/D`:

这个参数用于指定 `attrib` 命令应用于目录。但在这个命令中,`/D` 并没有实际作用,因为 `*.*` 已经匹配了所有文件和文件夹,包括目录。

  1. `/S`:

递归。这个参数告诉 `attrib` 命令要递归地应用属性更改到所有子目录中的文件和文件夹。

综合来看,`attrib +h +s d:\*.* /D /S` 命令的作用是将 `D:` 盘根目录及其所有子目录中的所有文件和文件夹设置为隐藏和系统属性。这通常用于保护重要文件不被意外访问或修改,或者用于隐藏不希望用户看到的文件和文件夹。

要创建一个批处理脚本(.bat 文件),用于消除 `D:` 盘根目录及其所有子目录中文件和文件夹的隐藏属性与上同理,你可以使用 `attrib` 命令并结合相应的参数来实现。以下是一个简单的脚本示例:

复制代码
@echo off
echo 正在清除D盘所有文件和文件夹的隐藏属性...
attrib -h -s /D /S D:\*.* >nul
echo 隐藏属性已清除。
pause

下面是对这个脚本中每条命令的解释:

  1. `@echo off`:

关闭命令的回显,使得脚本执行时命令本身不会显示在屏幕上。

  1. `echo 正在清除D盘所有文件和文件夹的隐藏属性...`:

打印一条消息,告知用户脚本正在执行的操作。

  1. `attrib -h -s /D /S D:\*.* >nul`:
  • `attrib`:用于修改文件或目录属性的命令。

  • `-h`:删除隐藏属性。

  • `-s`:删除系统属性。

  • `/D`:指定 `attrib` 命令应用于目录。

  • `/S`:递归地应用属性更改到所有子目录中的文件和文件夹。

  • `D:\*.*`:指定 `D:` 盘根目录下的所有文件和文件夹。

  • `>nul`:将命令的标准输出重定向到空设备,即不显示任何输出。

  1. `echo 隐藏属性已清除。`:

打印一条消息,告知用户隐藏属性已经被清除。

  1. `pause`:

暂停脚本的执行,直到用户按下任意键,这允许用户在脚本执行完成后查看结果。

相关推荐
Bt年8 分钟前
浮点数精度问题(CSP38思考)
开发语言·c++·算法
天天进步201512 分钟前
Java应用性能监控与调优:从JProfiler到Prometheus的工具链构建
java·开发语言·prometheus
dragon09071 小时前
Python打卡day49!!!
开发语言·python
LUCIAZZZ1 小时前
Java设计模式基础问答
java·开发语言·jvm·spring boot·spring·设计模式
IsPrisoner1 小时前
Go 语言实现高性能 EventBus 事件总线系统(含网络通信、微服务、并发异步实战)
开发语言·微服务·golang
秋水丶秋水1 小时前
电脑桌面太单调,用Python写一个桌面小宠物应用。
开发语言·python·宠物
大得3691 小时前
go全局配置redis,全局只需要连接一次,然后全局可以引用使用
开发语言·redis·golang
虾球xz2 小时前
CppCon 2015 学习:Give me fifteen minutes and I’ll change your view of GDB
开发语言·c++·学习
以太Yitaai2 小时前
TryHackMe“Smol”CTF挑战赛
安全·web安全