微软发布3款SQL Injection攻击检测工具

随着 SQL INJECTION 攻击的明显增多,微软近日发布了三个免费工具,帮助网站管理员和检

测存在的风险并对可能的攻击进行拦截。

Scrawlr
下载地址:https://download.spidynamics.com/Products/scrawlr/

这个微软和 HP合作开发的工具,会在网站中爬行,对所有网页的查询字符串进行分 析并发现其中的 SQL INJECTION 风险。Scrawlr 使用了部分 HP WebInspect  相同的技术,但只检测 SQL INJECTION 风险。Scrawlr 从一个起始 URL 入口,爬遍整个网站,并对站点中所有网页进行分析以找到可能存在的漏洞。

Microsoft Source Code Analyzer for SQL Injection
下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA&displaylang=en

这款被称作 MSCASI 的工具可以检测 ASP 代码并发现其中的 SQL INJECTION 漏洞(ASP 代码以 SQL INJECTION 漏洞著称),你需要向 MSCASI 提供原始代码,MSCASI 会帮你找到存在风险的代码位置。

URLScan 3.0
下载地址: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1697

该工具会让 IIS 限制某些类型的 HTTP 请求,通过对特定 HTTP 请求进行限制,可以防止某些有害的请求在服务器端执行。UrlScan 通过一系列关键词发现恶意请求,并阻止恶意请求的执行

挂钩 NtResumeThread 实现全局Hook

挂钩 NtResumeThread 实现全局Hook

zhouzhenster[at]gmail.com
zhouzhen[E.S.T]

挂钩一直是Hack 编程中永恒的主题,基本高级的Rootkit 程序多多少少都会使用Hook 技术。
似乎Hook 都被讲烂了,不论是Ring3 的还是Ring0 的网上都有例子。Ring0 的毋庸置疑当然
是全局的了,这里说说ring3 的全局hook。Ring 3 有Ring 3 的优势,稳定是压倒一切的,
因此Mcafee 和其他一些商业的安全软件都还是使用了Ring3 的Hook 技术,无论如何用户是
无法接受蓝屏和死机的。

感兴趣的可以装个Rootkit unhooker 自己看看。 :)

1. 以往的Ring 3全局Hook

纵观网上流行的全局Hook 程序都只用了一个Windows API, SetWindowsHookEx,此函数原型:

HHOOK SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId
);

idhook 安装的钩子类型,如 WH_GETMESSAGE,WH_KEYBOARD 等
lpfn hook procedure 的指针
hmod 包含 hook procedure DLL 的handle
dwThread 为0

使用这个API是有问题的,只能挂接系统中的所有G U I线程,换句通俗的话说就是有界面
的程序,Windows console 类的程序就无能为力了。

还有一种通过插入注册表来实现

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

这种方法简单,但是还是只能挂钩GUI 程序,并且这个键值已经被广大HIPS 所关注,吃力不讨好。

以上两种效果不好,因此有人有开始另外的做法,枚举所有进程,插入和挂钩 NtCreateProcess
这是非常自然的想法,似乎也把问题解决了,但是仔细思考一下,就会发现很多问题。

a. 时机不对,在NtCreateProcess函数被调用时进程并没有真正被创建,我们无法执行HOOK操作,
而当NtCreateProcess返回时,进程又已经开始运行

b. 如果是Windows console 创建的进程,你如何去监控这个调用呢?这么说似乎比较抽象,你可
以这么理解,直接在命令行下,cmd,cmd,cmd …. 你可以监控到最后一个cmd 吗,如果只
用SetWindowsHookEx

c. 是否正好站在了华容道,是否足够底层。

似乎很费劲

2. 分析系统创建进程过程,寻找方法

关于这方面内容,可以参考毛德操老师的两篇文章

《漫谈兼容内核之十七:再谈Windows的进程创建》

《漫谈兼容内核之二十二:Windows线程的调度和运行》

下面是他的blog 链接:
http://hi.baidu.com/fatbsd/blog
Continue Reading »

ThinkPad T60使用System Update

安装Windows Server 2003,使用System Update出现,“收集用户信息时出错”
解决办法:打开C:\Program Files\Lenovo\SystemUpdate\目录,找到Tvsukernel.exe文件,选定、右击鼠标,属性,兼容性,以XP兼容模式运行,搞定。

[zz]磁碟机变种pagefile.pif对付安全软件的“倒胃口”方法

全部内容在http://bbs.janmeng.com/thread-689183-1-1.html

这里摘录关键部分,说白了也没啥:

调用PostMessageA,向窗口持续发送消息,消息Msg从0到499!
UPX0:00402E26
UPX0:00402E26 loc_402E26: ; CODE XREF: sub_4029C7+F9 j
UPX0:00402E26 ; sub_4029C7+10F j
UPX0:00402E26 ; sub_4029C7+135 j
UPX0:00402E26 ; sub_4029C7+158 j
UPX0:00402E26 ; sub_4029C7+16E j
UPX0:00402E26 ; sub_4029C7+184 j …
UPX0:00402E26 mov esi, PostMessageA
UPX0:00402E2C xor ebx, ebx
UPX0:00402E2C
UPX0:00402E2E
UPX0:00402E2E loc_402E2E: ; CODE XREF: sub_4029C7+476 j
UPX0:00402E2E push edi ; lParam
UPX0:00402E2F push edi ; wParam
UPX0:00402E30 push ebx ; Msg
UPX0:00402E31 push dword ptr [ebp+8] ; hWnd
UPX0:00402E34 call esi ; PostMessageA
UPX0:00402E36 inc ebx
UPX0:00402E37 cmp ebx, 1F4h ; 500
UPX0:00402E3D jl short loc_402E2E
UPX0:00402E3D
显然这些发送的消息,其实是“垃圾消息”
其目的,就是要挤占目标窗口的消息队列,使目标窗口的窗口过程忙于处理这些“垃圾消息”,而用户操作时发送的有意义的操作消息,则根本来不及处理!
结果,SREng、IceSword等工具,在打开之后,用户将根本没有办法操作,因为用户操作发送给程序的消息,已经被垃圾消息挤到消息队列后面去了,得不到程序的优先响应。
这是典型的利用Windows消息驱动机制,对目标程序进行攻击使其失去响应能力的方法,有点类似于DDOS,无技术含量,但有效。

PS: 这年头猥亵方法真多,呵呵,象我这样善良的人不多了。

[zz]linux 内核代码构架图

Linux kernel source

商品与技术

      曾经在CSDN上看到过一些老程序员对新手的忠告,尤其是对那些追求完美主义并崇尚黑客精神的程序员,梗概就是说,无论是在设计阶段还是编码阶段,都要以客户需求为根本,不要一味地为了追求技术上的完美而偏离本质。尽管满足客户需求的软件离你心目中的毫无瑕疵还差了很远,但是作为一名程序员,我们的任务是开发出有实用价值的软件,获得用户认可的软件,倘若无人认可你,你自认为再有价值,再怎么完美也毫无意义。

      这几天通过一位朋友得以认识一位编辑,实在是没想到自己竟然能在这个阶段就有机会出版自己的书,尚且不论书的内容质量如何,技术含量如何 :) 本身此时的自己就很稚嫩,才疏学浅,但我会尽全力去完成我这个目标。

      编辑给了几句建议,其中一句引起了我一连串的思考,因而才有了现在这篇拙文。他说,“要注意攻击和防御同时进行,并且要说介绍攻击方法是为了更好的防御;同时由于市场导向,书名到时可能会更改。”我想,本身安全评估就是要站在攻击者的角度去在最大程度上模拟黑客的真实入侵,书的重点和主题显然偏向攻击,防御只是其相对的内容。然而,他的这一席话将大大增加我写这本书的难度,很多攻击细节不敢透露,而我又最讨厌那些以防御者的角度编写的黑客书籍,成篇的密码学理论知识和防火墙等基础设施的概念性介绍。生怕自己写着写着最后就变成那样的了。

      市场化的导向:/* 技术 != 商品 */

int 2eh 方式调用Native api

小技巧。但是用的人好像不多。

例子:  Windows 2000 下

  1. NtQuerySystemInformationNo = 0x97;
  2.  
  3. _declspec(naked)
  4. NTSTATUS __stdcall PrivateNtQuerySystemInformation
  5. (IN     SYSTEM_INFORMATION_CLASS,
  6. IN OUT PVOID,
  7. IN     ULONG,
  8. OUT    PULONG OPTIONAL)
  9. {
  10.  
  11. _asm {
  12. mov eax, NtQuerySystemInformationNo
  13. lea edx, [esp+4]
  14. int 2Eh
  15. ret 10h
  16. }
  17.  
  18. }

国内外技术环境

国内的技术环境实在是差,最近又非常真切感觉到在国内做技术基本没有前途。

国外的技术人员可以工作很久,核心技术人员可以工作到50岁,中国呢? 呵呵。人首先要生存,解决了生存问题以后,你才有资格和时间来谈理想,谈人生。

今天又看到了ttplayer 关于前段时间相关漏洞的声明,又是在忽悠。为什么就不可以学学microsoft,学学国外的软件厂商呢。互相攻击,非常无聊。

项目是靠“谈”出来的,技术人员的悲哀!

非常羡慕老外可以在火车上非常悠闲地打开vi,编写python 程序。希望中国也有那么一天。