CTF
の編集
Top
/
CTF
[
トップ
] [
編集
|
凍結
|
差分
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
Active
Rubyチートシート
成果物リスト
勉強会ログ
↑
アイデア
Webサービス案
Androidアプリ案
電子工作案
GreaseMonkey案
contribute
編集
↑
Recent
2024-07-04
HDDリスト
2023-11-12
自動車保険
2023-08-03
docker
2023-05-17
Rubyチートシート
2023-03-30
RAID5/トラブル20230324
2023-03-25
PC/misuzu
2023-03-24
PC
2023-03-23
PC/DESKTOP-7SL5J8R
2022-12-16
Linux
2022-11-09
Linux/ディスクイメージ取得
2021-05-23
CTF
2021-03-17
PC/misumi
2020-08-31
COMP
2020-03-28
PC/misumi/ubuntu
Windows 10
2018-06-04
Microsoft decode 2018 2日目
Microsoft decode 2018 1日目
2018-04-07
カメラ
2018-01-06
電力自由化
2017-12-21
CROSS×BEATS
B
I
U
D
H
[[]]
<br>
--
#contents * 逆アセンブル objdump -M intel -S -d
objdump -s -j .data
objdump -s -j .rodata
# .rdataの場合もある C++なら--demangleを追加するといい - [[radare2>http://poppycompass.hatenablog.jp/entry/2016/10/26/164034]] - [[binary.ninja>https://binary.ninja/]] - [[Hopper Disassembler>https://www.hopperapp.com/]] [[初学者向け x86/MacOSX 64bit アセンブリ>http://ylb.jp/Tech/x86_64ASM/x86_64_onMac.html]] ** 命令リファレンス - [[x86/x64 SIMD命令一覧表 (SSE〜AVX2)>http://www.officedaytime.com/tips/simd.html]] - [[The Intel Intrinsics Guide>https://software.intel.com/sites/landingpage/IntrinsicsGuide/]] * セクション一覧表示 readelf -S
** 呼び出し規約(x64) LinuxとWindowsで違うので注意。 - Linux -- 整数・ポインタ引数: RDI, RSI, RDX, RCX, R8, R9 -- 浮動小数点引数: XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7 -- 戻り値: RAX -- システムコールでは RCX の代わりに R10 を使用 -- レジスタだけでは引数の数が不足する場合はスタックを利用 -- [[Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録>http://th0x4c.github.com/blog/2013/04/10/gdb-calling-convention]] - Windows -- 第4引数まではrcx、rdx、r8、r9レジスタにセットされ、以降は4ワード(0x20バイト)空けてスタックにセットされることがわかる。 この4ワードはhome spaceと呼ばれ、レジスタの値の退避などに用いられる。 -- [[Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー>http://inaz2.hatenablog.com/entry/2015/07/26/175115]] -- [[レジスタの使用>https://msdn.microsoft.com/ja-jp/library/9z1stfyw.aspx]] スタックを片付けるのはどちらも呼び出し元(Caller) - [[x86 calling conventions - Wikipedia>https://en.wikipedia.org/wiki/X86_calling_conventions#List_of_x86_calling_conventions]] ** 呼び出し規約(ARM) r0〜r3レジスタに第1〜第4引数がセットされ、r0レジスタに戻り値がセットされる。 第5引数以降にはスタックが利用される。 http://inaz2.hatenablog.com/entry/2015/03/06/020239 メンバ関数の場合はthisが第一引数(r0)。関数内でr0を潰す場合はthisをr4に待避することが経験的に多い ** gdb ---( gdb-peda$ p/x $ebp-0x20 $2 = 0xffffdde0 gdb-peda$ p/x $rbp-0x20 $3 = 0x7fffffffdde0 gdb-peda$ x/1xg $rbp-0x20 0x7fffffffdde0: 0x0123456789abcdef ---) http://inaz2.hatenablog.com/entry/2014/05/03/044943 ** One-gadget RCE http://katc.hateblo.jp/entry/2016/10/28/124025 *バイナリ眺める xxd -g 1 *strings strings -tx binary これだとオフセットも出て便利 *MD5 echo -n "hoge" | md5sum "-n"を忘れると改行が入って値が変わるので注意。 *ASCIIデコード hex = "623762653833336661363363396234313135653762666464" puts [hex].pack("H*") [[CyberChef>https://gchq.github.io/CyberChef/#recipe=From_Hex(%27Auto%27)&input=NjIzNzYyNjUzODMzMzM2NjYxMzYzMzYzMzk2MjM0MzEzMTM1NjUzNzYyNjY2NDY0]]も便利。 *Rubyでソケット通信 https://github.com/nicklegr/seccon2014/blob/master/programming100/main.rb https://qiita.com/nicklegr/items/c85d4dac6f45492130c8#palindromes-pairs---coding-phase---ppc *RubyでMechanize http://qiita.com/nicklegr/items/881ea9edd48736b49a22#%E3%81%A6%E3%81%91%E3%81%84%E3%81%95%E3%82%93-for-%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA-misc-200 * SATソルバー - [[CTF/Toolkit/z3py - 電気通信大学MMA>https://wiki.mma.club.uec.ac.jp/CTF/Toolkit/z3py]] - [[Solving a simple crackme using Z3 - Aneesh Dogra’s Blog>https://anee.me/solving-a-simple-crackme-using-z3-68c55af7f7b1]] * 公開鍵暗号 https://www.slideshare.net/sonickun/rsa-n-ssmjp http://inaz2.hatenablog.com/entry/2016/01/09/032344 https://github.com/sonickun/cryptools https://github.com/Ganapati/RsaCtfTool https://qiita.com/kusano_k/items/9b74398f5bed2792d736#rsa-is-power *katagaitai CTF勉強会 [[よく使うASM命令ベスト100位に説明つけてみた - おなかすいたWiki!>http://wiki.onakasuita.org/pukiwiki/?%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86ASM%E5%91%BD%E4%BB%A4%E3%83%99%E3%82%B9%E3%83%88100%E4%BD%8D%E3%81%AB%E8%AA%AC%E6%98%8E%E3%81%A4%E3%81%91%E3%81%A6%E3%81%BF%E3%81%9F]] ---( ■環境セットアップ x64環境でx86バイナリを動かすパッケージ $ apt-get install gcc-multilib lib32z1 lib32ncurses5 lib32bz2-1.0 $ apt-get install libc6:i386 ELF解析用 $ apt-get install binutils Python,perl $ apt-get install python2.7 perl ROPガジェット探索用 $ wget https://github.com/downloads/0vercl0k/rp/rp-lin-x86 $ chmod +x rp-lin-x86; mv rp-lin-x86 /usr/local/bin その他 $ apt-get install socat nasm gdb-peda導入 $ apt-get install libncurses5-dev g++ python-dev texinfo $ cd /tmp $ wget http://ftp.gnu.org/gnu/gdb/gdb-7.9.tar.gz $ tar pxzf gdb-7.9.tar.gz $ cd gdb-7.9 $ ./configure --with-python=python2 && make && make install $ apt-get install git $ git clone https://github.com/longld/peda.git ~/peda $ echo "source ~/peda/peda.py" >> ~/.gdbinit ---) *常設サイト - [[ksnctf>http://ksnctf.sweetduet.info/]] - [[akictf>http://ctf.katsudon.org/]] - [[Advent Calendar CTF 2014>http://adctf2014.katsudon.org/]] - [[ESCTF>http://s01.elliptic-shiho.xyz/ctf/]] - [[Pwnable.kr>http://pwnable.kr/index.php?p=probs]] - [[ctf4u>http://ctf.katsudon.org/ctf4u/]] - [[CpawCTF - Main page>https://ctf.cpaw.site/]] - [[常設CTFまとめ - WTF!?>http://nanuyokakinu.hatenablog.jp/entry/2015/08/24/213158]] * 過去問 - [[pwn challenges list>https://pastebin.com/uyifxgPu]] - [[Crypto Challenges List(2017)>https://pastebin.com/uttU8Pn3]] *ツール - [[zardus/ctf-tools>https://github.com/zardus/ctf-tools]] - Pwntools https://qiita.com/8ayac/items/12a3523394080e56ad5a * .NET - [[JustDecompile .NET Assembly Decompiler & Browser - Telerik>http://www.telerik.com/products/decompiler.aspx]] - [[Assembly Diff Tool for .NET - JustAssembly>http://www.telerik.com/justassembly]] - [[dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains>https://www.jetbrains.com/decompiler/]] - [[0xd4d/de4dot: .NET deobfuscator and unpacker.>https://github.com/0xd4d/de4dot]] -- [[String decryption with de4dot | Life In Hex>https://lifeinhex.com/string-decryption-with-de4dot/]] - https://github.com/0xd4d/dnSpy - ILSpy -- デコンパイルに加え、ILのディスアセンブルもセットで見るといい。async/awaitなどはデコンパイル結果に出てこないことがある - [[The truth about String Protection by Obfuscators>http://www.remotesoft.com/salamander/stringencrypt/]] * Android - デコンパイル・再パッケージ -- APK-Multi-Tool -- [[Cracking Android App Binaries>http://resources.infosecinstitute.com/android-hacking-security-part-17-cracking-android-app-binaries/]] -- [[skylot/jadx: Dex to Java decompiler>https://github.com/skylot/jadx]] - エミュレータ -- BlueStacks * Stegano - stegsolve.jar - [[ステガノグラフィーの解析について>https://digitaltravesia.jp/usamimihurricane/webhelp/_RESOURCE/MenuItem/another/anotherAboutSteganography.html]] *資料 [[gdbの使い方のメモ - ももいろテクノロジー>http://inaz2.hatenablog.com/entry/2014/05/03/044943]] [[ネズミ本のpwn編をやってみた。 - レガシーガジェット研究所>https://k-onishi.hatenablog.jp/entry/2018/11/11/210134]] [[書式指定文字列攻撃 - kusano_kの日記>http://d.hatena.ne.jp/kusano_k/20140302/1393781714]] [[IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:フォーマット文字列攻撃対策>http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c906.html]] [[Assembly - System Calls>http://www.tutorialspoint.com/assembly_programming/assembly_system_calls.htm]] [[Linux x86用のシェルコードを書いてみる - ももいろテクノロジー>http://inaz2.hatenablog.com/entry/2014/03/13/013056]] [[x86 alphanumeric shellcode stagerを書いてみる - ももいろテクノロジー>http://inaz2.hatenablog.com/entry/2014/07/12/000007]] [[Note of Exploiting - Experiment - Port-Bindig Shellcode>http://noe.ninja-web.net/ex/ex_portbindingshell-01.html]] [[System Call Table>http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html]] *シェルコード [[shell-storm | Shellcodes Database>http://shell-storm.org/shellcode/]] [[stagger that reads second stage shellcode (127 bytes maximum) from stdin - 14 bytes>http://shell-storm.org/shellcode/files/shellcode-824.php]] [[Socket Re-use Combo for linux x86 systems by ZadYree -- 50 bytes>http://shell-storm.org/shellcode/files/shellcode-881.php]]
タイムスタンプを更新
テキスト整形のルールを表示する
Last-modified: 2021-05-23(日) 01:05:38