PIXNET Logo登入

Elegance

跳到主文

My life,my experience...

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 15 週一 201419:53
  • cp指令預設行為會蓋掉原本檔案..

cp指令在Linux 下的預設行為會蓋掉目的地的同檔名檔案
假設你在家目錄下有一個自己寫的作業檔 homework.txt
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(103)

  • 個人分類:
▲top
  • 5月 01 週四 201418:26
  • 利用Wireshark解密SSL封包

http://wiki.wireshark.org/SSL
http://wirewatcher.wordpress.com/2010/07/20/decrypting-ssl-traffic-with-wireshark-and-ways-to-prevent-it/
去年在打金盾獎決賽時遇到的一個題目,給你一個內含SSL封包的pcap檔,要求你來解密.
Wireshark這個功能聽起來好像很炫,很神奇.
但如果你了解SSL加密的情況時,就會知道你還是需要一把ssl server的private key才可以.
因為在PKI架構下,雖然packet本身的加密是使用client的對稱式key來加密,
但這把key一開產生出來時會用server的public key來加密,
傳給server, 告訴server說之後的通訊都用這把對稱式key來加解密.
也因此要解出這把對稱式key,你也就要有server的private key才行.
(或是直接從browser得知自己client產生的對稱式key來解密SSL封包,
Firefox外掛的httpfox應該就是用這種方式,
burpsuite套件是使用類似MITM的手法來監視,修改封包)
Wireshark官網提供了一組 example檔讓你來練習,這個example檔是用
印度蛇油的 CA key來加密的.
聽名稱就知道這個是騙人的東西,所以它一般也附在各Linux distribution裡面.
補充說明:
有些SSL server和browser支援更安全的協定ECDHE(橢圓曲線的DH金鑰交換演算法)
它最主要就是增加一個特色Perfect Forward Secrecy,
這特色用來保護就算以後Server的私鑰外流了
攻擊者在外流前就算測錄了所有封包也無法解密,因為封包的加密的過程有用到DH演算法
的一個暫時性變數(就是使用DH協定時,雙方只有自己知道的數值,白話一點的就解釋就是,DH每次的對話,公私鑰都是隨機生成的,所以你這次的私鑰外流了,只能解出這次的對稱式金鑰還有明文而已,但用RSA交換金鑰的話,因為RSA公私鑰是固定的,所以一但私鑰外流,過去所加密的對稱式金鑰以及明文都會被破解),
沒有這變數就算你拿到Server私鑰也無法解密封包.
在SSL協定的Cipher Suite列表中,有使用ECDHE的Cipher Suite會比較建議排在前面
再來是DHE最後是沒有使用金鑰交換協議的協定.
可以參考維基百科主機的SSL server test(目前測試被評為A+)
https://www.ssllabs.com/ssltest/analyze.html?d=en.wikipedia.org&hideResults=on
關於Perfect Forward Secrecy詳細介紹可以參考Vincent Bernat寫的這篇文章
SSL/TLS & Perfect Forward Secrecy
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(6,061)

  • 個人分類:
▲top
  • 8月 09 週五 201315:04
  • 原來一般的DNS query也可以走TCP協定

今天在看Wikipedia的條目時
域名伺服器快取污染
發現到原來除了DNS zone transfer以外,一般的DNS query也可以走TCP協定...
使用方法就是在指令後面加上 vc (virtual circuit)這個option.
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(1,261)

  • 個人分類:
▲top
  • 9月 01 週六 201218:59
  • 兩篇勸人不要用C Shell的文章

之前看過的文章,今天突然想到post出來

Top Ten Reasons not to use the C shell
http://www.grymoire.com/Unix/CshTop10.txt

(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(56)

  • 個人分類:
▲top
  • 8月 01 週三 201217:50
  • C語言的alignment

之前看到網友推薦的一本電子書
《Linux C编程一站式学习》
http://akaedu.github.io/book/
才知道原來C語言有所謂的 "對齊" alignment
為的是讓記憶體搜尋資料時的速度可以比較快
因此在structure裡面宣告變數時,宣告位置的不同會造成整個structure的size也不一樣
#include<stdio.h>
int main(int argc , char **argv)
{
struct student{
int i;
char a;
int j;
};
printf("size of student structure is %ld\n", sizeof(struct student));
return 0;
}
~ $ gcc -o alignment alignment.c && ./alignment
12
------------------------------
因為中間的 char a的大小為1, 編譯器會自動在 變數 a後面加3個bytes的padding 以增進記憶體位置的效率
------------------------------
#include<stdio.h>
int main(int argc , char **argv)
{
struct student{
int i;
int j;
short a;
short b;
};
printf("size of short is %ld\n", sizeof(short));
printf("size of student structure is %ld\n", sizeof(struct student));
return 0;
}
~ $ gcc -o alignment alignment.c && ./alignment
size of short is 2
size of student structure is 12
------------------------------
在只有宣告一個short變數時,會自動增加2 bytes的padding
但第二個例子,因為後面有宣告short b,所以可以不用增加padding
原則就是structure的整個大小最後一定會是最大size的變數(此處為int) 的 倍數.
來看稍微複雜的例子
------------------------------
struct abc{
int a;
char b;
int c;
char d;
}
------------------------------
size of 為16
------------------------------
struct abc{
int a;
int c;
char d;
char b;
}
------------------------------
size of 為12
------------------------------
第一個為16是因為兩個char變數都有個別去增加3byte的padding,因此為16
第二個為12是因為char b後面只要再增加2個bytes的padding就可以完成對齊了.
=================
在程式碼前面增加一行
#pragma pack(1)
說可以無視alignment這個規定
只要去計算每個變數實際的小大即可
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(1,409)

  • 個人分類:
▲top
  • 2月 05 週日 201214:51
  • 使用GPG驗證檔案的方法

好像比較少中文文章介紹如何使用GPG來驗證File Integrity
還好找到了一篇Apache官網的介紹文章
http://httpd.apache.org/dev/verification.html

一般來說,驗證檔案的方式最常見的還有用hash的方法
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(1) 人氣(1,579)

  • 個人分類:
▲top
  • 8月 29 週一 201122:39
  • 好邪惡的Apache Killer

http://seclists.org/fulldisclosure/2011/Aug/175
這種針對Apache的DDOS攻擊而來的手法
是利用Apache本身在處理HTTP protocol時,針對Range欄位處理有弱點造成的.
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(587)

  • 個人分類:
▲top
  • 8月 08 週一 201102:32
  • GCC Compilation Problem

搜尋到的好文章...
http://i-pogo.blogspot.com/2010/01/usrbinld-cannot-find-lxxx.html
解決 /usr/bin/ld: cannot find -lxxx 問題
問題:
在linux環境編譯應用程式或lib的source code時常常會出現如下的錯誤訊息:
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(177)

  • 個人分類:
▲top
  • 7月 16 週六 201123:03
  • 常見的Linux爆炸原因

Now.in作者Victor針對COSCUP報名時,主機每次掛點的原因做探討

http://blog.ez2learn.com/2011/07/15/usual-linux-down-reason/

寫的相當棒的文章!!
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(0) 人氣(92)

  • 個人分類:
▲top
  • 5月 08 週日 201107:00
  • SSH Tunnel using Putty

SSH tunnel就是在跟遠端的ssh server 建立連線以後,可以透過這個ssh tcp連線來開一個tunnel(通道、隧道)來"彼此"互傳訊息.
(注意:這不是SSH VPN,兩者是不一樣的)
在 putty的tunnel頁面裡面,有3種方式來使用.
第一種為Local方式,原理就是在 ssh client端開一個port來listen,然後可以讓browser等應用程式透過這個目前正在listen的port來跟遠端的ssh sever做溝通,叫ssh server幫我要資料.
譬如:Local方式、source port是8801、Destination是whatismyipaddress.com:80
然後在browser的url裡面打入「http://localhost:8801」就可以透過ssh server連到whatismyipaddress.com的80 port...然後看到的ip是ssh server的public ip.
第2種是Remote方式,原理跟第一個剛好相反,就是說讓ssh server那邊開一個port讓ssh server自己去listen
然後ssh server可以連到它自己開的port會透過我們彼此ssh 連線,連來我client這邊,由我client去幫server要資料.
譬如:Remote方式、source port是9901、Destination是whatismyipaddress.com:80
如果ssh server直接去瀏覽whatismyipaddress.com:80,它會在該頁面看到它自己的public ip
但是如果ssh server是去瀏覽localhost:9901,那麼ssh server就會在該頁面看到我 ssh client的ip,因為是我去幫它要的.
第3種就是Dynamic方式,就是可以用來做將ssh server做socks proxy的用途.
只要設定source port即可.然後ssh client端只要在 IE等應用程式下設定好socks proxy即可透過ssh server來連線.
譬如:Dynamic方式、source port是9999,然後在IE上面設定socks proxy,連到whatismyipaddress.com就可以看到
ssh server的public ip了.
要彈性一點的話(譬如A站走socks proxy, B 站不走socks代理而走原來線路)
可以在browser(Firefox/Google Chrome)裝Foxy Proxy套件來幫助你.
補充:
開啟gateway port的方法
如果你的機器作為一個ssh client連到ssh server後,在本地端listen一個port來作tunnel
你也可以將這一個port分享給其它機器來連線.
在putty裡面的Connection->SSH->tunnels這頁裡面的
Local ports accept connections from other hosts
打勾即可
在linux下的話用 「-g」這個選項就可以了
ssh -g -L 1111:whatismyipaddress.com:80 id@ssh_server
別台機器只要連到client ip的1111這個port就可以在whatismyipaddress.com看到 ssh_server的ip了.
(繼續閱讀...)
文章標籤

fvalinux 發表在 痞客邦 留言(8) 人氣(899)

  • 個人分類:
▲top
«1234...8»

近期文章

  • Devcore shellcode 2024
  • 解決wget遇到Let's Encrypt爆Error的訊息
  • UDP協定的 ESTABLISHED 狀態
  • 《圖解Linux核心工作原理》
  • Format指令詳細的未公開參數
  • HackMe的ROP1題目
  • 不規格陣列 Jagged Array
  • CIH的Hello World
  • 用grep指令玩spelling bee
  • 用grep指令玩wordle game

文章彙整

最新迴響

  • [24/02/21] fvalinux 於文章「bash之命令執行的順序...」留言:
    補充:在alias跟function之間,應該要多出一個ke...
  • [15/12/29] fvalinux 於文章「Unix Shell...」留言:
    更正一下,再次翻這本書時,只把stderr流進pipe 正...
  • [15/12/21] fvalinux 於文章「真好玩的Netcat......」留言:
    原來telnet也可以直接吃pipe丟進來的資料,不過要先用...
  • [15/10/06] fvalinux 於文章「bash之命令執行的順序...」留言:
    補充一下 第二順位的alias 當你的指令搭配xargs使...
  • [15/05/26] fvalinux 於文章「TraceRoute怪象?...」留言:
    2015年註記 http://superuser.com/...
  • [14/06/21] Fva... 於文章「Root Name Server...」留言:
    目前root dns server有3個instance放在...
  • [14/06/21] Fva... 於文章「Root Name Server...」留言:
    http://upload.wikimedia.org/wi...
  • [14/04/27] fvalinux 於文章「查詢、刪除Windows系統下的DNS ...」留言:
    補充一下 root DNS幫你查詢時,運作有分成itera...
  • [13/05/03] fvalinux 於文章「使用GPG驗證檔案的方法...」留言:
    http://www.cyberciti.biz/faq/p...
  • [12/07/27] 訪客 於文章「Unix Shell...」留言:
    忘了記錄一下.. 要同時將std out跟std err輸...

參觀人氣

  • 本日人氣:
  • 累積人氣: