TU CTF - Where Heretics Suffer

拿到這題的時候已經是一隻binary了,這是用比較新的gcc編的,對於function call 有一些新的機制,如下: 80485cb: 8d 4c 24 04 lea ecx,[esp+0x4] 80485cf: 83 e4 f0 and esp,0xfffffff0 80485d2: ff 71 fc push DWORD PTR [ecx-0x4] 80485d5: 55 push ebp 80485d6: 89 e5 mov ebp,esp 80485d8: 51 push ecx 80485d9: 83 ec 34 sub esp,0x34 ...... 8048682: b8 00 00 00 00 mov eax,0x0 8048687: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4] 804868a: c9 leave 804868b: 8d 61 fc lea esp,[ecx-0x4] 804868e: c3 ret 可以看到在初始化的時候lea ecx,[esp+0x4],會把esp得值放到ecx中 之後再把ecx放到stack上,當我們overflow以後會把原本得直也蓋掉...

May 21, 2016 · 1 min · Zet

Install qira on rpi

把install.sh裡面capstone的地方註解掉後執行 下載capstone git clone https://github.com/aquynh/capstone.git $ ./make.sh $ sudo ./make.sh install

March 16, 2016 · 1 min · Zet

Ascii shellcode

可以使用alpha3這套工具,他會產生出具有encoder的ascii shellcode , 利用本身的encoder去解碼,產生出來的shellcode很短,不過這類的shellcode需要一個reg去指向shellcode的起頭 其他別種的有些是利用偏移去xor,最後jmp esp去執行 紀錄一下一題題目的解法: 利用stack上的位置跟ROP的ret跳到那個位置上,再利用stack上的值去跟eax去做xor,利用的是像xor al,[esp+0x34]這類的op code,偏移的部分利用push eax 來填充,最後剛好使eax 指向我們shellcode的位置 可以參考下方的參考資料 References http://inaz2.hatenablog.com/entry/2014/07/11/004655 http://inaz2.hatenablog.com/entry/2014/07/12/000007 http://inaz2.hatenablog.com/entry/2014/07/13/025626 https://code.google.com/archive/p/alpha3/ https://nets.ec/Ascii_shellcode

February 9, 2016 · 1 min · Zet

zshrc

用過prezto與oh-my-zsh的zsh framework以後雖然很方便但是預設會載入一堆插件跟資料,導致開啟shell的時候會有延遲的感覺,尤其進入龐大的git資料夾的時候,速度慢到可以 嘗試自己寫zshrc把會用到的寫進去就好,速度提升不少,git方面採用比較好的做法,先把原本要輸出在Prompt的git訊息輸出到tmp裡面,等跑完以後在資料撈回Prompt 大約如下: setopt prompt_subst # enable command substition in prompt autoload -Uz vcs_info zstyle ':vcs_info:*' enable bzr git hg svn zstyle ':vcs_info:*' check-for-changes true zstyle ':vcs_info:*' stagedstr '%F{green}●%f' zstyle ':vcs_info:*' unstagedstr '%F{yellow}●%f' zstyle ':vcs_info:*' formats ' %b%c%u' zstyle ':vcs_info:*' actionformats " - [%b%c%u|%F{cyan}%a%f]" zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b|%F{cyan}%r%f' zstyle ':vcs_info:git*+set-message:*' hooks git_status ASYNC_PROC=0 ASYNC_DATA="${TMPPREFIX}-prompt_sorin_data" function precmd() { function async() { vcs_info # save to temp file printf "%s" "${vcs_info_msg_0_}" > $ASYNC_DATA # signal parent kill -s USR1 $$ } # do not clear RPROMPT, let it persist # kill child if necessary if [[ "${ASYNC_PROC}" !...

February 7, 2016 · 1 min · Zet

Linux kernel exploits tested

搜尋 aptitude search linux-image- 安裝 aptitude install linux-image-xxxx 或是上網找尋deb檔下載安裝 wget http://kr.archive.ubuntu.com/ubuntu/pool/main/l/linux-lts-utopic/linux-image-3.16.0-30-generic_3.16.0-30.40~14.04.1_amd64.deb sudo dpkg -i *.deb 查看kernel安裝紀錄 dpkg --get-selections | grep linux-image 移除舊kernel aptitude remove linux-image-3.19.0-18-generic linux kernel exploits db https://www.kernel-exploits.com/

January 5, 2016 · 1 min · Zet