kail端口扫描

全连接扫描,根据三次握手的完整性来判断端口是否存在
kail端口扫描_第1张图片
╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋
┃隐蔽端口扫描 ┃
┃Syn—–syn/ack—–rst ┃
┃Scapy ┃
┃ sr1(IP(dst=”192.168.60.3”)/TCP(dport=80),timeout=1,verbose=1) ┃
┃ ./syn_scan.py ┃
╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋

Scapy Scapy是一个可以让用户发送、侦听和解析并伪装网络报文的Python程序。
首先进入scapy

然后构造包
这里写图片描述
先不要发送,因为是实验,所以打开wireshark来监听
然后

a.display()
root@kali:~# scapy
WARNING: No route found for IPv6 destination :: (no default route?)
Welcome to Scapy (2.2.0)
>>> a=sr1(IP(dst="192.168.1.134")/TCP(dport=80),timeout=1,verbose=1)

>>>a.display

>>> a=sr1(IP(dst="192.168.1.134")/TCP(flags="S"dport=22),timeout=1)

>>> a=sr1(IP(dst="192.168.1.134")/TCP(flags="S"dport=2222),timeout=1)

kail端口扫描_第2张图片
这里写图片描述
操作系统会认为这是一个没来由的sYn,ack;返回rst.我们没有建立握手,你莫名其妙给我发syn,拒绝
我们可以使用python脚本来扫描一个ip的端口

[syn_scan.py]
#!/usr/bin/python
import loggging
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] [First Port] [Las Port]"
  print "Example - ./syn_scan.py 1.1.1.5 1 100"
  print "Example will TCP SYN port 1 thorough 100 om 10.0.0.5"
  sys.exit()

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

for port in range(start,end);
     a=str(IP(dst=ip)/UDP(dport=prot),timeout=1,verbose=0)
     if a==None;
        pass
     else;
        if(int(a(TCP),flags)==18;
            print port
         else
            pass

kail端口扫描_第3张图片
1,2,4,8,16,ack+syn=18
kail端口扫描_第4张图片
防火墙会拦截
kail端口扫描_第5张图片

╋━━━━━━━━━━━━━━━━━━━╋
┃隐蔽端口扫描                          ┃
┃nmap -sS 1.1.1.1 -p 80,21,25,110,443  ┃
┃nmap -sS 1.1.1.1 -p 1-65535 --open    ┃
┃nmap -sS 1.1.1.1 -p- --open           ┃
┃nmap -sS -iL iplist.txt -p 80         ┃
╋━━━━━━━━━━━━━━━━━━━╋

root@kali:~# nmap 192.168.1.134 -p1-100

Starting Nmap 6.49BETA5 ( https://nmap.org ) at 2015-10-01 23:01 CST
Nmap scan report for 192.168.1.134
Host is up (0.00068s latency).
Not shown: 94 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
23/tcp open  telnet
25/tcp open  smtb
53/tcp open  domain
80/tcp open  http
MAC Address: 80:00:27:B0:3A:76(Cadmus Computer Systems)

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

root@kali:~# nmap 192.168.1.134 -p1-100 --open

首先会解析主机名
kail端口扫描_第6张图片
kail端口扫描_第7张图片
-S表示用syn扫描,没有像nmap进行dns解析,直接发包
-c发十个包,–spoof 伪造源地址,回包会回给伪造的源地址,所以wireshock抓不到包
kail端口扫描_第8张图片,可以交换机做镜像端口来查看

╋━━━━━━━━━━━━━━━━━━━━━━━━╋
┃隐蔽端口扫描                                    ┃
┃hping3                                          ┃
┃hping3 1.1.1.1 --scan 80 -S                     ┃
┃hping3 1.1.1.1 --scan 80,21,25,443 -S           ┃
┃hping3 1.1.1.1 --scan 0-65535                   ┃
┃hping3 -c 10 -S --spoof 1.1.1.2 -p ++1 1.1.1.3  ┃
╋━━━━━━━━━━━━━━━━━━━━━━━━╋

root@kali:~# hping3 192.168.1.134 --scan 1-100 -S
Scanning 192.168.1.134 (192.168.1.134), port 1-100
100 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name |  flags  |ttl| id  | win | len |
+----+-----------+---------+---+-----+-----+-----+
   21 ftp        : .S..A...  64     0  5840     46  
   22 ssh        : .S..A...  64     0  5840     46
   23 telnet     : .S..A...  64     0  5840     46
   25 smtp       : .S..A...  64     0  5840     46
   53 domain     : .S..A...  64     0  5840     46
   80 http       : .S..A...  64     0  5840     46
All replies received Done.
Not responding ports:


root@kali:~# hping3 -c 10 -S --spoof 1.1.1.2 -p ++1 1.1.1.3
HPING 1.1.1.3 (eth0 1.1.1.3): S set, 40 headers + 0 data bytes

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

root@kali:~# hping3 -c 10 -S --spoof 192.168.1.140 -p ++1 192.168.1.134
HPING 192.168.1.134 (eth0 192.168.1.134): S set, 40 headers + 0 data bytes

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

root@kali:~# hping3 -c 100 -S --spoof 192.168.1.140 -p ++1 192.168.1.134
HPING 192.168.1.134 (eth0 192.168.1.134): S set, 40 headers + 0 data bytes

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

╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋
┃全连接端口扫描 ┃
┃Scapy ┃
┃ Syn扫描不需要raw packets ┃
┃ 内核认为syn/ack是非法包,直接发rst终端连接 ┃
┃ 全连接扫描对scapy比较困难 ┃
┃sr1(IP(dst=”192.168.20.2”)/TCP(dport=22,flags=’S’)) ┃
┃./tcp_scan1.py ┃
┃./tcp_scan2.py ┃
┃iptables -A OUTPUT -p tcp –tcp-flags RST RST -d 192.168.20.2 -j DROP ┃
╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋
kail端口扫描_第9张图片

[tcp_scan1.py]
#!/usr/bin/python
import loggging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

response=sr1(IP(dst="192.168.60.4")/TCP(dport=80,flags='S')) 
reply=sr1(IP(dst="192.168.60.4")/TCP(dport=80,flags='A',ack(response[TCP].seq+1)))

可以在脚本里面直接按f5执行
kail端口扫描_第10张图片

[tcp_scan2.py]
#!/usr/bin/python
import loggging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

SYN=IP(dst="192.168.1.134")/TCP(dport=25,flags='S')

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

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

if int(response[TCP].flags)==18;
    print"\n\n-- SENT --"
    A=IP(dst="192.168.1.134")/TCP(dport=25flags='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"

这里写图片描述
上面两例都不是完整的三次握手,那么我们可以

root@kali:~# iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.1.134 -j DROP

把接收方发送的RST包DROP掉
kail端口扫描_第11张图片
重新运行脚本测试,succeful
这里写图片描述
╋━━━━━━━━━━━━━━━━╋
┃全连接端口扫描 ┃
┃nmap -sT 1.1.1.1 -p 80 ┃
┃nmap -sT 1.1.1.1 -p 80,21,25 ┃
┃nmap -sT 1.1.1.1 -p 80-2000 ┃
┃nmap -sT -iL iplist.txt -p 80 ┃
┃默认1000个常用端口 ┃
╋━━━━━━━━━━━━━━━━╋

root@kali:~# nmap -sT 192.168.1.134 -p1-100
T表示全连接,速度慢
不指定端口,会扫描一千个常用端口

Starting Nmap 6.49BETA5 ( https://nmap.org ) at 2015-10-02 13:56 CSTn
Nmap scan report for localhost(192.168.1.134)
Host is up (0.0020s latency).
Not shown 94 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
23/tcp open  telnet
25/tcp open  smtb
53/tcp open  domain
80/tcp open  http
MAC Address: 80:00:27:B0:3A:76(Cadmus Computer Systems)

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

╋━━━━━━━━━━━━━━━━━╋
┃全连接端口扫描 ┃
┃dmitry ┃
┃ 功能简单,但使用简便 ┃
┃ 默认150个最常用的端口 ┃
┃dmitry -p 172.16.36.135 ┃
┃dmitry -p 172.16.36.135 -o output ┃
╋━━━━━━━━━━━━━━━━━╋

root@kali:~# dmitry -p 192.168.1.134
Deepmagic Information Gathering Tool
"There be some deep magic going on"

ERROR: Unable to locate Host Name for 192.168.1.134
Continuing with limited modules
HostIP:192.168.1.134
HostName:

Gathered TCP Port information for 192.168.1.134
---------------------------------

 Port       State
21/tcp          open
22/tcp          open
23/tcp          open
25/tcp          open
53/tcp          open
80/tcp          open
111/tcp         open
139/tcp         open

Portscan Finished: Scanned 150 ports, 141 ports were in state closed

All scans completed, exiting

查看帮助

root@kali:~# dmitry -h
Deepmagic Information Gathering Tool
"There be some deep magic going on"

dmitry: invalid option -- 'h'
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
* -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 -nv -w 1 -z 192.168.60.4 1-100 ┃
┃for x in (seq2030);doncnvw1z1.1.1.1 x;done | grep open ┃
┃for x in (seq2030);doncnvw1z1.1.1. x;done ┃
╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋
w超时时间
root@kali:~# nc -h
[v1.10-41]
connect to somewhere: nc [-options] hostname port[s] [ports] …
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-c shell commands as `-e’; use /bin/sh to exec [dangerous!!]
-e filename program to exec after connect [dangerous!!]
-b allow broadcasts
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, …
-h this cruft
-i secs delay interval for lines sent, ports scanned
-k set keepalive option on socket
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-q secs quit after EOF on stdin and delay of secs
-s addr local source address
-T tos set Type Of Service
-t answer TELNET negotiation
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-C Send CRLF as line-ending
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive];
hyphens in port names must be backslash escaped (e.g. ‘ftp-data’).

root@kali:~# nc -nv -w 1 -z 192.168.1.134 1-100
(UNKNOWN) [192.168.1.134] 80 (http) open
(UNKNOWN) [192.168.1.134] 53 (domain) open
(UNKNOWN) [192.168.1.134] 25 (smtp) open
(UNKNOWN) [192.168.1.134] 23 (telnet) open
(UNKNOWN) [192.168.1.134] 22 (ssh) open
(UNKNOWN) [192.168.1.134] 21 (ftp) open

你可能感兴趣的:(kail-端口扫描,渗透测试)