国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

這篇具有很好參考價(jià)值的文章主要介紹了網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

網(wǎng)絡(luò)攻防技術(shù)實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境、實(shí)驗(yàn)說明、實(shí)驗(yàn)代碼見 Shellcode Development Lab

Task 1: Writing Shellcode

a: The Entire Process

1)編譯mysh.s得到二進(jìn)制文件

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

2)執(zhí)行1)中的二進(jìn)制文件,結(jié)果如下圖,我們看到運(yùn)行mysh之前的PID與運(yùn)行mysh之后的PID是不同的,證明我們通過mysh啟動(dòng)了一個(gè)新的shell。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

3)獲取機(jī)器碼,以便進(jìn)一步提取shellcode所需要的二進(jìn)制機(jī)器碼,如下圖所示。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

4)使用xxd命令打印出二進(jìn)制文件的內(nèi)容,從打印輸出中找到shell的機(jī)器碼,由3)可知機(jī)器碼的起始和結(jié)尾分別為31c0、cd80,因此截取二者之間的內(nèi)容,并將內(nèi)容復(fù)制到convert.py中。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?截取

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?替換

5)執(zhí)行convert.py文件,得到shellcode中包含的16進(jìn)制形式的機(jī)器碼,如下:

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

b: Eliminating Zeros from the Code

1)task里給的操作如下圖。但我們不允許添加額外的,機(jī)器碼中不能出現(xiàn)0,我的理解是,匯編碼里不能出現(xiàn)類似push “”的操作,因此考慮其他構(gòu)造方法。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

2)我們參考前文中對0的處理,將”h####為占位符賦值給ebx,然后左移24bit,右移24bit,讓”h###”變?yōu)椤県%0%0%0”,其他部分原理不變。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?前文中的處理

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?修改mysh

3)運(yùn)行并查看機(jī)器碼,發(fā)現(xiàn)更改有效且不存在%0

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?運(yùn)行發(fā)現(xiàn)成功

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?查看機(jī)器碼

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?查看機(jī)器碼,無%0

c: Providing Arguments for System Calls

1)?修改mysh,將/bin/sh -c "ls -la"壓入棧中,通過#占位和左右移的方式來引入空格。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?修改后的mysh

2)編譯并執(zhí)行mysh-c直接在命令行中輸入“l(fā)s -la”,觀察到二者結(jié)果相同。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?執(zhí)行mysh-c

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?命令行直接執(zhí)行l(wèi)s -la

3)查看mysh.o的二進(jìn)制機(jī)器碼,發(fā)現(xiàn)沒有0。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?mysh十六進(jìn)制機(jī)器碼

Task 2: Using Code Segment

1)對①-②處的代碼進(jìn)行解釋

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?原始代碼

按代碼執(zhí)行順序而非從上至下的順序:

  1. call one ????????? ?? ???? :將函數(shù)one壓入棧中,再跳轉(zhuǎn)到函數(shù)one
  2. db ‘xxxx’ ??????? ? ?????? :構(gòu)建由命令、分隔符、占位符構(gòu)成的字符串
  3. pop ?????????????????????? ? :將棧中最頂層的值2中字符串pop裝入ebx中
  4. xor eax, eax ???? ? ??? :通過異或?qū)ax置0
  5. mov [ebx+7], al ? ??? :把2中字符串的*的位置替換為%0,用于截?cái)?/span>
  6. mov [ebx+8], ebx ?? :把命令”/bin/sh”的地址賦給占位符AAAA
  7. mov [ebx+12], eax? :把BBBB賦值為NULL
  8. Lea ???????????????????????? :把命令”/bin/sh”的地址賦給ecx
  9. xor edx, edx ?????????? :把edx置為NULL
  10. mov al 0x0b ???? ? ? ? :把execve系統(tǒng)調(diào)用號作為參數(shù)傳入
  11. Int 0x80 ??????? ? ? ? ?? :調(diào)用128號中斷

最終,mysh2.s可用c語言總結(jié)為:

????????char?*command[] = {"/bin/sh", NULL};

????????execve(command[0], command, NULL);

2)env用于打印環(huán)境變量,env后加“-”表示參數(shù)選項(xiàng),因此構(gòu)造字符串“/usr/bin/env - a=11 b=22”

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?3)構(gòu)造字符串并在mysh2.s基礎(chǔ)上進(jìn)行修改。

思路和mysh2.s一致,先將用%0替代分割位來截?cái)啵賹⒌刂焚x值給占位符,最后對寄存器進(jìn)行處理,構(gòu)造的命令為 /usr/bin/env - a=11 b=11,最終構(gòu)造的字符串為'/usr/bin/env*-*a=11*b=22*AAAABBBBCCCCDDDDEEEE',其中*是分隔符,后續(xù)會(huì)通過mov [esi+x], al操作被賦予0,AAAABBBBCCCCDDDDEEEE是占位符,分別填充四個(gè)子命令的地址和最后一個(gè)傳遞給execve的參數(shù)NULL。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

section .text
  global _start
    _start:
        BITS 32
	    jmp short two
    one:
 	    pop esi
     	xor eax, eax
 	
 	    mov [esi+12], al   ; /usr/bin/env%0
 	    mov [esi+14], al   ; -%0
 	    mov [esi+19], al   ; a=11%0
 	    mov [esi+24], al   ; b=22%0
 	
 	    mov [esi+25], esi  ; address of /usr/bin/env in AAAA
 	
 	    lea ebx, [esi+13]  ; get address of -
 	    mov [esi+29], ebx  ; address of - in BBBB
 	
 	    lea ebx, [esi+15]  ; get address of a=11
 	    mov [esi+33], ebx  ; address of a=11 in CCCC
 	
 	    lea ebx, [esi+20]  ; get address of b=22
 	    mov [esi+37], ebx  ; address of b=22 in DDDD
 	    
 	    mov [esi+41], eax  ; put NULL in EEEE
 	
 	    mov al,  0x0b      ; pass the execve syscall number as argument
 	    mov ebx, esi
 	    lea ecx, [esi+25]  ; /usr/bin/env - a=11 b=22
 	    lea edx, [esi+41]  ; NULL

 	    int 0x80           ; execve
    two:
 	    call one
 	    db '/usr/bin/env*-*a=11*b=22*AAAABBBBCCCCDDDDEEEE' 

?最終,修改后的mysh2.s可用c語言總結(jié)為:

????????char?*command[] = {"/usr/bin/env", "-", "a=11", "b=22" NULL};

????????execve(command[0], command, NULL);

4)編譯并執(zhí)行

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?如果忘加--omagic會(huì)出現(xiàn)segmentation fault,--omagic選項(xiàng)使代碼段可寫。

Task 3: Writing 64-bit Shellcode

1)參考b: Eliminating Zeros from the Code中左右移位將占位符替換為%0的操作修改mysh_64,代碼如下:

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

?2)編譯并運(yùn)行,發(fā)現(xiàn)成功。

網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)

參考資料:

Shellcode Development Lab

使用netcat進(jìn)行反彈鏈接的shellcode - xxxxxxxx1x2xxxxxxx - 博客園

用匯編語言構(gòu)造簡單的shellcode(64位&&32位)以及將匯編語言轉(zhuǎn)換成機(jī)器碼的方法 - ZikH26 - 博客園

linux 下env命令介紹 - 墨天輪文章來源地址http://www.zghlxwxcb.cn/news/detail-412064.html

到了這里,關(guān)于網(wǎng)絡(luò)攻防技術(shù)-Lab5-shellcode編寫實(shí)驗(yàn)(SEED Labs – Shellcode Development Lab)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【網(wǎng)絡(luò)攻防原理與技術(shù)】第3章:網(wǎng)絡(luò)偵察技術(shù)

    ?絡(luò)偵察需要偵察的?標(biāo)的基本信息 靜態(tài)信息 各種聯(lián)系信息,包括姓名、郵箱、電話號碼等 DNS、Web服務(wù)器 主機(jī)所在的?絡(luò)段,IP地址 ?絡(luò)拓?fù)浣Y(jié)構(gòu) 動(dòng)態(tài)信息 ?標(biāo)主機(jī)是否開機(jī) ?標(biāo)主機(jī)是否安裝了你所感興趣的軟件 ?標(biāo)主機(jī)安裝的操作系統(tǒng)種類 ?標(biāo)主機(jī)上是否有安全漏洞

    2024年02月11日
    瀏覽(16)
  • 1.6 編寫雙管道ShellCode

    1.6 編寫雙管道ShellCode

    本文將介紹如何將 CMD 綁定到雙向管道上,這是一種常用的黑客反彈技巧,可以讓用戶在命令行界面下與其他程序進(jìn)行交互,我們將從創(chuàng)建管道、啟動(dòng)進(jìn)程、傳輸數(shù)據(jù)等方面對這個(gè)功能進(jìn)行詳細(xì)講解。此外,本文還將通過使用匯編語言一步步來實(shí)現(xiàn)這個(gè)可被注入的 ShellCode 后門

    2024年02月10日
    瀏覽(51)
  • 1.4 編寫簡易ShellCode彈窗

    1.4 編寫簡易ShellCode彈窗

    在前面的章節(jié)中相信讀者已經(jīng)學(xué)會(huì)了使用 Metasploit 工具生成自己的 ShellCode 代碼片段了,本章將繼續(xù)深入探索關(guān)于 ShellCode 的相關(guān)知識體系,ShellCode 通常是指一個(gè)原始的可執(zhí)行代碼的有效載荷,攻擊者通常會(huì)使用這段代碼來獲得被攻陷系統(tǒng)上的交互Shell的訪問權(quán)限,而現(xiàn)在用于

    2024年02月11日
    瀏覽(23)
  • 【網(wǎng)絡(luò)安全】-- 網(wǎng)絡(luò)滲透技術(shù)攻防(--更新中)

    1.1.1 什么是網(wǎng)絡(luò)滲透攻擊 “網(wǎng)絡(luò)滲透攻擊”是對大型的網(wǎng)絡(luò)主機(jī)服務(wù)器群組采用的一種迂回漸進(jìn)式的攻擊方法,通過長期而有計(jì)劃的逐步滲透攻擊進(jìn)入網(wǎng)絡(luò),最終控制整個(gè)網(wǎng)絡(luò)。 1.1.2 網(wǎng)絡(luò)滲透測試的意義 滲透測試是受信任的第三方進(jìn)行的一種評估網(wǎng)絡(luò)安全的活動(dòng),它通過運(yùn)

    2024年02月13日
    瀏覽(23)
  • 1.6 編寫雙管道ShellCode后門

    1.6 編寫雙管道ShellCode后門

    本文將介紹如何將 CMD 綁定到雙向管道上,這是一種常用的黑客反彈技巧,可以讓用戶在命令行界面下與其他程序進(jìn)行交互,我們將從創(chuàng)建管道、啟動(dòng)進(jìn)程、傳輸數(shù)據(jù)等方面對這個(gè)功能進(jìn)行詳細(xì)講解。此外,本文還將通過使用匯編語言一步步來實(shí)現(xiàn)這個(gè)可被注入的 ShellCode 后門

    2024年02月12日
    瀏覽(17)
  • 1.5 編寫自定位ShellCode彈窗

    1.5 編寫自定位ShellCode彈窗

    在筆者上一篇文章中簡單的介紹了如何運(yùn)用匯編語言編寫一段彈窗代碼,雖然簡易 ShellCode 可以被正常執(zhí)行,但卻存在很多問題,由于采用了硬編址的方式來調(diào)用相應(yīng)API函數(shù)的,那么就會(huì)存在一個(gè)很大的缺陷,如果操作系統(tǒng)的版本不統(tǒng)或系統(tǒng)重啟過,那么基址將會(huì)發(fā)生變化,

    2024年02月11日
    瀏覽(27)
  • 1.8 運(yùn)用C編寫ShellCode代碼

    1.8 運(yùn)用C編寫ShellCode代碼

    在筆者前幾篇文章中,我們使用匯編語言并通過自定位的方法實(shí)現(xiàn)了一個(gè)簡單的 MessageBox 彈窗功能,但由于匯編語言過于繁瑣在編寫效率上不僅要考驗(yàn)開發(fā)者的底層功底,還需要寫出更多的指令集,這對于普通人來說是非常困難的,當(dāng)然除了通過匯編來實(shí)現(xiàn) ShellCode 的編寫以

    2024年02月15日
    瀏覽(17)
  • 網(wǎng)絡(luò)安全攻防技術(shù):移動(dòng)安全篇

    網(wǎng)絡(luò)安全攻防技術(shù):移動(dòng)安全篇

    隨著移動(dòng)通信技術(shù)和移動(dòng)應(yīng)用的普及,無線網(wǎng)絡(luò)、移動(dòng)智能設(shè)備等正以前所未有的速度迅猛發(fā)展,已經(jīng)滲透到了社會(huì)的各個(gè)方面,成為人們生產(chǎn)和生活不可或缺的工具和手段。此外,被譽(yù)為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮的物聯(lián)網(wǎng),亦得益于無線網(wǎng)絡(luò)、

    2024年04月09日
    瀏覽(24)
  • 【網(wǎng)絡(luò)攻防技術(shù)】實(shí)驗(yàn)八——SQL注入實(shí)驗(yàn)

    SQL注入是一種代碼注入技術(shù),它利用web應(yīng)用程序和數(shù)據(jù)庫服務(wù)器之間接口中的漏洞。當(dāng)用戶的輸入在發(fā)送到后端數(shù)據(jù)庫服務(wù)器之前未在web應(yīng)用程序中正確檢查時(shí),就會(huì)出現(xiàn)此漏洞。許多web應(yīng)用程序從用戶處獲取輸

    2024年02月08日
    瀏覽(17)
  • 網(wǎng)絡(luò)攻防原理與技術(shù) 第一章 課后題

    1.安全屬性“CIA”不包括(D)。 A.完整性 B.機(jī)密性 C.可用性 D.可控性 2.屬于被動(dòng)攻擊的是(B)。 A.中斷 B.截獲 C.篡改 D.偽造 3.下列攻擊中,主要針對可用性的攻擊是(A)。 A.中斷 B.截獲 C.篡改 D.偽造 4.下列攻擊中,主要針對完整性的攻擊是(C)。 A.中斷 B.截獲 C.篡改 D.偽造

    2024年02月01日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包