Open source software security

Fun with Web Bugs

30 November -0001

While playing around with web bugs and email the other day I wrote up a quick email program that lets you interact with remote servers. Its none too refined but I thought I would post it in the downloads section. It allows you to write up HTML email by actually writing the HTML yourself. Basically its just a glorified port 25 telnet program. In the top window you can type commands to be issued directly to the server and view the response. I've compiled the VB6 code into a working exe that you can download here. The basic commands you will need are:

HELO yourcomputername

    -this command introduces you to the remote server

MAIL FROM:  youremail@yourdomain.com

    -specifies where the mail is coming from

RCPT TO:  recipient@theirdomain.com

    -specifies the recipient

DATA

    -This tells the server you're ready to write up your email, to finish hit return, then type a period (.) and the message will be ready to go

The Visual Basic code is really straightforward. If you're going to copy it make sure to include the WinSock control in your project. Let me know if you have any questions.

Private Sub btnClearInput_Click()
    txtInput.Text = ""
End Sub

Private Sub cmdGo_Click()
    
  Winsock1.RemoteHost = txtServer.Text
  Winsock1.RemotePort = 25
  
  Winsock1.Connect
  
  If Winsock1.State = 0 Then
    txtOutput = "Closed"
    ElseIf Winsock1.State = 4 Then
    txtOutput = "Resolving Host"
  ElseIf Winsock1.State = 6 Then
    txtOutput = "Connecting"
  ElseIf Winsock1.State = 7 Then
    txtOutput = "Connected"
  ElseIf Winsock1.State = 7 Then
    txtOutput = "Peer is Closing Conn"
  ElseIf Winsock1.State = 9 Then
    txtOutput = "Error"
  Else
    txtOutput = Winsock1.State
  End If
   
End Sub

Private Sub cmdMail_Click()
Dim theMail As String

If Winsock1.State <> 7 Then
  MsgBox ("You must connect first"), vbCritical
  Exit Sub
End If

If txtFrom.Text = "" Then
    MsgBox ("You need a From:"), vbCritical
    Exit Sub
ElseIf txtTo.Text = "" Then
    MsgBox ("You need a To:"), vbCritical
    Exit Sub
End If

theMail = "mail from: " & txtFrom.Text & vbCrLf
theMail = theMail & "rcpt to: " & txtTo.Text & vbCrLf
theMail = theMail & "data" & vbCrLf
theMail = theMail & "Subject: " & txtSubject & vbCrLf
theMail = theMail & "Content-Type: text/HTML; charset='US-Ascii'" & vbCrLf & vbCrLf
theMail = theMail & txtBody & vbCrLf
theMail = theMail & "."

If Winsock1.State = sckConnected Then
      Winsock1.SendData theMail & vbCrLf
Else
      MsgBox ("Unable to Send")
End If


    
End Sub

Private Sub cmdQuit_Click()
    Winsock1.Close
    Unload Me
End Sub

Private Sub cmdSend_Click()

   If Winsock1.State = sckConnected Then
      Winsock1.SendData txtInput.Text & vbCrLf
   Else
      MsgBox ("Unable to Send")
    End If
    
Dim sData As String
Winsock1.GetData sData, vbString
txtResponse.Text = txtResponse.Text & sData

End Sub
    
Private Sub Command1_Click()
    txtResponse.Text = ""
End Sub

Private Sub Text1_Change()

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
   Dim sData As String
   Winsock1.GetData sData, vbString
txtResponse.Text = txtResponse.Text & sData
   
End Sub

Private Sub cmdUpdate_Click()
  If Winsock1.State = 0 Then
    txtOutput = "Closed"
  ElseIf Winsock1.State = 6 Then
    txtOutput = "Resolving Host"
  ElseIf Winsock1.State = 6 Then
    txtOutput = "Connecting"
  ElseIf Winsock1.State = 7 Then
    txtOutput = "Connected"
  ElseIf Winsock1.State = 7 Then
    txtOutput = "Peer is Closing Conn"
  ElseIf Winsock1.State = 9 Then
    txtOutput = "Error"
  Else
    txtOutput = Winsock1.State
  End If
End Sub