|
|
为了避免教程被人捆马 首先公布下MD5码 请大家自行效验
: K' b t+ M! O% w) l- {第一课 9736697ffdbbb8441a316538543f05f5 + N. i; p2 p0 }
基本上市面上没有什么关于缓冲区堆栈溢出的教程,黑防的7剑要好几千.闲来无事.做一个试讲篇.希望暗组的朋友喜欢.
. z, z! d5 I. t3 U1 A5 \! O/ ]3 c 缓冲区溢出一直是很多人追求的目标.市面上关于缓冲区溢出的书非常的少,最重要一点,代码不通用.给新手学缓冲区溢出造成很大的困饶.
) ~& }: O2 i7 B5 B. v6 P5 j" [! { A 缓冲区溢出强大在于编写蠕虫,发现0DAY.6 d5 [9 u. d! ~. \- V) b4 |
相关代码在附件里.
( y1 _1 H% a* `5 _ 教程下载地址: F& n% c, h3 X4 Z
纳米盘:8 Q! C( `) P( k+ W) F& K
http://www.namipan.com/d/a8e60a9 ... 82e8591a2ee5e43ab02) {% o( F4 b2 L. D/ U
转载请注明出自暗组信息安全论坛 http://forum.darkst.com/,本贴地址:http://forum.darkst.com/viewthread.php?tid=40619
% {. o& \5 a9 a4 s
. y/ x$ A. S- ~: a* X T4 y8 b第二课 MD5效验码 1dfba3d54e667cb1632fffc0b6210a3b : n& v* I4 c) y
暗组论坛也提供下载 4 O# o- ] e7 V5 l5 X D5 j" @( D# }! {
教程说明:由于我的ASP空间大小有限(只有100MB)只能删一课,再放一课。还有课程的更新情况 每周基本上保证1-2课的速度。如果时间宽裕的话,我争取更新3课。关于课程不明白的请跟帖提问。只要我知道的,一定解答。(本人不收徒弟,要0DAY以及蠕虫 免开尊口)9 t F5 s7 v, F! T2 q
第2课 开始调试和测试缓冲区溢出程序3 j5 g- W5 a3 P+ N
主要内容如下:通过自己构造特定字符来测试溢出点位置。
5 d5 L. Q' k& q% H* w. f 掌握和定位 函数的内存地址
8 Y" W/ H/ X" q* O# }0 N! n9 a7 j 口错:教程中将26个字母 好几次说成24个字母,请大家谅解。主要代码在附件中。4 d7 {9 b( `5 H% T0 O* T
课程下载连接:http://www.namipan.com/d/5c1db95 ... 68b64811144a31fb902
( {1 c6 e; ^6 c% A d6 S2 c8 X: p* D4 c1 R' a, [& A! ^
转载请注明出自暗组信息安全论坛 http://forum.darkst.com/,本贴地址:http://forum.darkst.com/viewthread.php?tid=40918+ n8 y5 b M% w: [$ J9 o
7 d+ x$ v/ {6 `. s
# h' m" }6 [5 l, z. B第3课动画MD5效验码 d41d8ccd1668ceda673bf7473efa65d8/ Y( ?' G" t6 T B p8 W, ]
课程下载地址(纳米盘) http://www.namipan.com/d/1af97d4 ... 03c5cf7c504d63c0e02
% k# M7 o: W1 J- j5 \什么是shellcode ) t% W( W4 V# H+ z# j7 [% i6 t
一段可以调出一个shell的机器码形成的字符串
2 l# s. m, w, v* `& P3 G, C( i8 j0 j" U H. A/ m; _
如何得到shell的机器码! o& `* n- S- A# z# _
ASM的嵌入编程
& f% M, f6 P. G2 w9 ^一个CMD对话框的shell
9 V! l, h) n' I8 B4 V1 [ {$ N( g8 ~
通用的格式: i4 l' f5 L" g8 d# i. P
Push ebp" U5 r* Z( z5 S/ p# _* ^, p. @
Mov ebp,esp! Z M: H k; c$ g0 C; G
Xor eax eax
4 `# f, y0 @) L/ PPush eax
6 P1 i) ^! f* B* p& B/ N8 e& QMov byte ptr[ebp-xh],xx# r- w$ i6 d4 Y M5 P; O: K3 o% o* x
Lea eax,[ebp-xh]9 H8 u) S7 p/ i, }, L2 \% I
Push eax5 _: k- ]5 x5 @2 \, O7 I& V' g
Mov eax,0x函数地址
$ e2 p0 J# }" qCall eax
8 s. @$ o' o; Q2 @& x* e转载请注明出自暗组信息安全论坛 http://forum.darkst.com/,本贴地址:http://forum.darkst.com/viewthread.php?tid=41289
Y4 n! F. u: V4 r
4 `- _8 @1 |( o4 Y0 X暗组缓冲区溢出第四课- l B: u) ] G# I: l
如果把Exploit比喻成一枚火箭的话,我们都知道如果要设计火箭,那么就要考虑导弹的飞行路线,攻击目标,这些因素。而Exploit就是如何定位漏洞的位置,以及如何保证SHELLCODE被加载运行的。
4 y4 E) l1 p: A7 }# l3 w# h所以Exploit+Shellcode就构成了一个完整的缓冲区溢出攻击程序。那么Exploit与shelllcode的关系就是运载火箭与弹头的关系。合在一起那就是计算机中的“巡航导弹”。& F4 M+ w9 T! K! D a% A
5 O; J8 l- J0 Q G3 R8 l# B关于shellcode,他既可以是一个开玩笑式的“礼花弹”,他也可以是夺取计算机控制权的“高爆弹”更可以是毁灭整个计算机系统的“核弹”。处于研究目的,今天我们还是来研究一个稍微有点破坏力的shellcode.8 m* y( o+ l1 i* O) J3 r4 H
2 {6 ~ S/ ~- Z- A1 [
视频下载地址http://www.namipan.com/d/lesson4 ... 8ca07809e09d91cd901
# q3 C z8 { h1 V. @转载请注明出自暗组信息安全论坛 http://forum.darkst.com/,本贴地址:http://forum.darkst.com/viewthread.php?tid=44071# ^: f1 _6 ]% Q! E$ H# u& L
% f- S* p% I( W; |' u9 Z# [- R[ 本帖最后由 a673803 于 2009-6-16 00:35 编辑 ] |
|