信息收集之:主动信息收集——服务扫描

郑重声明:
本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关。倡导维护网络安全人人有责,共同维护网络文明和谐。

3 服务扫描

在进行渗透测试的时候很多网络服务是漏洞频发的高危对象,对网络上的特定服务进行扫描,往往能让我们少走弯路,增加渗透成功的几率。因此很多渗透测试人员在确定了开放端口后,通常会对相应端口上所运行服务的信息进行更深入的挖掘,通常称为服务查点。

识别服务以及操作系统版本的方法

  • Banner 捕获
  • 服务识别
  • 操作系统识别
  • SNMP 分析(通过系统内部信息来进行信息的探测和搜索,所以准确性也会比较高)
  • 防火墙识别(识别边界防火墙的类型以及过滤机制,从而绕过和躲避它)

3.1 Banner 捕获

主要获取内容:

  • 软件开发商
  • 软件名称
  • 服务类型
  • 版本号(直接发现已知的漏洞和弱点)

3.1.1 使用 nc 捕获连接时的 Banner 信息

nc -nv 192.168.100.129 22

3.1.2 使用 python 脚本捕获 Banner 信息

import socket

bangrab = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
bangrab.connect(('192.168.100.129', 22))
print(bangrab.recv(4096))
bangrab.close()
# 若不允许抓取 Banner,recv函数无返回将挂起
# 输出:b'SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1\n'

# ---------------- 脚本升级 -----------------------
#!/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(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值