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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
Python中模拟enum枚举类型的5种方法分享
Nov 22 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
python实现猜数字小游戏
Mar 24 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
python随机数分布random均匀分布实例
Nov 27 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
PyCharm+Miniconda3安装配置教程详解
Feb 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利用cookie实现访问次数统计代码
2011/05/19 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
jquery 按键盘上的enter事件
2014/05/11 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
Javascript中的arguments与重载介绍
2015/03/15 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
Angular6使用forRoot() 注册单一实例服务问题
2019/08/27 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Python实现获取某天是某个月中的第几周
2015/02/11 Python
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
python2.7实现邮件发送功能
2018/12/12 Python
自学python的建议和周期预算
2019/01/30 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
总经理助理岗位职责
2013/11/08 职场文书
少先队入队活动方案
2014/02/08 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
爱晚亭导游词
2015/02/09 职场文书
品德与社会教学反思
2016/02/24 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
python开发的自动化运维工具ansible详解
2021/08/07 Python
Js类的构建与继承案例详解
2021/09/15 Javascript