當前位置:
首頁 > 新聞 > Sickle:推薦一款優質ShellCode開發工具

Sickle:推薦一款優質ShellCode開發工具

Sickle是一個shellcode開發工具,用於加速創建正常運行的shellcode所需的各個步驟。


Sickle主要有以下功能:


識別可能會導致shellcode無法正常執行的壞字元。


支持多種語言輸出格式(python,perl,javascript等)。


通過STDIN接收shellcode並格式化。


在Windows和Linux環境中均可執行shellcode。

支持shellcode間差異性比較。


反彙編shellcode到彙編語言(例如ARM,x86等)。


快速錯誤檢查


在實際測試當中,測試人員往往需要對一個shellcode進行反覆枯燥的測試,才能最終確定shellcode是否可用。這對測試人員來說,是一件相當費時費力的事情。而在這個問題上Sickle也許能助我們一臂之力,Sickle可以為我們快速的檢查出shellcode中可能存在的錯誤問題。(適用於Windows和Unix系統):


shellcode重建


有時你可能想通過自己重建shellcode以了解某個執行流暢的shellceode片段的底層機制。Sickle可以幫助你將原始shellcode與「重建」版本進行差異性比較。



壞字元識別

需要說明的是,關於壞字元的識別最好是在基於Linux的操作系統中使用。在Windows主機上轉儲shellcode時,並不會突出顯示錯誤的字元。以下是在Unix環境下的一個使用示例:



反彙編


也支持一個二進位文件和提取的操作碼(shellcode)轉換為機器指令(-obj)。注意,這需要與原始操作碼(-r)和STDIN(-s)一起執行。在下面的例子中,我把一個reverse shell轉換為了程序集。


Windows安裝


如果你不使用它的反彙編功能,僅僅只是將Sickle作為一個wrapper/dump的工具,那麼你可以使用任意版本的Python環境(包括2.7)。這裡需要說明的是,我在Windows 10上編寫/測試64位shellcode時遇到了一些問題。因此,為了避免大家使用時出現同樣的問題,我建議大家安裝Python 3.4.4 (amd64) ,但對於其它版本的windows系統並不存在該問題。其次,如果你編寫的shellcode為x86,則任意版本的Python都沒影響,例如Python 3.7.0a3。以下是在Windows 10主機上測試msfvenom生成的shellcode(「windows / x64 / shell_reverse_tcp」)的用法示例



Linux安裝


Sickle是由Python3編寫的,並且具有完整的功能,我建議直接安裝capstone。Capstone的安裝非常簡單:




  • apt-get install python3-pip



  • pip3 install capstone


如果你不在NASM中編譯你的shellcode,我已經添加了一個「objdump2shellcode」的功能。為了便於訪問,我更喜歡將Sickle添加到/usr/bin/目錄,但是如果使用Black Arch Linux Sickle則已被預安裝。(以前稱為objdump2shellcode):

root@wetw0rk:~# git clone https://github.com/wetw0rk/Sickle.git
root@wetw0rk:~# cd Sickle/
root@wetw0rk:~# chmod +x sickle.py
root@wetw0rk:~# cp sickle.py /usr/bin/sickle
root@wetw0rk:~# sickle
usage: sickle [-h] [-r READ] [-s] [-obj OBJDUMP] [-f FORMAT] [-b BADCHAR] [-c]
             [-v VARNAME] [-l] [-e EXAMINE] [-d] [-a ARCH] [-m MODE] [-rs]

Sickle - a shellcode development tool

optional arguments:
 -h, --help            show this help message and exit
 -r READ, --read READ  read byte array from the binary file
 -s, --stdin           read ops from stdin (EX: echo -ne "xdexadxbexef" |
                       sickle -s -f <format> -b "x00")
 -obj OBJDUMP, --objdump OBJDUMP
                       binary to use for shellcode extraction (via objdump
                       method)
 -f FORMAT, --format FORMAT
                       output format (use --list for a list)
 -b BADCHAR, --badchar BADCHAR
                       bad characters to avoid in shellcode
 -c, --comment         comments the shellcode output
 -v VARNAME, --varname VARNAME
                       alternative variable name
 -l, --list            list all available formats and arguments
 -e EXAMINE, --examine EXAMINE
                       examine a separate file containing original shellcode.
                       mainly used to see if shellcode was recreated
                       successfully
 -d, --disassemble     disassemble the binary file
 -a ARCH, --arch ARCH  select architecture for disassembly
 -m MODE, --mode MODE  select mode for disassembly
 -rs, --run-shellcode  run the shellcode (use at your own risk)

參考來源:github

,FB小編 secist 編譯,轉載請註明來自FreeBuf.COM

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

舊飯新炒之Intel AMT提權漏洞(CVE-2017-5689)後續利用
中國信息安全從業人員現狀調研報告(2017年度)正式發布

TAG:FreeBuf |