![]() ![]() |
||||||||||||||||||||||
用VB编写入侵监听程序 | ||||||||||||||||||||||
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:45:02 文章录入:杜斌 责任编辑:杜斌 | ||||||||||||||||||||||
|
||||||||||||||||||||||
这些扫描是简单的TCP的Connect扫描。所以无法避开防火墙的追踪。网民就可以利用天网等防火墙软件来获取对方的IP。相信很多DIY迷或者编程爱好者总是想拥有属于自己的类似的工具。本文就给你讲述如何用VB来获得探测你的入侵者的IP地址,然后……我可没有教你用蓝屏炸弹或者蜗牛炸弹去炸它哦。毕竟,我们没有入侵者的野心,本程序还可以让你监听80端口,来察看对方对你进行的常规扫描。要看懂本文,你需要有一定的VB基础。 好了,我们来看看本程序的基本原理: 入侵者通过Connect本机的端口,然后通过是否成功,来获得信息。由于TCP的三次握手原理。他必定会留下自己的IP,我们就利用这一个原理来获得对方的IP。 Winsock控件的属性、方法和事件在我上次写的《.用winsock制作漏洞扫描器》一文中已经叙述过,这里就不再介绍。大家还一定记得RemoteHostIP和LocalPort属性吧。这就是对方的IP和自己的端口。聪明的你应该明白了吧。通过这两个属性就可以清楚的获得对方的IP地址和他正在扫描的本地端口。 因为不可能一个端口只有一个人会扫描,所以本程序我们需要使用到控件数组。这个概念的描述大家可以查找MSDN。本程序的流程是: 1、 定义需要监听的端口 2、 装载一定数量的Winsock1控件,从需要监听的端口列表中获得数据。一一开启监听功能。(Listen) 3、 当某一个控件接收到连接的事件发生,就把得到的RemoteIP和LocalPort加入日志 4、 加载一个Winsock2,继续捕获数据(Getdata) 5、 Winsock2数据到达记录数据 程序的基本概念都介绍完了,相信你对本程序已经有了一定的认识。现在我们就来开始我们的工作: 程序的控件以及说明如下:
程序的代码以及说明如下: ‘本程序在VB6.0+Windows2000下测试通过! Dim tmpstr As String Dim NOW_OUT As Integer ’’’’总共出去连接的有几个Winsock Private Sub Command1_Click() ListPorts.AddItem txtADDPORT.Text End Sub Private Sub Command2_Click() On Error Resume Next If Command2.Caption = "监听" Then For i = 0 To ListPorts.ListCount - 1 Load Winsock1(i + 1) ’’’’加载监听端口的winsock1数组控件 Winsock1(i + 1).LocalPort = ListPorts.List(i) ’’’’设定端口 Winsock1(i + 1).Listen ’’’’监听 Next i Command2.Caption = "停止" Else For i = 1 To Winsock1.Count - 1 Unload Winsock1(i) Next i For i2 = 1 To Winsock2.Count - 1 Unload Winsock2(i2) Next i2 Command2.Caption = "监听" End If End Sub Private Sub Command3_Click() Unload Me End Sub Private Sub Form_Load() txtLOG.Text = "日志:" & vbCrLf NOW_OUT = 1 End Sub Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long) Load Winsock2(NOW_OUT) ’’’’加载建立连接的Winsock2数组控件 Winsock2(NOW_OUT).Accept requestID ’’’’建立连接 Winsock1(Index).Close Winsock1(Index).Listen ’’’’Winsock1继续监听 NOW_OUT = NOW_OUT + 1 ’’’’连接的控件累加 myAddLog "来自" & Winsock1(Index).RemoteHostIP & "连接到本地端口:" & Winsock1(Index).LocalPort ’’’’显示捕获的连接 End Sub Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal As Long) Winsock2(Index).GetData tmpstr ’’’’通过Getdata捕获数据 myAddLog "来自" & Winsock2(Index).RemoteHostIP & "的数据:" & tmpstr ’’’’显示捕获的数据 End Sub Sub myAddLog(tmptext As String) ’’’’加入日志 tmptext = tmptext & vbCrLf txtLOG.SelStart = Len(txtLOG.Text) txtLOG.SelText = tmptext End Sub 总结:其实一些程序的原理很简单,我们只要善于实践,并且能够把所学的只是运用到你的程序中去,我想编出类似的程序是很简单的。如木马、端口扫描器、客户端工具、CGI漏洞扫描器……。VB的Winsock控件虽说不是底层操作。及不上C语言的Socket编程的功能。但实现普通的操作还是很有用的。简单的例子就是Cookie欺骗,用VB来编写这种程序十分简单。 |
||||||||||||||||||||||
![]() ![]() |