python2.7使用scapy發(fā)送syn實例
我就廢話不多說了,大家看代碼吧!
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和網(wǎng)卡類型(同一網(wǎng)段)
通過網(wǎng)上查閱目前找到的幾種方式
環(huán)境使用window和linux系統(tǒng)
使用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地址,這種方式需要拿到數(shù)據(jù)后自行去通過正則匹配mac地址,演示的為window上的匹配,linux需要自行修改匹配規(guī)則
通過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地址之后獲取網(wǎng)卡類型
可以直接使用mac.py
pip install mac.py
from macpy import Mac mac = Mac() information = mac.search(00-11-F1-01-01) print information
如果感覺信息還是有點老的話,需要自己手動去IEEE上面下載mac和網(wǎng)卡廠商的比對文件自行比對就行了
以上這篇python2.7使用scapy發(fā)送syn實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- python使用scapy模塊實現(xiàn)ping掃描的過程詳解
- python使用scapy模塊實現(xiàn)ARP掃描的過程
- Python3利用scapy局域網(wǎng)實現(xiàn)自動多線程arp掃描功能
- 利用Python庫Scapy解析pcap文件的方法
- Python項目 基于Scapy實現(xiàn)SYN泛洪攻擊的方法
- Python利用scapy實現(xiàn)ARP欺騙的方法
- python 的 scapy庫,實現(xiàn)網(wǎng)卡收發(fā)包的例子
- Python Scapy隨心所欲研究TCP協(xié)議棧
- Python基于scapy實現(xiàn)修改IP發(fā)送請求的方法示例
- Python中使用scapy模擬數(shù)據(jù)包實現(xiàn)arp攻擊、dns放大攻擊例子
- python通過scapy獲取局域網(wǎng)所有主機mac地址示例
- python開發(fā)實時可視化儀表盤的示例
相關文章
詳解Pycharm出現(xiàn)out of memory的終極解決方法
這篇文章主要介紹了詳解Pycharm出現(xiàn)out of memory的終極解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03numpy.transpose()實現(xiàn)數(shù)組的轉置例子
今天小編就為大家分享一篇numpy.transpose()實現(xiàn)數(shù)組的轉置例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12