今天释出的KB958644号紧急更新,引起了我不小的兴趣,很希望知道到底是什么东西导致微软捅了这么大的篓子呢?无奈,因为出品公司(微软)承认这是一个严重的安全漏洞,提出问题的网站(http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250)已经去除了关于此漏洞的详细说明。这条路不通了。
MS08-067(http://support.microsoft.com/?kbid=958644)描述了什么样的系统里具体什么样的文件会出问题。从中可以看到,主要问题出在Netapi32.dll这个DLL。可以看出,自Microsoft Windows 2000 Service Pack 4(不是说之前的就没有,而是只从SP4开始技术支持)开始的5.0.2195.7203版本的Netapi32.dll,直到Windows Vista、Windows Server 2008甚至Windows 7 Pre-Beta的6.1.6801.4106版本Netapi32.dll都逃脱不了噩运。
重要的提示来自Microsoft Security Bulletin MS08-067 – Critical(Vulnerability in Server Service Could Allow Remote Code Execution (958644))一文。文中特别指出,这个漏洞如此广泛,甚至Windows Server 2008的Server Core installation也会受到同样安全威胁等级的威胁。这说明,这个漏洞存在很基础的地方。
Server Core installation是Server功能的极小集,根据Compare Server Core Installation Options一文,Server Core installation可以安装以下功能:

  • Active Directory Domain Services
  • Active Directory Lightweight Directory Services
  • DHCP Server
  • DNS Server
  • File Services
  • Hyper-V
  • Print Services
  • Web Services (IIS) without ASP.NET

鉴于Windows 2000也是受害者,因此不可能是Active Directory Lightweight Directory Services和Hyper-V的问题。
Server Core Functions by DLL一文给出了netapi32.dll的详细功能说明。
我不辞辛苦地把提到的API函数进行Google,存在漏洞的API肯定是存在在Windows 2000以来所有版本Windows中的,例如DsGetDcCloseW这样的API,微软文档声称“Client:Requires Windows Vista or Windows XP,Server:Requires Windows Server 2008 or Windows Server 2003.”,因此不可能是与漏洞有关。
剩下的可疑的Windows API有这些:

  • netapi32.dll DsAddressToSiteNamesA
  • netapi32.dll DsAddressToSiteNamesExA
  • netapi32.dll DsAddressToSiteNamesExW
  • netapi32.dll DsAddressToSiteNamesW
  • netapi32.dll DsDeregisterDnsHostRecordsA
  • netapi32.dll DsDeregisterDnsHostRecordsW
  • netapi32.dll DsEnumerateDomainTrustsA
  • netapi32.dll DsEnumerateDomainTrustsW
  • netapi32.dll DsGetDcNameA
  • netapi32.dll DsGetDcNameW
  • netapi32.dll DsGetDcOpenA
  • netapi32.dll DsGetDcOpenW
  • netapi32.dll DsGetDcSiteCoverageA
  • netapi32.dll DsGetDcSiteCoverageW
  • netapi32.dll DsGetSiteNameA
  • netapi32.dll DsGetSiteNameW
  • netapi32.dll DsMergeForestTrustInformationW
  • netapi32.dll DsRoleFreeMemory
  • netapi32.dll DsRoleGetPrimaryDomainInformation
  • netapi32.dll NetApiBufferAllocate
  • netapi32.dll NetApiBufferFree
  • netapi32.dll NetApiBufferReallocate
  • netapi32.dll NetApiBufferSize
  • netapi32.dll NetConnectionEnum
  • netapi32.dll NetDfsAdd
  • netapi32.dll NetDfsAddFtRoot
  • netapi32.dll NetDfsAddStdRoot
  • netapi32.dll NetDfsAddStdRootForced
  • netapi32.dll NetDfsEnum
  • netapi32.dll NetDfsGetClientInfo
  • netapi32.dll NetDfsGetInfo
  • netapi32.dll NetDfsRemove
  • netapi32.dll NetDfsRemoveFtRoot
  • netapi32.dll NetDfsRemoveStdRoot
  • netapi32.dll NetDfsSetClientInfo
  • netapi32.dll NetDfsSetInfo
  • netapi32.dll NetFileClose
  • netapi32.dll NetFileEnum
  • netapi32.dll NetFileGetInfo
  • netapi32.dll NetGetAnyDCName
  • netapi32.dll NetGetDCName
  • netapi32.dll NetGetDisplayInformationIndex
  • netapi32.dll NetGetJoinableOUs
  • netapi32.dll NetGetJoinInformation
  • netapi32.dll NetGroupAdd
  • netapi32.dll NetGroupAddUser
  • netapi32.dll NetGroupDel
  • netapi32.dll NetGroupDelUser
  • netapi32.dll NetGroupEnum
  • netapi32.dll NetGroupGetInfo
  • netapi32.dll NetGroupGetUsers
  • netapi32.dll NetGroupSetInfo
  • netapi32.dll NetGroupSetUsers
  • netapi32.dll NetLocalGroupAdd
  • netapi32.dll NetLocalGroupAddMembers
  • netapi32.dll NetLocalGroupDel
  • netapi32.dll NetLocalGroupDelMembers
  • netapi32.dll NetLocalGroupEnum
  • netapi32.dll NetLocalGroupGetInfo
  • netapi32.dll NetLocalGroupGetMembers
  • netapi32.dll NetLocalGroupSetInfo
  • netapi32.dll NetLocalGroupSetMembers
  • netapi32.dll NetQueryDisplayInformation
  • netapi32.dll NetRemoteComputerSupports
  • netapi32.dll NetRemoteTOD
  • netapi32.dll NetRenameMachineInDomain
  • netapi32.dll NetScheduleJobAdd
  • netapi32.dll NetScheduleJobDel
  • netapi32.dll NetScheduleJobEnum
  • netapi32.dll NetScheduleJobGetInfo
  • netapi32.dll NetServerComputerNameAdd
  • netapi32.dll NetServerComputerNameDel
  • netapi32.dll NetServerDiskEnum
  • netapi32.dll NetServerEnum
  • netapi32.dll NetServerGetInfo
  • netapi32.dll NetServerSetInfo
  • netapi32.dll NetServerTransportAdd
  • netapi32.dll NetServerTransportAddEx
  • netapi32.dll NetServerTransportDel
  • netapi32.dll NetServerTransportEnum
  • netapi32.dll NetSessionDel
  • netapi32.dll NetSessionEnum
  • netapi32.dll NetSessionGetInfo
  • netapi32.dll NetShareAdd
  • netapi32.dll NetShareCheck
  • netapi32.dll NetShareDel
  • netapi32.dll NetShareEnum
  • netapi32.dll NetShareGetInfo
  • netapi32.dll NetShareSetInfo
  • netapi32.dll NetStatisticsGet
  • netapi32.dll NetUnjoinDomain
  • netapi32.dll NetUseAdd
  • netapi32.dll NetUseDel
  • netapi32.dll NetUseEnum
  • netapi32.dll NetUseGetInfo
  • netapi32.dll NetUserAdd
  • netapi32.dll NetUserChangePassword
  • netapi32.dll NetUserDel
  • netapi32.dll NetUserEnum
  • netapi32.dll NetUserGetGroups
  • netapi32.dll NetUserGetInfo
  • netapi32.dll NetUserGetLocalGroups
  • netapi32.dll NetUserModalsGet
  • netapi32.dll NetUserModalsSet
  • netapi32.dll NetUserSetGroups
  • netapi32.dll NetUserSetInfo
  • netapi32.dll NetValidatePasswordPolicy
  • netapi32.dll NetWkstaGetInfo
  • netapi32.dll NetWkstaSetInfo
  • netapi32.dll NetWkstaTransportAdd
  • netapi32.dll NetWkstaTransportDel
  • netapi32.dll NetWkstaTransportEnum
  • netapi32.dll NetWkstaUserEnum
  • netapi32.dll NetWkstaUserGetInfo
  • netapi32.dll NetWkstaUserSetInfo

接下来只能猜了…
基于以上各点线索,猜测KB958644特大漏洞的原理可能是以下:

  • 文件共享及发现(共享打印机等)
  • Active Directory目录服务

发布一款小工具吧。设想这样一种需求:
有时候你可能想写一份教程,关于一个东西该怎么配置,可能有多个关键步骤。当然屏幕录像是最好的,不过比较大嘛。你可以用Print Screen去获取每次一张全屏幕图像,然后Photoshop到合适大小,只给人看到工作窗口,而看不到别的(因为可能涉及到隐私,比如一封给朋友没写完的抱怨老板邮件的标题栏之类的)。多麻烦。
这款小工具,打开之后就显示一个窗口,最小化就会缩在任务栏不再烦你。需要截图的时候,按下组合键:Ctrl + F12,就会把截图放在桌面一个叫做ScreenShots的文件夹里,截图只会包含当前的工作窗口,不包含别的东西。
当然,你可以一边操作一边截图,图像是按照时间戳取名字的,不会重复,每按一次快捷键就会截一张图像,你的操作,不会被打断。
对了,图片会保存成JPG格式,默认100%质量,可以在界面里设置质量,你可以按照需求降低质量以便缩小文件大小。

效果是这样的:
[singlepic=18109,650,487]

P.S. 我的Vista是正版的,别指责我。

下载:http://download.nocoo.us/Download/NocooTools/ScreenCapture/Release.rar

WordPress有多好多强大?WordPress可以用完全自定义的HTML页面来呈现内容,你只需要遵循那么一点点规矩,放到合适的位置即可。
长久以来,我都被个人简历页面里面杂乱无章的呈现方式纠结不已,无奈实在没什么好办法,最多用ul去简单组织那么一下下,效果还是远远不够的。
自从HTML感悟了之后,其实就是昨天晚上,决心重整个人简历页面,毕竟那是脸面啊。
经过近乎一整天的编写,算是写了个我比较满意的页面出来。当然,XHTML 1.0 Strict。
很多人问我写HTML的时候用什么工具,其实就是普通字处理软件,Notepad,UltraEdit,最多Visual Studio 2008而已。下面那棵树,是我第一次用AI做出来的东西哦~

话说人民的力量是无穷的。这等高级产品,完全精细手工打造,效果良好(天热记得扇一扇),携带方便(蛇皮口袋即可),Made in Tongji。

[singlepic=18099,670,504]

前置显示系统,上面两个聚光镜夹着的是一块12.1寸宽屏笔记本用屏幕,剥离掉LCD后面的档光板和灯管之后,一个裸屏幕而已。天热这里因为照射可能会过热而导致变色,至于你用嘴还是扇子还是高级玩意电风扇,随便吧。

[singlepic=18102,670,504]

显示系统的电路板特写。功能很简单,把各种输入信号输出在LCD屏幕上,另外处理各种控制信号(来自前面板和遥控器)。

[singlepic=18100,670,504]

后置灯光系统,高压,别乱摸。

[singlepic=18103,670,504]

前特写,低调吧。

[singlepic=18104,670,504]

操作说明。

[singlepic=18105,670,504]

视频输入,山寨神韵,无所不能,无所不包也。

[singlepic=18106,670,504]

哈哈,知道你们要看效果吧。这样的屏幕,看起论文来,那不是浪费嘛!

[singlepic=18107,670,504]

在我的要求下,打开博客看上一看~
FYI. 任何浏览量也很重要啊。另外,这套东西在淘宝上都能买到,你需要做的,就是避免电死,然后做个大盒子,做好光路即可。

我有一个理论,被陈冠希抢去了发明权,也许陈冠希就是当代布列松?
我的理论是,好的照片,不在乎器材,不在乎光线,也不在乎取景构图,而在于拍什么。真正有机会拿着相机去一些地方,比如西藏、云南和太空,只要拿出相机调到全自动,按下快门即可获取传世佳作。

[singlepic=18065]

[singlepic=18064]

2005年08月19日
自从到达丽江的那一刻开始,我就深深地爱上了这座城市。和弟弟一起逛遍古城大街小巷,忘却了疲倦,忘却了痛苦,纯洁的心灵,就像那山那云那片天。

[singlepic=17779]

装了监视设备的笼子

[singlepic=17778]

我觉得,挺温情的

[singlepic=17777]

见识了各式相机和各种Pose

[singlepic=17776]

我最喜欢放电影的大房子

[singlepic=17775]

没带独脚架,考验基本功的时候到了

[singlepic=17774]

人山人海的美术馆里找到一个独处的瞬间,5秒之后就来人了