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 25 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
Python中fnmatch模块的使用详情
Nov 30 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
关于sys.stdout和print的区别详解
Dec 05 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
python中return不返回值的问题解析
Jul 22 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Elasticsearch 数据类型及管理
Apr 19 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
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
php解析json数据实例
2014/08/19 PHP
Laravel框架表单验证详解
2014/09/04 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
javascript弹出窗口实现代码
2015/11/12 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python 实现一次性在文件中写入多行的方法
2019/01/28 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
生物制药专业自我鉴定
2014/02/19 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
综合素质评价自我评价
2015/03/06 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript
Python基本知识点总结
2022/04/07 Python
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android