Advertisement
Guest User

irc bot, rootme programming, Network programmation

a guest
Dec 16th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.04 KB | None | 0 0
  1. #!/usr/bin/python3
  2.  
  3. __author__ = "nonellldd"
  4.  
  5. import socket
  6. import sys
  7. import time
  8. import os
  9. import random
  10. import threading
  11. import math, re, base64
  12.  
  13. class IRC:
  14. def __init__(self):
  15. # Define the socket
  16. print ("Create socket")
  17. self.irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  18.  
  19. def send(self, channel, msg):
  20. # Transfer data
  21. self.irc.send(bytes("PRIVMSG " + channel + " " + msg + "\n", "UTF-8"))
  22.  
  23. def send_private_message(self, nick, message):
  24. if message.startswith("#"):
  25. message = bytes(message[1:] + "\n", "UTF-8")
  26. else:
  27. message = bytes("PRIVMSG " + nick + " " + message + "\n", "UTF-8")
  28. print ("Send Message", message)
  29. self.irc.send(message)
  30.  
  31.  
  32. def connect(self, server, port, channel, botnick, botpass, botnickpass):
  33. # Connect to the server
  34. print("Connecting to: " + server)
  35. self.irc.connect((server, port))
  36.  
  37. # Perform user authentication
  38. reg_user = bytes("USER " + botnick + " " + botnick +" " + botnick + " :python\n", "UTF-8")
  39. print ("reg_user", bytes("USER " + botnick + " " + botnick +" " + botnick + " :python\n", "UTF-8"))
  40. self.irc.send(reg_user)
  41.  
  42. reg_nick = bytes("NICK " + botnick + "\n", "UTF-8")
  43. print("reg_nick", reg_nick)
  44. self.irc.send(reg_nick)
  45.  
  46. reg_pass = bytes("NICKSERV IDENTIFY " + botnickpass + " " + botpass + "\n", "UTF-8")
  47. print ("reg_pass", reg_pass)
  48. self.irc.send(reg_pass)
  49. time.sleep(5)
  50.  
  51. # join the channel
  52. join_channel = bytes("JOIN " + channel + "\n", "UTF-8")
  53. print("join_channel", join_channel)
  54. self.irc.send(join_channel)
  55.  
  56. def get_response(self):
  57. time.sleep(1)
  58. # Get the response
  59. resp = self.irc.recv(2040).decode("UTF-8")
  60. print ("resp: ", resp)
  61. if resp.find('PING') != -1:
  62. pong = bytes('PONG ' + resp.split()[1] + '\r\n', "UTF-8")
  63. print ("===========================")
  64. print ("pong: ", pong)
  65. print ("===========================")
  66. self.irc.send(pong)
  67. if resp.find("Candy!Candy@root-me.org PRIVMSG dd"):
  68. # numbers = re.findall("(\d+) / (\d+)", resp)
  69. # if numbers:
  70. # numbers = numbers[0]
  71. # req = math.sqrt(float(numbers[0])) * float(numbers[1])
  72. # req = round(req, 2)
  73. # self.send_private_message("candy", "!ep1 -rep " + str(req))
  74. s = re.findall(":Candy!Candy@root-me.org PRIVMSG dd :(\S+)", resp)
  75. if s:
  76. s= s[0]
  77. self.send_private_message("candy", "!ep2 -rep " + base64.b64decode(s).decode("utf-8"))
  78. return resp
  79.  
  80.  
  81. server = "irc.root-me.org" # Provide a valid server IP/Hostname
  82. port = 6667
  83. channel = "#root-me_challenge"
  84. botnick = "dd"
  85. botnickpass = "dd"
  86. botpass = "<%= @dd %>"
  87. target_bot = "candy"
  88. ircbot = IRC()
  89. ircbot.connect(server, port, channel, botnick, botpass, botnickpass)
  90.  
  91.  
  92. def send_message(ircbot):
  93. while 1:
  94. active = input("Active: ")
  95. message = "!ep3"
  96. ircbot.send_private_message(target_bot, message)
  97.  
  98.  
  99. t = threading.Thread(target=send_message, args=(ircbot,))
  100. t.start()
  101.  
  102. while True:
  103. text = ircbot.get_response()
  104. print(text)
  105.  
  106. if "PRIVMSG" in text and channel in text and "hello" in text:
  107. ircbot.send(channel, "Hello!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement