本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。
本文以 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 选项
部分选项:
| 参数 | 说明 |
|---|

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





