2014年1月11日

Kali 工具介紹 Recon-ng

用途

利用第三方服務和主動爬行的方式,搜尋人名、帳號、email、被動或主動查詢網站資訊的工具。版本是1.4.1 @ kali 1.0.5。模組區分為三大類,偵察Reconnaissance、發現Discovery與彙報reporting。
  1.Recon被動偵查模組
   Contact 以姓名拼湊真實資訊
   Creds 以帳號或email 搜尋被洩漏的密碼
   Hosts以網站名或 ip搜尋系統資訊
   Pushpin 以地理資訊蒐集社群資料
 2.Discovery 主動掃描模組
   Exploitable  掃可利用弱點資訊
   Info_disclosure  掃系統資訊揭露
 3.Reporting 彙整報告模組

基本指令

在主選單可以使用以下指令來,設定全域變數、查詢模組介紹、搜尋或列出模組清單、下sql指令查詢資料庫
set 全域參數
 set  company hinet
 set domain www.hinet.net
 set proxy [ true | false ]
 set proxy_server 127.0.0.1:8080
 set socket_timeout 30(預設只有10秒很容易timeout)
 set user-agent 瀏覽器標頭
search 關鍵字(找特定模組的全名)
use 模組全名
query <sqlquery>(可以查內建的DB資料表)
show modules (模組) 、options (模組設定)、schema (資料表結構)、table (資料表內容)

進入模組之後,可以查詢模組介紹、設定模組內的變數、執行模組功能
info 顯示模組介紹和輸入參數
run 執行模組功能

2013年9月10日

Hackthissite Programming 第11關心得

題目網址:https://www.hackthissite.org/missions/prog/11/

本關重點:眼明手快

題目:Reverse Ascii Shift
This string was randomly generated. It will not be recognizable text. You have 3 seconds to take the information from the website, and apply that to your algorithm.
Generated String: 82%102%64%75%114%101%91%107%72%90%
Shift: 29
大意是給你一串任意ascii碼,以任意特殊符號分隔。目的是把這一串ascii碼減去某個數字後,再還原成字元輸出。限制3秒鐘內...難就難在3秒鐘內要回答。

安全限制

原本想要把網頁內嵌在iframe中,當題目載入後,就從外框去抓內框的ascii碼,處理之後再submit。但是會違反相同來源政策,瀏覽器不讓我這樣搞。所以只能另外想辦法。

想到的方法有兩種,一種是用windows shell script登入網站讀取題目和關鍵字,處理完轉碼之後在送出表單,可是我覺得這樣很花時間,而且題目和關鍵字沒有特定的html tag包起來,只能讀取整個頁面,怕效率不好。第二種方法就是人工複製題目,寫一支小程式來轉碼,複製貼上進行轉碼,得到答案後再貼回答案欄。

用javascript寫小程式的限制

因為我懶惰,所以直接用javascript寫了小程式,這才發現,題目中的ascii碼有時候會超過html可以顯示的字元範圍(譬如:換行字元、刪除字元、esc字元等等)。還好經過多次嘗試之後,總是會有能正常顯示的組合出現,因此我勉強用了兩三個小時解開題目。當我解開時,也決定下次要採用更有效的方法。(想嘗試你的手速可以用這支下面小程式來玩玩)

2013年4月12日

以 SharpPcap 實作可收聽封包的 C# 程式(winform)

上一篇文章是介紹如何撰寫簡單的console程式,這篇將分享我實作 SharpPcap  winform 程式的心得和遇到的問題。

winform表單設計
一個TextBox,作用是輸入過濾封包的filter到TextBox。
一個ListBox,作用是選擇ListBox中的網卡設備。
兩個Button。作用是開始時按下開始監聽按鈕,結束時按下停止監聽。

form.cs程式碼
設定完介面之後,我在 form.cs 引用 SharpPcap 的元件,並在Form class中先宣告網卡設備清單。然後在 Form 的初始函式中獲取網卡清單並在入到 Listbox 中。

using SharpPcap;
using SharpPcap.LibPcap;
using PacketDotNet;

namespace webcam_alarm_for_skype
{
    public partial class Form1 : Form
    {
        LibPcapLiveDeviceList devicelist = LibPcapLiveDeviceList.Instance;
        public Form1()
        {
            InitializeComponent();
            for (int i = 0; i < devicelist.Count; i++)
            {
                ListBox.Items.Add(devicelist[i].Description);
            }
        }
    }
}


2013年3月21日

關於3/20發生在南韓的網路癱瘓事件

資料來源:nakedsecurity.sophos.comlabs.alienvault.comwww.businessweek.com

南韓兩年來最嚴重的一次網路攻擊,造成三家大型電視台內部網路大當機、部分銀行ATM停止服務、並造成股市大跌0.97%,受害者都是網路業者LG UPlus的客戶。事件一暴發,南韓青瓦台發出聲明「不排除是來自北韓的攻擊」,刻意造成大眾產生某種對立氣氛。但今天BBC、sophoslab、newsweek有近一步的報導指出,這次事件是潛伏在受害電腦的中國製惡意程式,同時間發動攻擊造成的。

惡意程式並非新玩意
根據 sophos lab 報導,該惡意程式又名"DarkSeoul"早在一年前就被偵測出來,且惡意程式中內嵌指令並沒有混淆化。他們更發現 DarkSeoul 的作用是強制停用南韓兩大防毒軟體AhnLab 和 Hauri AV。
圖片來源:sophoslab

2013年3月20日

Hackthissite Programming 第1關心得

題目網址:https://www.hackthissite.org/missions/prog/1/

本關重點:字串處理、搜尋

題目:Unscramble the words

原始單字清單
You have to find the original (unscrambled) words, which were randomly taken from a wordlist. This level is about unscrambling words. Find the original (unscrambled) words, which were randomly taken from a wordlist. Send a comma separated list of the original words, in the same order as in the list below. You have 30 seconds time to send the solution.
List of scrambled words:
tsreaeh
erxotp
rtoatrc
pdazoh
abomob
stieccl
ruconyt
sbownr
kmfcue
swleov
(重新排列的十個單字)

題目會先給你一千多個單字的題庫,每個單字之間以換行字元隔開。接著會要求你在30秒之內把重新排列過的其中10個單字(如題)找出來,最後以逗點方式隔開答案。

整理單字題庫的字元數和ASCII碼,

一千多個單字,解題時間卻只有30秒,如果逐個字元比對,平均7個字元長度的10個重新排列單字需要 (1000+500+250+125+62+31+15)*字元比對*7*10,再加上暫存題庫的空間。我想可能不是個有效率的方法。因此我們先將題庫整理一下,列出所有單字的字元數和ascii碼然後以相同順序儲存到暫存陣列。依序進行字元數比對、ascii比對、逐字元比對,我估計計算時間可以減少為 (1000*字元長度比對+200*acii碼比對+5*字元比對*7)*10。

2013年3月15日

32 bits Windows 8 如何使用 4GB 以上記憶體(windows 8.1更新)

原始網頁:PAE patch updated for Windows 8 by wj32

PAE技術出現之後,很多人質疑 32 bits Windows OS 為什麼不能像32 bits linux 使用4 GB以上的記憶體,為什麼 XP sp1 曾經支援過 PAE 後來sp 2、sp 3卻被封印,面對問題微軟只有笑而不答。因此網路上很多解決方案(How to Enable PAE on a 32 Bit Windows XPWindows 7 32-bit with full 4 GB or 8 GB RAM support),只為了開啟被微軟封印的 PAE 技術。其中Windows 8 的解決方案卻付之闕如,有些人像我一樣因為透過 微軟 Windows 8 促銷 買到經濟實惠的作業系統。但是升級過程卻沒得選擇,只能直接從 32 bit XP 到 32 bit Windows 8。這下可好了,揪竟該如何讀取4 GB以上的記憶體呢?

32 bit Windows 8 專用Patch

神人 wj32 提出的 Patch 正好可以解決這個問題,使用前請先移除所有你曾用過的RAM Patch,並記得先備份系統。

2013年3月6日

Hackthissite Realistic 第15關心得

網址:http://www.hackthissite.org/missions/realistic/15

本關重點:耐心、zip檔解密、php可變變數、雜湊值還原、Linux指令、C語言緩衝區溢位

題目:Simple Mail
Message: Hi, please help me if you are against war like me. Rumours are saying that the seculas Ltd. company is developing an awful new laser aided weapon, and that they already have patents pending. Please try to find out what their latest patents are about. People say you know your shit and that you are an amazingly good hacker. It should not be a prob for someone with your skills. What I know is that seculas Ltd. hired a new programmer who is responsible for the server, and he passworded everything and always with different passwords. I heard about him, he is one the kind who locks the front door twice and leaves the back-door open.
If you think like me please help me and fight those people that make money with war.
大意就是, 某軍火商正在製造可怕的雷射武器,希望你阻止軍火商申請新的專利,並查出他們的專利內容有哪些。題目透漏一個有用的情報,維護官網的工程師雖然都有將資料加密,但卻是個粗心的人。

搜尋重要目錄和程式

就跟所有web滲透的題目一樣,先找出重要的目錄、或程式。並且尋找可以注入變數的欄位。
index.php
products.php
questions.php................似乎不能注入
storequestion.php.........似乎不能注入
imprint.php
jobs.php
application_form.php....似乎不能注入 
storeapplication.php......似乎不能注入
images/
     沒甚麼用的圖片們

2013年2月1日

Hackthissite Realistic 第6關心得

網址:https://www.hackthissite.org/missions/realistic/6/index.html

本關重點:XEcryption弱點、已知明文攻擊

題目:From: ToxiCo_Watch
Message: Hello esteemed hacker, I hope you have some decent cryptography skills. I have some text I need decrypted.
I work for this company called ToxiCo Industrial Chemicals, which has recently come under fire because of the toxic chemicals we are dumping into the river nearby. Ecological inspectors have reported no problems, but it is widely speculated that they were paid off by ToxiCo management because the water pollution near the ToxiCo factory has always been a serious and widely publicized issue.
I have done some packet sniffing on my network and I have recovered this email that was sent from the CEO of the company to Chief Ecological Inspector Samuel Smith. However, it is encrypted and I cannot seem to decode it using any of my basic decryption tools. I have narrowed it down to the algorithm used to encrypt it, but it is beyond my scope. I was hoping you can take a look at it.
Please check it out,
more details are on the page. If you can unscramble it and reply to this message with the original text, it would be much appreciated. Thank you.
大意是熱心的環保駭客攔截到化學公司內部的信件,其內容可以幫助社會大眾了解公司真面目。但信件已被加密,於是請你解密(題目有提醒你加密演算法是 XEcryption )。

2012年9月8日

資安JAVA(三六):解決SQL injection

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 36 – SOLVE SQL INJECTION
作者:John Melton

What is it and why should I care?

SQL注入漏洞是因為沒分開處理程式碼和資料而產生。一般而言,開發者善意的設想使用者輸入內容都是資料,但攻擊者自訂輸入內容讓資料庫誤認為命令執行。這裡有些SQL注入攻擊事件,造成財務的、政治的或名譽的損失。若你了解C語言exec函數的問題,你應該認同防護SQL注入的重要性。

2012年8月31日

資安JAVA(三五): 一次解決一個問題

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 35 – SOLVE SECURITY PROBLEMS ONE AT A TIME
作者:John Melton

What is it and why should I care?

本篇文章與技術沒有太大關係,主要是討論解決資安問題的流程。

真實生活中的資安廠商通常跟消防員一樣。一通電話"救命阿,我們的網站被駭了,快幫我們修好!"是一天中最平凡的開場白。我們常常忙於亡羊補牢,而沒有解決問題來源,也沒有減少弱點被人利用的機會。

所以,問題持續存在。

要根本解決Web的安全問題,我們不能等到事情發生才關心。我們必須要提早想到可能的問題,並提出解決方案。building security in 網站教你從開發階段就該注意的事情,bsimm.com 則收集了許多知名軟體公司對於安全所做的努力。

然而,我們常犯了想要同時解決所有看起來都很嚴重問題的毛病。卻忘了風險優先順序。只有讓所有相關人員來開會,詳細說明安全問題,才能釐清問題順序。

假設以下兩種跟效能( performance )有關的情境。
1. 當你有一個跑得很慢卻又常常被執行的函式。有天你看不下去了,直接改寫成更有效率的版本,並取代舊版本。系統效能立即提升,減少浪費的時間。

2.當你有個跑得很慢的跨應用程式查詢句。你可以升級資料庫的硬體、更換資料庫供應商、增加應用程式的快取空間、最佳化查詢句等等。但是這些調整都牽涉到很多軟硬體的設定,你需要計畫,不能說改就改。

某些資安的問題也是一樣,有些問題可以像1.的情境,直接修改。有些問題(sql injection、xss)則像2.,需要妥善的計畫。


2012年8月22日

資安JAVA(三四): 分離管理者功能

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 34 – SEPARATE ADMIN FUNCTIONALITY
作者:John Melton

What is it and why should I care?

或許有人會認為將管理者功能從系統中切出來很奇怪。但作者定義的管理者功能是更高的權限(使用者、群組、角色的管理),因為非法提權(privilege escalation)會對應用程式產生很大的影響。作者對於管理功能的想法是:
  • 擁有可以管理使用者的重要功能
  • 假設被人以不正方式利用,使用者的權限可以增加或被移除
  • 不管任何狀況,作者並不相信可以完美的保護這些功能
你可能不同意作者,尤其是第三點,你也許覺得自己的應用程式超安全。作者的經驗中,大部分應用程式本身都有設計上的漏洞,如果管理者功能被有心人利用,那被公布的系統弱點造成的影響就更大了。

2012年8月14日

資安JAVA(三三): Access Control (3)

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 33 – ACCESS CONTROL (3)
作者:John Melton
What is it and why should I care?

前前一篇 已經提過 Access Control 的定義了。

What should I do about it?

part1 我們談到以功能性來限制使用者的行為、part2 我們將資料存取也列入考量。接下來,我們將討論更多普遍適用於限制使用者的因素。根據資料的不同類型我們可以增加某些情境資訊來限制使用者的行為。我將列出幾點常見的情境,由你來繼續列下去,並套用到你的應用程式環境中。

Date / Time
每天的某些時段可當作是否允許存取應用程式的重要條件。例如,你可以限定員工在星期一到星期五的AM 08:00-PM 18:00 才能進入系統。上班時段以外,員工只能有少許的使用權限。另外一種方式是,限制每24小時只有6小時能執行特殊工作,減少資料被竄改的機會。

2012年8月8日

資安JAVA(三二): Access Control (2)

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 32 – ACCESS CONTROL (2)
作者:John Melton
What is it and why should I care?

上一篇已經提過 Access Control 的定義了。

What should I do about it?

前面提到我們可以用功能性來限制使用者的行為。第二種限制使用者行為的做法是,以資料區分─特定使用者只能存取特定資料。舉例:雖然所有登入網路銀行的使用者都能執行查詢餘額的功能,但只能顯示自己的數字。

2012年8月3日

資安JAVA(三一): Access Control (1)

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 31 – ACCESS CONTROL (1)
作者:John Melton
What is it and why should I care?

存取控制(Access control),又稱做使用者授權(Authorization),是身分鑑別成功之後的下一步驟。存取控制的流程是以使用者身分為基礎決定資源的存取權限。假設使用者身分已經被確認,之後才能決定是否讓使用者存取特定資源。

存取控制是系統中最容易被利用的,通常存取控制的實作都存在一些問題,控制點沒有完全覆蓋應用程式,留下許多漏洞形成資安隱憂。

存取控制的問題可以用不同的存取控制模型 MAC、DAC、RBAC 來解決。然而,Web應用程式有一些特別的地方,接下來我將介紹不同之處在哪。

2012年7月27日

資安JAVA(三十): Authentication

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 30 – AUTHENTICATION
作者:John Melton
What is it and why should I care?
請靠近點,以便鑑別您的身分。
鑑別(Authentication)是一個確認你的身分是否為真的過程。通常使用者會以自己的ID和相關證據以證明身分。實際的情況是,使用者用代號和密碼來通過系統的認證。鑑別是應用程式安全中最重要的部分,因為他是使用者所有行為的起點。許多資安解決方案都是基於使用者身分已通過鑑別的前提,也就是假設使用者身分無誤。然而鑑別身分是有難度的,需要花很多心力來做。