Advertisement
Guest User

Netcat in Microsoft Excel

a guest
Feb 23rd, 2013
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'Excel netcat implementation
  2. 'Askur Corp
  3. 'http://askur.ca/
  4.  
  5. Public Const AF_INET = 2
  6. Public Const SOCK_STREAM = 1
  7. Public Const SOCKET_ERROR = 1
  8. Public Const FD_SETSIZE = 64
  9. Public Const FIONBIO = 2147772030#
  10. Public Const SOCKADDR_IN_SIZE = 16
  11. Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
  12.  
  13. Public Address As String
  14. Public port As Integer
  15. Public SocketHandle As Long
  16.  
  17. Dim wd As WSADATA
  18. Dim LocalAddress As SOCKADDR_IN
  19. Dim ServerAddress As SOCKADDR_IN
  20.  
  21. Public Type WSADATA
  22.    wVersion As Integer
  23.    wHighVersion As Integer
  24.    szDescription As String * 257
  25.    szSystemStatus As String * 129
  26.    iMaxSockets As Integer
  27.    iMaxUdpDg As Integer
  28.    lpVendorInfo As Long
  29. End Type
  30.  
  31. Public Type SOCKADDR_IN
  32.    sin_family As Integer
  33.    sin_port As Integer
  34.    sin_addr As Long
  35.    sin_zero As String * 8
  36. End Type
  37.  
  38. Public Type fd_set
  39.    fd_count As Long
  40.    fd_array(FD_SETSIZE) As Long
  41. End Type
  42.  
  43. Public Type timeval
  44.    tv_sec As Long
  45.    tv_usec As Long
  46. End Type
  47.  
  48. Public Declare Function WSAStartup Lib "wsock32.dll" (ByVal intVersionRequested As Integer, lpWSAData As WSADATA) As Long
  49. Public Declare Function WSACleanup Lib "wsock32.dll" () As Long
  50. Public Declare Function w_socket Lib "wsock32.dll" Alias "socket" (ByVal lngAf As Long, ByVal lngType As Long, ByVal lngProtocol As Long) As Long
  51. Public Declare Function w_closesocket Lib "wsock32.dll" Alias "closesocket" (ByVal SocketHandle As Long) As Long
  52. Public Declare Function w_bind Lib "wsock32.dll" Alias "bind" (ByVal socket As Long, Name As SOCKADDR_IN, ByVal namelen As Long) As Long
  53. Public Declare Function w_connect Lib "wsock32.dll" Alias "connect" (ByVal socket As Long, Name As SOCKADDR_IN, ByVal namelen As Long) As Long
  54. Public Declare Function w_send Lib "wsock32.dll" Alias "send" (ByVal socket As Long, ByVal buf As String, ByVal length As Long, ByVal flags As Long) As Long
  55. Public Declare Function w_recv Lib "wsock32.dll" Alias "recv" (ByVal socket As Long, ByVal buf As String, ByVal length As Long, ByVal flags As Long) As Long
  56. Public Declare Function w_select Lib "wsock32.dll" Alias "select" (ByVal nfds As Long, readfds As fd_set, writefds As fd_set, exceptfds As fd_set, timeout As timeval) As Long
  57. Public Declare Function htons Lib "wsock32.dll" (ByVal hostshort As Integer) As Integer
  58. Public Declare Function ntohl Lib "wsock32.dll" (ByVal netlong As Long) As Long
  59. Public Declare Function inet_addr Lib "wsock32.dll" (ByVal Address As String) As Long
  60. Public Declare Function ioctlsocket Lib "wsock32.dll" (ByVal socket As Long, ByVal cmd As Long, argp As Long) As Long
  61. Public Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long
  62.  
  63. Sub DoConnect(addy, port)
  64.     Address = addy
  65.     port = port '80
  66.    
  67.     ret = WSAStartup(&H101, wd)                            'Init winsock
  68.    Debug.Print ret
  69.    
  70.     SocketHandle = w_socket(AF_INET, SOCK_STREAM, 0)       'Open socket, get sockethandle
  71.      
  72.     LocalAddress.sin_family = AF_INET
  73.     LocalAddress.sin_port = 0 'local port defined by operating system
  74.    LocalAddress.sin_addr = 0 'local address
  75.      
  76.     ret = w_bind(SocketHandle, LocalAddress, SOCKADDR_IN_SIZE) 'Bind socket to local port
  77.    
  78.     ServerAddress.sin_family = AF_INET
  79.     ServerAddress.sin_port = htons(port) 'port number
  80.    ServerAddress.sin_addr = inet_addr(Address) 'ip address
  81.      
  82.     ret = w_connect(SocketHandle, ServerAddress, SOCKADDR_IN_SIZE)
  83.  
  84. End Sub
  85.  
  86. Sub DoDisconnect()
  87.     w_closesocket SocketHandle
  88.     Unload formNetCatSession
  89.     formConnectionInformation.Show
  90. End Sub
  91.  
  92. Sub SendText(str)
  93.     data = str & vbCrLf & vbCrLf
  94.     ret = w_send(SocketHandle, data, Len(data), 0)
  95. End Sub
  96.  
  97. Function ReceiveText()
  98.     Dim retbuff As String * 1024
  99.     retbuff = ""
  100.     s = ""
  101.     Do
  102.         ret = w_recv(SocketHandle, retbuff, 1024, 0)
  103.         If ret > 0 Then s = s & retbuff
  104.     Loop While ret > 0
  105.     ReceiveText = s
  106. End Function
  107.  
  108. Sub NetCat()
  109.     formConnectionInformation.Show
  110. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement