綿羊墻(Wi-Fi sheep)搭建其三

序言

這篇文章的內(nèi)容包括我對綿羊墻所做的一些優(yōu)化以及具體的方法

多線程

由于整個項目的流程主要包括在抓包與分析包兩個部分,在之前的版本中使用的方法是抓一定數(shù)量的包之后傳回主機進行分析须鼎,在分析結(jié)束后開始下一次的抓包幸逆。這種不成熟的處理方法既是對機器性能的浪費特姐,也會錯過在分析包的過程中流經(jīng)的流量。
因此我使用了多線程的方法艺糜,在每次抓完一組包后豌注,僅完成保存就開始下一次的抓包,同時開啟另一個線程進行對包的分析處理缴允。
由于使用了多線程,因此需要對包進行編號珍德,并將這個號碼傳給分析的函數(shù)练般。
但是這種處理方法仍然是不成熟的。第一個問題是在每一次開始抓包的過程中有一個建立ssh連接并開始抓包的時間(大約1~2s)锈候,這會造成性能浪費和錯失一部分的包薄料。這個問題可以通過調(diào)整每次抓包的大小進行優(yōu)化,如果一次抓包的時期夠長泵琳,就可以忽略這些時間都办,但周期過長會導(dǎo)致刷新頻率不足,影響項目的用戶體驗虑稼。第二個問題是絕大多數(shù)路由器傳回主機的包都是無用的數(shù)據(jù)。這里我想到了兩種辦法势木,一種是通過一些過濾策略來減少包的總數(shù)蛛倦,比如就目前的檢測策略,我們只需要帶有Http POST請求的包就可以了啦桌。另一種辦法是將整個抓包分析的過程移植到路由器上溯壶,在本機上只進行展示。就在不久前我看到了通過scapy進行類似實現(xiàn)的辦法甫男,在之后會進行嘗試且改。
下面是優(yōu)化后的主邏輯的代碼。

代碼清單一:

import os
from MyPassword import password
from analyzer import analyze
import _thread
import pexpect
import sys

iterator = 1

while 1:
    shellCmd = 'ssh root@10.0.0.1 "tcpdump -c 50 -w - -s 0 port not 22" > data' + str(iterator) + '.cap'
    child = pexpect.spawn('/bin/bash',['-c',shellCmd])
    sshNewkey = 'Are you sure you want to continue connecting'
    i = child.expect([pexpect.TIMEOUT, sshNewkey, 'password: '])
    if i == 0:
        print("ERROR:")
        print('SSH could not login. Here is what SSH said:')
        print(child.before, child.after)
        sys.exit()
    if i == 1 :
        child.sendline('yes')
        child.expect('password:')
    child.sendline(password)
    print("dumping in Wi-Fi,please wait")
    child.expect(pexpect.EOF)

    print("get data package" + str(iterator))
    _thread.start_new_thread( analyze, (str(iterator),))
    iterator += 1

之前每次上傳github的時候我都要將password手動引入板驳,在這次我把密碼保存在一個單獨的文件中直接引入又跛,雖然是一個很通用的做法但是由我自己想到還是很開心的。

pexpect模塊

pexpect是對expect的一個封裝若治。之前我使用的是sshpass進行慨蓝,在命令行中直接加入密碼以跳過交互式的密碼認證,但這種方式十分不安全端幼,所以我使用pexpect模塊進行交互式的密碼輸入礼烈。
在上述的代碼中,我直接使用了pexpect提供的連接ssh的范例程序婆跑。在連接ssh的過程中會碰到三種情況此熬,對超時,請求確認和請求密碼三種情況進行合適的分別處理,這種代碼風格很值得我學習犀忱。
這里要注意的是直接使用pexpect進行命令行處理的話會忽略管道等一些命令行的特性募谎,這點在優(yōu)化的過程中對我造成了很大的困擾,直到我在IBM的網(wǎng)站中看到涉及這方面的說明峡碉,在修改了代碼后就可以按預(yù)期運行了近哟。
Pexpect

接下來我想做什么

如果有這系列的下一篇文章的話,他可能會有關(guān):

  • 在路由器上直接完成密碼帳號提取
  • 除了直接提取明文之外更多的攻擊方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鲫寄,一起剝皮案震驚了整個濱河市吉执,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌地来,老刑警劉巖戳玫,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異未斑,居然都是意外死亡咕宿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門蜡秽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來府阀,“玉大人,你說我怎么就攤上這事芽突∈哉悖” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵寞蚌,是天一觀的道長田巴。 經(jīng)常有香客問我,道長挟秤,這世上最難降的妖魔是什么壹哺? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮艘刚,結(jié)果婚禮上管宵,老公的妹妹穿的比我還像新娘。我一直安慰自己攀甚,他們只是感情好啄糙,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著云稚,像睡著了一般隧饼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上静陈,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天燕雁,我揣著相機與錄音诞丽,去河邊找鬼。 笑死拐格,一個胖子當著我的面吹牛僧免,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捏浊,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼懂衩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了金踪?” 一聲冷哼從身側(cè)響起浊洞,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胡岔,沒想到半個月后法希,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡靶瘸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年苫亦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怨咪。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡屋剑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诗眨,到底是詐尸還是另有隱情饼丘,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布辽话,位于F島的核電站,受9級特大地震影響卫病,放射性物質(zhì)發(fā)生泄漏油啤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一蟀苛、第九天 我趴在偏房一處隱蔽的房頂上張望益咬。 院中可真熱鬧,春花似錦帜平、人聲如沸幽告。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冗锁。三九已至,卻和暖如春嗤栓,著一層夾襖步出監(jiān)牢的瞬間冻河,已是汗流浹背箍邮。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叨叙,地道東北人锭弊。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像擂错,于是被迫代替她去往敵國和親味滞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,770評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理钮呀,服務(wù)發(fā)現(xiàn)剑鞍,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 序言 綿羊墻:一面展示板行楞,將用戶設(shè)置的不安全的網(wǎng)絡(luò)用戶名與密碼公布在上攒暇。 這是我在硬土殼安全公司實習期間,與蔡一涵...
    Zzifan閱讀 8,144評論 3 3
  • 基層工作千頭萬緒,一絲不茍說說容易证杭,真的去做田度,可復(fù)雜了。社區(qū)居委工作解愤,原以為只要得過且過镇饺,晃晃蕩蕩,一天8個小時還...
    熏莉閱讀 236評論 0 0
  • 前一段時間,我陪朋友小茹逛街時進了一家琴行哼鬓,陪她買了一把吉他监右。 我其實挺詫異的,因為我知道小茹根本不會彈吉他异希,不知...
    小鹿不撞撞閱讀 771評論 1 5