Windows操作系统的层次结构
windows的安全模型
https://zhuanlan.zhihu.com/p/102490139?utm_source=qq
微软IIS 4.0和5.0都存在利用扩展UNICODE字符取代"/"和"\"而能利用"../"目录遍历的漏洞。
IIS解析Unicode编码的过程
在IIS4.0和5.0版本中,当IIS收到的文件名中包含某些特殊编码(例如%c1%hh)时,首先会将其转化为十六进制符号(如0xc10xhh),并尝试着打开这个文件。
Windows在遇到这些十六进制符号时(如0xc10xhh),则认为其可能是Unicode,因此将进行解码,解码规则如下:
如果0x00<=%hh<0x40,则:
%c1%hh -> (0xc1-0xc0)*0x40 + 0xhh
%c0%hh -> (0xc0-0xc0)*0x40 + 0xhh
如果%hh>0x80,则:
%c1%hh -> (0xc1-0xc0)*0x40 + (0xhh – 0x80)
%c0%hh -> (0xc0-0xc0)*0x40 + (0xhh – 0x80)
%c1%1c ->(0xc1-0xc0)*0x40 + 0x1c = 0x5c
%c0%2f ->(0xc0-0xc0)*0x40 + 0x2f = 0x2f
%c1%9c ->(0xc1-0xc0)*0x40 + (0x9c – 0x80) = 0x5c
%c1%af ->(0xc1-0xc0)*0x40 + (0xaf – 0x80) = 0x2f
在ASCII码中,’/’和’\’两个字符的ASCII值分别为5c和2f
因此,利用Unicode编码%c1%1c和%c0%2f,或%c1%9c和%c1%af可以分别构造出’/’和’\’两个字符,即:
%c1%1c -> 0x5c = ‘/’
%c0%2f -> 0x2f = ‘\’
%c1%9c -> 0x5c = ‘/’
%c1%af -> 0x2f = ‘\’
Unicode漏洞的攻击过程
利用Unicode漏洞入侵系统
在地址栏上执行命令,用户的权限比较低,系统管理指令(如net等)不能执行。利用Unicode可以入侵对方的系统,并得到管理员权限。
作为入侵的第一步,首先建立TFTP(Text File Transmission Protocol,普通文件传输协议)服务器,以便向对方的scripts文件夹传几个文件。
其次,将idq.dll和tftpd32.exe放在本地的同一目录下,执行tftpd32.exe程序。
权限提升
攻击者在获得Windows的一个登录权限后,经常做的下一步工作就是提升权限,以便获得终极特权账户Administrator或System的权限,从而开展进一步的攻击。
1、常见的权限提升工具
❐Netddemsg
网络动态数据交换(Network Dynamic Data Exchange,NetDDE)是一种在不同Windows系统的 应用程序之间动态共享数据的技术。Netddemsg利用NetDDE服务的漏洞攻击Windows 2003,并把权限提升到 System。
❐Debploit
会话管理子系统(Session Manager Subsystem,SMSS)是Windows登录时负责启动用户会话的进程。Debploit利用SMSS的一个漏洞进行攻击,从而将权限提升到System。
2、administrator和System
在技术角度,获得Administrator权限并不等于获得Windows主机的最高 权限 System 账户(也称“Local System”,或“NT AUTHORITY\ SYSTEM”账户)。System的权限比Administrator的权限更大。
在获得Administrator权限后,可以利用Windows的计划任务服务打开一个命令shell获得System权限:
C:\>at 16:33 / INTERACTIVE cmd. exe
3、权限提升防范措施
❐及时安装微软发布的补丁,操作系统核心功能的漏洞只有厂商发布的代码级补丁才能修复。❐严格限制交互登录权限。在Windows2000及以上的版本中,可以在“本地/组安全策略中进行设置。