当前位置: 移动技术网 > 科技>操作系统>Linux > Kali学习笔记12:服务扫描

Kali学习笔记12:服务扫描

2018年09月17日  | 移动技术网科技  | 我要评论

关于什么是服务扫描不多介绍,通俗来看:

我已经扫描到目标机器某个端口开放,接下来我需要知道开放这个端口的是什么应用

 

情景:

我的kali机器ip地址:192.168.22.130

我要扫描的metasploitable机器ip地址:192.168.22.129

 

1.先介绍一个小工具:不强大,但是可以考虑使用

nc命令:

我要扫描目标机器的22端口:

发现跑着ssh应用,并且还可以看到操作系统

 

2.利用python的socket模块:

#!/usr/bin/python
import socket
import select
import sys

if len(sys.argv) != 4:
    print "./ban_grab.py [target ip] [first port] [last port]"
    print "example: ./ban_grab.py 10.0.0.5 1 100"
    print "example will grab banners for tcp ports 1 through 100 on 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):
    try:
        bangrab = socket.socket(socket.af_inet, socket.sock_stream)
        bangrab.connect((ip, port))
        ready = select.select([bangrab], [], [], 1)
        if ready[0]:
            print "tcp poet " + str(port) + " - " + bangrab.recv(4096)
            bangrab.close()
    except:
        pass

 

使用脚本:

如果脚本是从windows移过来的:

vi xxx.py

:set fileformat=unix

:wq

chmod u+x xxx.py

./xxx.py

 

使用:

 

效果不错!

 

其他工具:

dmitry:-p 是端口扫描参数,-b是banner信息扫描参数

 

当然,强大的nmap工具不可或缺:

-st:必须基于完整的tcp三次握手

--script:使用内置脚本

 

 

当然,想知道具体有哪些?至少有几百个,可以到这个目录看看

 

 

有一个工具是专门为服务扫描而开发的:amap:

-b参数:扫描banner

 

指定端口范围:

 

 

banner信息抓取就到这里

这种方式其实并不总能获取到正确的信息,并且获取信息不完整

 

这时候就需要根据一些特征来识别服务:

再次用到强大的nmap工具:

 -sv参数:“指纹特性”匹配方式来识别

 

效果相比前面的banner信息获取方式,好太多!

实际中,十分推荐这种方式,例如上边没有发现的53端口,这里识别了

80端口其他工具只是识别出http,这里甚至知道是apache的web容器

 

-sv参数还能解决一个问题:有时候http服务在高位端口(如:8888)

这时候基本无法识别这是一个http服务,而-sv参数依旧可以发现,这就是强大之处

 

上边提到的amap工具其实也可以实现:不过不如nmap详细

 

虽说能够实现,不过还是推荐nmap

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网