【安全牛學習筆記】主動資訊收集
發現主機和二次發現(arping)
被動資訊不與目標進行互動
主動資訊進行互動:傳送包到目標系統進行探測
使用代理或第三方的電腦tor goagent
ip層的掃描:
識別活的的主機
2,3,4層
2層的發現
arping 1.1.1.1 -c(傳送arp包的個數) l
nmap
nmap -sn(做ping掃描不做埠掃描)
netdiscover專用於二層發現
netdiscover -i eth0 -r(指定地址段) x.x.x.x/24
netdiscover -i x.txt(支援地址列表)
scapy的arp傳送
timeout verbose
a=sr1(ARP(pdst=prefix+atr(addr),timeout=1,verbose=0))
netdiscover -p閘盒模式
3層發現
4層的發現(識別ip是否線上)
基於tcp的主機發現
直接發ack的請求包時,相應端會返回拒絕包。因此可由此判斷是否主機線上
基於udp的主機發現
a=sr1(IP(dst='10.10.10.254')/UDP(dport=1111),timeout=0.1)
nmap進行主機掃描
nmap 10.10.10.1-254 -PU53(掃udp的53埠) -sn(不做埠掃描只做四層的主機發現)
nmap 10.10.10.1-254 -PU53 -sn
nmap -iL a.txt -PA80 -sn
4層發現
基於tcp三次握手
直接發未經請求的ack包,如果如果目標ip不線上,就沒反應,如果線上就會返回一個reset包提示你發的包格式不對
或者傳送syn包,正常通訊的包
基於udp53
通過埠不可達判斷是否
反正是有返回值就是線上的,無返回值就是不線上的
通過scapy進行指令碼的掃描
基於tcp的
#!/usr/bin/python
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
if len(sys.argv)!=2:
print"....."
sys.exit()
address=str(sys.argv[1])
prefix=address.split('.')[0]+'.'+address.split('.')[1]+'.'+address.split('.')[2]+'.'
for addr in range(1,254):
response=sr1(IP(dst=prefix+str(addr))/TCP(dport=2222,flags="A"),timeout=1,verbose=0)
try:
if int(response[TCP].flags)==4:(flags位的00000100)
print prefix+atr(addr)
except:
pass
。。
用nmap
發ack的包,如果目標地址是線上就會返回reset值
使用hping3
將tcpflags清0,等待返回的ack和reset
埠的掃描
1:tcp(三次握手)和udp的埠
response=sr1(IP(dst='X.X.X.X')/TCP(dport=80,flags='S'))傳送syn包,假設埠開啟,會返回一個syn/ack包,因此我返回一個第三次握手的reply,seq+1
reply=sr1(IP(dst='x.x.x.x')/TCP(dport=80,flags='A',ack=(response[TCP].seq+1)))
需設定iptables輸出規則
nmap
nmap -sT(tcp的全連線) x.x.x.x -p1-100
備註::::
:::::
::::任務16第13分鐘真正的三次握手連線仔細看一次
2:隱蔽掃描syn掃描,不建立完整連線
傳送syn包,當目標機返回syn/ack,我返回rst斷開連線
編寫scapy執行的py指令碼進行多埠的掃描
(135RPC服務139檔案共享服務)
nmap -sS(掃描使用syn方式,預設的也是這種方式) x.x.x.x -p
nmap x.x.x.x -p 11,12,13,14
nmap x.x.x.x -p 1-100
hping3 x.x.x.x --scan 1-100 -S
hping3 --spoof x.x.x.x -p 1-100 -S x.x.x.x(偽造地址)
殭屍掃描:極度隱藏,實施條件苛刻,可偽造地址,選擇殭屍機(系統的ipid是遞增)
只有scapy和nmap能夠進行傳輸
使用scapy::::
i=IP()
t=TCP()
rz=(i/t)(向殭屍機發送)
rt=(i/t)(向目標機發送)
rz[IP].dst='殭屍機ip'
rz[TCP].dport=445
rz[TCP].flags='SA'
rt[IP].src='殭屍機ip'
rt[IP].dst='目標機ip'
rt[TCP].dport=445
rt[TCP].flags='S'
python指令碼掃描埠
#!/usr/bin/python
import
logging
from scapy
def ipid(zombie):
reply1=sr1(IP(dst=zombie)/TCP(flags='SA',timeout=1))
send(IP(dst=zombie)/TCP(flags='SA'),verbose=0)
reply2=sr1(TP(dst=zombie)/TCP(flags='SA'),timeout=1)
if reply2[TP].id==(reply1[IP].id+2):
print '此機器可用zombie'
response=raw_input('使用此殭屍機?Y OR N')
if response=='Y':
target=raw_input('ip地址')
zombiescan(target,zombie)
else:
print '離開'
def zombiescan(target,zombie):
for port in range(1,100):
try:
start=sr1(IP(dst=zombie)/TCP(flags='SA',dport=port),timeout=1)
send(IP(src=zombie,dst=target)/TCP(flags='SA',dport=port))
end=sr1(IP(dst=zombie)/TCP(flags='SA',dport=port),timeout=1)
if end[IP].id==(start[TP].id+2):
print port
except:
pass
print'主程式掃描埠開始'
print('1:掃描改ip地址機器是否為殭屍機')
print('2:進行殭屍掃描')
ans=raw_input('1 or 2')
if ans=='1':
zombie=raw_input('待掃描的ip為')
ipid(zombie)
else:
if ans=='2':
zombie=raw_input('殭屍機的ip為')
target=raw_input('目標機的ip為')
zombiescan(target,zombie)
使用nmap::::
nmap -p445 x.x.x.x --script=ipidseq.nse(檢測是否是一個好的殭屍機)
nmap x.x.x.x(target) -sI x.x.x.x(殭屍機) -Pn -p 1-100
埠服務的掃描
識別埠應用
識別目標作業系統
提高攻擊效率
banner捕獲
軟體開發商
軟體名稱
服務名稱
版本號
直接發現漏洞和弱點
建立連線
nv -nv x,x,x,x xxx進行通訊連線
服務識別
作業系統識別
snmp分析
防火牆識別
版本識別:::
使用scapy的python指令碼
import socket
banner=socker(socker.AF_INET,socket.SOCK_STREAN)
banner.connect('x.x.x.x',21)
ready=select.select([banner],[],[],1)
banner.recv(4096)
banner.close()
dmitry -p(執行tcp掃描) -pb(讀取埠的banner資訊) x.x.x.x
nmap -sT x.x.x.x -p xx --script=banner.nse
amap(專用掃描banner服務-B引數)
nmap -sV x.x.x.x -p x-xx使用(-sV使用指紋資訊來識別服務)
nmap -Pn -sT 202.202.43.106 --script=banner.nse
作業系統識別:::
通過ttl值進行識別作業系統windows128(65-128) linux64(1-64) Unix255(129-255)
nmap -O x.x.x.x
xprob2
被動式的作業系統識別
p0f
161 162
67 68
mib tree
dpkg -L
網路交換機資料庫waf
snmp
smb掃描
nmap
nbtscan
enum4linux
安裝vm的tools的時候需要安裝系統的標頭檔案
apt-get install linux-headers-4.12.0-kali2-all-amd64
lsb_release -a
防火牆的識別
nmap -sA x.x.x.x -pxx
nmap x.x.x.x --script=http-waf-detect.nse
fhs
etc
pentest