前几篇文章主要介绍了使用delphi开发后门及简单的远控的知识,有小伙伴说delphi已经过时了没人用了,但是笔者觉得编程语言只是实现功能的一种方式,使用你熟悉或者喜欢的语言即可。
DELPHI黑客编程(一):正向后门原理实现
DELPHI黑客编程(二):反弹后门原理实现
DELPHI黑客编程(三):简单远控原理实现
在最近的公司项目开发中接触到python语言及wifi相关的一些知识,正好将最近学到的和大家分享一下。
0x0001 开发环境:
windows 10+python2.7.15
0x0002 开发目标:
开发基于字典破解wifi热点密码的小工具
在开发这个工具的时候笔者现在网上搜索到了一些项目,但都是linux下的,不能直接用于windows平台,因此就决定结合找到的linux下的项目,修改成windows下可运行的。
首先找到文章《一个非常简单易懂的WIFI密码爆破python脚本》
my.oschina.net/Apathy/blog…
,但是文章中说使用了pywifi模块,“这个模块在win下有点鸡肋,作者在调用WLANAPI时没有做好WLAN_SECURITY_ATTRIBUTES的封装,所以推荐在linux下跑,我测试所使用的是Kali
2.0 自带python 2.7.6 ,可直接通过 pip install pywifi 安装。”但笔者在测试的时候发现,在windows下还是可以运行的,因为要对这个模块的源代码进行一些修改,所以就没有安装模块,而是直接拷贝模块的源代码到项目目录下。
0x0003 模块的修改:
在使用模块自带的测试用例时候,发现print输出了很多无用的信息,因此在_wifiutil_win.py的335行去掉对“show_my_need_info”的调用。
0x0004 程序执行流程
功能需求比较清晰,因此我们的步骤如下:
1、获得本机无线网卡信息
2、扫描周围wifi热点
3、使用字典尝试连接wifi热点
4、输出扫描结果
按照上面的流程就可以编写代码了。
0x0005 代码实现
获得无线网信息
引用模块后,主要使用interfaces函数获取本机无线网卡信息,具体代码封装如下:
def get_wifi_interface():
wifi = PyWiFi()
if len(wifi.interfaces()) <= 0:
print u'未找到无线网卡接口!'
exit()
if len(wifi.interfaces()) == 1:
print u'无线网卡接口: %s'%(wifi.interfaces()[0].name())
return wifi.interfaces()[0]
else:
print '%-4s %s'%(u'序号',u'网卡接口名称')
for i,w in enumerate(wifi.interfaces()):
print '%-4s %s'%(i,w.name())
while True:
iface_no = raw_input('请选择网卡接口序号:'.decode('utf-8').encode('gbk'))
no = int(iface_no)
if no>=0 and no < len(wifi.interfaces()):
return wifi.interfaces()[no]
扫描周围热点
主要通过scan函数获得scan_results结果,具体代码封装如下,这里sleep(2)是因为测试的时候本机的无线网卡返回信息需要一些时间,当然如果你的网卡性能好,可以去掉这个sleep: