社会工程学之黑客七宗罪——贪婪(死亡之PING)
前言
????????我為什么要將“死亡之PING”歸結到《貪婪》?
????????其實如果你知道“死亡之PING”的里含義就很好理解了。
????????我始終相信雙刃劍理論,其實個人主觀臆斷是“死亡之PING”最一開始并不是惡意攻擊方法,而是為了達成目的而做成的一勞永逸的工具。
????????為什么我會這么認為?首先我們要知道PING的含義。
?????????ping (Packet Internet Groper)是一種因特網包探索器,用于測試網絡連接量的程序?[1]??。Ping是工作在?TCP/IP網絡體系結構中應用層的一個服務命令, 主要是向特定的目的主機發送?ICMP(Internet Control Message Protocol 因特網報文控制協議)Echo?請求報文,測試目的站是否可達及了解其有關狀態。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——百度百科
? ? ? ? 由上述一段介紹得知,PING可以做到連接服務器,那也就意味著,我用PING去連接一個網站,相當于訪問了這個網站。而通過猜測,如果你想讓一個網站達到一定的訪問量,就可以這樣做。
? ? ? ? 那么也就意味著,那些很貪婪的想一直刷訪問量的人,肯定想用這種辦法的吧~
? ? ? ?不過,僅僅是訪問網站而已呀??和黑客攻擊有什么關系?
? ? ? ? 咱們日常訪問普通網站或服務器時,有沒有一種現象叫做500、502或504?
500錯誤:
????????500 Internal Server Error 內部服務錯誤:顧名思義500錯誤一般是服務器遇到意外情況,而無法完成請求。
502、504錯誤:
????????502 Bad Gateway錯誤、504 Bad Gateway timeout 網關超時
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——幽幽靖
? ? ? ? 上述錯誤造成的原因有一個交點:當我的訪問數據超載,資源被吃到不足。
? ? ? ? 那么資源吃到不足是一個什么概念呢?
? ? ? ? ? ? ? ? 舉個栗子~
? ? ? ? ? ? ? ? 比如你的電腦只有一個內存條是8G,假設系統進程用了1G,各種后臺軟件以及正在打開的軟件用了4G,而在沒有任何保護機制以及調度方案的情況下,你想直接點開一個游戲,需要占用你的內存4G。
? ? ? ? ? ? ? ? 那么現在,你需要9G的內存資源,而你計算機能提供的內存資源為8G,在沒有任何保護機制以及調度方案的情況下,點開,運行,藍屏~
? ? ? ? 那么,PING其實就可以達到這一點。
? ? ? ? 但是我PING一次好像也消耗不了多少資源吧……
? ? ? ? 好的,欲知后事如何,請往下看~
一、問題所在:一次PING所消耗的資源量
? ? ? ? 不難發現,我們在PING的時候所發送和接受的數據(以“字節”為單位)著實很小:
? ? ? ? 很明顯,這里的字節為32,想想就很小了吧——無論是對于服務器來講還是PC來說。
? ? ? ? 但是,如果我增大它的字節數呢?
????????
? ? ? ? 首先,我們從第一行命令的結果得知,最高的字節數只能是65500。
? ? ? ? 其次,我把字節數換成65500,由于給服務器的安全設定阻止了過量字節的數據訪問,導致了請求超時現象。
? ? ? ? 可能有的人會想:既然說過量字節的數據訪問會被服務器駁回,那樣不就沒辦法用PING攻擊了嘛?~
? ? ? ? 其實最一開始我也想到了這個事,但是后來我想了想,如果有2047臺電腦同時訪問這個服務器,每一次都是32字節,是不是就能達到65500了?
? ? ? ? (手動計算:)
二、衍生問題:怎么可能同時擁有2047臺可用的電腦嘛~
? ? ? ? ?確實,就算你家大業大,根據正常思維來講,誰也不想敗家對吧~
? ? ? ? ?不過,我們不能同時擁有2047臺可用電腦,但是我們可以同時PING它個2047次呀~
? ? ? ? ?這里要用到的知識點呢,叫做《并行程序設計基礎》。
三、什么叫“并行”?
? ? ? ? ?問個問題~:
? ? ? ? ? ? ? ? 如果燒水需要5分鐘,洗衣服(機器)20分鐘,做飯15分鐘,問:不算外來時間因素及水放置降溫影響,把這些事情全干完最短需要用多長時間?
? ? ? ? ? ? ? ? 答案肯定是20分鐘對吧。
? ? ? ? ? ? ? ? 想想看:用機器洗衣服放了衣服和洗液它會自己洗,燒水的話加了水點了火它會自己燒,那么在他們工作的時候我去做飯,做晚飯,水早就燒好了,再等5分鐘,洗衣機也好了,一共用時20分鐘。
? ? ? ? ? ? ? ? 那么,在洗衣機洗衣服的同時,我去燒水,水燒著的時候我去做飯,三個事件同時進行,省心省力,我們把這種處理事件的模式叫做“并行”。
? ? ? ? ? ? ? ? 這里呢,我們可以把每個事件都看作一個線程:
? ? ? ? ? ? ? ? ? ? ? ? 1.洗衣機線程包括:放入衣服,放入洗液,按洗衣按鈕……
? ? ? ? ? ? ? ? ? ? ? ? 2.燒水線程包括:裝水,點火……
? ? ? ? ? ? ? ? ? ? ? ? 3.做飯線程包括:切菜,調料,做菜,盛盤……
? ? ? ? ? ? ? ? 那么,線程里包括的每一個動作,我們都可以看作一個進程。
? ? ? ? ? ? ? ? 諸如此類,現在我們把目光看向我們的PING。
? ? ? ? ? ? ? ? 那么我是不是可以建立多個PING進程或PING線程,讓它們同時運行?
? ? ? ? ? ? ? ? 也就意味著,我是不是可以建立2047個PING進程或PING線程同時運行,來達到65500字節的目的?
? ? ? ? 那么具體我們應該怎么做?
四、準備前置
1、一只活了很久的蟒蛇~(Python2.7)
? ? ? ? 眾所周知,蟒蛇(Python)作為程序界的一大利器,它擁有很大的便捷性以及廣泛性。
? ? ? ? 不過為什么要挑一只活了很久的蛇?
? ? ? ? 畢竟蛇還是老的辣呀~老蛇對于很多舊模塊的兼容性很強的,尤其是……
? ? ? ? ????????一只老蛇:嘶~嘶……(鉆洞~侵入~)
2、Ping語法
? ? ? ? (1)如果你用的是Windows系統:
? ? ? ? ? ? ? ? 你將要用到cmd(命令提示符)窗口,在里面輸入Ping語法。
? ? ? ? (2)如果你用的是Linux系統:
? ? ? ? ? ? ? ? 你將要用到Terminal(終端)窗口,在里面輸入Ping語法。
? ? ? ? 而需要用到的Ping的語法如下(Windows與Linux通用):
1 ping <ip/url> 2 ping <ip/url> -l <字節數> 3 ping <ip/url> -t? ? ? ? 第一行的PING是普通的PING,單純就是圖個能不能連通。
? ? ? ? 第二行的PING,上面咱們說到了,設置字節數的PING。
? ? ? ? 第三行的PING,無限PING,直到你在cmd或Terminal中鍵入停止指令。
五、實戰
????????首先需要了解我們所需要的模塊包:
??????(注意:下列模塊與在python3中的相同作用模塊的使用方法有出入!!!)
? ? ? ? 1.subprocess 模塊:允許我們啟動一個新進程,并連接到它們的輸入/輸出/錯誤管道,從而獲取返回值。
? ? ? ? ? ? ? ? 這也就意味著,我們可以通過此模塊來創建一個進程并使用它~
? ? ? ? 2.thread 模塊:提供對線程的支持。
? ? ? ? ? ? ? ? 顧名思義,這是我們創建新線程的必要條件~
? ? ? ? 除此之外,我們還需要用到一個模塊叫做time,至于用它干什么,下面我們會介紹到。
? ? ? ? 模塊包了解完了,現在我們就需要說思路的事了:
? ? ? ? 1.導入subprocess、thread和time這三個模塊。
? ? ? ? 2.聲明一個用來執行PING動作的函數,此函數當中PING用進程來運行。
? ? ? ? 3.利用第2條所聲明的函數來循環創建線程并讓它們并行,每創建一個線程,休息0.8秒
???????那么具體代碼如下所示:
1 import subprocess 2 import thread 3 import time 4 5 6 def POD(id): 7 ret = subprocess.call("<Ping語法>", shell=True) 8 print "%d," % id 9 10 11 for i in range(<你要創建的線程數>): 12 thread.start_new_thread(POD, (i,)) 13 time.sleep(0.8)這里說重點:
? ? ? ? 一、第6行所定義的POD函數是用來執行PING命令的。在第12行,由線程調用此POD函數。
? ? ? ? 二、第12行中的 ‘(i,)’的意思是傳入了第11行‘i’的數字,用來標注是第幾個被創建的線程
? ? ? ? 三、第13行為什么要睡覺休息?畢竟創建線程的同時你的電腦也是會消耗資源的,為了減輕負荷就休息了0.8秒
后序
? ? ? ? 最后我想說,無論我說的夠不夠明白,夠不夠清晰,這篇文章只供參考和學習,如果拿了這個東西干了什么壞事的話……違法我不追究,畢竟該審判你的不是我,是法律哦!!!~
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??——Redice(Yatogami)
總結
以上是生活随笔為你收集整理的社会工程学之黑客七宗罪——贪婪(死亡之PING)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非功能测试之界面测试和易用性测试
- 下一篇: 传奇服务器怎么修改背包金刚石显示,教你在