SYN Scans

Cổ điển SYN Scan có thể được khởi tạo bằng cách thực hiện các lệnh sau từ dấu nhắc Scapy của:
>>> sr1(IP(dst="72.14.207.99")/TCP(dport=80,flags="S"))
Đoạn trên sẽ gửi một gói tin SYN duy nhất để Google cổng 80 và sẽ bỏ thuốc lá sau khi cập nhật dữ liệu một phản ứng duy nhất:
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
<IP  version=4L ihl=5L tos=0x20 len=44 id=33529 flags= frag=0L ttl=244
proto=TCP chksum=0x6a34 src=72.14.207.99 dst=192.168.1.100 options=// |
<TCP  sport=www dport=ftp-data seq=2487238601L ack=1 dataofs=6L reserved=0L
flags=SA window=8190 chksum=0xcdc7 urgptr=0 options=[('MSS', 536)] |
<Padding  load='V\xf7' |>>>
Từ đầu ra ở trên, chúng ta có thể thấy Google trở cờ "SA" hoặc SYN-ACK chỉ ra một cổng mở.

Sử dụng hoặc ký hiệu để quét cổng 400 qua 443 trên hệ thống:
>>> sr(IP(dst="192.168.1.1")/TCP(sport=666,dport=(440,443),flags="S"))
hoặc là
>>> sr(IP(dst="192.168.1.1")/TCP(sport=RandShort(),dport=[440,441,442,443],flags="S"))
Để nhanh chóng xem xét phản ứng chỉ cần yêu cầu một bản tóm tắt của các gói dữ liệu thu thập được:
>>> ans,unans = _
>>> ans.summary()
IP / TCP 192.168.1.100:ftp-data > 192.168.1.1:440 S ======> IP / TCP 192.168.1.1:440 > 192.168.1.100:ftp-data RA / Padding
IP / TCP 192.168.1.100:ftp-data > 192.168.1.1:441 S ======> IP / TCP 192.168.1.1:441 > 192.168.1.100:ftp-data RA / Padding
IP / TCP 192.168.1.100:ftp-data > 192.168.1.1:442 S ======> IP / TCP 192.168.1.1:442 > 192.168.1.100:ftp-data RA / Padding
IP / TCP 192.168.1.100:ftp-data > 192.168.1.1:https S ======> IP / TCP 192.168.1.1:https > 192.168.1.100:ftp-data SA / Padding
Đoạn trên sẽ hiển thị cặp kích cầu / đáp ứng cho tàu thăm dò trả lời. Chúng ta có thể chỉ hiển thị các thông tin chúng tôi được quan tâm bằng cách sử dụng một vòng lặp đơn giản:
>>> ans.summary( lambda(s,r): r.sprintf("%TCP.sport% \t %TCP.flags%") )
440      RA
441      RA
442      RA
https    SA
Thậm chí tốt hơn, một bảng có thể được xây dựng bằng cách sử dụng make_table () để hiển thị thông tin về nhiều mục tiêu:
>>> ans,unans = sr(IP(dst=["192.168.1.1","yahoo.com","slashdot.org"])/TCP(dport=[22,80,443],flags="S"))
Begin emission:
.......*.**.......Finished to send 9 packets.
**.*.*..*..................
Received 362 packets, got 8 answers, remaining 1 packets
>>> ans.make_table(
...    lambda(s,r): (s.dst, s.dport,
...    r.sprintf("{TCP:%TCP.flags%}{ICMP:%IP.src% - %ICMP.type%}")))
    66.35.250.150                192.168.1.1 216.109.112.135
22  66.35.250.150 - dest-unreach RA          -
80  SA                           RA          SA
443 SA                           SA          SA
Ví dụ trên thậm chí sẽ in các loại lỗi ICMP nếu gói tin ICMP được nhận như là một phản ứng thay vì TCP mong đợi.

Đối quét lớn hơn, chúng ta có thể quan tâm trong việc hiển thị những phản ứng nhất định. Ví dụ dưới đây sẽ chỉ hiển thị các gói tin với "SA" cờ đặt:
>>> ans.nsummary(lfilter = lambda (s,r): r.sprintf("%TCP.flags%") == "SA")
0003 IP / TCP 192.168.1.100:ftp_data > 192.168.1.1:https S ======> IP / TCP 192.168.1.1:https > 192.168.1.100:ftp_data SA
Trong trường hợp chúng tôi muốn làm một số chuyên gia phân tích các phản ứng, chúng ta có thể sử dụng lệnh sau đây để chỉ ra các cổng đang mở:
>>> ans.summary(lfilter = lambda (s,r): r.sprintf("%TCP.flags%") == "SA",prn=lambda(s,r):r.sprintf("%TCP.sport% is open"))
https is open
Một lần nữa, cho quét lớn hơn chúng ta có thể xây dựng một bảng cổng mở:
>>> ans.filter(lambda (s,r):TCP in r and r[TCP].flags&2).make_table(lambda (s,r):
...             (s.dst, s.dport, "X"))
    66.35.250.150 192.168.1.1 216.109.112.135
80  X             -           X
443 X             X           X
Nếu tất cả các phương pháp trên là không đủ, Scapy bao gồm một report_ports () chức năng không chỉ tự động hóa SYN quét, nhưng cũng sản xuất một sản lượng LaTeX với kết quả thu được:
>>> report_ports("192.168.1.1",(440,443))
Begin emission:
...*.**Finished to send 4 packets.
*
Received 8 packets, got 4 answers, remaining 0 packets
'\\begin{tabular}{|r|l|l|}\n\\hline\nhttps & open & SA \\\\\n\\hline\n440
 & closed & TCP RA \\\\\n441 & closed & TCP RA \\\\\n442 & closed &
TCP RA \\\\\n\\hline\n\\hline\n\\end{tabular}\n'

Comments

Popular posts from this blog

Npcap

Monitor mode

Thiết lập card không dây trên Kali Linux