读书笔记(一)
- 取消对Zip文件的锁定
从互联网下载的zip文件有时候需要“解除锁定”后,才能够正常的解压使用。
Windows附件执行服务会为.zip文件增加一条代表该文件来自互联网的可替换数据流(ADS),通过windows资源管理器从中提取文件时,这样ADS会被附加至提取到的所有文件中。
移除ADS的方法:
a.windows资源管理器打开该zip文件的属性对话框点击解除锁定
b.使用Sysinternals Streams工具 https://docs.microsoft.com/zh-cn/sysinternals/downloads/streams
-----Windows Sysinternals实战指南 P7-P8
- UAC
管理权利与用户权利,LSA:本地安全机构,使用Administrator组成员账户、Backup Operators等高特权组成员账户、分配了“管理员等价”权限的账户登录计算机时,LSA为该用户创建两个登录会话,每个会话具备一个不同的访问令牌;
一个令牌代表用户的完整权利,所有组关系和特权;
另一个是经过筛选的令牌,等价于标准用户的权利(禁用了所有高级特权组并删除高级特权);系统使用筛选后的令牌创建初始进程,同时该令牌会被所有的子进程继承。
使用完整的令牌启动进程需要UAC提升(由应用程序信息服务进行(Appinfo),使用Runas.exe命令启动一个程序并指定管理账户,则目标程序将在该账户的“标准用户”版本下运行。)
使新进程触发UAC提升的方式:
a.程序文件包含的清单指出该程序需要提升
b.右键菜单:“以管理员身份运行”
c.windows自发判断运行的程序为遗留的老版本安装程序
d.应用程序关联了某种需要提升的兼容性模式或Shim
UAC提升方式:静默;要求得到同意;要求提供凭证;
提示:禁用用户账户控制后,LSA不再创建筛选的令牌,Administrator组成员运行程序始终具备管理权利,系统不再显示UAC提升提示,同时会关闭文件和注册表虚拟化,win8以后的系统无法运行“商店”应用; - 进程、线程、作业
进程包含的内容:
a.一个唯一描述符进程ID-PID;
b.至少一个执行线程;
c.一个私有虚拟地址空间(提供进程存储、引用数据与代码的虚拟地址空间);
d.一个可执行程序(定义映射到虚拟空间的初始代码和数据);
e.一个清单(指定系统的各种资源:信号量、端口、打开的文件句柄等);
f.一个名为访问令牌的安全上下文,包含用户、安全组、特权、UAC虚拟化状态、LSA登录会话ID、远程桌面服务会话ID等
线程(一种容器)的基本组成:
a.一组CPU寄存器内容;
b.两个栈:一个供内核模式执行的线程调用,一个供用户模式执行的线程调用;
c.一个线程本地存储(TLS)的专用存储区域(供子系统、运行时库、动态链接库使用);
d.一个唯一标识-线程ID(TID);
e.线程安全上下文
作业:让一组进程作为整体进行统一管理和操作(属性控制、进程限制等等)
进程中的每个线程共享该进程的虚拟地址空间,但无法使用其他进程的空间(除非设置共享内存或有权打开另一个进程并使用跨进程内存功能)
通常线程没有自己的访问令牌,需要时可以获取令牌。 - 用户模式、内核模式
每个进程有自己的私有内存空间,但内核模式的操作系统和设备驱动代码共享同一个虚拟地址空间,该空间包含在每个进程的地址空间中,
系统为每个虚拟内存页添加标记,系统空间中的页只能从内核模式访问,用户地址空间的所有页都可以从用户模式访问
用户模式切换到内核模式:调用系统服务,从用户模式到内核模式的转换是调用一个特殊的处理器指令实现,该指令让处理器切换到内核模式的系统服务调度函数
大部分图形和窗口系统运行在内核模式下,承载图形密集型的程序可能大部分时间处于内核模式,在Process Explorer中CPU量图:红色部分表示处于内核模式时间,绿色部分表示处于用户模式时间 - 句柄
什么是句柄?
一个句柄代表进程中句柄表中的一个索引,代表该进程成功使用的一个资源,程序使用该句柄值对该资源进行操作(包含释放)
句柄资源类型:注册表键、内存管理器定义的共享内存section对象、执行体定义的信号量和Event同步对象(Semphore、Mutant(Mutex))、IO管理器定义的File对象、进程管理器中的Process对象和Thread对象
Win7-42个类型,Win8-46个类型,Win10-53个类型,通过管理员权限运行WinObj查看“Object Manager/ObjectTypes”下
句柄项内容:指向对象的指针、进程打开对象时具备的访问权限等 - 应用程序隔离
MIC机制:强制完整性机制,根据可信度将用户的不同进行区别对待。完整性级别IL:代表一个进程的可信度数值,提升后的程序在高完整性下运行,普通用户应用在中等完整性下运行,保护模式下的进程在低完整性下运行
每个对象的安全描述符都包含一个完整性标签(包含完整性级别和策略),策略定义是否允许或拒绝来自完整性更低的进程的操作(读取、写入、执行)。
不含该标签则视为默认中等完整性---不允许从完整性更低的进程执行写入操作
Windows为所有的进程对象分配一条策略---禁止来自任何完整性更低的进程发起读取和写入请求
查看进程的完整性级别的工具:ProcessExplorer、AccessChk - 应用容器
对windows安全模型的一种扩展,将应用相关的所有进程作为整体进行保护。
每个应用会包含绝对唯一的标识,应用的标识被被纳入使用一种全新的安全标识SID所创建的访问令牌
AppX打包机制: