Could you give me an example of using pysmb library to connect to some samba server? I've read there's class smb.SMBConnection.SMBConnection(username, password, my_name, remote_name, domain='', use_ntlm_v2=True) but i can't figure out how to use it
For example you want to store a file via pysmb same as this:
from smb.SMBConnection import SMBConnection
file_obj = open('image.png', 'rb')
connection = SMBConnection(username=username,
password=password,
remote_name=remote_name, # It's net bios name
domain=domain,
use_ntlm_v2=True)
connection.connect(ip=host) # The IP of file server
connection.storeFile(service_name=service_name, # It's the name of shared folder
path=path,
file_obj=file_obj)
connection.close()
I have been using pysmb for network shares enumeration lately, and found that it is not so easy to find good / complete examples. I'd refer you to a small script that I wrote for enumerating smb shares with pysmb: https://github.com/n3if/scripts/tree/master/smb_enumerator
For the sake of completeness, also, I post here the code snippet that accomplishes the connection and enumeration:
from smb import SMBConnection
try:
conn = SMBConnection(username,password,'name',system_name,domain,use_ntlm_v2=True,
sign_options=SMBConnection.SIGN_WHEN_SUPPORTED,
is_direct_tcp=True)
connected = conn.connect(system_name,445)
try:
Response = conn.listShares(timeout=30) # obtain a list of shares
print('Shares on: ' + system_name)
for i in range(len(Response)): # iterate through the list of shares
print(" Share[",i,"] =", Response[i].name)
try:
# list the files on each share
Response2 = conn.listPath(Response[i].name,'/',timeout=30)
print(' Files on: ' + system_name + '/' + " Share[",i,"] =",
Response[i].name)
for i in range(len(Response2)):
print(" File[",i,"] =", Response2[i].filename)
except:
print('### can not access the resource')
except:
print('### can not list shares')
except:
print('### can not access the system')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With