近日,公司老板让我对单位所有计算机的网络安全防护情况进行检查,主要还是想看看计算机有没有开启多余的端口和服务,是否存在弱口令等问题。接到这个任务后,我心想:从网上随便下载一个局域网扫描软件不就OK了?于是在网上查找,可惜是找一大圈了,发现没有太合适的工具,总是存在这样或那样的问题:不是软件版本太老旧,无法在win7,win10新操作系统下使用,就是软件捆绑了各种木马程序,搞得我的计算机差一点崩溃掉!既然网上找不到合适的程序,干脆自己写一个网络漏洞扫描器算了,反正也不复杂。说干就干,于是开始动手...
1.选择ide
我以前做毕业设计的时候用过vc6,就用vc6吧,对这个比较熟悉,也没有时间现学新的ide。下面先看看vc6的介绍
vc6实际上 visual studio 6.0里的一个IDE,而 visual studio 6.0是由微软于1998推出的一款非常经典的编程组件。该版本也是微软最后一个不支持.NET构架的程序开发组件了。该软件可以进行软件编程、web设计、网页设计、代码编辑工具,内置 Visual Basic、Visual C++、Visual J++等八款编辑工具,微软公司在编程开发领域一直处于世界领先水平。虽然该版本比较旧,已经是“老古董”,但是其灵活性还是非常强呢!所以说,开发一些win平台下的小程序,我感觉vc6应该足够用了。
![5fdf555497fa6b79ca55d7f917034865.png](https://img-blog.csdnimg.cn/img_convert/5fdf555497fa6b79ca55d7f917034865.png)
2.搭建界面
界面的搭建非常重要,经过研究,我设计了如下的界面,因为是自己使用,所以界面力争简洁、方便。界面主要包括:左侧的tree控件,右侧的listctrl控件和ip地址输入框控件和选项按钮等。
![2a8196b58c770ccc67b4678dbff2b87b.png](https://img-blog.csdnimg.cn/img_convert/2a8196b58c770ccc67b4678dbff2b87b.png)
3.编写程序
界面也就是用了十分钟就搞定了,下面开始写程序了。程序的主要部分是用户点击开始扫描后的一些读取用户参数和执行扫描线程操作。
![5c4b6830ac494d2dbcdacbd5b640bb8f.png](https://img-blog.csdnimg.cn/img_convert/5c4b6830ac494d2dbcdacbd5b640bb8f.png)
点击开始扫描按钮
当用户单击"开始扫描"按钮后,核心代码逻辑如下,主要功能是获取用户输入ip范围和扫描参数,然后启动主扫描线程开始网段扫描并在listctrl控件实时显示扫描信息。
![f80ed46a9175a70f3e59716403f552a3.png](https://img-blog.csdnimg.cn/img_convert/f80ed46a9175a70f3e59716403f552a3.png)
扫描线程主要功能是实现各类扫描,如Ping,主机信息探测,端口扫描,telnet、ftp弱口令检测等功能,这些功能网上都有很多的代码片段可以参考,这里就不详细说明了。有兴趣的朋友,可以私信我一起探讨相关代码实现过程。
4.测试功能
用了差不多两天时间吧,代码敲得差不多了。然后,就是测试程序是否好用。打开程序,输入扫描参数,对公司的192.168.0.1-192.168.0.255全网段扫描一下,看看有啥结果?期待的感觉...
![376c7d2593fcd31aaf6cbd2fe19eb387.png](https://img-blog.csdnimg.cn/img_convert/376c7d2593fcd31aaf6cbd2fe19eb387.png)
单击“开始扫描”按钮,启动程序:
![26ecc536ab53b26a00094c5de984a6be.png](https://img-blog.csdnimg.cn/img_convert/26ecc536ab53b26a00094c5de984a6be.png)
不一会儿,扫描结果就出来了。左侧显示网络内存活主机的信息,能够正常显示主机的ip,共享和端口信息。右侧列表框内红色方框标注的信息提示192.168.0.138这台主机存在telnet弱口令。为了看看这个弱口令是否有效,我在本机尝试远程登录一下这台计算机。
![3ca90ea89161b9849fca6ca85a1c4ef7.png](https://img-blog.csdnimg.cn/img_convert/3ca90ea89161b9849fca6ca85a1c4ef7.png)
然后出现提示信息:
![ea419d3f2184bc051a9c3eefb83cc88c.png](https://img-blog.csdnimg.cn/img_convert/ea419d3f2184bc051a9c3eefb83cc88c.png)
选择"n",然后出现如下界面:
![8dbd5aca3140e47337df0b13d86a2165.png](https://img-blog.csdnimg.cn/img_convert/8dbd5aca3140e47337df0b13d86a2165.png)
这里输出扫描软件检测到的弱口令帐号和密码“Administrator ","123”
![4711915ef2e9e4ef3bd466f1e076a184.png](https://img-blog.csdnimg.cn/img_convert/4711915ef2e9e4ef3bd466f1e076a184.png)
输入帐号和密码后,成功telnet该主机,已经用telnet远程控制了该计算机,获取了该机的cmd shell。
总结:vc++6虽然已经比较老旧了,但是通过实战发现,vc6容易上手,操作灵活,编写一些windows小程序还是非常方便的,而且还非常容易迁移至高版ide。