《Kali渗透基础》06. 主动信息收集(三)

本文介绍了KaliLinux中用于渗透测试的各种工具和技术,包括服务识别(如NetCat、dmitry、nmap)、操作系统识别(Scapy、nmap、p0f)、SNMP扫描、SMB扫描、SMTP扫描、防火墙识别、负载均衡识别以及WAF识别。这些工具和方法涵盖了网络扫描、端口检测、服务指纹识别等多个方面,用于提升网络安全评估的效率和准确性。


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

本文以 kali-linux-2022.3-vmware-amd64 为例。

1:服务识别

识别开放端口上运行的应用与服务,可以提高攻击效率。

方法:

  • Banner 捕获
    • 建立连接后获取 Banner
  • 服务指纹识别
  • 另类识别方法
    • 特征行为
    • 可用于识别操作系统

Banner:指目标主机在响应请求时返回的服务标识信息。通常是一个文本字符串,包含了软件开发商、软件名称、服务类型,版本号等。
根据 Banner 抓取的信息有限,且不完全准确。

得到服务版本号可以直接发现已知漏洞和弱点。

1.1:NetCat

基本语法
nc 选项

部分选项

参数 说明
-n numeric-only IP addresses, no DNS.
-v verbose [use twice to be more verbose].

示例01:尝试连接端口以获取服务信息。
nc -nv 1.1.1.1 22

基于 banner 捕获。

1.2:Socket

在 Python 中,socket 标准库用于网络通信,提供的编程接口用于创建网络套接字(socket)对象,以实现网络连接、数据传输和通信协议。

示例01:banner_grab.py。基于 banner 捕获。

#!/usr/bin/python

import socket
import select
import sys

if len(sys.argv) != 4:
    print("Usage - ./banner_grab.py <target-ip> <first port> <last port>")
    print("Example - ./banner_grab.py 10.1.1.1 1 250")
    sys.exit()

ip = sys.argv[1]
start_ip = int(sys.argv[2])
end_ip = int(sys.argv[3])

for port in range(start_ip, end_ip):
    try:
        target = (ip, port)
        ban_grab = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        ban_grab.connect(target)
        ready = select.select([ban_grab], [], [], 1)

        if ready[0]:
            print("TCP Port " + str(port) + " - " + ban_grab.recv(4096).decode())
            ban_grab.close()
            
    except Exception as e:
        # print(e)
        pass

1.3:dmitry

Deepmagic Information Gathering Tool
“There be some deep magic going on”

基本语法
dmitry 选项

部分选项

参数 说明
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值