1. 程式人生 > >主動信息收集-發現(四)

主動信息收集-發現(四)

信息安全;security+;

╋━━━━━━━━━━━━━━━━━━━━╋

┃發現-----四層發現 ┃

┃ 優點 ┃

┃ 可路由且結果可靠 ┃

┃ 不太可能被防火墻過濾 ┃

┃ 甚至可以發現所有端口都被過濾的主機 ┃

┃ 缺點 ┃

┃ 基於狀態過濾的防火墻可能過濾掃描 ┃

┃ 全端口掃描速度慢 ┃

┃ TCP ┃

┃ 未經請求的ACK-----RST ┃

┃ SYN-----SYN/ACK、RST ┃

┃ UDP ┃

┃ ICMP端口不可達、一去不復返 ┃

╋━━━━━━━━━━━━━━━━━━━━╋

╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋

┃發現-----四層發現 ┃

┃ACK-----TCP Port-----RST ┃

┃Scapy ┃

┃ i=IP() ┃

┃ i.dst"1.1.1.1" ┃

┃ t=TCP() ┃

┃ t.flags=‘A‘ ┃

┃ r=(i/t) ┃

┃ a=sr1(r) ┃

┃ a.display() ┃

┃a=sr1(IP(dst="1.1.1.1")/TCP(dport=80,flags=‘A‘),timeout=1)) ┃

┃ACK_ping.py ┃

╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋

[email protected]:~# scapy

WARNING: No route found for IPv6 destination :: (no default route?)

Welcome to Scapy (2.2.0)

>>> i=IP()

>>> t=TCP()

>>> r=(i/t)

>>> r[IP].dst="192.168.1.138"

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.138

\options\

###[ TCP ]###

sport= ftp_data

dport= http

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= S

window= 8192

chksum= None

urgptr= 0

options= {}

>>> r[TCP].flags="A"

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.138

\options\

###[ TCP ]###

sport= ftp_data

dport= http

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= A

window= 8192

chksum= None

urgptr= 0

options= {}

>>> a=sr1(r)

Begin emission:

.*Finished to send 1 packets.

Received 2 packets, got 1 answers, remaining 0 packets

>>> a.display()

###[ IP ]###

version= 4L

ihl= 5L

tos= 0x0

len= 40

id= 18868

flags=

frag= 0L

ttl= 128

proto= tcp

chksum= 0x20c0

src= 192.168.1.138

dst= 192.168.77.129

\options\

###[ TCP ]###

sport= http

dport= ftp_data

seq= 0

ack= 0

dataofs= 5L

reserved= 0L

flags= R

window= 32767

chksum= 0x5f21

urgptr= 0

options= {}

###[ Padding ]###

load= ‘\x00\x00\x00\x00\x00\x00‘

>>> r[TCP].dport=445

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.138

\options\

###[ TCP ]###

sport= ftp_data

dport= microsoft_ds

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= A

window= 8192

chksum= None

urgptr= 0

options= {}

>>> a1=sr1(r)

Begin emission:

.*Finished to send 1 packets.

Received 2 packets, got 1 answers, remaining 0 packets

>>> a1.display()

###[ IP ]###

version= 4L

ihl= 5L

tos= 0x0

len= 40

id= 19321

flags=

frag= 0L

ttl= 128

proto= tcp

chksum= 0x1efb

src= 192.168.1.138

dst= 192.168.77.129

\options\

###[ TCP ]###

sport= microsoft_ds

dport= ftp_data

seq= 0

ack= 0

dataofs= 5L

reserved= 0L

flags= R

window= 32767

chksum= 0x5db4

urgptr= 0

options= {}

###[ Padding ]###

load= ‘\x00\x00\x00\x00\x00\x00‘

>>> r[IP].dst="192.168.1.11"

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.11

\options\

###[ TCP ]###

sport= ftp_data

dport= microsoft_ds

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= A

window= 8192

chksum= None

urgptr= 0

options= {}

>>> a2=sr1(r,timeout=1)

Begin emission:

.*Finished to send 1 packets.


Received 2 packets, got 1 answers, remaining 0 packets

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.11

\options\

###[ TCP ]###

sport= ftp_data

dport= microsoft_ds

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= A

window= 8192

chksum= None

urgptr= 0

options= {}

>>> r[IP].dst="192.168.1.1"

>>> r[TCP].dport=23419 //數字不需要雙引號

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= tcp

chksum= None

src= 192.168.77.129

dst= 192.168.1.1

\options\

###[ TCP ]###

sport= ftp_data

dport= 23419

seq= 0

ack= 0

dataofs= None

reserved= 0

flags= A

window= 8192

chksum= None

urgptr= 0

options= {}

>>> a=sr1(r)

Begin emission:

.*Finished to send 1 packets

.................

>>> a=sr1(r,timeout=1)

Begin emission:

.Finished to send 1 packets.

*

Received 2 packets, got 0 answers, remaining 1 packets

>>> a=sr1(IP(dst="192.168.1.127")/TCP(dport=80,flags="A"),timeout=1)

Begin emission:

......*Finished to send 1 packets.

Received 7 packets, got 1 answers, remaining 0 packets

>>> a

<IP version=4L ihl=5L tos=0x0 len=40 id=37320 flags= frag=0L ttl=128 proto=tcp chksum=0xd8b6 src=192.168.1.127 dst=192.168.77.129 options=[] |<TCP sport=http dport=ftp_data seq=0 ack=0 dataofs=5L reserved=0L flags=R window=32767 chksum=0x5f2c urgptr=0 |<Padding load=‘\x00\x00\x00\x00\x00\x00‘ |>>>

>>> a=sr1(IP(dst="192.168.1.1")/TCP(dport=80,flags="A"),timeout=1)

Begin emission:

*Finished to send 1 packets.

Received 1 packets, got 0 answers, remaining 1 packets

╭────────────────────────────────────────────╮

[ACK_Ping.py]

#!/usr/bin/python

import loggging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

if len(sys.argv)!=2;

print "Usage - ./ACK Ping.py [/24 network address]"

print "Example - ./ACK Ping.py 1.1.1.0"

print "Example will perform a TCP ACK ping scan of the 1.1.1.0/24 range"

sys.exit()

address=str(sys.argv[1])

prefix= address.split(‘.‘)[0]+‘.‘+address.split(‘.‘)[1]+‘.‘+address.split(‘.‘)[2]+‘.‘

for add in range[1,254];

response=sr1(IP(dst=prefix+str(addr)/TCP(dport=22222,flags=‘A‘),timeout=0.1,verbose=0)

try:

if int(response[TCP],flags)==4;

print prefix+str(addr)

except:

pass

╰────────────────────────────────────────────╯

[email protected]:~# chmod u+x ACK_Ping.py

[email protected]:~# ./ACK_Ping.py

[email protected]:~# ./ACK_Ping.py 192.168.1.0

╋━━━━━━━━━━━━━━━━╋

┃發現-----四層發現 ┃

┃ UDP-----UDP Port-----ICMP ┃

┃ u=UDP() ┃

┃ u.dport=33333 ┃

┃ r=(i/u) ┃

┃ a-sr1(r,timeout=1,verbose=1) ┃

┃ A.display() ┃

┃ ICMP ┃

┃ ┃

┃ UDP_Ping.py ┃

┃ UDP發現不可靠 ┃

╋━━━━━━━━━━━━━━━━╋

>>> i=IP()

>>> u=UDP()

>>> r=(i/u)

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= udp

chksum= None

src= 127.0.0.1

dst= 127.0.0.1

\options\

###[ UDP ]###

sport= domain

dport= domain

len= None

chksum= None

>>> r[IP].dst="192.168.1.138"

>>> r[TCP].dport=7345

Traceback (most recent call last):

File "<console>", line 1, in <module>

File "/usr/lib/python2.7/dist-packages/scapy/packet.py", line 770, in __getitem__

raise IndexError("Layer [%s] not found" % lname)

IndexError: Layer [TCP] not found

>>> r[UDP].dport=7345

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= udp

chksum= None

src= 192.168.77.129

dst= 192.168.1.138

\options\

###[ UDP ]###

sport= domain

dport= 7345

len= None

chksum= None

>>> a=sr1(r)

Begin emission:

.Finished to send 1 packets.

.*

Received 3 packets, got 1 answers, remaining 0 packets

>>> a.display()

>>> r[IP].dst="192.168.1.11"

>>> a=sr1(r,timeout=1)

Begin emission:

.Finished to send 1 packets.

Received 1 packets, got 0 answers, remaining 1 packets

>>> r.display()

###[ IP ]###

version= 4

ihl= None

tos= 0x0

len= None

id= 1

flags=

frag= 0

ttl= 64

proto= udp

chksum= None

src= 192.168.77.129

dst= 192.168.1.11

\options\

###[ UDP ]###

sport= domain

dport= 7345

len= None

chksum= None

>>> a=sr1(r,timeout=1)

Begin emission:

Finished to send 1 packets.

Received 0 packets, got 0 answers, remaining 1 packets

>>> a=sr1(IP(dst="192.168.1.138")/UDP(dport=7456),timeout=1)

Begin emission:

.Finished to send 1 packets.

Received 1 packets, got 0 answers, remaining 1 packets

╭────────────────────────────────────────────╮

[UDP_Ping.py]

#!/usr/bin/python

import loggging

logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

from scapy.all import *

if len(sys.argv)!=2;

print "Usage - ./ACK Ping.py [/24 network address]"

print "Example - ./ACK Ping.py 1.1.1.0"

print "Example will perform a TCP ACK ping scan of the 1.1.1.0/24 range"

sys.exit()

address=str(sys.argv[1])

prefix= address.split(‘.‘)[0]+‘.‘+address.split(‘.‘)[1]+‘.‘+address.split(‘.‘)[2]+‘.‘

for add in range[1,254];

response=sr1(IP(dst=prefix+str(addr)/UCP(dport=33333),timeout=0.1,verbose=0)

try:

if int(response[IP],proto)==1;

print prefix+str(addr)

except:

pass

╰────────────────────────────────────────────╯

[email protected]:~# ./UDP_Ping.py 192.168.1.0

[email protected]:~# ./UDP_Ping.py 221.144.145.0

該筆記為安全牛課堂學員筆記,想看此課程或者信息安全類幹貨可以移步到安全牛課堂


Security+認證為什麽是互聯網+時代最火爆的認證?


牛妹先給大家介紹一下Security+

Security+ 認證是一種中立第三方認證,其發證機構為美國計算機行業協會CompTIA ;是和CISSP、ITIL 等共同包含在內的國際 IT 業 10 大熱門認證之一,和CISSP偏重信息安全管理相比,Security+ 認證更偏重信息安全技術和操作。

通過該認證證明了您具備網絡安全,合規性和操作安全,威脅和漏洞,應用程序、數據和主機安全,訪問控制和身份管理以及加密技術等方面的能力。因其考試難度不易,含金量較高,目前已被全球企業和安全專業人士所普遍采納。

Security+認證如此火爆的原因?

原因一:在所有信息安全認證當中,偏重信息安全技術的認證是空白的, Security+認證正好可以彌補信息安全技術領域的空白 。

目前行業內受認可的信息安全認證主要有CISP和CISSP,但是無論CISP還是CISSP都是偏重信息安全管理的,技術知識講的寬泛且淺顯,考試都是一帶而過。而且CISSP要求持證人員的信息安全工作經驗都要5年以上,CISP也要求大專學歷4年以上工作經驗,這些要求無疑把有能力且上進的年輕人的持證之路堵住。在現實社會中,無論是找工作還是升職加薪,或是投標時候報人員,認證都是必不可少的,這給年輕人帶來了很多不公平。而Security+的出現可以掃清這些年輕人職業發展中的障礙,由於Security+偏重信息安全技術,所以對工作經驗沒有特別的要求。只要你有IT相關背景,追求進步就可以學習和考試。


原因二: IT運維人員工作與翻身的利器。

在銀行、證券、保險、信息通訊等行業,IT運維人員非常多,IT運維涉及的工作面也非常廣。是一個集網絡、系統、安全、應用架構、存儲為一體的綜合性技術崗。雖然沒有程序猿們“生當做光棍,死亦寫代碼”的悲壯,但也有著“鋤禾日當午,不如運維苦“的感慨。天天對著電腦和機器,時間長了難免有對於職業發展的迷茫和困惑。Security+國際認證的出現可以讓有追求的IT運維人員學習網絡安全知識,掌握網絡安全實踐。職業發展朝著網絡安全的方向發展,解決國內信息安全人才的匱乏問題。另外,即使不轉型,要做好運維工作,學習安全知識取得安全認證也是必不可少的。


原因三:接地氣、國際範兒、考試方便、費用適中!

CompTIA作為全球ICT領域最具影響力的全球領先機構,在信息安全人才認證方面是專業、公平、公正的。Security+認證偏重操作且和一線工程師的日常工作息息相關。適合銀行、證券、保險、互聯網公司等IT相關人員學習。作為國際認證在全球147個國家受到廣泛的認可。

在目前的信息安全大潮之下,人才是信息安全發展的關鍵。而目前國內的信息安全人才是非常匱乏的,相信Security+認證一定會成為最火爆的信息安全認證。

近期,安全牛課堂在做此類線上培訓,感興趣可以了解

本文出自 “11662938” 博客,請務必保留此出處http://11672938.blog.51cto.com/11662938/1965020

主動信息收集-發現(四)