哈哈哈逗你玩-刘mark

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

**import telnetlib
import threading
import time
tel=telnetlib.Telnet(host=‘192.168.43.207’)
time.sleep(1)
print(tel.read_until(b’name:‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’huawei\r’)
time.sleep(1)
print(tel.read_until(b’assword:‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’Admin_123!!\r’)
def print_tel(tel):
while True:
str=tel.read_very_eager().decode(‘utf-8’)
if str != ‘’:
print(str)
def send_tel(tel):
while True:
str=input(‘input:’)
if str.find(‘?’)!=-1:
tel.write((str).encode(‘utf-8’))
elif str.find(‘\t’)!=-1:
tel.write((str).encode(‘utf-8’))
else:
tel.write((str+‘\n’).encode(‘utf-8’))
thread1=threading.Thread(target=print_tel,kwargs={‘tel’:tel})
thread2=threading.Thread(target=send_tel,kwargs={‘tel’:tel})
thread1.start()
thread2.start()
time.sleep(1)
print(tel.read_until(b’name:‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’huawei\r’)
time.sleep(1)
print(tel.read_until(b’assword:‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’Admin_123!!\r’)
time.sleep(1)
print(tel.read_until(b’>‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’scr 0 t\r’)
time.sleep(1)
print(tel.read_until(b’>‘).decode(‘utf-8’))
time.sleep(1)
tel.write(b’dis cur\r’)
time.sleep(1)
import paramiko
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)
ssh.connect(hostname=‘192.168.43.206’,username=‘huawei’,password=‘Admin_123!!!’)
ssh_invoke=ssh.invoke_shell()
def print_invoke(ssh_invoke):
while True:
str=ssh_invoke.recv(65535).decode(‘utf-8’)
if str!=‘’:
print(str)
def send_invoke(ssh_invoke):
while True:
str=input()
if str.find(‘?’)!=-1:
ssh_invoke.send(str)
elif str.find(‘\t’)!=-1:
ssh_invoke.send(str)
else:
ssh_invoke.send(str+‘\n’)
def sftp_ssh():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)
ssh.connect(hostname=‘192.168.43.206’, username=‘huawei’, password=‘Admin_123!!!’)
ssh_sftp_client=ssh.open_sftp()
print(ssh_sftp_client.listdir())
ssh_sftp_client.get(‘logfile/log.log’,‘log.log’)
thread3=threading.Thread(target=print_invoke,kwargs={‘ssh_invoke’:ssh_invoke})
thread4=threading.Thread(target=send_invoke,kwargs={‘ssh_invoke’:ssh_invoke})
thread5=threading.Thread(target=sftp_ssh)
import pandas as pd
ssh2=paramiko.SSHClient()
ssh2.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)
ssh2.connect(hostname=‘192.168.43.206’,username=‘huawei’,password=‘Admin_123!!!’)
ssh2_invoke=ssh2.invoke_shell()
time.sleep(1)
ssh2_invoke.send(b’sc 0 t\n’)
time.sleep(1)
df= pd.DataFrame()
def statistics_interface():
ssh2_invoke.send(b’disp interface\n’)
time.sleep(2)
return ssh2_invoke.recv(65535).decode(‘utf-8’)
def des_interface():
ssh2_invoke.send(b’disp interface des\n’)
time.sleep(2)
return ssh2_invoke.recv(65535).decode(‘utf-8’)
def add_pd():
str_des_interface_list=des_interface().split()
str_statistics_interface_list=statistics_interface().split(‘GE’)
i=0
for str in str_des_interface_list:
if ‘GE’ in str:
df.loc[i,‘interface’]=str
df.loc[i,‘statics’]=str_statistics_interface_list[i+1]
i+=1
def rx_tx(s):
int1=s.find(‘input rate:’)
int3 = s.find(‘output rate:’)
int2=s.find(‘bits/sec’,int1,int3)
rx=s[int1:int2]
int4= s.find(‘bits/sec’,int3,len(s))
tx = s[int3:int4]
return {‘rx’:rx.replace(‘input rate:’,‘’),‘tx’:tx.replace(‘output rate:’,‘’)}
df[‘rx_tx’]=df[‘statics’].apply(rx_tx)
print(df.iloc[:,[0,2]])
import netmiko
def netmiko_ssh():
try:
ssh_net=netmiko.ConnectHandler(ip=‘192.168.43.208’, username=‘huawei’,password=‘Admin_123!’,device_type=‘huawei’,port=22)
print(ssh_net.send_command(‘disp cur’))
ssh_net.write_channel(‘sys i\t’)
time.sleep(1)
print(ssh_net.read_channel())
except Exception as e:
print(e)
finally:
pass
from pysnmp.hlapi import *
def snmp_get():
it = getCmd(SnmpEngine(),UsmUserData(userName=‘huawei’,
authKey=‘Admin_123!’, privKey=‘Admin_123!’,
authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),ContextData(),
ObjectType(ObjectIdentity(‘1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.16842753’)))
a,b,c,d=next(it)
for item in d:
print(item)
it = getCmd(SnmpEngine(),
CommunityData(‘Admin_123!’),
UdpTransportTarget((‘192.168.43.206’, 161)),
ContextData(),
ObjectType(ObjectIdentity(‘1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.16842753’)))
# 1.3.6.1.2.1.31.1.1.1.6.
a, b, c, d = next(it)
for x in d:
print(x)
thread6=threading.Thread(target=snmp_get)
import scapy.layers.inet
from scapy.all import *
from scapy.layers.inet import *
from scapy.layers.l2 import *
import datetime
import threading

pkt=(Ether(src=‘00:00:00:00:00:01’,dst=‘00:00:00:00:00:01’,type=0x800)/IP(src=‘1.1.1.1’,dst=‘2.2.2.2’,ttl=100)

/TCP(sport=100,dport=100,flags=‘PASFR’)/Raw(‘AAAAAAA’))

pkt2=(Ether(src=‘00:00:00:00:00:01’,dst=‘00:00:00:00:00:01’,type=0x800)/IP(src=‘1.1.1.1’,dst=‘2.2.2.2’,ttl=100)

/ICMP(type=‘echo-reply’)/Raw(‘AAAAAAA’))

hexdump(pkt)

ls(Ether)

ls(IP)

ls(TCP)

ls(ICMP)

dict1=dict()

dict2=dict()

wrpcap(r’.\2222.pcap’,[pkt,pkt2],append=True)

def process_packet(packet):

if packet.haslayer(ICMP):

# print( packet[ICMP].type)

if packet[ICMP].type==8:

# print(str(packet[ICMP].seq))

dict1[str(packet[ICMP].seq)]=time.time()

elif packet[ICMP].type==0:

if str(packet[ICMP].seq) in dict1.keys():

dict1[str(packet[ICMP].seq)]=time.time()-dict1[str(packet[ICMP].seq)]

elif packet.haslayer(TCP):

if ‘SA’ in str(packet[TCP].flags) :

print(str(packet[TCP].flags))

print(packet)

sniff(prn=process_packet,filter=‘tcp’)

print(dict1)

i=0

sum1=0

for k,v in dict1.items():

print(k)

sum1=sum1+v

i=i+1

print(i)

print(str(sum1/i*1000)+‘ms’)

from scapy.all import *
from scapy.layers.all import *

import gzip

from base64 import b85decode

def _d(x: str) -> str:

return gzip.decompress(

b85decode(x.replace(“\n”, “”))

).decode()

DATA = _d(“”"

ABzY8N|hyM0{^91ZExbZ7XI#Eaioz}AWb2>6zJa3jGPeKXcNeglyY@-KbXWoE+IxqXv@Ff<IvJNyVvd

RMru`2KTnQ*-kxK=kS}1DTbgUgmupL9Lm#y7x?k{3AafB>m=n6CHTV6)&I=xJ;}8aq!6UL>!9?$pv

GMJXbYp80SsD}m)4js=fFWN&Z9pC^&;iWd2T;Oc#8Qj#hV;aMX!&)3O3HkNH4X`cC!>{f3)6-KcVH

s<QeA8w{k!-R(&&s0BU)Zm*<9@~S;x9lG&iU2I=)OS_{4K+y7Yt#w*2}0pYQOEr3ouK-&?KLOn_<c

lct7y<|chvh?8HV;Dvs{@?Qj9NV@5F|8gPShT~#^zVITjnOp>4Z)J<;u$39a{5<La1I7F3sA&yz_S

8pk;=3J7zS6)7tdbliopL#BZWG6s6{rU60}8ziKohy1A#jh?r{kVsEWGInRT9ffhAGeRzh#*Z_utKvG

J!8!h;;zVPl-L&)O46+<vLk+6kd<)k*S$R&ZsTtJ4T@6?+zhG_4qcv<#gRPcdz}6j|1u9q<#np0&TXz

4j+iUG^alOkQc?vy3=YAbK&|qIf1b>P2SVhR?&?j@145>yMs!3G@=R9R6kif=#Vs(Z_r%4vh)K<>Hq+

<<{$+8p6phA&wP968%zdMFDXfV{V<mRtsU~DPggHE@n^MG7_1>P|&lZX{1Sy0z`Z)r!Lrsw6wsVMpW?

HK2ltJ-jLqx0sNmFysrtOQHs2a&&|tz=2rn|GRIdZ)S?i&94$))<;o{#?SHIG~#@{`Oxho^)8Z*Xts+

>08!2bkEWTZVwAL^809Umhnh-p#34C5KFu7+M?bN<8PW<Q?Ctyu;7%$}zuctImgcD$->&e(6(>3vI

0^nSOmOLV#1WJMBznTlw4ISAr-uKC_)eM`&ZWNVS{&wla*c6)G>vc$%3CL3_+lz20L{GM;1_te<703i

?`_lI^WSS$(VmP*k51VPUC0-X?v44uu1t2PkH(J-3Atb2f5W<EZ!WPz7Kp>%>Y0pg=mT&CA#?gLQG

nOiHyYraJt+mt@zxV%GtwEUqJ4&4M%5Y*%gLH0kL?>Di_?FQ|Df#>3p6Bv4y1YER}7d5RxDen3MKl

%l=PF){8<F!LndaJfe_2vz3m&oiG{AUNPBNw&cnKaTeX parse error: Expected 'EOF', got '}' at position 16: ~l<@>TwVCUY`Z+8}̲O1S7f+~F(R&tk6?…>

Rn<4K#*sU<gu+3ZU>iR>aI8mom)CpaNUWnS0o#jeZ};RS_A+dJ44vVVpi<t6{4oP0AB^D2VY;QF7-

n#(IQ$|5&1452|KRNC4Z%1vK#EY77t=2Nd>_s9>i;mNIOV_R?23er;;32udbPPYetAO)8EQ`17Gf7XE

xTR#jS#DYC0ZV@}Ed*NEwwe3dneYn)M>#>D8)Mv#ZOs&hfi8v?oJXQkPgv{a;n8C$T7-sS&5nVt64

3CMka!ezgMt}S4aQ?-&d7LdIqO<wT(I}c2#QvJLS7F7g@3+o;`O$l|;=9?z5VMKOw)VH3sxy3dkFI

VNI0ZDow2cBUb9e^Y30bhgn0_TP}DJK|GIDZnGc(&<5;MHt0_SeI2E2UA)*lCdrm9n%8|33&dPMA!($

BeGp4+_@b(ONDKsYh!a>CeMV{6fJ^!pV>J`AX&IdMSxL9KXbeelAWJWK~Z;XWKC==mrL15*J%=!MU$A

biCg2<ZRLTd={nS{1;TnhM99#Zecb-t+3zIPA&-{(AmKf(1?$G}lBDq8;cl6&%9*#QNLVCwec<N

OhmKqF8P+pvEf7)U&VIVDTU23X?x<0nJ1(&U)3KeMCOEtquZmEVvr>9HoDTYBRLpzO|C_&2yd7U9S8d

x8u6XzCe5CHBn#8;J{Mv?fHQZ~T0kKTOV#{)L7MZw?8Zw=}F6I|`@;_cB9iCQFa!km)NMjV)0p5O0

It9Wbs6jN)eT^HLjgRUss%_=PMf&%F;P9u*ST6hdA9j;chuibd1ImYp4qN$S<NtF8BPxssUBkQWnD

F&U$qCRv7lZBIj8;lIoec7~~f;fHt<+&bZd%3<qlx>!Ng6a)JBa`D>F0hdWe=uaEi`5|77xoy<ESn

?*0PX={#UqjeBZeWLU{q9#KCAV9)Iov0;<qJeLo=cam}bzQiLf)I5b|i7iBxP(mEZtLNHVfqK

C4iRV~;jg|flR!@t−A S5(GomD)aR0pt_-A~S5(GomD)aR0p%!kR2I@NomVW!P0cT<_uPI-J%tA S5(GomD)aR0pu+d+}VRdhdoI{H!^yy9*

dz!#na_nk<X=;-}YF(<9U<#e(i8ahOW)Y<qfft(+$o!tCRd-W@8cYU3I6UzOFu1%Q63}nV&A58unUyf

%2RbGM)EFiI+9304%UFfb)cx46Ei!h!Wkw4sF>k‘1Y>R9−RYf3VAk`1Y>R9-RYf3VAk‘1Y>R9RYf3VAlCJ?Ts%S*%w&BF4{>)YAMz+=w

*xr_asB;yN6Dpn6q|b<UwHk}oTKi9Dm;tbp5<hhN{OFC5v{lZo96UTceSs3s5)7cG#Uxypr6JsG8?

xi1$siwk3P`kwrfx{4t4<(L|e8QlwYYk+g0a+^K{&{mCav{ficYJI*Ap%%4%uFtE%{gW&zhaigCotIL

qaMC5x*QeKOv+f*XnNMHCN9=Np+<jT7Lay-GBZvWNl-a_>=dIZJd|iQBr*LVHN1f55%`jsx>}L6

<P-b7X_NHCi!!f?;IvE<E5PAoA2^CPK^9J^45O2YRs)*m6eG-%d(f9M+|!lJh2@=9txZ;RQWT(M

>}0SC;Q_b9KaTeX parse error: Expected '}', got 'EOF' at end of input: …{i@cIQy_4UqIdGU?!ejC~XT@GkQ5paM

“”")

print(DATA)

ls(IP)
ls(TCP)

ls(ICMP)

ls(Dot1Q)

pkt=Ether(src=‘00:00:00:00:00:01’,dst=‘00:00:00:00:00:02’,type=‘VLAN’)/Dot1Q(vlan=100,type=‘IPv4’)/IP()/ICMP(type=8)/Raw(‘aaaaa’)

hexdump(pkt)

wrpcap(r’./3333.pcap’,pkt,append=True)

import os

dict3=dict()

for i in range(256):

dict3[‘192.168.43.’+str(i)]=[]

def send_packet(ip_addr):

for i in range(100):

send(IP(src=ip_addr)/TCP(dport=i,flags=‘S’),verbose=False)

time.sleep(0.1)

def process_packet(pkt):

if pkt.haslayer(IP):

if pkt[IP].src in dict3.keys():

if pkt.haslayer(TCP):

if ‘A’ in pkt[TCP].flags:

dict3[pkt[IP].src].append(pkt[TCP].sport)

def sniff_packet(prn):

sniff(prn=prn,iface=‘VMware Virtual Ethernet Adapter for VMnet1’)

print(conf.ifaces)

thread1=threading.Thread(target=sniff_packet,kwargs={‘prn’:process_packet})

thread1.start()

time.sleep(1)

for k,v in dict3.items():

threading.Thread(target=send_packet,kwargs={‘ip_addr’:k}).start()

while True:

time.sleep(1)

os.system(‘cls’)

for k,v in dict3.items():

if len(v)!=0:

print(‘%s open %s’%(k,v))

from pysnmp.hlapi import *
it = bulkCmd(SnmpEngine(),UsmUserData(userName=‘huawei’,
authKey=‘Admin_123!’, privKey=‘Admin_123!’,
authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),ContextData(),
1,50,
ObjectType(ObjectIdentity(‘1.3.6.1.2.1.31.1.1.1.6.66’)))
it1 = getCmd(SnmpEngine(),UsmUserData(userName=‘huawei’,
authKey=‘Admin_123!’, privKey=‘Admin_123!’,
authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),ContextData(),
ObjectType(ObjectIdentity(‘1.3.6.1.2.1.31.1.1.1.6.1’)))

1.3.6.1.2.1.31.1.1.1.6.66

1.3.6.1.2.1.31.1.1.1.18

for a,b,c,d in it:
for item in d:
for x in item:
if r’LIUJQ’ in str(str(x)):
for y in item:
print(y)
import socket
import netmiko
import time
import paramiko
import re
def handler1(title, instructions, prompt_list):
answers = []
if title:
print(title.strip())
if instructions:
print(instructions.strip())
if len(prompt_list)!=0:
for prompt, show_input in prompt_list:
print(prompt.strip(), end=" “)
if ‘Enter password1:’ in prompt :
answers.append(‘Admin_123!’)
time.sleep(1)
elif ‘initial password poses security risks’ in prompt :
answers.append(input())
else:
answers.append(input())
print(answers)
return answers
# response = []
#
# for prompt, echo in prompt_list:
# print(prompt.strip(), end=” ")
# if ‘Enter password:’ in prompt:
# response.append(input()A)
# time.sleep(1)
# elif ‘Continue? [Y/N]:’ in prompt:
# response.append(‘Y’)
# elif ‘old’ in prompt:
# response.append(‘Admin_123!’)
# elif ‘enter new password:’ in prompt:
# response.append(‘Admin_123!!!’)
# elif ‘confirm new password:’ in prompt:
# response.append(‘Admin_123!!!’)
# print(response)
#
# return response

ssh_client=paramiko.SSHClient()

ssh_client.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)

ssh_client.connect(hostname=‘192.168.43.208’,username=‘huawei’,password=‘Admin_123!’)

transport=paramiko.Transport((‘192.168.43.208’,22))

transport.start_client(timeout=1000)

transport.auth_interactive_dumb(username=‘huawei’,handler= handler1,submethods=‘disp cur’)

sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.connect((“192.168.43.206”, 22))

transport=paramiko.Transport(sock)

transport.start_client(timeout=1000)

transport.auth_interactive_dumb(username=‘huawei’)

channel=transport.open_channel(kind=‘session’)

channel.exec_command(‘disp cur\n’)

time.sleep(1)

print(channel.recv(65535).decode(‘utf-8’))

str1=“”“GigabitEthernet1/1/0 current state : UP
Line protocol current state : DOWN
Link quality grade : GOOD
Description:CNET DNS2 SERVER
Route Port,The Maximum Transmit Unit is 4470
Internet protocol processing : disabled
IP Sending Frames’ Format is PKTFMT_ETHNT_2, Hardware address is 286e-d495-abe1
The Vendor PN is MXPD-243S
The Vendor Name is HG GENUINE
Port BW: 1G, Transceiver max BW: 1G, Transceiver Mode: SingleMode
WaveLength: 1310nm, Transmission Distance: 10km
Rx Power: -5.44dBm, Warning range: [-20.00, -3.00]dBm
Tx Power: -6.44dBm, Warning range: [-9.00, -3.00]dBm
Loopback:none, full-duplex mode, negotiation: disable, Pause Flowcontrol:Receive Enable and Send Enable
Last physical up time : 2023-08-11 10:36:48 UTC+08:00
Last physical down time : 2023-08-11 10:36:43 UTC+08:00
Current system time: 2024-10-05 14:25:52+08:00
Statistics last cleared:never
Last 10 seconds input rate: 119640 bits/sec, 201 packets/sec
Last 10 seconds output rate: 155256 bits/sec, 267 packets/sec
Input: 184349502270134 bytes, 277953494937 packets
Output: 488142456561621 bytes, 1352682789974 packets
Input:
Unicast: 277863860229 packets, Multicast: 84176453 packets
Broadcast: 5458255 packets, JumboOctets: 3426481045 packets
CRC: 50 packets, Symbol: 0 packets
Overrun: 0 packets, InRangeLength: 0 packets
LongPacket: 0 packets, Jabber: 0 packets, Alignment: 0 packets
Fragment: 14 packets, Undersized Frame: 0 packets
RxPause: 0 packets
Output:
Unicast: 1344254474787 packets, Multicast: 178140518 packets
Broadcast: 8250174669 packets, JumboOctets: 32009948077 packets
Lost: 0 packets, Overflow: 0 packets, Underrun: 0 packets
System: 0 packets, Overrun: 0 packets
TxPause: 0 packets
Input bandwidth utilization : 0.02%
Output bandwidth utilization : 0.02% “””
import os
import threading

os.system(‘cls’)

rx_tx=re.finditer(‘Gi\D*\d/\d/\d|(input rate:|output rate:)\s\d{1,}’,str1)

for it in rx_tx:

str2=it.group()

print(str2)

print(re.split(r’:',str1))

re_split=re.split(r"😐,|\s+",str1)

print(re_split)

import socket

def server1():

server=socket.socket()

server.bind((‘192.168.43.1’,4000))

server.listen(100)

recv, addr = server.accept()

while True:

print(‘%s’% str(addr))

print(recv.recv(65535).decode(‘utf-8’))

def client1():

client=socket.socket()

client.connect((‘192.168.43.1’,4000))

while True:

client.send(‘fuck!’.encode(‘utf-8’))

time.sleep(10)

thread1=threading.Thread(target=server1)

thread2=threading.Thread(target=client1)

thread1.start()

thread2.start()

from scapy.all import *
from scapy.layers.inet import *
from scapy.layers.l2 import *
import re
def process_packet(pkt):
if pkt.haslayer(TCP):
if pkt.haslayer(Raw):
payload_str=str(pkt[Raw].load)
items=re.finditer(r’user.*pass’,payload_str,re.I)
if items==None:
print(‘None’)
for item in items:
print(payload_str)
sniff(offline=r’C:\Users\86186\Desktop\111.pcap.pcapng’,prn=process_packet)
print(conf.ifaces)
wrpcap(r’./11111.pcap’,sniff(count=10))

# print(conf.ifaces)

pkt=Ether()/IP(src=‘1.1.1.1’)/TCP(sport=1000,flags=‘S’)/Raw(‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA’)

# ls(pkt)

# print(explore(scapy.layers.l2))

print(explore(scapy.layers.inet))

# explore(scapy.layers.inet6)

ls(Ether)

dir(TCP)

sendp(pkt,iface=‘VMware Virtual Ethernet Adapter for VMnet1’)

if pkt.haslayer(‘TCP’):

print(pkt[‘TCP’].dport)

def packet_callback(packet):

if packet[TCP].payload:

mypacket = str(packet[TCP].payload)

if ‘user’ in mypacket.lower() or ‘pass’ in mypacket.lower():

print(f"[*] Destination: {packet[IP].dst}")

print(f"[*] {str(packet[TCP].payload)}")

def main():

# 监听邮件协议常用端口

# 参数store,把它设为0以后,Scapy就不会将任何数据包保留在内存里

sniff(filter=‘tcp port 110 or tcp port 25 or tcp port 143’,

prn=packet_callback, store=0)

def fengxi(pkt):

flag = False

ip_layer = pkt.getlayer(‘IP’)

tcp_layer = pkt.getlayer(‘TCP’)

if tcp_layer:

data = {

‘time’: ip_layer.time,

“ip”: {‘src’: ip_layer.src, ‘dst’: ip_layer.dst, ‘version’: ip_layer.version},

“tcp”: {‘seq’: tcp_layer.seq, ‘ack’: tcp_layer.ack}

}

if pkt.haslayer(HTTPRequest):

data[‘type’] = ‘request’

http_header = pkt[HTTPRequest].fields

http_header.pop(“Headers”)

data[‘hearder’] = http_header

flag = True

elif pkt.haslayer(HTTPResponse):

data[‘type’] = ‘response’

http_header = pkt[HTTPResponse].fields

http_header.pop(“Headers”)

data[‘hearder’] = http_header

flag = True

if flag:

if ‘Raw’ in pkt:

payload = pkt[‘Raw’].load

if payload:

if isinstance(payload, str):

data[‘data’] = payload

print data

from ncclient import manager
from ncclient.xml_ import to_ele
m=manager.connect(host=‘2.2.2.2’,username=‘dlunicom1’,password=‘Admin_123!’,hostkey_verify=False,look_for_keys=False,
device_params={‘name’:‘huawei’})
edit=“”“



merge
rollback-on-error




300

1
0






“””
to_xml=to_ele(edit)
print(to_xml)
print(m.rpc(to_xml))

import paramiko

import time

ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)

ssh.connect(hostname=‘2.2.2.2’,username=‘huawei’,password=‘Admin@123’)

vty=ssh.invoke_shell()

vty.send(‘scr 0 t\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘sys i\n’)

time.sleep(1)

vty.send(‘vlan 1\n’)

time.sleep(1)

vty.send(‘interface vlan 1\n’)

time.sleep(1)

vty.send(‘ip address 192.168.255.1 30\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘disp cur interface vlan 1\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘ip route-static 0.0.0.0 0.0.0.0 null0\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘disp ip routing\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘interface ge1/0/1\n’)

time.sleep(1)

time.sleep(1)

vty.send(‘undo portsw\n’)

vty.send(‘ip address 10.1.1.1 24\n’)

time.sleep(1)

vty.send(‘interface ge1/0/2\n’)

time.sleep(1)

vty.send(‘undo portsw\n’)

vty.send(‘ip address 10.1.2.1 24\n’)

time.sleep(1)

vty.send(‘disp cur int ge1/0/1\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

vty.send(‘disp cur int ge1/0/2\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

import paramiko
import time
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)
ssh.connect(hostname=‘2.2.2.2’,username=‘huawei’,password=‘Admin@123’)
vty=ssh.invoke_shell()
vty.send(‘dir\n’)
time.sleep(1)
print(vty.recv(65535).decode(‘utf-8’))

sftp1=ssh.open_sftp()

sftp=sftp1.put(‘command.txt’,‘command.txt’)

from pysnmp.hlapi import *
it = getCmd(SnmpEngine(),UsmUserData(userName=‘admin’,
authKey=‘Huawei@123’, privKey=‘Huawei@123’,
authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),
ContextData(),
ObjectType(ObjectIdentity(‘1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.16842753’)))
a,b,c,d=next(it)
for x in d:
print(x)

import paramiko

import time

ssh=paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)

ssh.connect(hostname=‘2.2.2.2’,username=‘huawei’,password=‘Admin@123’)

str1=‘’

vty=ssh.invoke_shell()

vty.send(‘scr 0 t\n’)

file=open(‘command.txt’,‘r+’)

for line in file:

time.sleep(2)

vty.send(line+‘\n’)

time.sleep(1)

print(vty.recv(65535).decode(‘utf-8’))

# vty.send(‘scr 0 t\n’)

# time.sleep(1)

# print(vty.recv(65535).decode(‘utf-8’))

from ncclient import manager
from ncclient.xml_ import to_ele
m=manager.connect(device_params={‘name’:‘huawei’},host=‘2.2.2.2’,username=‘huawei’,password=‘Admin@123’,hostkey_verify=False)

config=“”"

merge

rollback-on-error

IPv4

“”"

cc=to_ele(config)

print(m.rpc(cc))

get=“”"













“”"

getxml=to_ele(get)

print(m.rpc(getxml))

sniff(prn=process_packet,iface=‘Intel® Wi-Fi 6 AX201 160MHz’,filter=(‘icmp[icmptype]=icmp-echo’))
from paramiko import SSHClient
from pysnmp.hlapi import *
from ncclient import manager
from ncclient.xml_ import to_ele
import paramiko
import threading
import time
import socket
def print_help():
# print(help(SSHClient))
# print(help(pysnmp.hlapi.cmdgen))
pass
def ssh_client():
ssh_session=SSHClient()
ssh_session.set_missing_host_key_policy(paramiko.MissingHostKeyPolicy)
ssh_session.connect(hostname=‘192.168.43.200’,username=‘huawei’,password=‘Admin_123!’,
port=22)
ssh_invoke=ssh_session.invoke_shell()
ssh_invoke.send(b’n\n’)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
ssh_invoke.send(b’scr 0 t \n’)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
ssh_invoke.send(b’sys i\n’)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
ssh_invoke.send(b’bgp 100\n’)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
ssh_invoke.send(b’peer \n’)
time.sleep(1)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
ssh_invoke.send(b’disp cur\n’)
time.sleep(1)
print(ssh_invoke.recv(65535).decode(‘utf-8’))
time.sleep(1)
def snmp_getcmd():
g = getCmd(SnmpEngine(),
UsmUserData(userName=‘huawei’, authKey=‘Admin_123!’, privKey=‘Admin_123!’,authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘192.168.56.2’, 161)),
ContextData(),
ObjectType(ObjectIdentity(‘SNMPv2-MIB’, ‘sysDescr’, 0)))
a,b,c,d=next(g)
for item in d:
for x in item:
print(x)
def netconf_rpc():
nc=manager.connect(host=‘192.168.43.200’,device_params={‘name’:‘huawei’},username=‘huawei’,password=‘Admin_123!’,hostkey_verify=False)
get=“”"













“”"
getxml=to_ele(get)
print(nc.rpc(getxml))
def socket_1():
print(help(socket))
def socket_server():
sk1=socket.socket()
sk1.bind((‘192.168.43.1’,8800))
sk1.listen(1)
conn,address=sk1.accept()
while True:
data=conn.recv(1024).decode(‘utf-8’)
print(f’client: {data}‘)
if data==‘break’:
break
msg = input(“请输入服务端发送的消息:”)
conn.send(msg.encode(“UTF-8”))
thread1 = threading.Thread(target=socket_server)
thread1.start()
def socket_client():
skt2=socket.socket()
skt2.connect((‘192.168.43.1’,8800))
while True:
msg=input(‘send to server:’)
if msg==‘break’:
break
skt2.send(msg.encode(‘utf-8’))
data = skt2.recv(1024).decode(‘utf-8’)
print(f’client: {data}’)
thread2=threading.Thread(target=socket_client)
thread2.start()
#1. 库文件使用:使用pysnmp库,编写一个Python脚本,从IP地址为192.168.0.2的交换机1获取系统名称(sysName)和系统描述(sysDescr)
import threading
from pysnmp.hlapi import *
it=getCmd(SnmpEngine(),
UsmUserData(userName=‘huawei’,authKey=‘Admin_123!’, privKey=‘Admin_123!’, authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),ContextData(),
ObjectType(ObjectIdentity(‘SNMPv2-MIB’, ‘sysDescr’, 0)))
for a,b,c,d in it:
for item in d:
print(item)
it2=getCmd(SnmpEngine(),
UsmUserData(userName=‘huawei’,authKey=‘Admin_123!’, privKey=‘Admin_123!’, authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((‘2.2.2.2’,161)),ContextData(),
ObjectType(ObjectIdentity(‘SNMPv2-MIB’, ‘sysName’, 0)))
for a,b,c,d in it2:
for item in d:
print(item)
#2. 库文件使用:使用scapyåº“ï¼Œæž„é€ ä¸€ä¸ªICMP请求数据包,源IP为192.168.0.1ï¼Œç›®æ ‡IP为192.168.1.2,并发送该数据包。
from scapy.all import *
from scapy.layers.inet import *
print(conf.ifaces)

def process_packet(pkt):

hexdump(pkt)

def sniff_packet(prn):

sniff(prn=prn,iface=‘Intel® Wi-Fi 6 AX201 160MHz’,filter=‘icmp’)

thread1=threading.Thread(target=sniff_packet,kwargs={‘prn’:process_packet})

thread1.start()

pkt=IP(src=‘192.168.0.1’,dst=‘192.168.1.2’)/ICMP(type=‘echo-request’)/Raw(‘AAAAAAAAAA’)
send(pkt)
time.sleep(1)
#使用pythonping和socket库,分别实现对192.168.1.2的连通性检测。比较两种方法的优缺点。
import pythonping
import socket

print(pythonping.ping(‘2.2.2.2’))

sock=socket.socket()

try:

sock.connect((‘2.2.2.2’,2222))

except Exception as e:

print(e)

print(‘2.2.2.2:2222 is not alive’)

else:

print(‘2.2.2.2:22 is alive’)

finally:

pass

#pythonping 只能检测地址是否存活,socket可以探测端口

使用pyshark捕获网络流量,然后使用numpy和pandas对捕获的数据进行分析,提取出所有ICMP数据包的统计信息,如平均大小、最大大小、最小大小等

import pyshark
import pandas
from scapy.all import *
import numpy
pd=pandas.DataFrame({‘ip_address’:[],‘send_time’:[],‘receive_time’:[],‘seq’:[],‘rtt_time’:[]})

ls(ICMP)

ls(IP)

def process_icmp_packet(pkt):
if pkt.haslayer(ICMP):
if pkt[ICMP].type8:
ip_address = str(pkt[IP].dst)
pd.loc[len(pd)]=[ip_address,time.time(),‘’,pkt[ICMP].seq,‘’]
elif pkt[ICMP].type
0:
ip_address = str(pkt[IP].src)
pd.loc[(pd[‘seq’]==pkt[ICMP].seq)&(pd[‘ip_address’]==ip_address),‘receive_time’]=time.time()
pd[‘rtt_time’]=pd[[‘receive_time’,‘send_time’]].apply(lambda x: x[‘receive_time’]-x[‘send_time’],axis=1)

def sniff_packet(prn):

sniff(prn=prn,iface=‘Intel® Wi-Fi 6 AX201 160MHz’,filter=‘icmp’,count=10)

thread1=threading.Thread(target=sniff_packet,kwargs={‘prn’:process_icmp_packet})

thread1.start()

def process_icmp_packet2(pkt):
if ‘ICMP’ in pkt.highest_layer and ‘ICMPv6’ not in pkt:
if int(pkt.icmp.type)==8:
ip_address = str(pkt.ip.dst)
pd.loc[len(pd)] = [ip_address, time.time(), ‘’, int(pkt.icmp.seq), ‘’]
elif int(pkt.icmp.type)0:
ip_address = str(pkt.ip.src)
pd.loc[(pd[‘seq’] == int(pkt.icmp.seq)) & (pd[‘ip_address’] == ip_address), ‘receive_time’] = time.time()
pd[‘rtt_time’] = pd[[‘receive_time’, ‘send_time’]].apply(lambda x: x[‘receive_time’] - x[‘send_time’],axis=1)
elif ‘TCP’ in pkt:
print(pkt.tcp.field_names)
cap=pyshark.LiveCapture(interface=r’\Device\NPF_{3B71C1E1-4D16-40C1-AD4D-9FDFF01E7B89}‘)
cap.apply_on_packets(process_icmp_packet2,packet_count=100)
time.sleep(10)
print(pandas.pivot_table(pd,index=[‘ip_address’],values=[‘rtt_time’],aggfunc=‘mean’))
print(pandas.pivot_table(pd,index=[‘ip_address’],values=[‘rtt_time’],aggfunc=‘max’))
print(pandas.pivot_table(pd,index=[‘ip_address’],values=[‘rtt_time’],aggfunc=‘min’))
import pyshark
packets=pyshark.FileCapture(input_file=r’C:\Users\86186\Desktop\03.pcapng’,display_filter='tcp.port
23’)
#test=pyshark.LiveCapture(interface=r’\Device\NPF_{3B71C1E1-4D16-40C1-AD4D-9FDFF01E7B89}')

抓取telnetç”¨æˆ·åå¯†ç ï¼š

for packet in packets:
# print(packet.highest_layer)
if packet.highest_layer==‘TELNET’:
print(packet.TELNET.get_field(‘data’))
packets.close()
packets2=pyshark.FileCapture(input_file=r’C:\Users\86186\Desktop\03.pcapng’,display_filter=‘ip’)
#test=pyshark.LiveCapture(interface=r’\Device\NPF_{3B71C1E1-4D16-40C1-AD4D-9FDFF01E7B89}')

统计IP源连接数量

dict1=dict()
for packet in packets2:
if packet.ip.src in dict1.keys():
dict1[packet.ip.src]+=1
elif packet.ip.src not in dict1.keys():
dict1[packet.ip.src]=1
print(dict1)
packets2.close()
packets3=pyshark.FileCapture(input_file=r’C:\Users\86186\Desktop\03.pcapng’,display_filter=‘ip’)
#test=pyshark.LiveCapture(interface=r’\Device\NPF_{3B71C1E1-4D16-40C1-AD4D-9FDFF01E7B89}')

统计tcp端口号

dict2=dict()
for packet in packets3:
if ‘tcp’ in packet:
if packet.tcp.srcport in dict2.keys():
dict2[packet.tcp.srcport]+=1
elif packet.tcp.srcport not in dict1.keys():
dict2[packet.tcp.srcport]=1
print(dict2)
packets3.close()
packets4=pyshark.FileCapture(input_file=r’C:\Users\86186\Desktop\03.pcapng’)
#test=pyshark.LiveCapture(interface=r’\Device\NPF_{3B71C1E1-4D16-40C1-AD4D-9FDFF01E7B89}')

统计mac

dict3=dict()
for packet in packets4:
if ‘eth’ in packet:
if packet.eth.src in dict3.keys():
dict3[packet.eth.src]+=1
elif packet.eth.src not in dict3.keys():
dict3[packet.eth.src] = 1
list1=dict3.values()
#获取最多的MAC数量
for key,value in dict3.items():
if value==max(list1):
print(key+“:”+str(value))
packets4.close()
import pyshark
packets=pyshark.FileCapture(input_file=r’C:\Users\86186\Desktop\03.pcapng’)
‘’’
def print_highest_layer(pkt):
print(pkt.highest_layer)
packets.apply_on_packets(print_highest_layer)
‘’’
for packet in packets:
if ‘tcp’ in packet:
########## 打印tcp udp 载荷
‘’’
if ‘payload’ in packet.tcp.field_names:
str=‘’
for c in packet.tcp.payload.split(‘:’):
str=str+chr(int(c,16))
if ‘baidu’ in str:
print(str)
if ‘payload’ in packet.tcp.field_names:
print(packet.tcp.time_delta)
print(packet.tcp.len)
float1=float(packet.tcp.time_delta)
print(type(float1))
print(packet.tcp.field_names)
‘’’
if ‘TLS’ in packet.highest_layer:
print(packet.TLS.field_names)
elif ‘HTTP’ in packet.highest_layer:
print(packet.http.field_names)
elif ‘SSH’ in packet.highest_layer:
print(packet.ssh.field_names)
elif ‘TELNET’ in packet.highest_layer:
print(packet.telnet.field_names)
print(packet.telnet.get_field_value(‘data’))
elif ‘udp’ in packet:
print(packet.udp.field_names)
if ‘DNS’ in packet.highest_layer:
print(packet.dns.field_names)
elif ‘ICMP’ in packet.highest_layer:
if ‘ICMPV6’ in packet.highest_layer:
print(packet.icmpv6.field_names)
else :
pass
# print(packet.icmp.field_names)
elif ‘ISIS’ in packet.highest_layer:
print(packet.isis.field_names)
elif ‘ARP’ in packet.highest_layer:
print(packet.arp.field_names)
‘’’
getCmd只能用适用于OID值是一个叶子节点的情况就比如设备的名字只有一个,而bulkCmd是用于节点下还有叶子节点的情况,
就比如查接口名称,每个接口是一个节点,但是父节点是同一个,就用这个父节点查询。
‘’’
from pysnmp.hlapi import *
ip = ‘10.154.157.102’
getinfos = bulkCmd(
SnmpEngine(),
UsmUserData(userName=‘admin’,authKey=‘Huawei@123’,privKey=‘Huawei@123’,authProtocol=usmHMACSHAAuthProtocol,privProtocol=usmAesCfb128Protocol),
UdpTransportTarget((ip,161)) ,
ContextData(),0,50,
ObjectType(ObjectIdentity(‘1.3.6.1’)),
)
print(getinfos)
result = []
for (errorIndication, errorStatus, errorIndex, varBinds) in getinfos:
if not errorIndication and not errorStatus:
oid_value = []
for varBind in varBinds:
# result = ‘,’.join([x.prettyPrint() for x in varBind])
#oid_value = [x.prettyPrint() for x in varBind]
oid_value = [x for x in varBind]
result.append(oid_value)
for i in result:
print(i)**

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值