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

DNS查询后使用http发送请求

Kali 1 17.128

先DROP sudo iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP

代码

from scapy.all import *
import random# 第一部分:DNS查询获取IP地址
pkt1 = IP(dst="192.168.17.129")/UDP(sport=12345, dport=53)/DNS(id=1000, qr=0, rd=1, qd=DNSQR(qname="www.hxl.com"))
# 发送请求+等回包
ans1 = sr1(pkt1, timeout=5, verbose=0)if not ans1 or not ans1.haslayer(DNS) or not ans1[DNS].an:print("DNS查询失败")exit()# 看回包
ans1.show()# 提取解析结果到baidu变量中
baidu = ans1[DNS].an[0].rdata
print(f"DNS解析结果: www.hxl.com -> {baidu}")# 使用DNS解析的地址作为目标
target = str(baidu)  # 确保是字符串类型
dport = 8000  # HTTP默认端口
sport = random.randint(1024, 65535)print(f"开始与 {target}:{dport} 建立TCP连接...")# 1. 发送SYN包(第一次握手)
syn = IP(dst=target)/TCP(sport=sport, dport=dport, flags='S', seq=1000) 
print("发送SYN包...")
syn_ack = sr1(syn, timeout=5, verbose=0)if not syn_ack:print("SYN-ACK 未收到,连接失败")exit()print("收到SYN-ACK包")# 记录服务器序列号
server_seq = syn_ack.seq
server_ack = syn_ack.ack# 2. 发送ACK包(第三次握手)
ack = IP(dst=target)/TCP(sport=sport, dport=dport, flags='A', seq=server_ack, ack=server_seq + 1) 
print("发送ACK包完成三次握手...")
send(ack, verbose=0)
print("TCP 连接建立成功")# 3. 发送HTTP GET请求
# HTTP请求发送到DNS解析的目标地址,Host头使用域名
http_get = f"GET / HTTP/1.1\r\nHost: www.hxl.com\r\nUser-Agent: Scapy-HTTP-Client/1.0\r\nConnection: close\r\n\r\n" 
http_payload = http_get.encode('utf-8')print("发送HTTP GET请求...")
pack3 = IP(dst=target) / TCP(sport=sport, dport=dport, flags="PA", seq=server_ack, ack=server_seq + 1) / Raw(load=http_payload)response = sr1(pack3, timeout=10, verbose=0)if response:print("收到HTTP响应:")response.show()# 提取HTTP响应内容if response.haslayer(Raw):http_response = response[Raw].load.decode('utf-8', errors='ignore')print("\nHTTP响应内容:")print("=" * 50)# 只打印前1000个字符避免输出过长print(http_response[:1000] + "..." if len(http_response) > 1000 else http_response)print("=" * 50)
else:print("未收到HTTP响应")# 4. 发送FIN包关闭连接(可选)
print("发送FIN包关闭连接...")
fin = IP(dst=target)/TCP(sport=sport, dport=dport, flags='FA', seq=server_ack + len(http_payload), ack=server_seq + 1)
fin_ack = sr1(fin, timeout=5, verbose=0)if fin_ack:# 回复最后的ACKfinal_ack = IP(dst=target)/TCP(sport=sport, dport=dport, flags='A', seq=fin_ack.ack, ack=fin_ack.seq + 1)send(final_ack, verbose=0)print("连接正常关闭")
else:print("连接关闭超时")print("程序执行完毕")

Kali2 17.129

  1. 先启动Python的Web服务器
    python -m http.server 8000在8000端口启动web服务器

  2. 启动Python代码监听53端口

from scapy.all import *
import socket# 1. 占用53端口(需root权限)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('0.0.0.0', 53))
print("B机:Listening on UDP port 53 ...")while True:data, addr = sock.recvfrom(1024)  # 接收A机的DNS查询client_ip, client_port = addr# 解析查询的DNS事务ID和域名dns_query = DNS(data)query_id = dns_query.idquery_domain = dns_query.qd.qname.decode()  # 提取查询的域名,如www.张三.com# 2. 构造DNS响应:解析到B机自身IP,TTL为1000+学号ttl = 1000 + 17  # 假设学号是123,需替换为自己的学号resp = IP(dst=client_ip) / UDP(sport=53, dport=client_port) / DNS(id=query_id,       # 与查询ID保持一致qr=1,              # 1表示响应aa=1, rd=1, ra=1,qd=DNSQR(qname=query_domain),  # 匹配查询的域名an=DNSRR(rrname=query_domain,type="A",ttl=ttl,rdata="192.168.17.129"     # B机自身IP))send(resp)  # 发送响应
http://www.rkmt.cn/news/61044.html

相关文章:

  • 时序数据库 IoTDB 集成 SpringBoot Starter,实现时序数据库“零配置”接入
  • 2025年热门的5寸脚轮用户好评厂家排行
  • 鼠标位置
  • 2025年热门的托盘堆垛机实力厂家TOP推荐榜
  • cocos 用widget将ui组件固定在屏 随着分辨率自适应 编辑器界面canvas作为手机屏参考 将ui组件放进去 deepseek解答 - 教程
  • 一文读懂 Linux 系统与常用命令
  • 2025下半年江苏徐州油浸式变压器、干式变压器和电器设备工厂推荐指南:五大优质供应商深度解析
  • 2025 年 11 月 CNC 加工中心实力厂家权威推荐榜:精密零件/模具/龙门/五轴/高速加工中心定制与选型全攻略
  • 2025年评价高的穿梭式货架立体库最新TOP品牌厂家排行
  • 2025 年 11 月铣床厂家权威推荐榜:立式铣床/摇臂铣床/炮塔铣床/数控铣床/升降台铣床/精密铣床/多功能铣床,高效加工与稳定性能口碑之选
  • 2025年CNC加工中心/零件/模具/龙门/五轴/精密加工厂家推荐拓智者科技
  • AI元人文:LLM与价值协议——从偏见魔兽到多元护法的点化之路(完整版)
  • 实用指南:阿里云DLF 3.0:面向AI时代的智能全模态湖仓管理平台
  • 批量生成密码
  • 2025 年 11 月人力资源管理咨询品牌权威推荐榜:薪酬管理咨询,绩效管理咨询,企业薪酬绩效优化服务深度解析与口碑之选
  • 2025年质量好的低烟无卤控制电缆厂家最新权威实力榜
  • PostgreSQL - How to convert timestamp to date?
  • 2025年热门的超温保护限流式保护器行业内口碑厂家排行榜
  • 2025年权威的人造茅草渠道推荐榜
  • C# 中 ?、??、??=、?: 、?. 、?[] 各种问号的用法和说明
  • nestjs 使用类似midwayjs 模式加载模块
  • 2025年知名的高速注塑机TOP实力厂家推荐榜
  • 2025年比较好的塑料餐盒注塑机最新TOP厂家排名
  • 2025年比较好的基板Tray芯片载盘实力厂家TOP推荐榜
  • 2025年热门的SOP托盘芯片载盘厂家最新权威实力榜
  • 2025 年中国有机农场排名推荐榜:生态农业的典范与健康生活的源泉
  • 2025年比较好的新型建材最新TOP品牌厂家排行
  • 2025年质量好的实验室装修诚信推荐榜
  • .NET 10 社区SDK(Loongarch 和 RISC-V)
  • 2025 年 11 月管道更換服務廠家權威推薦榜:老舊破損/漏水無縫/防腐耐高溫/快速高效無損管道施工,全方位覆蓋家庭別墅工廠醫院學校室內室外管道更換需求