前言
今天把吃灰多年的玩客云重新插上电接入网络,但奇怪的是路由器管理端迟迟看不到新设备接入。我确定这玩意在丢进抽屉前基本的网络和账号密码是配置好的,但就是找不到设备IP。其实这时候只要重启下路由器就可以看到新设备,但是因为我这网络中在跑PCDN重启会影响第二天的收益,所以想在不重启的情况下找到设备。因此就想出通过CTF网络嗅探思路找出这台设备。
开干
嗅探流程:
- 通过ping命令监测内网存活的IP列表
- 人工对比路由器管理端可查询到的IP,得到可疑IP列表。
- 通过nc命令,对可疑IP进行端口嗅探
使用ping命令做IP存活监测
import subprocess
def ping_ip_range(ip_start, ip_end):
for ip_address in range(ip_start, ip_end + 1):
ip_to_ping = f"192.168.1.{ip_address}" # 假设我们正在ping192.168.1.x段
# 组织ping命令: ping -c 1 -W 1 192.168.1.1
response = subprocess.run(['ping', '-c', '1', '-W', '1', ip_to_ping], stdout=subprocess.PIPE, text=True)
# 监测标准输出是否包含'100.0% packet loss',
# 这个要根据实际运行系统调整,有些系统返回的是'100% packet loss'
if '100.0% packet loss' not in response.stdout:
print(f"{ip_to_ping} is up.")
else:
print(f"{ip_to_ping} is down.")
# 使用范例:ping 192.168.1.1 到 192.168.1.254
ping_ip_range(1, 254)
使用netcat命令做端口嗅探
nc -zv 192.168.1.160 1-1024
成功连接到新设备
总结
最后成功找到新设备IP并连接登录设备。以上简单的内网嗅探案例,在实际CTF比赛中应该没这边简单吧(手动狗头)。