主动信息收集(服务识别)

服务扫描

识别开放端口上运行的应用

  • 识别目标操作系统
  • 提高攻击的效率(Banner捕获、服务识别、操作系统识别、SNMP分析、防火墙识别)

Banner

获取包括

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

获取方式

  • 连接建立后直接获取banner

nc命令

nc -nv 目标IP 目标端口

在这里插入图片描述

# 获取网页的banner信息
nc -nv 192.168.147.137 80
get

在这里插入图片描述

python脚本

使用socket模块(scapy模块无法用于应用层通信)

# 导入socket
python3
socket
# AF_INET        socket连接建立标注怒
# SOCK_STREAM    建立TCP连接
banner = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 指定连接的IP和端口号
banner.connect(("192.168.147.137",21))
# 指定返回的数据包大小
banner.recv(4096)
# 关闭socket连接
banner.close()

metasploitable2.0FTP回包信息
在这里插入图片描述

python脚本形式
抓包可以成功发现开放端口,无显示

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

  if len(sys.argv)!=4:
      print("Example - ./banner_grab.py 192.168.1.1 1 100 ")
      sys.exit()
  
  ip = sys.argv[1]
  start = int(sys.argv[2])
  end = int(sys.argv[3])
  
  for port in range(start,end):
      try:
          banner = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          banner.connect((ip,port))
          ready = select.select(banner,[],[],1)
          # 表示没有被挂起
          if ready[0]:
              print("TCP Port " + str(port) + ' - ' + banner.recv(4096))
              banner.close()
      except:
          pass

注意:很多系统不允许Banner被抓取,导致recv函数将被挂起

dmitry命令

# -p    进行TCP扫描
# -b    获取扫描端口的banner信息
# 默认扫描常用的150个端口
dmitry -pb 192.168.147.137

nmap命令

  • 使用nmap自带的banner获取脚本
  • nmap脚本存放:/usr/share/nmap/scripts/(Luna编写)
# -p 指明端口范围
nmap -sT 192.168.147.137 -p 1-100 --scripts=banner.nse

amap命令

专门用于探测端口后面开放的服务

# -B banner模式
amap -B 192.168.147.137 22

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值