1. 程式人生 > >小白日記10:kali滲透測試之埠掃描-UDP、TCP、殭屍掃描、隱蔽掃描

小白日記10:kali滲透測試之埠掃描-UDP、TCP、殭屍掃描、隱蔽掃描

埠掃描

二三四層發現的目的只是為了準確發現所有活著主機IP,確定攻擊面,埠掃描即發現攻擊點,發現開放埠。埠對應網路服務及應用端程式,服務端程式的漏洞通過埠攻入。【所有的掃描結果,都不要完全相信】 一個埠就是一個潛在的通訊通道,也就是一個入侵通道。對目標計算機進行埠掃描,能得到許多有用的資訊。進行掃描的方法很多,可以是手工進行掃描,也可以用埠掃描軟體進行掃描。在手工進行掃描時,需要熟悉各種命令。對命令執行後的輸出進行分析。用掃描軟體進行掃描時,許多掃描器軟體都有分析資料的功能。通過埠掃描,可以得到許多有用的資訊,從而發現系統的安全漏洞。 對埠掃描中出現的服務結果,不要相信,那只是一個慣例,並不準確
UDP埠掃描【ports off:迴應】 完整的UDP應用層請求,準確高,但耗時大,相比TCP還是會比較快。瞭解每一種基於UDP的應用包頭結構,構造專門基於應用層的協議包,結果會更準確。
scapy 
#!/usr/bin/python

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

if len( sys.argv ) !=4:
   print "Usage - ./udp_scan.py [Target.IP] [First Port] [Last Port]"
   print "Example - ./udp_scan.py 1.1.1.1 1 100"
   print "Example will UDP port scan ports 1 through 100 on 1.1.1.1"
   sys.exit()

ip=sys.argv[1]
start=int(sys.argv[2])
end=int(sys.argv[3])

for port in range(start,end):
  a=sr1(IP(dst=ip)/UDP(dport=port),timeout=5,verbose=0)
  time.sleep(1)          #防止因掃描過快,造成誤判
  if a==None:
     print port
  else:
     pass
Nmap
[email protected]:~# nmap 192.168.1.1 -sU -p 53,67   #預設不加-p,掃描1000常用埠

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 11:39 CST
Nmap scan report for DD-WRT (192.168.1.1)
Host is up (0.0048s latency).
PORT   STATE         SERVICE
53/udp open          domain
67/udp open|filtered dhcps
MAC Address: 1C:BD:B9:27:D5:32 (D-Link International)

Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds
指定地址列表 nmap -iL iplist.txt -sU -p 1-200

TCP埠掃描

1、全連線掃描——SYN、SYN+ACK、ACK

建立完整TCP三次連線,結果最最準確不需要任何許可權,系統中的任何使用者都有權利使用這個呼叫,而且速度快,但容易被發覺。 scapy對全連線掃描比較困難 若直接給目標系統發SYN+ACK/ACK,dst會認為是異常包,迴應RST TCP掃描: 【作業系統核心,會認為沒建立完整的連線,會返回一個RST,表示請求斷開連線】需要避免接受此包,以免混淆後續操作。讓RST包不產生
iptables,linux防火牆,工作位置在核心之前 使用策略:iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.20.2 -j DROP 再執行指令碼
#!/usr/bin/python

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

SYN=IP(dst="1.1.1.1")/TCP(doprt=80,flags="S")

print"-- SENT --"
SYN.display()

print"\n\n-- REVEIED"
response=sr1(SYN,timeout=1,verbose=0)
response.diplay()

if int(response[TCP],flags)==18:
   print "\n\n-- SENT --"
   A=IP(dst="192.168.1.134")/TCP(dport=25,flags="A",ack=(response[TCP].seq+1))
   A.display()
   print"\n\n-- RECEIVED --"
   response2=sr1(A,timeout=1,verbose=0)
   response2.display()
else:
   print "SYN-ACK not returned"

nmap   #-sT tcp連線
[email protected]:~# nmap -sT 192.168.1.115 -p 100-200         

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 10:56 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.41s latency).
Not shown: 99 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 5.02 seconds
【不加-p,會掃描1000個常用埠】

Dmitry 用來查詢IP或域名WHOIS資訊,但是不能判斷出這個網路範圍
[email protected]:~# dmitry 
Deepmagic Information Gathering Tool
"There be some deep magic going on"

Usage: dmitry [-winsepfb] [-t 0-9] [-o %host.txt] host
  -o	 Save output to %host.txt or to file specified by -o file
  -i	 Perform a whois lookup on the IP address of a host
  -w	 Perform a whois lookup on the domain name of a host
  -n	 Retrieve Netcraft.com information on a host
  -s	 Perform a search for possible subdomains
  -e	 Perform a search for possible email addresses
  -p	 Perform a TCP port scan on a host           #執行TCP的埠掃描
* -f	 Perform a TCP port scan on a host showing output reporting filtered ports
* -b	 Read in the banner received from the scanned port
* -t 0-9 Set the TTL in seconds when scanning a TCP port ( Default 2 )
*Requires the -p flagged to be passed

NC
[email protected]:~# nc -nv -w 1 -z 192.168.1.115 100-200                                                                             #-nv:n表示跟數字內容,v不做域名解析 -w超時時間  -z使用掃描模式
(UNKNOWN) [192.168.1.115] 139 (netbios-ssn) open
(UNKNOWN) [192.168.1.115] 135 (loc-srv) open
for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.1 $x; done | grep open for x in $(seq 1 254); do nc -nv -w 1 -z 1.1.1.$x 80; done

2、隱蔽掃描(SYN足夠準確,除非極其特殊情況)

不建立完整的TCP連線,不在應用層留痕,只能在網路層有些跡像可循 1.只發SYN包,若收到SYN+ACK,則埠開放;若收到R+A,埠關閉
>>> a=sr1(IP(dst="192.168.1.1")/TCP(flags="S"),timeout=1,verbose=0)  #預設80
>>> a.display()
###[ IP ]###
  version= 4L
  ihl= 5L
  tos= 0x0
  len= 44
  id= 0
  flags= DF
  frag= 0L
  ttl= 64
  proto= tcp
  chksum= 0xb6fb
  src= 192.168.1.1
  dst= 192.168.1.127
  \options\
###[ TCP ]###
     sport= http
     dport= ftp_data
     seq= 3205019844
     ack= 1
     dataofs= 6L
     reserved= 0L
     flags= SA           #SYN+ACK
     window= 5840
     chksum= 0x8543
     urgptr= 0
     options= [('MSS', 1460)]
###[ Padding ]###
        load= '\x00\x00'
>>> a=sr1(IP(dst="192.168.1.1")/TCP(flags="S",dport=22222),timeout=1,verbose=0)
>>> a.display()
###[ IP ]###
  version= 4L
  ihl= 5L
  tos= 0x0
  len= 40
  id= 0
  flags= DF
  frag= 0L
  ttl= 64
  proto= tcp
  chksum= 0xb6ff
  src= 192.168.1.1
  dst= 192.168.1.127
  \options\
###[ TCP ]###
     sport= 22222
     dport= ftp_data
     seq= 0
     ack= 1
     dataofs= 5L
     reserved= 0L <strong style="font-family: Arial, Helvetica, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"></strong><pre name="code" class="plain">     flags= RA       #RST+ACK  <strong style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></strong><pre name="code" class="plain" style="display: inline !important;"><strong style="font-family: Arial, Helvetica, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"></strong><pre name="code" class="plain" style="display: inline !important;"><span style="color:#ff0000;">windows系統預設100以下埠不開放,若開著防火牆,也只會應答RA</span>
window= 0 chksum= 0xd51c urgptr= 0 options= {}###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00'>>> 可用python指令碼實現
#!/usr/bin/python

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

if len( sys.argv ) !=4:
   print "Usage - ./syn_scan.py [Target.IP] [StartPort] [End Port]"
   print "Example - ./syn_scan.py 1.1.1.1 1 100"
   print "Example will TCP SYN scan ports 1 through 100 on 1.1.1.1"
   sys.exit()

ip = str(sys.argv[1])
start = int(sys.argv[2])
end = int(sys.argv[3])


for port in range(start,end):
   a=sr1(IP(dst=ip)/TCP(dport=port),timeout=0.1,verbose=0)
   if a ==None:
     pass
   else:
     if int(a[TCP].flags)==18:
        print port
     else:
        pass
若不會或沒功夫寫指令碼,可以用nmap

2、Nmap

syn(亂序掃描)

[email protected]:~# nmap 192.168.1.115 -p100-200                   #預設-sS(SYN)

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:46 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.0010s latency).
Not shown: 99 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.41 seconds
[email protected]:~# nmap 192.168.1.115 -p100-200 --open       <span style="color:#ff0000;">#若目標主機在防火牆保護</span>下,--open可過濾雜項

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:49 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00047s latency).
Not shown: 99 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.33 seconds
[email protected]:~# nmap -sS 192.168.1.115 -p100-200 --open     #SYN

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:50 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00033s latency).
Not shown: 99 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
[email protected]:~# nmap -sS 192.168.1.115 -p100-200,445,3389 --open  #用","分隔指定埠

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 09:50 CST
Nmap scan report for PC (192.168.1.115)
Host is up (0.00021s latency).
Not shown: 100 closed ports
PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 08:00:27:2B:32:0F (Oracle VirtualBox virtual NIC)

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

3、Hping(結果比較清晰)

[email protected]:~# hping3  192.168.1.115 --scan 100-200 -S     #-S:SYN包
Scanning 192.168.1.115 (192.168.1.115), port 100-200
101 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name |  flags  |ttl| id  | win | len |
+----+-----------+---------+---+-----+-----+-----+
  135 loc-srv    : .S..A... 128 27139  8192    46
  139 netbios-ssn: .S..A... 128 28163  8192    46
All replies received. Done.
Not responding ports: 
源地址欺騙 必須有權登陸偽造的IP地址主機,查看回包,或者能在交換機做映象埠

[email protected]:~# hping3 -c 100 -S --spoof 192.168.1.140 -p ++1 192.168.1.1                                                        #-c指定包數量,--spoof偽造IP,src,-p指定埠   dst
HPING 192.168.1.1 (eth0 192.168.1.1): S set, 40 headers + 0 data bytes

--- 192.168.1.1 hping statistic ---
100 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

殭屍掃描

極度隱蔽,實施條件苛刻,原理:能實現地址偽造(目前邊界防火牆基本會過濾),通過殭屍機(閒置系統,系統使用遞增PID[只有早期的XP、2000、2003])
scapy
i=IP()
t=TCP()
rz=(i/t)                  #殭屍機
rt=(i/t)                  #目標機
rz[IP].dst=IPz            #殭屍機IP
rz[TCP].dport=445         #windows系統下445都預設開放 #殭屍機需保證埠開放
rz[TCP].flags="SA"        #SYN+ACK
rt[IP].src=IPz            #偽造源地址為殭屍機IP
rt[IP].dst=IPt            #目標IP
rt[TCP].dport=22
rt[TCP].flags="S"         #SYN
</pre><pre name="code" class="plain" style="font-size:24px;">az1=sr1(rz)  /  at=sr1(rt)  /  az2=sr1(rz)
#向殭屍發的第一包  #向目標機器發包,回包是發給殭屍機    #向殭屍機發包
az1.display() /  az2.display()
指令碼

namp 發現殭屍 nmap -p445 192.168.1.133 --script=ipidseq.nse  ##--script
[email protected]:~# nmap -p445 192.168.1.1 --script=ipidseq.nse

Starting Nmap 7.01 ( https://nmap.org ) at 2016-09-11 12:57 CST
Nmap scan report for DD-WRT (192.168.1.1)
Host is up (0.0037s latency).
PORT    STATE  SERVICE
445/tcp closed microsoft-ds
MAC Address: 1C:BD:B9:27:D5:32 (D-Link International)

Host script results:
|_ipidseq: All zeros             #全為零,則不能做殭屍機 #incremental為遞增,則可

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

掃描目標 nmap 172.16.36.135 -sI 172.16.36.134 -Pn -p 0-100 ## [dst] -sI [zome]
小白日記,未完待續……

相關推薦

日記10kali滲透測試掃描-UDPTCP殭屍掃描隱蔽掃描

埠掃描 二三四層發現的目的只是為了準確發現所有活著主機IP,確定攻擊面,埠掃描即發現攻擊點,發現開放埠。埠對應網路服務及應用端程式,服務端程式的漏洞通過埠攻入。【所有的掃描結果,都不要完全相信】 一

日記36kali滲透測試Web滲透-手動漏洞挖掘(二)-突破身份認證,作業系統任意命令執行漏洞

手動漏洞挖掘 ###################################################################################### 手動漏洞挖掘

日記30kali滲透測試Web滲透-掃描工具-Skipfish

WEB滲透-skipfish Skipfish是一個命令列模式,以C語言編寫的積極的Web應用程式的安全性偵察工具,沒有代理模式。 它準備了一個互動為目標的網站的站點地圖進行一個遞迴爬網和基於字典的探

日記11kali滲透測試服務掃描-bannerdmitrynmap特徵庫作業系統識別SNMP

<strong>[email protected]:~# xprobe2 192.168.1.115 </strong> Xprobe2 v.0.3 Copyright (c) 2002-2005 [email protected], [email pro

日記29kali滲透測試Web滲透-掃描工具-Vega

WEB掃描工具-Vega  純圖形化介面,Java編寫的開源web掃描器。兩種工作模式:掃描模式和代理模式【主流掃描功能】。用於爬站。處理表單,注入測試等。支援SSL:http://vega/ca.c

日記12kali滲透測試服務掃描(二)-SMB掃描

SMB掃描 Server Message Block 協議。與其他標準的TCP/IP協議不同,SMB協議是一種複雜的協議,因為隨著Windows計算機的開發,越來越多的功能被加入到協議中去了,很難區分哪些概念和功能應該屬於Windows作業系統本身,哪些概念應該屬於SMB

日記18kali滲透測試緩衝區溢位例項(二)--Linux,穿越火線1.9.0

Linux系統下穿越火線-緩衝區溢位 原理:crossfire 1.9.0 版本接受入站 socket 連線時存在緩衝區溢位漏洞。 工具: 除錯工具:edb; ###python在漏洞溢位方面的滲透

日記8kali滲透測試主動資訊收集(二)三層發現pingtraceroutescapynmapfpingHping

 三層發現 三層協議有:IP以及ICMP協議(internet管理協議).icmp的作用是用來實現intenet管理的,進行路徑的發現,網路通訊情況,或者目標主機的狀態;在三層發現中主要使用icmp協

日記20kali滲透測試之後滲透測試階段(一)--上傳工具

後滲透測試階段--上傳工具 為防止管理員將漏洞補上後,我們無法再通過該漏洞控制對方主機,所以需要進行後滲透測試階段 1、上傳各種工具 2、提權:為了全面控制目標系統 3、擦除攻擊痕跡:防止管理員通過

滲透測試掃描(二)

埠掃描:埠對應網路服務及應用端程式 服務端程式的漏洞通過埠攻入 發現開放的埠 更具體的攻擊面 UDP埠掃描: 如果收到ICMP埠不可達,表示埠關閉 如果沒有收到回包,則證明埠是

必看測試人有必要參考的軟體測試工作規範

小白必看:測試人有必要參考的軟體測試工作規範        為了規範測試工作、減少開發與測試之前的溝通成本、保證專案進度、提高軟體質量,測試人員有必要參考這份軟體測試工作規範。1.1. 編碼規範  軟體程式開發需要遵守編碼規範,一是可以減少程式碼的維護成本,提高

工具推薦Dradis,Kali滲透測試報告生成器

滲透測試報告是任何安全評估活動 中的 關鍵可交付成果。滲透測試中 , 最終可交付成果是 一份報告,展示了所提供的服務, 使用的方法 , 發現的結果和建議。 許多滲透測試人員發現 報告的製作是 一個無聊的過程 , 因為它需要大量的時間和精力。在本文中 , 我們將討論

kali滲透測試工具Crunch

Crunch是一種建立密碼字典工具,該字典通常用於暴力破解。使用Crunch工具生成的密碼可以傳送到終端、檔案或另一個程式。下面將介紹使用Crunch工具建立密碼字典。 crunch命令常用的選項如下所示。 •-o:用於指定輸出字典檔案的位置。 •-b:指定寫入檔案最大的位

kali滲透測試工具Nmap

Nmap是一個免費開放的網路掃描和嗅探工具包,也叫網路對映器(Network Mapper)。該工具其基本功能有三個,一是探測一組主機是否線上;其次是掃描主機埠,嗅探所提供的網路服務;三是可以推斷主機所用的作業系統。通常,使用者利用Nmap來進行網路系統安全的評估,而黑客則

Kali 滲透測試- 全主動信息收集-發現

主動信息收集╋━━━━━━━━━━━━━━━━━━━━━╋┃主動信息收集 ┃┃無法避免留下訪問的痕跡 ┃┃使用受控的第三方電腦進行探測 ┃ ┃ 使用代理或已經被控制的主機

Kali滲透測試2-抓包/DNS工具

abd trace 數據 CP str 2-2 rec actual ali 轉載請註明出處。 TCPDUMP:命令行網絡抓包工具tcpdump -h tcpdump version 4.9.2 libpcap version 1.8.1 OpenSSL 1.1.0h

Kali滲透測試1-Netcat

crypt org programs serve https play eight ssa mes What is Netcat? Netcat is a featured networking utility which reads and writes data a

#鑑別程式設計師是大牛還是?網友簡單,從髮量就可以看出啊

程式設計師的技術高低是由什麼決定的呢?是有你的工作年限,還是你的專案經驗?我覺得都可以作為一個判斷依據,其中還有一個是什麼?沒錯,聰明的小夥伴已經猜出來了,就是你的發亮。 有網友在釋出了一個如何鑑別菜鳥和大神程式設計師的帖子,原貼是這樣的: 在這裡我推薦下自己整理的資料,我自己是一名從事

kali滲透測試win10

通過msfvenom生成木馬 msfvenom -p windows/meterpreter/reverse_tcp lhost=自己地址 lport=埠號 -f exe x>XX.exe 把木馬傳過去,點開就會往自己開放的ip和埠傳送一個tcp連結 在kali中 msfcon

學python入門第一步

Python的安裝: 進入Python官方網站下載安裝包 點選導航欄的 Downloads 會自動識別你的windows系統 你會看到 Python3.6.2 和 Python2.7.13 (32位系統)的安裝包 注:Python3以後版本不再向Python2進行相容,所有如果你