Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import smbc
- import sys
- import os
- # WORKGROUP = "WORKGROUP"
- # USERNAME = "username"
- # PASSWORD = "password"
- def get_shares(server):
- shares = []
- for share in ctx.opendir("smb://" + server).getdents():
- if share.smbc_type == 3: # 3 = File Share
- shares.append(share.name)
- return shares
- def get_share_content(server, share):
- contents = []
- try:
- for content in ctx.opendir("smb://" + server + "/" + share).getdents():
- contents.append(content.name)
- except:
- pass
- return contents
- def try_write_file(server, share, path):
- writable = []
- try:
- filewrite = ctx.open("smb://" + server + "/" + share + "/" + path + "/testfile", os.O_CREAT | os.O_WRONLY)
- writable.append(path)
- except:
- pass
- return writable
- ctx = smbc.Context()
- def main():
- serverlist = sys.argv[1]
- print("[*] Serverlist: " + serverlist)
- with open(serverlist) as file:
- for server in file.read().splitlines():
- print("[*] Shares for server " + server + ":")
- try:
- shares = get_shares(server)
- except:
- print("Cannot connect!")
- continue
- for share in shares:
- print("[*] Share: //" + server + "/" + share)
- for share in shares:
- #print("[*] Content of //" + server + "/" + share + ":")
- contents = get_share_content(server, share)
- for content in contents:
- print("[*] Content: //" + server + "/" + share + "/" + content)
- if try_write_file(server, share, content):
- print("[!] It's possible two write to: " + server + "/" + share + "/" + content)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement