Python實(shí)現(xiàn)端口掃描唉匾,只需做這幾步走戰(zhàn)略

一孕讳、常見端口掃描的原理

0、秘密掃描

秘密掃描是一種不被審計(jì)工具所檢測的掃描技術(shù)巍膘。

它通常用于在通過普通的防火墻或路由器的篩選(filtering)時(shí)隱藏自己厂财。

秘密掃描能躲避IDS、防火墻典徘、包過濾器和日志審計(jì)蟀苛,從而獲取目標(biāo)端口的開放或關(guān)閉的信息。由于沒有包含TCP 3次握手協(xié)議的任何部分逮诲,所以無法被記錄下來帜平,比半連接掃描更為隱蔽。

但是這種掃描的缺點(diǎn)是掃描結(jié)果的不可靠性會(huì)增加梅鹦,而且掃描主機(jī)也需要自己構(gòu)造IP包●伤Γ現(xiàn)有的秘密掃描有TCP FIN掃描、TCP ACK掃描齐唆、NULL掃描嗤栓、XMAS掃描和SYN/ACK掃描等。

學(xué)習(xí)Python過程中會(huì)遇到很多問題箍邮,可以到我們的 python學(xué)習(xí)交流群【七 三 五茉帅,九 三 四,八 四 一】锭弊,基礎(chǔ)堪澎,進(jìn)階。從企業(yè)招聘人才需求 到怎么學(xué)習(xí)python味滞,和學(xué)習(xí)什么內(nèi)容都有免費(fèi)系統(tǒng)分享樱蛤。希望可以幫助你快速了解Python,學(xué)習(xí)python

1剑鞍、Connect()掃描

此掃描試圖與每一個(gè)TCP端口進(jìn)行“三次握手”通信昨凡。如果能夠成功建立接連,則證明端口開發(fā)蚁署,否則為關(guān)閉便脊。準(zhǔn)確度很高,但是最容易被防火墻和IDS檢測到形用,并且在目標(biāo)主機(jī)的日志中會(huì)記錄大量的連接請求以及錯(cuò)誤信息就轧。

TCP connect端口掃描服務(wù)端與客戶端建立連接成功(目標(biāo)端口開放)的過程:

① Client端發(fā)送SYN证杭;

② Server端返回SYN/ACK田度,表明端口開放妒御;

③ Client端返回ACK,表明連接已建立镇饺;

④ Client端主動(dòng)斷開連接乎莉。

建立連接成功(目標(biāo)端口開放)

TCP connect端口掃描服務(wù)端與客戶端未建立連接成功(目標(biāo)端口關(guān)閉)過程:

① Client端發(fā)送SYN;

② Server端返回RST/ACK奸笤,表明端口未開放惋啃。

優(yōu)點(diǎn):實(shí)現(xiàn)簡單,對操作者的權(quán)限沒有嚴(yán)格要求(有些類型的端口掃描需要操作者具有root權(quán)限)监右,系統(tǒng)中的任何用戶都有權(quán)力使用這個(gè)調(diào)用边灭,而且如果想要得到從目標(biāo)端口返回banners信息,也只能采用這一方法健盒。

另一優(yōu)點(diǎn)是掃描速度快绒瘦。如果對每個(gè)目標(biāo)端口以線性的方式,使用單獨(dú)的connect()調(diào)用扣癣,可以通過同時(shí)打開多個(gè)套接字惰帽,從而加速掃描。

缺點(diǎn):是會(huì)在目標(biāo)主機(jī)的日志記錄中留下痕跡父虑,易被發(fā)現(xiàn)该酗,并且數(shù)據(jù)包會(huì)被過濾掉。目標(biāo)主機(jī)的logs文件會(huì)顯示一連串的連接和連接出錯(cuò)的服務(wù)信息士嚎,并且能很快地使它關(guān)閉呜魄。

2、SYN掃描

掃描器向目標(biāo)主機(jī)的一個(gè)端口發(fā)送請求連接的SYN包莱衩,掃描器在收到SYN/ACK后爵嗅,不是發(fā)送的ACK應(yīng)答而是發(fā)送RST包請求斷開連接。這樣膳殷,三次握手就沒有完成操骡,無法建立正常的TCP連接,因此赚窃,這次掃描就不會(huì)被記錄到系統(tǒng)日志中册招。這種掃描技術(shù)一般不會(huì)在目標(biāo)主機(jī)上留下掃描痕跡。但是勒极,這種掃描需要有root權(quán)限是掰。

端口開放:1、Client發(fā)送SYN 2辱匿、Server端發(fā)送SYN/ACK 3键痛、Client發(fā)送RST斷開(只需要前兩步就可以判斷端口開放)

端口關(guān)閉:1炫彩、Client發(fā)送SYN 2、Server端回復(fù)RST(表示端口關(guān)閉)

優(yōu)點(diǎn):SYN掃描要比TCP Connect()掃描隱蔽一些絮短,SYN僅僅需要發(fā)送初始的SYN數(shù)據(jù)包給目標(biāo)主機(jī)江兢,如果端口開放,則相應(yīng)SYN-ACK數(shù)據(jù)包丁频;如果關(guān)閉杉允,則響應(yīng)RST數(shù)據(jù)包;

3席里、NULL掃描

反向掃描—-原理是將一個(gè)沒有設(shè)置任何標(biāo)志位的數(shù)據(jù)包發(fā)送給TCP端口叔磷,在正常的通信中至少要設(shè)置一個(gè)標(biāo)志位,根據(jù)FRC 793的要求奖磁,在端口關(guān)閉的情況下改基,若收到一個(gè)沒有設(shè)置標(biāo)志位的數(shù)據(jù)字段,那么主機(jī)應(yīng)該舍棄這個(gè)分段咖为,并發(fā)送一個(gè)RST數(shù)據(jù)包秕狰,否則不會(huì)響應(yīng)發(fā)起掃描的客戶端計(jì)算機(jī)。也就是說案疲,如果TCP端口處于關(guān)閉則響應(yīng)一個(gè)RST數(shù)據(jù)包封恰,若處于開放則無相應(yīng)。但是應(yīng)該知道理由NULL掃描要求所有的主機(jī)都符合RFC 793規(guī)定褐啡,但是windows系統(tǒng)主機(jī)不遵從RFC 793標(biāo)準(zhǔn)诺舔,且只要收到?jīng)]有設(shè)置任何標(biāo)志位的數(shù)據(jù)包時(shí),不管端口是處于開放還是關(guān)閉都響應(yīng)一個(gè)RST數(shù)據(jù)包备畦。但是基于Unix(*nix,如Linux)遵從RFC 793標(biāo)準(zhǔn)低飒,所以可以用NULL掃描。 經(jīng)過上面的分析懂盐,我們知道NULL可以辨別某臺(tái)主機(jī)運(yùn)行的操作系統(tǒng)是什么操作系統(tǒng)褥赊。

端口開放:Client發(fā)送Null,server沒有響應(yīng)

端口關(guān)閉:1莉恼、Client發(fā)送NUll 2拌喉、Server回復(fù)RST

說明:Null掃描和前面的TCP Connect()和SYN的判斷條件正好相反。在前兩種掃描中俐银,有響應(yīng)數(shù)據(jù)包的表示端口開放尿背,但在NUll掃描中,收到響應(yīng)數(shù)據(jù)包表示端口關(guān)閉捶惜。反向掃描比前兩種隱蔽性高些田藐,當(dāng)精確度也相對低一些。

用途:判斷是否為Windows系統(tǒng)還是Linux。

4汽久、FIN掃描

與NULL有點(diǎn)類似鹤竭,只是FIN為指示TCP會(huì)話結(jié)束,在FIN掃描中一個(gè)設(shè)置了FIN位的數(shù)據(jù)包被發(fā)送后景醇,若響應(yīng)RST數(shù)據(jù)包臀稚,則表示端口關(guān)閉,沒有響應(yīng)則表示開放啡直。此類掃描同樣不能準(zhǔn)確判斷windows系統(tǒng)上端口開發(fā)情況烁涌。

端口開放:發(fā)送FIN苍碟,沒有響應(yīng)

端口關(guān)閉:1酒觅、發(fā)送FIN 2、回復(fù)RST

5微峰、ACK掃描

掃描主機(jī)向目標(biāo)主機(jī)發(fā)送ACK數(shù)據(jù)包舷丹。根據(jù)返回的RST數(shù)據(jù)包有兩種方法可以得到端口的信息。方法一是: 若返回的RST數(shù)據(jù)包的TTL值小于或等于64蜓肆,則端口開放颜凯,反之端口關(guān)閉。

6仗扬、Xmas-Tree掃描

通過發(fā)送帶有下列標(biāo)志位的tcp數(shù)據(jù)包症概。

URG:指示數(shù)據(jù)時(shí)緊急數(shù)據(jù),應(yīng)立即處理早芭。

PSH:強(qiáng)制將數(shù)據(jù)壓入緩沖區(qū)彼城。

FIN:在結(jié)束TCP會(huì)話時(shí)使用。

正常情況下退个,三個(gè)標(biāo)志位不能被同時(shí)設(shè)置募壕,但在此種掃描中可以用來判斷哪些端口關(guān)閉還是開放,與上面的反向掃描情況相同语盈,依然不能判斷windows平臺(tái)上的端口舱馅。

端口開放:發(fā)送URG/PSH/FIN,沒有響應(yīng)

端口關(guān)閉:1、發(fā)送URG/PSH/FIN,沒有響應(yīng) 2刀荒、響應(yīng)RST

XMAS掃描原理和NULL掃描的類似代嗤,將TCP數(shù)據(jù)包中的ACK、FIN缠借、RST干毅、SYN、URG烈炭、PSH標(biāo)志位置1后發(fā)送給目標(biāo)主機(jī)溶锭。在目標(biāo)端口開放的情況下,目標(biāo)主機(jī)將不返回任何信息符隙。

7趴捅、Dump掃描

也被稱為Idle掃描或反向掃描垫毙,在掃描主機(jī)時(shí)應(yīng)用了第三方僵尸計(jì)算機(jī)掃描。由僵尸主機(jī)向目標(biāo)主機(jī)發(fā)送SYN包拱绑。目標(biāo)主機(jī)端口開發(fā)時(shí)回應(yīng)SYN|ACK综芥,關(guān)閉時(shí)返回RST,僵尸主機(jī)對SYN|ACK回應(yīng)RST猎拨,對RST不做回應(yīng)膀藐。從僵尸主機(jī)上進(jìn)行掃描時(shí),進(jìn)行的是一個(gè)從本地計(jì)算機(jī)到僵尸主機(jī)的红省、連續(xù)的ping操作额各。查看僵尸主機(jī)返回的Echo響應(yīng)的ID字段,能確定目標(biāo)主機(jī)上哪些端口是開放的還是關(guān)閉的吧恃。

二虾啦、Python 代碼實(shí)現(xiàn)

1、利用Python的Socket包中的connect方法痕寓,直接對目標(biāo)IP和端口進(jìn)行連接并且嘗試返回結(jié)果傲醉,而無需自己構(gòu)建SYN包。

2呻率、對IP端口進(jìn)行多線程掃描硬毕,注意的是不同的電腦不同的CPU每次最多創(chuàng)建的線程是不一樣的,如果創(chuàng)建過多可能會(huì)報(bào)錯(cuò)礼仗,需要根據(jù)自己電腦情況修改每次掃描的個(gè)數(shù)或者將seelp的時(shí)間加長都可以吐咳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市藐守,隨后出現(xiàn)的幾起案子挪丢,更是在濱河造成了極大的恐慌,老刑警劉巖卢厂,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乾蓬,死亡現(xiàn)場離奇詭異,居然都是意外死亡慎恒,警方通過查閱死者的電腦和手機(jī)任内,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來融柬,“玉大人死嗦,你說我怎么就攤上這事×Q酰” “怎么了越除?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我摘盆,道長翼雀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任孩擂,我火速辦了婚禮狼渊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘类垦。我一直安慰自己狈邑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布蚤认。 她就那樣靜靜地躺著米苹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烙懦。 梳的紋絲不亂的頭發(fā)上驱入,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音氯析,去河邊找鬼。 笑死莺褒,一個(gè)胖子當(dāng)著我的面吹牛掩缓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播遵岩,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼你辣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尘执?” 一聲冷哼從身側(cè)響起舍哄,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎誊锭,沒想到半個(gè)月后表悬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丧靡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年蟆沫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温治。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡饭庞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出熬荆,到底是詐尸還是另有隱情舟山,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站累盗,受9級(jí)特大地震影響六孵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜幅骄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一劫窒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拆座,春花似錦主巍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至躏碳,卻和暖如春搞旭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背菇绵。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工肄渗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咬最。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓翎嫡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親永乌。 傳聞我的和親對象是個(gè)殘疾皇子惑申,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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