改装uname
如果不幸被一个攻击者闯入,它可以用uname来获取真正的操作系统信息,然后来个本地溢出,你就哭吧。
所以我们要修改uname的源程序,使它显示我们想要它显示的内容。
打开uname.c,找到如下行:
print_element (PRINT_SYSNAME, name.sysname);//操作系统名如linux
print_element (PRINT_NODENAME, name.nodename);//主机名
print_element (PRINT_RELEASE, name.release);//发行版本,如:2.2.16-22
print_element (PRINT_VERSION, name.version);//
print_element (PRINT_MACHINE, name.machine);//机器类型,如i686
print_element (PRINT_PROCESSOR, processor);//处理器类型
知道怎么改吧,不知道?提示一下,如果要显示操作系统为SunOS,替换第一行为:
print_element(PRINT_SYSNAME,"SunOS");
编译后,运行./uname –s,就会显示SunOS
当然你应该把每一项都进行修改,使人看不出破绽。
最后把改好的uname拷到/bin目录。
我在修改时还加了一个-Y的参数,目的是显示真正的信息,给自己看的。默认显示修改过的信息。
如果不幸被一个攻击者闯入,它可以用uname来获取真正的操作系统信息,然后来个本地溢出,你就哭吧。
所以我们要修改uname的源程序,使它显示我们想要它显示的内容。
打开uname.c,找到如下行:
print_element (PRINT_SYSNAME, name.sysname);//操作系统名如linux
print_element (PRINT_NODENAME, name.nodename);//主机名
print_element (PRINT_RELEASE, name.release);//发行版本,如:2.2.16-22
print_element (PRINT_VERSION, name.version);//
print_element (PRINT_MACHINE, name.machine);//机器类型,如i686
print_element (PRINT_PROCESSOR, processor);//处理器类型
知道怎么改吧,不知道?提示一下,如果要显示操作系统为SunOS,替换第一行为:
print_element(PRINT_SYSNAME,"SunOS");
编译后,运行./uname –s,就会显示SunOS
当然你应该把每一项都进行修改,使人看不出破绽。
最后把改好的uname拷到/bin目录。
我在修改时还加了一个-Y的参数,目的是显示真正的信息,给自己看的。默认显示修改过的信息。
浙公网安备 33010602011771号