存档

2012年10月 的存档

Win32 bind port shellcode(4444 tcp) 399 bytes

2012年10月27日 5 条评论

Win32 bind port shellcode(4444 tcp) 399 bytes,验证可用,执行后通过telnet到目标机器4444端口即可。以下代码请谨慎执行,测试完注意关闭端口!!!

另外,对于一些需要网络发送数据的场景,可能要求数据中不得函数NULL字符(0×00),下面的代码是NULL Free的,其中的代码重定位(GetPC)使用了浮点指令集:

00C67000 D9 EE fldz
00C67002 D9 74 24 F4 fnstenv [esp-0Ch]
00C67006 5B pop ebx
测试漏洞利用的时候,总是不成功,调试发现fldz/fnstenv指令会破坏栈顶数据,所以建议在ShellCode前填充适当的NOP指令。[……]

基于WinPcap开发嗅探器程序

2012年10月23日 163 条评论

这是我上课的一个实验,基于WinPcap开发一个简单的嗅探器,代码写的很一般,Hard Code Everywhere! 当然有兴趣的也可以下下来看一下。下面简单介绍下开发环境的搭建以及中间需要用到的一些编程要点。

一、实验环境构建
本次实验环境为Visual Studio 2010专业版 + WinPcap 4.1.2 + WinPcap 4.1.2 Developer’s Pack;
安装好WinPcap后,解压开发包文件WpdPack_4_1_2.zip,并把下面的Include文件夹以及Lib文件夹复制到工程目录下,配置工程设置,为“附加包含目录”添加Include文件夹相对路径,为“附加库目录”添加Lib文件夹相对路径,同时给“附加依赖项”添加“Packet.lib”、“wpcap.lib”选项,给“预处理器定义”添加“HAVE_REMOTE”、“WPCAP”选项,在stdafx.h头文件中增加对pcap.h头文件的包含,这样整个开发环境就配置好了,而且源代码可以在其他电脑上编译,不必再次安装WpdPack开发包以及设置头文件和库文件的路径。[……]

Bloom Filter算法简介

2012年10月13日 6 条评论

Bloom Filter的中文翻译叫做布隆过滤器,是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。

在正式介绍Bloom Filter算法之前,先来看看什么时候需要用到Bloom Filter算法。
1. HTTP缓存服务器、Web爬虫等
主要工作是判断一条URL是否在现有的URL集合之中(可以认为这里的数据量级上亿)。
对于HTTP缓存服务器,当本地局域网中的PC发起一条HTTP请求时,缓存服务器会先查看一下这个URL是否已经存在于缓存之中,如果存在的话就没有必要去原始的服务器拉取数据了(为了简单起见,我们假设数据没有发生变化),这样既能节省流量,还能加快访问速度,以提高用户体验。
对于Web爬虫,要判断当前正在处理的网页是否已经处理过了,同样需要当前URL是否存在于已经处理过的URL列表之中。[……]