智能合約 CTF 環境準備

這邊只是介紹一下會需要用到的工具,並不會講到區塊練的內容。 錢包 首先是錢包,這邊用METAMASK,一個瀏覽器的插件 然後新增一個錢包 CTF網站 可以試著直接打開這次要用的 CTF 站,ethernaut.zeppelin打開 console 會發現他一直在提醒你要切到正確的網路。 切換到測試網路之後就可以去 faucet.metamask.io 拿一些 ETH,大概五枚就可以了。 現在可以去 zeppelin 按 play now! 了 這個網站會有一個主要的 contract 叫做 ethernaut ,每關還有不同的 contract 會在按下 Get new instance 後拿到,就叫做 contract ,通常要解開關卡就是 pwm 掉這個 contract 後再用 Submit instance 把他送回去就是解開每個關卡的流程。 那如果沒解開就送回去就會出現 那這個第0題,就普通的跟著題目提示做就可以了。 等他確認 transaction 後再 contract.getCleared() 就會發現它變成 true 了,接下來用 Submit instance 送回去就可以了。 工具 remix.ethereum,可以線上編譯測試 Solidity Read more about 智能合約 CTF 環境準備[…]

Cisco 指令 Part.1

Basic knowledge Autocomplete Autocomplete: <TAB> List Available Commands: ? Interface Name and abbreviation FastEthernet0/1 or Fa0/1 GigabitEthernet1/0/2 or Gi1/0/2 TenGigabitEthernet1/0/3 or Te1/0/3​ Port-channel1 or Po1 Vlan543 or Vl543​ Command Line Modes User Mode Privileged Mode Configuration Mode Show Show show running-config : running configuration show interfaces : detail of all interfaces show interfaces Fa0/1 : Read more about Cisco 指令 Part.1[…]

解決 lib*.so No such file

過程 今天裝了 Cisco Packet Tracer Linux 版,裝完執行跳一個 Starting Packet Tracer 7.2.1就消失了…。ummm… 去翻了一下執行 packettracer 到底做了什麼事 看起來就是很簡單的執行 ./PacketTracer7 ,跑去直接執行看看。error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory 少了個 library 阿,找了一下發現這個從 ubuntu 16.10 後就沒有再提供了。到 ubuntu packages 找到之前提供的 library。載下 libpng12-0_1.2.54-1ubuntu1.1_amd64.deb後用 ar x *.deb 解壓縮,複製 libpng12.so.0 到 /Cisco_Packet_Tracer/bin 就成功了。 結論 算是學到了 LD_LIBRARY_PATH這個用法。

Network tools

mtr ip netstat ifconfig ping nmtui tracepath route IP routing table dig arp 靜態指定 刪除動態指定 增加arp table ARP spoof step install Enable IP forwarding Run ARP spoofing or dump tcpdump expression 請看 man pcap-filter wireshark iPerf 測兩點間的頻寬download nmap ipcalc Cisco Packet Tracer udhcpc dhcp client from busybox files /etc/network/interfaces /etc/resolv.conf firewall RouterOS pfSense

用 ArduinoISP 燒錄 AVR 晶片

安裝 編譯 先寫一個簡單LED閃爍的程式 編譯個別的檔案 連結成執行檔 燒錄 這次以 Arduino uno 當作燒錄器,用 ISP 的方式燒錄一個獨立的 Atmega328P 上傳 ArduinoISP 到 uno 上 接線 再來就是用 avr-objcopy把 elf 檔轉成 hex 使用 avrdude 上傳,stk500v1 是指 ArduinoISP(其實不是這樣說,大家自己查吧) Makefile 最後我寫了一個簡易的 Makefile,有興趣的人可以拿去用 注意事項 根據 AVR Microcontroller Hardware Design Considerations (AN2591) 第三章 Connection of RESET Pin on AVR Devices 的內容,最好把你的 RESET Pin 加上一些外部電路如下圖,但這會導致一些功能不能用,關於詳細內容還是請大家自己去看文章內容吧 Reference stackoverflow: avr-gcc Read more about 用 ArduinoISP 燒錄 AVR 晶片[…]

Docker part.1

reference Docker 一日初中階學習工作坊 共筆內容 about install quick usage 映像檔(Image) 唯讀的模版, 可用來建立container 容器(Container) 可以看做是一個簡易版的 Linux 環境映像檔是唯讀的,容器在啟動的時候建立一層可寫層作為最上層。 倉庫(Repository) Docker 倉庫的概念跟 Git 類似當使用者建立了自己的映像檔之後就可以使用 push 命令將它上傳到公有或者私有倉庫,這樣下次在另外一台機器上使用這個映像檔時候,只需要從倉庫上 pull 下來就可以了。每個倉庫中包含了多個映像檔,每個映像檔有不同的 標籤(tag) 倉庫註冊伺服器(Registry)可以理解為 GitHub 這樣的託管服務倉庫註冊伺服器上往往存放著多個倉庫 Image 取得 Image 從註冊服務器 registry.hub.docker.com 中的 ubuntu 倉庫來下載標記為 12.04 的映像檔 建立一個容器 執行bash 列出 Image REPOSITORY來自哪個 repository EX:docker.io/httpd TAGtag(ry) EX:14.04 or latest IMAGE IDimage的唯一ID CREATED VIRTUAL SIZE 搜尋 Image 建立 Image Container 新建並啟動 輸出一個 “Hello World”,之後終止容器 -t 選項讓Docker分配一個虛擬終端(pseudo-tty)並綁定到容器的標準輸入上-i 則讓容器的標準輸入保持打開。 當利用 docker run 來建立容器時,Docker 在後臺執行的標準操作包括: 檢查本地是否存在指定的映像檔,不存在就從公有倉庫下載 Read more about Docker part.1[…]

Storage & Filesystem tools

把hackmd上的筆記搬過來 tools df lsblk lshw blkid parted modification tools fdisk e2fsck & resize2fs check a Linux ext2/ext3/ext4 file system resize ext2/ext3/ext4 file system filesystem mke2fs create an ext2, ext3, or ext4 filesystem lvm physical volume volume groups logical volume mount 掛載 mount umount edit partition windows: AOMEI Partition Assistantall: gparted

用 pwntools 送出 EOT

https://github.com/Gallopsled/pwntools/issues/985 根據這個issue,要做到我們按Ctrl-D相同的效果,就要把process設成下面這樣 r = process(“./a.out”, stdin=process.PTY, raw=False)r.send(chr(tty.CEOF)) // 傳送EOF 但要注意,改成這樣以後會有很多特殊字元都不能直接傳送,以下的list就是該fd的特殊字元 但這個方法似乎只有用process的時候可以通,而要怎麼通過socket傳送,目前我還沒查到lol