视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
VB黑客攻击扫描程序源代码
2025-09-29 16:33:21 责编:小OO
文档
首次曝光 黑客攻击扫描程序源代码

类型:原创 作者:中关村在线 netdream 日期:2005-08-15 08:43:52

 

    真正的黑客是那些具有开源思想的程序员(不知我这么讲会不会有鸡蛋扔过来),现在网上的黑客工具多了,黑别人与被黑的几率就大了。黑客工具始终是一把双刃剑,他们可以是检测网络漏洞的助手,也可以是黑别人的工具。喜欢黑客技术的网友一定用过网络扫描器,这是入侵之前踩点儿的好工具,大家一定对他们是怎么做出来的很感兴趣,好,下面我就带大家一起来了解一下一个简单的端口扫描器是如何做出来的。

    "端口扫描"通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回端口状态来分析目标计算机的端口是否打开、是否可用。"端口扫描"行为的一个重要特征是:在短时期内有很多来自相同的信源地址传向不同的目的地端口的包。 

    端口扫描器通过选用远程TCP/IP协议不同端口的服务,记录目标计算机端口给予的回答的方法,可以搜集到很多关于目标计算机的各种有用信息(比如:是否有端口在侦听?是否允许匿名登陆?是否有可写的FTP目录,是否能用TELNET等 )。

端口扫描的基本原理图

    好了,下面我们就用VB6.0打造一个属于自己的端口扫描器吧。

    首先新建工程,准备好以下控件:SSTab、Label、Textbox、Commandbutton、Progressbar、PictureBox、Winsock、Flatscrollbar、Optionbutton.

    添加两个窗体和一个模块,分别命名为Frmscaner、OpenPortDlg、Module1。Frmscaner为扫描器的主窗体,OpenPortDlg为扫描结束后的弹出结果窗口,Module1当然就是我们所要添加的模块了,如下图拖放好控件,准备添加代码。

设计界面

    在通用声明部分添加如下代码:

Option Explicit

Dim countline As Integer

Dim nowport As Integer

Dim lognum As Integer

Dim fso As New FileSystemObject

Dim flag As Boolean

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long

Const EM_GETLINECOUNT = &HBA

Const EM_GETLINE = &HC4

        在Command1中,即开始按钮中添加如下代码:

Private Sub Command1_Click()

Dim i

If Command1.Caption = "开始" Then

GoOnFlag = True

Command1.Caption = "停止"

WckNum = ThreadNUM.Value

StartPort = PORTSTART.Text

EndPort = PORTEND.Text

RemoteIP = IPADDRESS.Text

Fengzi = 0

Fengmu = EndPort - StartPort + 1

portscan StartPort, EndPort, WckNum

Else

Command1.Enabled = False

GoOnFlag = False   

DoEvents

On Error Resume Next

For i = 1 To WckNum

Winsock(i).Close

Next i

End If

End Sub

        在退出按钮中只需写一句Unload Me就可以了:

Private Sub Command2_Click()

Unload Me

End Sub

        在Form Load中添加:

Private Sub Form_Load()

WckNum = ThreadNUM.Value

StartPort = PORTSTART.Text

EndPort = PORTEND.Text

PgBar.Value = 0

Call paintstatus

flag = True

End Sub

         在Form Resize中添加:

Private Sub Form_Resize()

STATUS.Width = Me.Width - 4830

End Sub

         在通用 Frame1_DblClick中添加:

Private Sub Frame1_DblClick(Cancel As MSForms.ReturnBoolean)

If flag Then

Me.WindowState = 2

Else

Me.WindowState = 0

End If

End Sub

        在Option1 Click中添加:

Private Sub Option1_Click()

ThreadNUM.Enabled = True

End Sub

        在Option2 Click中添加:

Private Sub Option2_Click()

ThreadNUM.Value = 500

End Sub

 

        在Option3 Click中添加:

Private Sub Option3_Click()

ThreadNUM.Value = 100

End Sub

        在STATUS Change中添加:

Private Sub STATUS_Change()

countline = SendMessage(STATUS.hwnd, EM_GETLINECOUNT, 0, 0)

If countline > 26 Then

STATUS.Text = ""

End If

End Sub

         在ThreadNUM Change中添加:

Private Sub ThreadNUM_Change()

WckNum = ThreadNUM.Value

labelnumber.Caption = Str(WckNum)

End Sub

         在Winsock Connect中添加:

Private Sub Winsock_Connect(Index As Integer)

STATUS.Text = STATUS.Text & "(端口" & Str(Winsock(Index).RemotePort) & "开放)" & vbCrLf & vbCrLf

Addtolist Winsock(Index).RemotePort

End Sub

         在通用 Addtolist中添加:

Sub Addtolist(port As Integer)

Dim addstr, plus As String

addstr = "发现端口" & Str(port) & "打开" & Space(5)

Select Case port

Case 7

plus = "ECHO服务"

Case 21

plus = "FTP服务★★★★★"

Case 25

plus = "SMTP服务★★"

Case 43

plus = "Whois服务"

Case 53

plus = "DNS服务☆"

Case 80

plus = "HTTP服务★★★★★"

Case 81

plus = "HOSTS2名称服务"

Case 99

plus = "NCX99后门★★★★★"

Case 110

plus = "POP3服务★★★★★"

Case 111

plus = "Sun RPC服务★★"

Case 135

plus = "本地服务"

Case 137

plus = "NETBIOS 名称服务/流影POP"

Case 138

plus = "NETBIOS 数据存储服务"

Case 139

plus = "NETBIOS 会议服务★★★"

Case 119

plus = "NNTP虚拟服务"

Case 163

plus = "SNMP服务"

Case 443

plus = "https服务"

Case 512

plus = "远程执行服务"

Case 513

plus = "login, remote login"

Case 514

plus = "cmd, exec with auto auth."

Case 600

plus = "Sun IPC服务器"

Case 1080

plus = "SOCKS代理服务★★★"

Case 1433

plus = "SQL服务器★★★"

Case 3128

plus = "HTTP代理服务"

Case 7626

plus = "木马冰河★★★★★"

Case 8080

plus = "HTTP代理服务"

Case Else

plus = "未知服务!"

End Select

OpenPortDlg.List1.AddItem (addstr & plus)

End Sub

 

         在通用 paintstatus中你看到的代码是个版权信息,可以根据自己的需要去改:)

Sub paintstatus()

STATUS.Text = "========================================" & vbCrLf _

& " PortScanner 1.0 " & vbCrLf _

& " by netdream " & vbCrLf _

& vbCrLf _

& " Net.zol.com.cn " & vbCrLf _

& "========================================" & vbCrLf

End Sub

          下面是模块中的代码,分了两部分:

Public WckNum As Integer

Public StartPort As Integer

Public EndPort As Integer

Public RemoteIP As String

Public WCKcount As Integer

Public GoOnFlag As Boolean

Public Fengzi As Integer

Public Fengmu As Integer

Public Sub portscan(startpt As Integer, endpt As Integer, wck As Integer)

On Error Resume Next

Dim n, nowport, nextstart As Integer

portnum = endpt - startpt + 1

nextstart = nextstart + startpt

If portnum <> 0 Then

If Not GoOnFlag Then

OpenPortDlg.Show 1

FrmScaner.Command1.Enabled = True

FrmScaner.Command1.Caption = "开始"

Exit Sub

End If

If portnum <= wck And GoOnFlag Then

FrmScaner.PgBar.Max = portnum

nowport = startpt

For n = 1 To portnum

Load FrmScaner.Winsock(n)

FrmScaner.Winsock(n).RemoteHost = RemoteIP

FrmScaner.Winsock(n).RemotePort = nowport

FrmScaner.STATUS.Text = FrmScaner.STATUS.Text + "线程" & Str(n) & "启动:连接远程端口:" & Str(nowport) & vbCrLf & vbCrLf

FrmScaner.Winsock(n).Connect

DoEvents

FrmScaner.PgBar.Value = FrmScaner.PgBar.Value + 1

Fengzi = Fengzi + 1

FrmScaner.AllPg.Caption = Trim(Str(CInt(Fengzi / Fengmu * 100)))

nowport = nowport + 1

Next n

Do While FrmScaner.Winsock(nowport - 1).State <> 7

DoEvents

Exit Do

Loop

For n = 1 To portnum

FrmScaner.Winsock(n).Close

Unload FrmScaner.Winsock(n)

Next n

FrmScaner.Command1.Caption = "开始"

OpenPortDlg.Show 1

FrmScaner.PgBar.Value = 0

Call FrmScaner.paintstatus

Exit Sub

Else

If GoOnFlag Then

nowport = startpt

FrmScaner.PgBar.Max = wck

For n = 1 To wck

Load FrmScaner.Winsock(n)

FrmScaner.Winsock(n).RemoteHost = RemoteIP

FrmScaner.Winsock(n).RemotePort = nowport

FrmScaner.STATUS.Text = FrmScaner.STATUS.Text + "线程" & Str(n) & "启动:连接远程端口:" & Str(nowport) & vbCrLf & vbCrLf

FrmScaner.Winsock(n).Connect

DoEvents

Fengzi = Fengzi + 1

FrmScaner.AllPg.Caption = Trim(Str(CInt(Fengzi / Fengmu * 100)))

FrmScaner.PgBar.Value = FrmScaner.PgBar.Value + 1

nowport = nowport + 1

Next n

Do While FrmScaner.Winsock(nowport - 1).State <> 7

DoEvents

Exit Do

Loop

For n = 1 To wck

FrmScaner.Winsock(n).Close

Unload FrmScaner.Winsock(n)

Next n

nextstart = nextstart + wck

FrmScaner.PgBar.Value = 0

portscan nextstart, EndPort, WckNum

End If

End If

End If

Exit Sub

msgboxerr:

MsgBox "有错误了!请告诉我,我会在后续版本中改正的!" & vbCrLf & "Mail:netdream@zol.com", 16, "错误"

End Sub

 

        下面是编译好后运行时的界面

运行界面

        至此我已经把所有的代码交待了一遍,大家可以好好研究研究,这只是一种思路,希望大家如果有更好的代码能共享出来,做个真正的黑客。下载本文

显示全文
专题