当前位置: 首页 > news >正文

python 使用 scapy 扫描内网IP或端口

地址信息在IP层, 可以利用 ICMP 或 ARP 协议数据包探测IP信息.
ICMP协议可以利用ping工具发送数据包, 但是防火墙有可能禁止ICMP, 无法有效探测, 可以考虑使用ARP探测.

利用ICMP协议探测内网IP

def ping_ip(ip_fex):# 扫描范围: 128~254for i in range(128, 255):ip = f'{ip_fex}.{i}'print(f'\r{ip}', end='')output = os.popen(f'ping -n 1 -w 100 {ip} | findstr TTL=').read()if len(output) > 0:print(f"\n{ip} online")if __name__ == '__main__':ping_ip('192.168.110')

利用ARP协议探测内网IP

def ip_thread(start, ip_fex):for i in range(start, start + 20):ip = f'{ip_fex}.{i}'  # 目标iptry:pkg = ARP(psrc=f'{ip_fex}.1', pdst=ip) # 伪造ARP广播reply = sr1(pkg, timeout=1, verbose=False) # 发送ARP并获取响应包if reply:print(f'\n{ip}->{reply[ARP].hwsrc}') # 显示MAC地址else:print(f'\r{ip} ...', end='')except Exception as e:print(e)def ip_scan(ip_fex):# 关闭警告import logginglogging.getLogger("scapy.runtime").setLevel(logging.ERROR)# 端口范围 1~254for i in range(1, 255, 20): threading.Thread(target=ip_thread, args=(i, ip_fex)).start()

利用TCP协议探测端口

端口信息在TCP层, 可以使用TCP协议数据包探测端口是否开放
伪造 SYN 数据包, 根据响应数据中的标志位 flags 来判断端口是否正常响应.
SYN: 0x002
ACK: 0x010
SYN-ACK: 0x012

def scan_port(ip):for port in range(22, 100):try:pkg = IP(src='192.168.112.123', dst=ip) / TCP(dport=port, flags='S')reply = sr1(pkg, timeout=1, verbose=False)if reply:if reply[TCP].flags == 0x12: # SYN-ACKprint(f'port->[{port}]')except Exception as e:print(e)
http://www.lryc.cn/news/179372.html

相关文章:

  • 14:00面试,14:08就出来了,问的问题有点变态
  • Spring Security 简单token配置
  • 2023 “华为杯” 中国研究生数学建模竞赛(F题)深度剖析|数学建模完整代码+建模过程全解全析
  • FFmpeg 命令:从入门到精通 | ffplay 简单过滤器
  • 应用在手机触摸屏中的电容式触摸芯片
  • 计算机网络之传输层
  • vue下载在前端存放的pdf文件
  • 自学WEB后端05-Node.js后端服务链接数据库redis
  • 【计算机网络】 基于TCP的简单通讯(客户端)
  • RabbitMQ配置
  • 火热报名中 | 2天峰会、20+热门议题,AutoESG 2023数智低碳---中国汽车碳管理创新峰会亮点抢先看!
  • 机器学习——seaborn实用画图方法简介
  • leetCode 188.买卖股票的最佳时机 IV 动态规划 + 状态压缩
  • Lua学习笔记:debug.sethook函数
  • 信息化发展74
  • Go-Ldap-Admin | openLDAP 同步钉钉、企业微信、飞书组织架构实践和部分小坑
  • elasticsearch+logstash+kibana整合(ELK的使用)第一课
  • 宝塔 php修改了php.ini配置不生效
  • Unrecognized option ‘stream_loop‘.(版本不匹配,利用make编译安装)
  • 【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(2,常见的二维随机变量及二维变量的条件分布和独立性)
  • 力扣 -- 10. 正则表达式匹配
  • Spring源码分析(四) Aop全流程
  • 定义现代化实时数据仓库,SelectDB 全新产品形态全面发布
  • Linux系统编程(七):线程同步
  • Arcgis克里金插值报错:ERROR 999999: 执行函数时出错。 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误
  • 【网络协议】ARP协议
  • 安防视频/集中云存储平台EasyCVR(V3.3)部分通道显示离线该如何解决?
  • 软件测试经典面试题:如何进行支付功能的测试?
  • SolidWorks 入门笔记03:生成工程图和一键标注
  • 【Java】对象内存图多个对象同一内存地址