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 Socket网络编程
Jan 05 Python
关于Python 3中print函数的换行详解
Aug 08 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
python3 发送任意文件邮件的实例
Jan 23 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
Python中return self的用法详解
Jul 27 Python
基于python-opencv3的图像显示和保存操作
Jun 27 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Python如何读写CSV文件
Aug 13 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 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
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
php生成excel文件的简单方法
2014/02/08 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
js css自定义分页效果
2017/02/24 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
python取余运算符知识点详解
2019/06/27 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python面向对象编程基础实例分析
2020/01/17 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
存储过程和函数的区别
2013/05/28 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
医学检验专业大学生求职信
2013/11/18 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
爱情寄语大全
2014/04/09 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
起诉书格式范文
2015/05/20 职场文书
Python中22个万用公式的小结
2021/07/21 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
php去除deprecated的实例方法
2021/11/17 PHP