资源描述:
《IDA-漏洞发掘方法示例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、漏洞发掘方法示例1.外部观察,了解文件类型、行为和外部接口。[cloud@rsaszzz]$filezzzzzz:setuidELF32-bitLSBexecutable,Intel80386,version1(SYSV),forGNU/Linux2.2.5,dynamicallylinked(usessharedlibs),strippedcloud@rsaszzz]$./zzzusage:./zzzstring[cloud@rsaszzz]$./zzzaafzzz(aa)=7d9dd0c79619cbcabb8f5095f61da05f2.静态分析,看看程序用了那些外部函数:[c
2、loud@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_SLOTprintf080
3、4aa40R_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....
4、可以看到有了我们感兴趣的:溢出:strcpy、sprintf、strcat、(strncpy、strncat也可能导致溢出)格式串:printf、sprintf执行外部命令:system+setreuid/setresuid有可能高权限执行我们的命令。外部接口:getenv、fopen、fprintf。条件竞争:fchmod疑虑问题:setresuid/setreuid到底把权限去掉了还是设高了还是设低了?联系的是同时出现了getuid,geteuid。3.静态考查更多的外部接口有getenv,那么到底getenv了哪些内容,fopen又打开了哪个个文件?[cloud@rsaszzz
5、]$stringszzz/lib/ld-linux.so.2....usage:./zzzstringfzzz()=%02xfzzz=ERR:stringtoolong.LOGNAMELOGFILElogfile=%sLOGPATHok:rootuser!ps-ef
6、sed's/r.*t//g'
7、awk'{print$1}'我们看到了感兴趣的:LOGNAMELOGFILELOGPATHok:rootuser!ps-ef
8、sed's/r.*t//g'
9、awk'{print$1}'4.用ida反汇编,静态考查我们以上发现的兴趣点:.text:0804940EpushoffsetaLogn
10、ame;"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.
11、text:0804974Emov[ebp-10h],eax.text:08049751pushoffsetaPsEfSedSR_TGAw;"ps-ef
12、sed's/r.*t//g'
13、awk'{print$1"....text:08049756call_system.text:0804975Baddesp,4深入看看我们可以发现调用system的函数在整个程序中没有被调用过简单看了一下main函数开始部分没有见到取消程序特权的调用5.在以上静态分析基础上动态