python2.7使用scapy发送syn实例


Posted in Python onMay 05, 2020

我就废话不多说了,大家看代码吧!

from scapy.all import *
 
def syn():
 scrIP = '192.168.10.29'
 srcPort = 23345
 desIP = '12.39.27.23'
 desPort = 8000
 
 ip = IP(src=scrIP, dst=desIP)
 tcp = TCP(sport=srcPort, dport=desPort, seq=13131342, flags='S')
 pkg = ip/tcp
 
 # c->s syn
 res = sr1(pkg)
 res.display()

补充知识:用python 通过ip获取mac和网卡类型(同一网段)

通过网上查阅目前找到的几种方式

环境使用window和linux系统

使用nmap,python-nmap需要依赖机器安装nmap工具

import nmap
nm=nmap.PortScanner()
nm.scan('xxx.xxx.xxx.xxx','xx') # ip地址和端口,端口不填也可以
a=nm['xxx.xxx.xxx.xxx'] #返回主机的详细信息
print(a)
##################################
{'status': {'state': 'up', 'reason': 'arp-response'}, 
'hostnames': [{'type': 'PTR', 'name': 'bogon'}], 
'vendor': {'00:0C:29:F6:2B:F0': 'VMware'}, 
'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': 'xxx.xxx.xxx.xxx'}, 
'tcp': {111: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}

这种方式获取非常简单,但是会耗费很大的时间,不建议使用

通过控制台命令arp -a

def output_cmd(command):
 r = os.popen(command)
 content = r.read()
 r.close()
 return content


def arp_command(ip_address):
 ping_cmd = "ping " + ip_address + " -n 2 "
 result = output_cmd(ping_cmd)
 find_ttl = result.find("TTL")
 if find_ttl != -1:
  arp_cmd = "arp -a %s" % ip_address
  arp_result = output_cmd(arp_cmd)
  ip2 = ip_address + " [ ]+([\w-]+)"
  ip2_mac = re.findall(ip2, arp_result)
  if len(ip2_mac):
   return ip2_mac[0]
  else:
   return 0
 else:
  result = u'无人使用的ip'
 return result

这个是通过先ping,之后在arp -a ip 来获取mac地址,这种方式需要拿到数据后自行去通过正则匹配mac地址,演示的为window上的匹配,linux需要自行修改匹配规则

通过scapy模块(必须机器ipv6未被禁止)

from scapy.all import *

arp_pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
res = srp1(arp_pkt, timeout=1, verbose=0)
print {"localIP": res.psrc, "mac": res.hwsrc}

通过arpreq模块

[root@oradb ~]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import arpreq
>>> arpreq.arpreq('192.168.xx.xxx')
'xx:xx:xx:xx:xx:xx'

通过上述方法获取mac地址之后获取网卡类型

可以直接使用mac.py

pip install mac.py

from macpy import Mac

mac = Mac()
information = mac.search(00-11-F1-01-01)
print information

如果感觉信息还是有点老的话,需要自己手动去IEEE上面下载mac和网卡厂商的比对文件自行比对就行了

以上这篇python2.7使用scapy发送syn实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python引入导入自定义模块和外部文件的实例
Jul 24 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Python简单生成随机数的方法示例
Mar 31 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
keras 获取某层输出 获取复用层的多次输出实例
May 23 Python
Python datetime模块使用方法小结
Jun 18 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
总结Python常用的魔法方法
May 25 Python
Python list列表删除元素的4种方法
Nov 01 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 #Python
Python之变量类型和if判断方式
May 05 #Python
Python实现CAN报文转换工具教程
May 05 #Python
python TCP包注入方式
May 05 #Python
python构造IP报文实例
May 05 #Python
python3通过udp实现组播数据的发送和接收操作
May 05 #Python
解决python使用list()时总是报错的问题
May 05 #Python
You might like
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
ThinkPHP5&5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
把textarea中字符串里含有的回车换行替换成<br>的javascript代码
2007/04/20 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
浅析NumPy 切片和索引
2020/09/02 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
汇集了世界上最好的天然和有机美容产品:LoveLula
2018/02/05 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
营销与策划专业毕业生求职信
2013/11/01 职场文书
小区文明倡议书
2014/05/16 职场文书
啦啦队口号大全
2014/06/16 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python