Shao‧Lin
2008年4月2日 星期三
[+/-] : 增設配備-冰淇淋機
2008/03/31,系上多了一台冰淇淋機。
機器一到,周邊的配備都會不知不覺的出現,材料也會一應俱全,當然不相干的東西也會啵啵啵啵的跑出來,這就是我認識的熱血的大家阿!
接著,就讓我們來在學校做做冰淇淋吧!
準備材料(份量):
蛋(憑感覺)
糖(憑感覺)
牛奶(憑感覺)
鮮奶油(憑感覺)
香草粉(憑感覺XD)
真是隨性的冰淇淋~反正好玩成分比較大
這是第一次試做~大家還在黑暗時代,用打蛋器打蛋,可是今天第二次試做,已經有電動打蛋機了!!雷雷GJ!
感覺很好吃耶~
這竟然是為一一張接近成品照,還沒冰好,而且之前還拿杓子在裡面喇~阿阿阿!反正下次一定還會做很多冰淇淋的,下次再補個照片!
最後晚餐還是在系上煮,整天我都沒有離開聖言樓!義大利麵加上巧達蛤粒湯,噢!這就是我喜歡的聖言生活!真的很智障~
那個義大利麵有沒有看起來很好吃阿^^
2008年3月30日 星期日
[+/-] : Wireshark 教學
既然寫了就分享在網路上面好了,不要浪費,不過請注意這邊的CC授權..謝囉。
這篇內容除了介紹wireshark的基本使用,還介紹了三個部分
第一部分是看看大家平常上的BBS或是網頁有多危險,我們如何輕易知道別人的密碼。
第二部分是觀察一下HTTP的protocol,這好像沒什麼 。
第三部分利用了roomi這個網站來看看,似乎可以輕易洗錢???我也不知道...囧>
有興趣就點進去看看吧...文章實在有點長編輯起來真麻煩。
另外,裡面對封包的定義不是很完善,如果造成混淆請看網路相關書籍囉!
前言:
網路故障了?沒有用網路時網路燈號卻一直閃爍不停?新的網路通訊協定夠不夠完善?種種大大小小的問題充斥在網路世界中,為了解決各種問題,我們常常需要先對網路中的資料進行擷取和分析,以瞭解問題的癥結點並擬對策。Wireshark就是一種網路分析工具,它能夠擷取網路封包,並盡可能顯示出最為詳細的網路封包資料。本文將對Wireshark做一些基本的使用介紹。
Wireshark簡介:
Wireshark的前身叫做Ethereal(2006.06因為商標問題改名),是一開放原始碼軟體,使用者可以免費從官方網站(http://www.wireshark.org/)下載使用。Wireshark支援了多種作業系統,在Windows、UNIX、MAC…etc下都有相對應的版本。藉由此軟體我們可以抓取資料封包,進一步分析封包內的摘要及詳細資訊。一般常用在網路故障排除、監聽異常封包、軟體封包問題檢測等地方。Wireshark的方便強大之處,在於其支援的Protocol多且完整,更因為開放原始碼的關係,更新Protocol相當迅速,不同封包擷取軟體所產生的檔案亦可在這套軟體中讀取檢視。此外,在介面使用上,Wireshark圖形化的介面相當容易上手,豐富的過濾語言,可以輕鬆判別出封包的種類,是一套整合度完整的軟體。
安裝Wireshark:
首先我們必須到官方網頁來下載安裝程式,位置是http://www.wireshark.org/,官方網頁中有不同的作業系統可供選擇,也提供了Portable的版本,在這邊我們將以Windows Installer (.exe) Package來做示範。
安裝的過程相當簡單,跟一般軟體的流程一樣,接受授權、客製化、安裝。現階段我們使用預設的設定即可。
比較需要注意的是在安裝的過程中會要我們安裝WinPcap(Windows Packet Capture),如圖所示。WinPcap 是 Windows 版本的 lippcap 函式庫,Wireshark使用了這個函式庫去抓取網路上的封包,它含有支援抓取網路上封包的驅動程式,所以我們必須要安裝它,若電腦本身已經有安裝WinPcap,建議還是更新到最新的版本。
按下Install開始安裝,若想要瞭解更多關於WinPcap的資訊,點選『What is WinPcap?』的按鈕即可。
在一連串的Next過後,Wireshark安裝完畢如上圖。接下來我們藉由三個小步驟來介紹Wireshark的功能。
步驟1:明碼封包的截取與觀察
目的:透過基本的封包擷取,瞭解Wireshark的使用流程。從實驗中我們必須要知道sniffer的運作原理,習得呈現內容過濾的技巧,並利用stream彙整的功能找到需要的資訊。
流程:
當安裝完畢,點擊開啟Wireshark,看到的程式介面如下。
接著我們想要開始抓取網路的封包,請點選主選單中的Capture → Interfaces會看到類似以下的畫面,此畫面會列出電腦裡所有的網路卡資訊。選擇想要觀察的網路卡,按下Start就開始擷取封包了。[Tips: 進入這個畫面,Wireshark就會開始監測每張網路卡上的封包流動數目,若真的不確定要選哪張網路卡,選擇packets/s數高的,通常會選中,這是比較懶人的作法啦!]
開始監測之後,畫面會一直動態產生所接收到的封包。你可能會發現很多封包的Source和Destination都不是自己,這是因為我們目前所使用的區域網路大部分為乙太網路,係採用廣播為技術基礎,所以在區域網路中我們很容易可以透過sniffer軟體(本文介紹的Wireshark即是)看到別人的封包,甚至知道別人的隱私內容,本實驗就是要強調明碼的危險性。
明碼傳輸的protocol相當多,telnet、FTP、HTTP等常用協定皆在這個範疇裡面,國人熱愛的BBS(Bulletin Board System)就是使用telnet協定運作,透過sniffer的監聽我們很容易知道別人的帳號密碼。
我們拿BBS來做這次的實驗,首先連接到一個BBS站台,以輔大資工謠言報為例,在命令提示字元內鍵入telnet bbs.rumor.tw。
注意:此時Wireshark的還是在Capture狀態。
進入登入介面後,輸入帳號密碼登入。
接下來我們停止Wireshark的擷取動作,執行主選單的Capture → Stop或是直接點選Stop the running live capture圖示。
停止之後介面上的封包將不再增加,不過所擷取到的資料仍舊太多太雜,這時候可以利用Display Filter功能過濾呈現的內容,如下圖點擊Expression挑選過濾語法。
因為我們只是要篩選出Telnet協定的流量,找到TELNET字樣如下,直接按OK。
其實篩選的功能很強大,遵循著語法:[通訊協定][運算元][數值]就可以過濾出很多有用的資訊。
通訊協定這部分在前面有提到,Wireshark幾乎支援目前所有的協定,所以不太會有解析不出來的情況發生。
可以用的運算元就是上圖Relation那個區塊,亦可以用縮寫來替代。如下表:
English C-like Description and example
eq == Equal ex: ip.src==192.168.2.89
ne != Not equal ex: ip.src!= 192.168.2.89
gt > Greater than ex: frame.len > 10
lt <>= Greater than or equal to ex: frame.len ge 0x100
le <= Less than or equal to ex: frame.len <= 0x20 舉幾個例子: 只顯示 IP Address 為 192.168.2.89 語法為ip.addr eq 192.168.2.89 只顯示 IP Address 為 192.168.2.88 且 port 為 23 語法為(ip.addr eq 192.168.2.88) and (tcp.port eq 23) 只顯示通訊協定為 ARP 或 UDP 語法為arp or tcp 詳細的描述可以參考官方wiki:http://wiki.wireshark.org/DisplayFilters
語法確定後點選Apply就過濾出所有包含TELNET協定的封包。介面的中央區塊代表的是封包裡面的內容,關於這個區塊代表的意義我們實驗2會再談到,現階段我們要點開最下面的+號如圖紅色部分,觀看屬於應用層的內容。
經過觀察,發現一些連續的sent封包,內容依序放著s、h、a、o、l、i、n,這不正是我們先前登入的帳號?可是這樣一個封包一個封包看相當沒有效率,沒關係,Wireshark可以節錄整理串流訊息,在相關的封包上面按右鍵找到Follow TCP Stream點選,Wireshark會幫你彙整該stream的內容。
彙整出來如下圖,紅色的部分為我們送出的DATA,藍色的部分是我們收到的DATA。
為了更去蕪存菁,我們再篩選出只有我們送出的DATA,點選下面紅色部分進行篩選。
最後的結果如下,內容中『....』代表的是指令,沒有辦法顯現出來。可以看到我們曾經發出shaolin,然後按下換行,繼續輸入demo1換行,從這邊我們確切的抓到了帳號跟密碼資訊ID:shaolin Password:demo1。除此之外,我們更可以進一步知道別人在看什麼文章,或是得知別人私人信件的內容,隱私將毫無保障。
[註:為了避免被有心人監測到重要資料,有SSH、SSL、HTTPS等加密協定可用就盡量使用,至少別人監聽到的內容是加密過的。]
步驟2:HTTP Protocol的觀察
目的:藉由HTTP Protocol的觀察,練習篩選所要的資訊,並能夠清楚的知道TCP/IP實際的運作模式
流程:這次要看的是自己的HTTP封包。在上一個實驗中我們用到Display Filter,這個實驗也可以透過同樣的方式組合過濾,不過我們來嘗試另一種過濾方式Capture Filter。
同樣的進入選擇網路卡的地方。Capture → Interfaces點選Options。
進入了選項視窗後,有各種參數可以設定,比較主要的功能是在Capture這個區塊,其中:
Interface代表你要使用的網路卡。
IP address代表該網路卡的網路位置。
Buffer size代表抓取網路封包時所用的緩衝區大小。
Capture packets in promiscuous mode代表抓取封包的模式,如果勾選會抓取整個LAN的封包;如果不勾選,則只會抓取從你的電腦進或出的封包。
Limit each packet to n bytes用來指定對於每個封包要抓取的資料大小。
Capture Filter用來指定抓取時的篩選規則。
跟我們相關的功能如下圖紅色的部分,『Capture packets in promiscuous mode』、『Capture Filter』這兩部分,因為我們只要觀察自己的封包,所以『Capture packets in promiscuous mode』不要打勾,另外我們想要的是http相關資訊,所以在剛開始就設定篩選讀取,請點選『Capture Filter』的按鈕開始進行篩選設定。
Capture Filter是使用 libpcap filter 語言,詳細的語法可以參考tcpdump的網頁(http://www.tcpdump.org/tcpdump_man.html)
這裡舉幾個簡單的例子:
只抓取某一個 host(例如 IP 是 10.0.0.5) 的 telnet 封包
語法為:tcp port 23 and host 10.0.0.5
抓取 telnet 的封包但不要抓到從某一 host 的(例如 IP 是 10.0.0.5)
語法為:tcp port 23 and not host 10.0.0.5
更詳細的描述可以參考官方wiki:http://wiki.wireshark.org/CaptureFilters
在這裡我們沒有要用到這麼複雜,直接用Wireshark已經建立好的常用功能HTTP TCP port(80)即可,OK之後點選Start擷取封包
先以連接到Google首頁為例,來看看讀取一個網頁到底中間做了什麼事情?
回到Wireshark主程式,看到已經有很多封包被擷取出來了。
見下圖,右上角紅色的框框,這就是TCP在做三向交握建立連線,有興趣的可以自行察看封包並比對網路相關書籍,這裡就不多著墨了。
接下來看到下面的紅色框框,這是編號四號的封包內容,也就是當三向交握結束,client對server做出request,封包的內容層層分明,讓我們先來複習一下TCP/IP的四層架構:
應用層 (OSI 5 到 7層) | 例如HTTP、FTP、DNS(如BGP和RIP這樣的路由協定,儘管由於各種各樣的原因它們分別運行在TCP和UDP上,仍然可以將它們看作網路層的一部分) |
傳輸層 (OSI 4 和 5層) | 例如TCP、UDP、RTP、SCTP(如OSPF這樣的路由協定,儘管運行在IP上也可以看作是網路層的一部分) |
網路層 (OSI 3層) | 對於TCP/IP來說這是網際網路協定(IP)(如ICMP和IGMP這樣的必須協定儘管運行在IP上,也仍然可以看作是網路互連層的一部分;ARP不運行在IP上) |
連結層 (OSI 1和2層) | 例如Ethernet、Wi-Fi、MPLS等。 |
以下圖為例,第一條內容是屬於連結層(frame);
第二條內容為MAC address,隸屬於網路層;
第三條內容也是網路層(IP);第四條TCP到了傳輸層;
最後一條HTTP為應用層。
藉由封包的分析,我們可以更清楚瞭解每一層實際運作的情形。
最後,我們開始來分析一下這些HTTP protocol,截取的內容如下,分別的動作是client請求提供服務;server回應OK並傳送網頁。透過這些header,可以從中去思考分析這些資訊分別是做什麼用的,相關的資訊請參考HTTP/1.1: Header Field Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)
GET / HTTP/1.1
Host: www.google.com.tw
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-tw,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Big5,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PREF=ID=e60ffeff3ffd6915:TM=1205430311:LM=1205430311:S=J9rJbq4UpUnfR9hl
Cache-Control: max-age=0
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Content-Encoding: gzip
Server: gws
Content-Length: 3034
Date: Thu, 13 Mar 2008 01:37:33 GMT
(底下HTML code省略)
步驟3:實戰練習
目的:找一個網站去瞭解其運作模式,藉此分析該網站的安全度、可靠度等細節。
流程:這次實驗挑選的對象是去年新成立的社交網站,該網站提供blog、相簿,並提供房間讓你布置,網站內的功能也持續推陳出新,是一個非常有趣新奇的網站,網址為:http://www.roomi.com.tw/。
因為布置房間需要金幣,我們比較有興趣的可能是該網站賺取金幣的模式如何運作,所以開啟Wireshark開始記錄。
首先進入打工中心,隨便找個零工打打看。
打工的成果為111金幣,開始察看封包。
利用前面幾個實驗所用的方法,我們在列表中發現了一個關鍵的封包,負責回傳遊戲的分數。
GET
/obj/swf/minigame/php/index.php?type=honeybee&PA=save&score=111
HTTP/1.1Host: http://www.roomi.com.tw/User-Agent:
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.11) Gecko/20071127
Firefox/2.0.0.11Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5Accept-Language:
zh-tw,en-us;q=0.7,en;q=0.3Accept-Encoding: gzip,deflateAccept-Charset:
Big5,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-aliveCookie:
PHPSESSID=0c8a8ebd9ffd07114acb6a866417c99b;
__utma=122646152.2093039428.1205467293.1205467293.1205467293.1;
__utmb=122646152; __utmc=122646152;
__utmz=122646152.1205467293.1.1.utmccn=(organic)utmcsr=googleutmctr=roomiutmcmd=organic
發現了嗎?
前陣子roomi server端還有防一些,現在好像什麼都沒有防。
寄信去沒人回~
不只是錢、好像很多東西都可以改來改去。
Reference:
The Wireshark Wiki
http://wiki.wireshark.org/
海洋大學電子商務跨領域學程網
http://sirius.cs.ntou.edu.tw/EC/ecsecurity_labs/ecsecurity_labs_09.php
教學 - Ethereal 抓網路封包+封包內容分析+看明碼連線內容
http://netgames123.blogspot.com/2007/10/ethereal.html
wikipedia
http://zh.wikipedia.org/wiki/Ethereal
訂閱:
文章 (Atom)