
《SEC-L05-001.1-Linux漏洞利用(CVE-2005-2959、CVE-2006-2451)》.docx
30页Linux漏洞利用SEC-L05-001.12010年4月Linux 漏洞利用技术背景Linux 操作系统是一款开源的类UNIX操作系统,有多种发行版(Distributions),如 RedHat Linux、SUSE Linux、Debian Linux等等等等这些发行版在系统安装、包管理、桌面应用等方面各有特色,但是其操作系统内核(Kernel)均来自于一个组织(www.kernel.org),该组织负责Linux内核的更新、发布在部分已发布的内核版本中,存在一些严重影响操作系统安全的漏洞,Hacker 或 Cracker通过利用这些漏洞达到入侵并控制目标主机的目的,Cracker 甚至会通过这些漏洞入侵有问题的主机及该主机所在网络,以达到窃取保密信息、散播蠕虫木马、发起DDOS攻击等目的实验目的通过2种不同漏洞的利用(内核调用漏洞及系统工具漏洞),对普通帐号进行本地提权,通过实际操作增加实验者对网络安全及主机操作系统安全的认识,对希望成为合格的 SA(System Administrator & Security Administrator)的实验者进行系统漏洞类的部分基础知识介绍。
实验平台攻击机(客户端):Windows2000/XP/2003目标机(服务端):Linux Server实验工具Putty(putty.exe)及 Putty SFTP 工具(psftp.exe)SSH口令扫描工具X-Scan 演示后门程序 ndoor实验要点远程SSH服务口令暴力破解Linux本地提权简易后门制作实验步骤指导实验准备实验概要:熟悉了解相关的实验工具,掌握Putty,Putty SFTP,X-Scan等工具的使用,操作1、下载实验中使用的工具:Putty(putty.exe)及 Putty SFTP 工具(psftp.exe)、SSH口令扫描工具X-Scan 、演示后门程序 ndoor※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※【知识重点】putty.exe 是一个小巧实用的远程登录客户端,支持多种协议psftp.exe 是Putty 工具集中的一个支持 SFTP 协议的客户端,用于通 过SFTP协议上传下载文件x-scan是一款免费的网络扫描器,我们使用它的SSH口令扫描功 能ndoor 是用于演示的一个简单后门※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※远程SSH服务口令暴力破解实验概要:了解使用X-Scan扫描工具,探测被攻击服务器的SSH服务,实现口令自动猜测攻击。
注释】下载及使用该工具时请关闭杀毒软件或将该工具所在路径设置为排除路径,否则可能会引起杀毒软件的误报(Symantec Antivirus)而删除该工具所需的关键文件运行 xscan_gui.exe 启动X-Scan程序;【知识重点】X-scan是国内相当出名的扫描工具,X-scan采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测,支持插件功能,提供了图形界面和命令行两种操作方式,扫描内容包括:远程操作系统类型及版本,标准端口状态及端口BANNER信息,SNMP信息,CGI漏洞,IIS漏洞,RPC漏洞,SSL漏洞,SQL-SERVER、FTP-SERVER、SMTP-SERVER、POP3-SERVER、NT-SERVER弱口令用户,NT服务器NETBIOS信息、注册表信息等扫描结果保存在/log/目录中,index_*.htm为扫描结果索引文件点击 图标或选择菜单 设置à扫描参数,弹出参数设置窗口,左侧选中检测范围选项,在右侧的“指定IP范围”下的文本框中输入目标主机IP地址如图1(图1)点开左侧的全局设置,进一步设置参数,选中左侧的“扫描模块”,在右侧仅选中 SSH弱口令,如图2(图2)为了加快扫描速度,适当增加扫描线程数,点击左侧的“并发扫描”,在右侧的ListBox中将 ssh 的扫描线程数修改为 30全局设置,如图3(图3)点击左侧的“其他设置”,在右侧中仅选中“无条件扫描”,如图4(图4)点开左侧的插件设置,选中“端口相关设置”,在右侧的“待检测端口”下的文本框中输入SSH服务的默认端口号22,如图5(图5)选中左侧的“字典文件设置”,双击右侧的“SSH密码字典”及 “SSH用户名字典”,分别设置为 ssh_pass.dic 及 ssh_user.dic, 最后点击“确定”关闭参数设置窗口,如图6(图6)点击 图标开始扫描,扫描完成后,如图7。
图7)扫描完成后会自动打开系统默认浏览器显示扫描结果,在 X-Scan 工具主窗口也可以看到相应结果,在左侧窗口中 “/” 前面是用户名,后面是密码;在“安全漏洞及解决方案”列中,“/” 前面是用户名,后面是密码,图8;(图8)Linux本地提权1:利用内核调用漏洞(prctl()调用)实验概要:使用 Putty 工具用普通帐号登录远程系统,利用exploit程序以达到提权目的知识重点】※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※Linux Kernel的prctl()调用在处理Core Dump时存在漏洞,本地攻击者可能利用此漏洞提升自己的权限prctl()调用允许未授权进程设置PR_SET_DUMPABLE=2;因此当发生段错误时产生的core文件将被root用户拥有本地用户可以创建恶意程序,将core文件dump到正常情况下无权写入的目录中这可能导致拒绝服务(磁盘耗尽)或获得root权限※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※1. 用第一步获取的账户 tester(对此帐户进行提权) 登录远程主机,如图9所示图9)2. 创建编写提权代码文件,如图10所示。
命令:[tester@LT-courseware-0007~]$cat > ex.c << _EOF(图10)3. 输入提权源代码,如图11所示代码内容如下所示:#include
在使用cat命令进行文件编写时,文件内容输入完成后,必须在输入的最后一行后另起新行(敲Enter键),输入cat命令行中最后的重定向符号(<<)后跟随的自定义结束标记以告诉cat程序输入已结束,一般习惯上用包含EOF这三个字符的字符串做结束标记,如图11中定义的结束符为 _EOFcat 输入过程是行输入模式,即在一行未结束时(未敲Enter键)时,可以编辑修改当前行内容(在大多数shell下都是用delete键从当前光标处向前删除单个字符),一旦新起一行,则上面已输入的行在此次编辑中无法再被更改,因此要谨慎输入※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※cat使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)参数:-n 或 --number 由 1 开始对所有输出的行数编号-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行-v 或 --show-nonprinting范例:cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
gcc参数:-ansi 只支持 ANSI 标准的 C 语法这一选项将禁止 GNU C 的某些特色, 例如 asm 或 typeof 关键词 -c 只编译并生成目标文件 -DMACRO 以字符串“1”定义 MACRO 宏 -DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏 -E 只运行 C 预编译器 -g 生成调试信息GNU 调试器可利用该信息 -IDIRECTORY 指定额外的头文件搜索路径DIRECTORY -LDIRECTORY 指定额外的函数库搜索路径DIRECTORY -lLIBRARY 连接时搜索指定的函数库LIBRARY -m486 针对 486 进行代码优化 -o FILE 生成指定的输出文件用在生成可执行。
