Google CTF安勝首秀!逆向工程writeup看這裡!

2020-12-11 安勝

CTF(Capture The Flag)中文一般譯作奪旗賽,在網絡安全領域中指的是網絡安全技術人員之間進行技術競技的一種比賽形式。CTF的大致流程是:參賽團隊之間通過進行攻防對抗、程序分析等形式,率先從主辦方給出的比賽環境中得到一串具有一定格式的字符串或其他內容,並將其提交給主辦方,從而奪得分數。

Google CTF 2018是由Google舉辦的全球性比賽,全球有2000多支隊伍參賽,歷時2天,最後只有220支隊伍上榜。

安勝ISEC團隊首次參加Google CTF 大賽,雖在總分榜55名,還有待提升,但可喜的是,安勝在逆向工程解題部分以優異成績領先同行,充分彰顯安勝在逆向工程領域的國際水平!

逆向工程解題榜,紅框為安勝解題情況

Reverse即逆向工程,題目涉及到軟體逆向、破解技術等,要求有較強的反彙編、反編譯紮實功底,主要考查參賽選手的逆向分析能力。安勝ISEC團隊在逆向工程解題中奪得佳績,這究竟是怎麼做到的呢?別急,我們的參賽小哥哥已為大家整理出了writeup解題思路!

解題攻略!逆向工程writeup分享

題一

SHALL WE PLAY A GAME?

Win the game 1,000,000 times to get the flag.

題目給出的是一個apk文件。

根據題目信息, 可以看出this.m()就是顯示flag,

N._是native函數(見library.so), 其功能是根據提供的參數調用指定的類的指定方法,

其參數格式為

將相關調用提取出來可以得到整體邏輯

題二

KEYGENME

I bet you can't reverse this algorithm!

題目給出的是一個elf文件。

異或解密0x6001BC處大小為0x44A8的代碼

PTRACE_DETACH

fork進程,

子進程負責讀取name(長度為5),sn(長度為32), vm中解密elf(記為embedded)到memfd並執行(argv[0]=name,argv[1]=sn,envp=NULL)

父進程負責處理子進程的int3異常, vm中讀取patch代碼並寫入子進程

此處可dump寫入memfd中的elf

此處開始是patch數據, 以code_offset為0結尾

embedded功能, 判斷md4(name) == simple_transform(sn)

其中影響md4結果的變量有: umask(0), getenv("PWD")

md4的初始化常量: (0x5a827999^umask(0)), (0x6ed9eba1^umask(0))

子進程中umask(0)=0xFFFFFFFF

子進程中getenv("PWD")=NULL

題三

APT42 - PART 1

We have detected weird traffic on our network and we cannot figure out the source.

Forensics didn't find anything besides maybe the NTP service binaries which have been modified recently on some hosts.

We ran them through the sandboxes and they seem to work as intended, can you do a quick manual pass?

題目給出的是一個elf文件。

x_fake_sleep(主要兩個功能, 1. 命令執行, 2. 中轉)

檢測/etc/krb5.conf中是否包含字符串domain.google.com

解密伺服器地址, mlwr-part1.ctfcompetition.com:4242

連接伺服器

發送"hello", 接收指令, 根據指令執行對應的功能

收發數據, 數據包格式為

指令列表

中轉, 可接受的指令有"hello", "part1 flag"

根據格式發送命令"part1 flag"即可獲取flag

相關焦點

  • CTF從入門到提升(三)
    首推!!!idf實驗室:題目非常基礎,只1個點:http://ctf.idf.cn有線下決賽題目復現:www.ichunqiu.com 題庫網站,歷年題,練習場,比較難:oj.xctf.org.cn/xctf 非常入門的國外ctf題庫,很多國內都是從這裡刷題成長起來的:國外,入門,有移動安全:canyouhack.itA方向 密碼,逆向酷炫遊戲代:microcorruption.com/login A方向,簡潔
  • Google CTF justintime
    /v8/v8.git/回退到相應的版本後,進行patch(題目下發的patch文件)patch 這裡遇到了一個問題,就是直接使用腳本patch不進去,所以手動將腳本中的代碼貼到相應的文件中方法 2另外還在一個師傅的github上找到了編譯好的debug 和 release版的v8 , 可以直接下載https://github.com/JeremyFetiveau/pwn-just-in-time-exploit
  • CTF入門指南 | 內附教程分享
    >Web密碼學Pwn 程序的邏輯分析,漏洞利用windows、linux、小型機等Misc 雜項,隱寫,數據還原,腦洞、社會工程、與信息安全相關的大數據reverse 逆向Windows、Linux類ppc 編程類的國內外著名比賽國外:DEFCON資格賽國內:xctf聯賽 0ctf
  • CTF工具+資源 | 插個眼
    :https://github.com/apsdehal/awesome-ctfAnarchoTechNYC:https://github.com/AnarchoTechNYC/meta/wiki/InfoSec#hacking-challengeszardus:
  • CTF小白入門學習指南
    最後聊一下關於CTF主要考驗的那幾個方面的技能:逆向工程:這是CTF試題中的一個大的考點,學習建議的話,建議深度學習一下C語言和需要彙編,彙編的話不要所有架構都學習建議專學一個架構x86,x86_64或是ARM。
  • DC0531CTF在線比拼,詳細Writeup看這裡!
    這題存在git洩露,先把原始碼扒下來:圖3這裡只解釋代碼的關鍵部分這裡要注意下面代碼中16、17行,$this->info['status'] - 1為99,相應$bullet = $this->info['bullet'][100-99];即從$this->info['bullet'][1]開始,漏掉了$this->info['bullet'][0],所以我們最後獲取的內容在開頭要加上一個字符。
  • 安勝公司交付首臺空客A320全動D級飛行模擬機
    安勝公司交付首臺空客A320全動D級飛行模擬機 2020-01-15 16:20 來源:澎湃新聞·澎湃號·政務
  • CTF題記——計劃第一周
    m0re查到ctf表和geek表都有可能,先看geek表?username=admin&password=1' ununionion seselectlect 1,2,group_concat(flag)frfromom(ctf.Flag)#
  • De1CTF2020-WriteUp上(Web、Misc、Pwn)
    Misc雜燴解題思路流量包裡有幾張圖片要分離出唯一的一個png文件找到一個雲盤地址https://drive.google.com偶然看到得知一種private位隱寫參考資料https://www.cnpanda.net/ctf/342.html嘗試之後獲取到一些數據import reimport binasciin = 0x28a3result = ''file = open('bgm.mp3
  • 「魔方首秀·旅動遷安」暨惠遷感恩體驗月正式啟動!
    「魔方首秀·旅動遷安」暨惠遷感恩體驗月正式啟動!澎湃新聞·澎湃號·政務 2020年9月10日上午,「魔方首秀
  • Google Capture The Flag 2019 (Quals) WP
    題目地址:https://bnv.web.ctfcompetition.com題目解答:burp抓包發現傳輸json數據POST /api/search HTTP/1.1Host: bnv.web.ctfcompetition.comUser-Agent
  • 勝安航空多條航線轉至酷航,勝安將最終併入新航
    今年5月,新加坡航空宣布旗下全資區域子公司勝安航空將斥巨資對其客艙產品進行升級,以增強新加坡航空集團全服務航線網絡中產品與服務的一致性,並作為多年發展計劃的一部分,最終合併入新加坡航空。11月22日,新航又有新動作:在勝安航空併入新加坡航空公司前,新航集團旗下低成本子公司酷航將於未來兩年內逐步運營勝安航空的多條航線。同時,酷航部分現有航線也將調整至新加坡航空和勝安航空的航線網絡內。已預訂涉及調整的航班的乘客可以選擇轉乘調整後的酷航、新航或勝安航空航班,或選擇申請退款。
  • Java程式設計師開發必備 MyBatis高級應用之逆向工程自動生成SQL語句
    下圖為逆向工程依賴的jar包mybatis-generator-core-1.3.6.jar為逆向工程的核心包mysql-connector-java-8.0.9-rc.jar為連接資料庫所需驅動mybatis-3.4.6.jar為mybatis框架依賴的jar包,到這裡就足夠了,
  • TCTF/0CTF2018 XSS Writeup
    先分享一個非常秀的非預期解wp。http://www.wupco.cn/?p=4408&from=timeline在分享一個寫的比較詳細的正解https://gist.github.com/paul-axe/869919d4f2ea84dea4bf57e48dda82ed下面順著思路一起來看看這題。
  • 機器人教育中的逆向工程教學模式構建
    為此,本文將逆向工程方法引入中小學機器人教育,試圖探索適用於中小學機器人教育的逆向工程教學模式分類體系和操作模式。一個是Otto等(1998)提出的逆向工程與再設計「十步法」,其在教育和工業領域均產生了非常重要的影響。其中,逆向工程的實施過程共包含三個階段,分別是逆向工程階段、建模與分析階段、再設計階段;「十步法」則針對其中的再設計階段的操作步驟進行了詳細的描述。
  • CTF|玩轉RSA加密算法(一)
    3.1 First Blood 已知p、q、e求d題目連結 : http://www.shiyanbar.com/ctf/1828題目:在一次/e)求d的腳本,也可以又rsatool.py這個腳本來實現,需要安裝gmpy這個模塊,連結如下連結:http://pan.baidu.com/s/1bCDyoQ 密碼:09gj3.2 Double Kill  已知p、q、e和密文 求明文題目連結 : http://www.shiyanbar.com/ctf
  • 兩步完成Generator逆向工程,自動生成MVC代碼
    2 創建資料庫及表新建一個數據,並創建一張表,通過逆向工程生成這張表對應的MVC三層代碼,創建數據表如下圖。3 第二步、通過Generator進行逆向工程設置逆向工程生成的包名,通過逆向主類可以設置作者名稱,如:人人都是程式設計師;設置database資料庫名;設置需要逆向表名,如user。
  • 看雪 2016 CTF 第二十五題 點評和解析
    '的256哈希值高半部分比對),而 cmpkey2 = cckey[4] 直接與 'cnbragon@pediyctf2016' 的 256 哈希值累積比對。於是通過得到 'cnbragon@pediyctf2016' 的 256 哈希值,並處理得到累積和對高半部分進行 camellia 加密即可得到 cckey = camellia_encrypt(cmpkey1)+cmpkey2。
  • 康斯雅 鍾柏昌:機器人教育中的逆向工程教學模式構建
    為此,本文將逆向工程方法引入中小學機器人教育,試圖探索適用於中小學機器人教育的逆向工程教學模式分類體系和操作模式。二、逆向工程法教育應用研究綜述1.逆向工程教學模式的構建研究逆向工程最早出現於二戰時期,在飛機、坦克以及其他軍事裝備的開發中扮演著重要角色,而將逆向工程應用於教育的研究出現於二十世紀末。
  • 科創板首秀 上演資本市場大戲
    本報記者趙小玲上海現場攝影報導7月22日,備受矚目的科創板迎來開市首秀,25家上市公司獲得了各路資金的高度關注,盤中各公司演繹了大幅高開、迅速跳水、大幅波動、連續臨停等精彩大戲,金融投資報記者梳理了科創板首批25家上市公司的「首秀成績單」。