kali linux端口和服务扫描



端口扫描


端口对应网络服务及应用端程序

服务端程序的漏洞通过端口攻入

发现开放的端口

更具体的***面

udp端口扫描

如果目标系统不响应icmp就可能产生误判

完整的udp扫描,准确性高,耗时巨大

端口关闭:端口不可达

端口开放:没有回包

了解每一种基于udp应用层包结构很有帮助

与三层相同的技术

误判

scapy

sr1(IP(dst="1.1.1.1")/UDP(dport=53),timeout=1,verbose=1)


./udp_scan.py 1.1.1.1 100

nmap

nmap -sU 192.168.1.104


其中有默认的1000个端口


nmap -sU 192.168.1.104 -p53(指定端口)


nmap -sU 192.168.1.104 -p-(1-65535)

nmap -iL iplist.txt -sU -p 1-200

tcp端口扫描

基于链接的协议

三次握手

隐蔽扫描

僵尸扫描(比隐蔽扫描更隐蔽,不和目标直接联系)


全链接扫描


所有的TCP扫描方式都是基于三次握手的变化,来判断端口的状态

隐蔽扫描----syn

不建立完整连接

应用日志不记录扫描行为

僵尸扫描

极度隐蔽

实施条件苛刻

可伪造源地址

选择僵尸机,闲置系统,系统使用递增的IPID(0,随机,这些都不行)


隐蔽端口扫描


Syn----syn/ack-----rst

scapy

1.a=sr1(IP(dst="192.168.1.110")/TCP(flags="S"),timeout=1,verbose=1)

or:a=sr1(IP(dst="192.168.1.110")/TCP(flags="S",dport=22),timeout=1,verbose=1)


2../syn_scan.py(脚本运行命令)

nmap(强大的扫描工具)


nmap -sS 1.1.1.1 -p1-100 --open

nmap -sS 1.1.1.1 -p 1-65535 --open


nmap -sS -iL iplist.txt -p 80,22,23,21


nmap -sS 1.1.1.1 -p- --open

hping3


hping3 1.1.1.1 --scan 80 -S (发syn包)


hping3 1.1.1.1 --scan 80,21,25,443 -S

hping3 1.1.1.1 --scan 0-65535 -S

hping3 -c 10 -S -spoof 1.1.1.2 -p ++1 1.1.1.3  (-c 10 -S 表示发10个syn包,地址欺骗将1.1.1.1的地址改为1.1.1.2,目标为1.1.1.3,-p ++1和前面的10表示每次端口+1从1-10扫描这十个端口,这样必须要登陆1.1.1.2这台电脑抓包才能看到扫描结果)

全连接端口扫描(不隐蔽,可在过滤严格的条件下扫描)


scapy

syn扫描不需要raw packets

内核认为syn/ack是非法包,直接发rst中断连接

全连接扫描对scapy比较困难

a=sr1(IP(dst="192.168.1.110")/TCP(dport=22,flags="S"))

namp

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个常用端口

dmitry

功能简单但使用简便

默认150个最常用的端口


dmitry -p 192.168.1.110

dmitry -p 192.168.1.110 -o output

nc

nc -nv -w 1 -z 192.168.1.110 1-100(定义超时时间为1秒,-z表示扫描)


for x in $(seq 20 30);do nc -nv


for x in $(seq 20 30); do nc -nv -w 1 -z 1.1.1.$x 80;done


僵尸扫描:闲置机不用完全限制,只要没有三层的IP通信就可以。


xp之前的电脑符合要求,现在的操作系统不行。


scapy----zonbie.py

只有scapy和nmap支持僵尸扫描

1.i=IP()


2.t=TCP()

3.rz=(i/t)  (向僵尸机发的数据包)


4.rt=(i/t)    (向目标机发的数据包)


5.rz[IP].dst="僵尸机地址"


6.rz[TCP].dport=445   (僵尸机开放的端口)


7.rz[TCP].flags="SA"  (syn+ack包)


8.rt[IP].src="僵尸机地址"


9.rt[IP].dst="目标机地址"

10.rt[TCP].dport=25  (目标机要扫描的端口)


11.rt[TCP].flags="S"

12.az1=sr1(rz)

13.ar=sr1(rt,timeout=1)

14.az2=sr1(rz)

15.az1  (显示包)

16.az2  (比较ipid   如果加了2表示开启如果加了1表示没有开启)

nmap

发现僵尸机


nmap -p445 1.1.1.1 --script=ipidseq.nse

扫描目标

nmap 本机ip -sI 僵尸ip -Pn -p 0-100


服务扫描


识别端口上运行的应用

识别目标操作系统

提高***效率

   banner捕获

   服务识别  (识别软件版本,找漏洞进行针对性***)

   操作系统识别   (操作系统自带服务也有可能有漏洞)

    snmp分析


    防火墙识别

banner信息

   软件开发商

   软件名称

    服务类型

   版本号

          直接发现已知的漏洞和弱点

链接建立后直接获取banner

另类服务识别方法

        特征行为和响应字段


        不同的响应可用于识别底层操作系统

snmp

      简单网络管理协议

      community strings   (身份认证信息)

      信息查询或重新配置


识别和绕过防火墙筛选

服务扫描----banner

nc


1.nc-nv 1.1.1.1 22 (22是端口号可以识别ssh的一些信息)


2.get /


python socket


     socket模块用于网络连接服务

1.python


2.import socket


3.banner=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

4.banner.connect(("192.168.1.110",21))


5.banner.recv(4096)   (接收数据,指定数据大小为4096)

6.banner.close()

7.exit()

banner如果不允许抓取,recv函数无返回将挂起。需要通过脚本来运行

dmitry

dmitry -p 192.168.1.110


dmitry -pb 192.168.1.110



nmap


nmap -sT 1.1.1.1 -p 22 --script=banner

nmap -sT 1.1.1.1 -p1-100 --script=banner.nse

amap

amap -B 192.168.1.110 21

amap -B 192.168.1.110 1-65535

amap -B 192.168.1.110 1-65535 | grep on

服务扫描----服务识别

banner信息抓取能力有限

nmap相应特征分析识别服务

    发送系列复杂的探测


    根据相应特征signature

nc -nv 1.1.1.1 80

nmap 1.1.1.1 -p 80 -sV   (经常用到,准确度高)

amap

amap 192.168.1.110 80


amap 192.168.1.110 1-100 (-q)加上-q让信息更整齐

amap 192.168.1.110 1-100 -qb  信息更详细


今天本来还想学一个新漏洞呢,但是学了一半时间不够了,只能等到明天了。