僵尸掃描


title: 僵尸掃描
date: 2016-05-27 15:36
tags: kali滲透測試 主動信息收集


0x00 碎語

僵尸掃描的極度隱蔽絕決定了它的實(shí)施條件的苛刻逊谋,魚與熊掌不可兼得笨觅,本就是宇宙法則。一個合格的僵尸機(jī)是實(shí)現(xiàn)僵尸掃描的關(guān)鍵因素亿眠,僵尸至少要保證在進(jìn)行掃描階段不會產(chǎn)生其它的IP包域滥,即是不會與我們主機(jī)之外的任何機(jī)器進(jìn)行第三層的IP通訊罚渐,至少在我們控制其進(jìn)行掃描的階段不可以唇辨,否則將直接導(dǎo)致我們掃描結(jié)果不可靠,白費(fèi)時間锉罐。

何為合適的僵尸機(jī):1)足夠閑置;2)它的IPID必須是遞增的帆竹,0和隨機(jī)都不可以。然而現(xiàn)在大部分主流的OS的IPID都是隨機(jī)產(chǎn)生的脓规,但是早期的xp栽连,比如xp200,xp2003都是遞增的IPID侨舆。


0x01 僵尸掃描的過程

  • 最開始掃描者主機(jī)對Zombie(僵尸機(jī))發(fā)送SYN/ACK包秒紧,然后Zombie(假設(shè)此時系統(tǒng)產(chǎn)生的IPID為x)會回個主機(jī)一個RST舷暮,主機(jī)將會得到Zombie的IPID;

  • 然后掃描主機(jī)向目標(biāo)機(jī)器發(fā)送一個SYN包噩茄,有所不同的是下面,此時掃描主機(jī)會偽造一個偽裝成Zombie的IP(即是x)向目標(biāo)主機(jī)發(fā)送SYN包。

  • 如果目標(biāo)的端口開放绩聘,便會向Zombie返回一個SYN/ACK包沥割,但是人家Zombie并沒有發(fā)送任何的包啊,zombie會覺得莫名其妙凿菩,于是向目標(biāo)主機(jī)發(fā)送一RST過去詢問机杜,此時Zombie的IPID將會增加1(x+1)。若果目標(biāo)主機(jī)的端口并未開放衅谷,那么目標(biāo)主機(jī)也會想Zombie發(fā)送一個RST包椒拗,但是Zombie收到RST包不會有任何反應(yīng),所以IPID不會改變(依舊是x)获黔。

  • 最后掃描者主機(jī)再向Zombie發(fā)送一個SYN/ACK蚀苛,同樣的Zombie會摸不著頭腦,然后在懵懂中向掃描者主機(jī)發(fā)送一個RST包玷氏,此時Zombie的IPID將變成(x+2)堵未。最后我們在zombies的迷惘中我們已經(jīng)知道了我們想知道的。


0x02 滲透環(huán)境

掃描主機(jī) kali: { ip:192.168.86.129 }

zombie xp: { ip:192.168.86.132 }

目標(biāo)主機(jī) metasploitable: { ip:192.168.86.130 }


0x03 Scapy實(shí)現(xiàn)方法


構(gòu)造Scapy掃描包


分步構(gòu)成
構(gòu)造request zombie包:
>>> i=IP() #構(gòu)造ip包頭
>>> t=TCP() #構(gòu)造tcp包頭
>>> rz=(i/t) #request_zombie盏触,構(gòu)造發(fā)送給僵尸機(jī)的數(shù)據(jù)包渗蟹,將發(fā)送給xp
>>> rt=(i/t) #request_target,構(gòu)造發(fā)送給目標(biāo)主機(jī)的數(shù)據(jù)包,將發(fā)送給meta
>>>rz[IP].dst="192.168.86.132"http://定義zombie的ip地址
>>>rz[TCP].dport=445 //定義發(fā)送到zombie的端口赞辩,務(wù)必確保這個端口是開啟的端口雌芽,445端口是win中默認(rèn)開啟的
>>>rz[TCP].flags="SA"http://定義向zombie發(fā)送的數(shù)據(jù)包是SYN/ACK包
>>>
構(gòu)造request target包:
>>>rt[IP].src="192.168.86.132"http://定義rt包的源ip地址,直接偽造為xp的ip
>>>rt[IP].dst="192.168.86.130"http://定義rt包的目的ip辨嗽,就是目標(biāo)ip了世落,meta
>>>rt[TCP].dport=25//定義rt包掃描的端口
>>>rt[TCP].flags="S"http://定義發(fā)送的rt包為SYN包

然后將會發(fā)送兩次rz包,一次rt包召庞,最后在對結(jié)果進(jìn)行分析岛心。

>>>az1=sr1(rz) #向zombie發(fā)的第一個包az1
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets

>>>at=sr1(rt,timeout=1) #向目標(biāo)機(jī)發(fā)包篮灼,由于我們不會收到回包,因?yàn)榻ozombie了徘禁,所以需要設(shè)置超時時間
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets

>>>az2=sr1(rz) #向zombie發(fā)送的第二個包az2
Begin emission:
Finished to send 1 packets.
*
Received 1 packets, got 1 answers, remaining 0 packets

分析az1與az2IPID:

>>> az1
<IP  version=4L ihl=5L tos=0x0 len=40 id=436 flags= frag=0L ttl=128 src=192.168.86.132 dst=192.168.86.129 options=[] 
>>> az2
<IP  version=4L ihl=5L tos=0x0 len=40 id=438 f proto=tcp chksum=0xac5 src=192.168.86.132 dst=192.168.86.129 

通過分析發(fā)現(xiàn)目標(biāo)的25是開放的诅诱。


Python腳本實(shí)現(xiàn)僵尸掃描

#!/usr/bin/python
#-*-coding:utf-8-*-

import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

def ipid(zombie):#定義一個ipid函數(shù),同時定義一個zombie變量送朱。該函數(shù)的作用是探測一主機(jī)是否可以作為僵尸機(jī)
  reply1 = sr1(IP(dst=zombie)/TCP(flags="SA"), timeout=2,verbose=0)#向zombie發(fā)送一個syn/ack包
  send(IP(dst=zombie)/TCP(flags="SA"),verbose=0)#send()與sr1()方法的區(qū)別是:sr1發(fā)送出去一個包以后會在接收對方的一個回包娘荡,而send方法不會接收包
  reply2 = sr1(IP(dst=zombie)/TCP(flags="SA"),timeout=2,verbose=0)#緊接著在向僵尸機(jī)發(fā)送一個syn/ack包
  if reply2[IP].id == (reply1[IP].id+2):#根據(jù)發(fā)送的三個來判斷僵尸機(jī)是否足夠空閑,并且ipid序號是否為遞增的干旁。
    print("IPID secquence is incremental and target appears to be idle,ZOMBIE LOCATED")
    response = raw_input("Do you want to use this zombie to perform a scan?(Y or N):")
    if response == "Y": #是否使用該僵尸機(jī)執(zhí)行掃描
      target = raw_input("Enter the IP address of the target system:") #輸入要掃描的目標(biāo)主機(jī)ip
      zombiescan(target, zombie)
  else:
    print("Either the IPID secquence is not incremental or the target if not idle. NOT A Good zombie")

def zombiescan(target, zombie):
  print("\nScanning target"+target+"with zombie"+zombie)
  print"\n-------Open Ports On Target-----\n"
  for port in range(1,100):#掃描目標(biāo)1-100的端口
    try:
      start_val = sr1(IP(dst=zombie)/TCP(flags="SA",dport=port),timeout=2,verbose=0)
      send(IP(src=zombie,dst=target)/TCP(flags="S",dport=port),verbose=0)
      end_val = sr1(IP(dst=zombie)/TCP(flags="SA"),timeout=2,verbose=0)
      if end_val[IP].id == (start_val[IP].id+2):
        print(port)
    except:
      pass

#主函數(shù)內(nèi)容
print"------Zombie Scan Suite------\n" #這是僵尸掃描套件程序
print"1.----Identity Zombie Host\n" #識別僵尸機(jī)
print"2.----Preform Zombie Scan\n"  #執(zhí)行掃描過程
aws = raw_input("Select an Option (1 or 2):")
if aws == "1":
  zombie = raw_input("Enter IP address to test IPID sequence:")
  ipid(zombie)
else:
  if aws == "2":
    zombie = raw_input("Enter IP address for zombie System:\n")
    target = raw_input("Enter IP address for Scan Target:\n")
    zombiescan(target,zombie)

0x04 NMAP實(shí)現(xiàn)僵尸掃描

同樣的,如果使用NMAP進(jìn)行僵尸掃描炮沐,首先找到合適的僵尸機(jī)是最關(guān)鍵的争群。

除此以為,NMAP本身提供了大量用于僵尸掃描的腳本程序(大概400多種)大年,我們可以在NMAP中調(diào)用這些腳本程序來判斷一個主機(jī)是否是一個合適的僵尸機(jī)换薄。同樣這些腳本所遵循也是根據(jù)對方IPIID是否遞增來判斷的。


NMAP掃描指定端口判斷主機(jī)是否是合適的zombie

root@kali:~# nmap -p445 192.168.86.132 --script=ipidseq.nse

Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-28 05:12 EDT
Nmap scan report for bogon (192.168.86.132)
Host is up (0.00033s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 00:0C:29:10:88:B3 (VMware)

Host script results:
|_ipidseq: Incremental!

Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds

可以看到該主機(jī)的ipid是遞增的哦翔试!
僵尸找到了轻要,開始進(jìn)行掃描。


NMAP 僵尸掃描

root@kali:~# nmap 192.168.86.130 -sI 192.168.1.132 -Pn -P 0-100

Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-28 05:16 EDT
Idle scan using zombie 192.168.1.132 (192.168.1.132:80); Class: Incremental

root@kali:~# nmap 192.168.86.130 -sI 192.168.86.132 -Pn -P 0-100

Starting Nmap 7.01 ( https://nmap.org ) at 2016-05-28 05:16 EDT
Idle scan using zombie 192.168.86.132 (192.168.86.132:80); Class: Incremental
Nmap scan report for bogon (192.168.86.130)
Host is up (0.051s latency).
Not shown: 977 closed|filtered ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垦缅,一起剝皮案震驚了整個濱河市冲泥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壁涎,老刑警劉巖凡恍,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異怔球,居然都是意外死亡咳焚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門庞溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來革半,“玉大人,你說我怎么就攤上這事流码∮止伲” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵漫试,是天一觀的道長六敬。 經(jīng)常有香客問我,道長驾荣,這世上最難降的妖魔是什么外构? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮播掷,結(jié)果婚禮上审编,老公的妹妹穿的比我還像新娘。我一直安慰自己歧匈,他們只是感情好垒酬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般勘究。 火紅的嫁衣襯著肌膚如雪矮湘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天口糕,我揣著相機(jī)與錄音缅阳,去河邊找鬼。 笑死景描,一個胖子當(dāng)著我的面吹牛十办,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伏伯,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼橘洞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了说搅?” 一聲冷哼從身側(cè)響起炸枣,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弄唧,沒想到半個月后适肠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡候引,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年侯养,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澄干。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡逛揩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出麸俘,到底是詐尸還是另有隱情辩稽,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布从媚,位于F島的核電站逞泄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拜效。R本人自食惡果不足惜喷众,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望紧憾。 院中可真熱鬧到千,春花似錦、人聲如沸稻励。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽望抽。三九已至加矛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間煤篙,已是汗流浹背斟览。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辑奈,地道東北人苛茂。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像鸠窗,于是被迫代替她去往敵國和親妓羊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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

  • Nmap掃描原理與用法 1Nmap介紹 Nmap掃描原理與用法PDF:下載地址 Nmap是一款開源免費(fèi)的網(wǎng)絡(luò)發(fā)現(xiàn)(...
    y0ungta1a閱讀 5,391評論 0 50
  • nmap使用指南(終極版) 原創(chuàng)2017-09-09hl0rey信安之路 一稍计、目標(biāo)指定 1.CIDR標(biāo)志位 192...
    用電熱毯烤豬閱讀 12,007評論 1 49
  • 下面這種掃描方法躁绸,極度隱蔽!有點(diǎn)像玄幻小說中的煉尸臣嚣。净刮。。硅则。就是那種需要各種材料淹父,選好時間,選好環(huán)境怎虫,煉制九九百十一...
    FKTX閱讀 1,371評論 0 0
  • Nmap輸出的是掃描目標(biāo)的列表暑认,以及每個目標(biāo)的補(bǔ)充信息,至于是哪些信息則依賴于所使用的選項(xiàng)大审≌杭剩“所感興趣的端口表格...
    令狐沖233閱讀 1,947評論 0 4
  • 我的大學(xué)同學(xué),來自外省饥努。 周末我去了親戚家捡鱼,和學(xué)校同一個城市。我和我的外省同學(xué)說起了酷愧,他周末一直在寢室〖菡現(xiàn)在想,我...
    可以再等閱讀 404評論 0 0