Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sanko

#41
Me quedo con python y no porque sea mi fiel herramienta.
Python tiene una amplia comunidad, mucho más grande que la de perl o ruby, tambien tiene más documentación y en español tambien.
En cuanto a la facilidad de aprendizaje, vienen siendo los 3 más o menos igual, pero perl tal vez sea el más complejo de los 3...

Y salida laboral, esta claro, python... montón de empresas estan migrando a python, yo no me di cuenta de hasta que punto hasta que fui a la PyCon España y a nivel nacional, empresas como QDQ(qdq media) estaban migrando a python...
A nivel científico tambien le hacemos un hueco... python esta sustituyendo a lenguajes como matlab y esta creandose una amplia comunidad para la ciencia.
#42
Dudas y pedidos generales / Re:Que carrera es mejor?
Diciembre 04, 2013, 02:08:04 PM
Las de galgos molan
#43
Python / Anonfiles uploader
Diciembre 04, 2013, 01:55:36 PM
Estaba codeando esta clase para incluir en el bot del reto hasta que me di cuenta de que esta solo iba a poder ser usada por aquel que tuviese el bot corriendo en su PC, digamos que soy un distraido, así que nada, os la dejo aqui por si a alguien le es de utilidad, no tiene nada de especial.

Código: python
import pycurl, cStringIO, json
class Anonfiles:

def _upload(self, sFilename):
self.sFilename = sFilename

storage = cStringIO.StringIO()
PostFileStorage = cStringIO.StringIO()

curl = pycurl.Curl()
postData=[('file', (pycurl.FORM_FILE, sFilename))]

try:
curl.setopt(curl.WRITEFUNCTION, storage.write)
curl.setopt(curl.COOKIEFILE, '')
curl.setopt(curl.URL, 'https://anonfiles.com/api')
curl.setopt(curl.HTTPPOST, postData)
curl.setopt(curl.WRITEFUNCTION, PostFileStorage.write)
curl.perform()

except:
self.upload_data = "An error has ocurred uploading the file"

self.upload_data = json.loads(PostFileStorage.getvalue())
print self.upload_data["url"]


Saludos


#44
Dudas y pedidos generales / Re:Ayuda con Bash linux
Diciembre 03, 2013, 01:34:23 PM
Código: bash
echo ------Pantalla de muestra de Errores------
javac Consola.java
javac index.java
java index
if [ -f index.java ]
then
    rm index.java
fi
find . -name "*.class" -exec rm -rf {} \;
exit


Seria todo básicamente igual a excepción del condicional, la forma de borrado y tal.

Código: bash
if [ -f index.java ]
then
    rm index.java
fi

si existe You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login en el dir, borramos You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Código: bash
find . -name "*.class" -exec rm -rf {} \;

busca la extensión recursivamente en el directorio actual y los borra.

No hay mucho más que decir, saludos.




#45
Off Topic / Re:¿De donde proviene tu nick?
Diciembre 02, 2013, 11:53:22 AM
Estaba buscando sinónimos de DIOS y salio SANKO.
#46
Yo lo haría de esta manera:

Código: c
#include <stdio.h>
#include <stdlib.h>

int calc()
{
    int numa[3][3];
    int numb[3][3];
    int multi[3][3];
    int a,b;
    for(a=0;a<3;a++){
        for(b=0;b<3;b++){
             printf("Ingrese un valor para la primera matriz, fila %d columna %d: ",a+1,b+1);
    scanf("%d",&numa[a][b]);
       }
    }
         printf("\n");
        printf("\n");
                     printf("Primera Matriz ingresada\n");
                        printf("\n");
         for(a=0;a<3;a++){
        for(b=0;b<3;b++){
        printf("\t%d",numa[a][b]);
}   printf("\n");
}   printf("\n");
    printf("\n");
    for(a=0;a<3;a++){
        for(b=0;b<3;b++){
            printf("Ingrese un valor para la segunda matriz, fila %d columna %d: ",a+1,b+1);
    scanf("%d",&numb[a][b]);
        }
    }
     printf("\n");
        printf("\n");
        printf("Segunda Matriz ingresada:\n");
                        printf("\n");
         for(a=0;a<3;a++){
        for(b=0;b<3;b++){
        printf("\t%d",numb[a][b]);
}   printf("\n");
}   printf("\n");
    printf("\n");
    printf("Resultado Multiplicacion de 2 Matrices:\n");
                        printf("\n");
     for(a=0;a<3;a++){
        for(b=0;b<3;b++){
                            multi[a][b]=numa[a][b]*numb[a][b];
        printf("\t%d",multi[a][b]);
}   printf("\n");
}   printf("\n");
    printf("\n");
}
int main(){
// inicializamos la funcion calc()
calc();

// declaramos una variable para la respuesta
int resp;
printf("Desea usted multiplicar otro numero? 1.Si | 2.No");
scanf("%i", &resp);

// si responden "1" se vuelve a llamar a la función
if(resp == 1)
{
calc();
}
// por el contrario se finaliza
else
{
printf("Finalizado\n");
}

}


Lo que antes se llamaba main() ahora lo hemos renombrado como calc(), como función independiente, posteriormente creamos el main() que se encargara de ejecutar la función calc, hacer y validar la pregunta y actuar frente a una respuesta.


PD: El código que has pegado es muy mejorable
#47
Nos podriann dar privilegios temporales para testear
#48
Apuntame  :D
#49
Off Topic / Re:Trolleando a la gente de cph con mi bot :P
Noviembre 07, 2013, 07:57:40 AM
ammm, SEUR esta de camino para llevarte un pin
#50
Ideas y Sugerencias / Re:[Sugerencia]Radio underc0de
Octubre 29, 2013, 10:44:05 AM
una radio, con locutor, entrevistas y cosas así, SÍ...
Una radio, como el resto de foruchos, con reggaeton y mierda que suena nada más entrar al foro y que colapsa tu navegador, NO.

PD: DIOS por fin underc0de tiene ya un admin decente, Crazy rules here.
#51
Python al igual que muchos otros lenguajes pueden por si solos interactuar en la web, para su desarrollo cuentas con varias opciones.
Bien puedes configurar tu Apache(o lo que uses) para correr scripts python : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, bien puedes ejecutar scripts python desde PHP y anexionar la lógica de los resultados : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login o bien puedes optar por el desarrollo de manera más cómoda atraves de un framework como bien puede ser django, flask, web2py... que no dejan de ser entornos previamente configurados manualmente para que el desarrollador se centre básicamente en escribir la app y no perder tiempo configurando el entorno.

Saludos
#52
Tu error es una pijada, tan pijada que el problema no es del script C++ sino del archivo nombres.txt
En el getline() estas indicando que extraes el name de < ' >, sin embargo en el archivo nombres.txt los nombres no estan separados por un apostrofe sino tambien por un espacio de esta manera < '   >, así que si escribes correctamente el script funcionara...

#53
Si te estas interesando en la informática forense lo último que deberias hacer para aprender es descargarte un soft que recopile la información por ti.
Como todo sistema operativo, tendrá una serie de registros sobre hora de conexión en la que la PC esta encendida, hora a la que se conecta un usb, y MILES más.

Lo que deberias hacer es estudiar el funcionamiento del sistema, que registros/logs guarda y así ir aprendiendo a recoger la información de forma manual, el resto es una tonteria... un soft que automatize ese proceso no es dificil de hacer y te divertiras creandolo...

#54
Hacking / Re:Underc0de Spy 1.1 LIBERADO AL FIN!!!!
Septiembre 25, 2013, 05:17:00 PM
Ya te dije lo que te tenia que decir, asi que no mas felicidades.
Te quiere, sanko
#55
Off Topic / Re:Feliz Cumpleaños ANTRAX
Septiembre 24, 2013, 04:53:11 PM
Te haces viejo ANTRAX, pasala grande, un cumpleaños es un cumpleaños
#56
Hola buenas!, de primeras felicitaciones por conseguir lo que tanto ansiabas.
He leido tu temario y esta mas o menos bien estructurado, el problema que le veo es la division de ciertos temas, por ejemplo, cuando hablas de pentesting no solo estas hablando sobre el estudio de vulnerabilidades a nivel de capa de red, sino que el pentesting en si cubre todo lo que son pruebas de penetracion a nivel web o al propio servidor.

Yo lo dejaria de esta manera :

· Estudio de Malware:
      - desarrollo y analisis de malware

· Seguridad Inalambrica

· Pentesting:
     - Seguridad a nivel web
     - Seguridad a nivel de capa de red/servidor

· Reversing dirigido a software

· Informatica Forense

· Criptografia:
     - Criptografia dirigida a seguridad bancaria

· Software libre, GNU/Linux y UNIX:
     - Tipos de licencias, etc

· Programacion dirigida al videojuego:
    - principales motores de renderizacion
    - lenguajes capacitados

Escribi alguna subcategoria simplemente para orientarte un poco en lo que podria ser la tematica de la clase pero quedan claramente a tu eleccion.
Y en lugar de escribir seguridad bancaria, yo de ti lo comentaria en el area de criptografia y podrias escribir una categoria o una subcategoria para la seguridad de la informacion en general, no solo centralizada en sistemas bancarios

Saludos y suerte con tu proyecto
#57
Ya veis perras, ir apuntandome
#58
Python / Bytescanner api improved
Septiembre 20, 2013, 11:28:05 AM
Hace unos dias me dio por pegarle una ojeada a la "api" en python de bytescanner y le hice unas cuantas mejoras al code, aqui les dejo el mio y abajo el code original :

Código: python
#ByteScanner "API" coded by YAKIT
#code debugging / improved code / by Sanko

import pycurl, cStringIO, errno, sys, hashlib, json

#Defining Buffers
storage = cStringIO.StringIO()
PostFileStorage = cStringIO.StringIO()
ScanResultStorage = cStringIO.StringIO()
ScanHistoryStorage = cStringIO.StringIO()
ChangeLogStorage = cStringIO.StringIO()
AVersionStorage = cStringIO.StringIO()

#Defining curl
curl = pycurl.Curl()
curl.setopt(curl.WRITEFUNCTION, storage.write)
curl.setopt(curl.COOKIEFILE, '')

class bs_Api():

def __init__(self):
"""
self.__login('[email protected]', 'yourpassword')
self.__upload_file('test.exe')
self.__Result_ID(id)
self.__Scan_History()
self.__Change_Log()
self.__Check_AV_Version()
self.__Export_to('extension', id)
"""
def __login(self, email, password):
#trying to log in
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/client2api.php')
curl.setopt(curl.POSTFIELDS, 'action=Auth&email=%s&password=%s'%(email, password))
curl.perform()
#storing the json data returned like login_data
self.login_data = json.loads(storage.getvalue())

except:
print "An error has ocurred triying to log in bytescanner"

#checking if you are logged
if self.login_data['success'] == False:
print ("[x] "+self.login_data['error']['title'] + "\tReason: " + self.login_data['error']['reason'])
sys.exit(errno.EACCES)

self.dicc_login = {"ID":self.login_data['root'][0]['id'],
   "Email":self.login_data['root'][0]['email'],
   "Creation Date":self.login_data['root'][0]['created'],
   "Last Login":self.login_data['root'][0]['lastlogin'],
   "Last IP Logged":self.login_data['root'][0]['lastloginip']}
#print self.dicc_login

def __upload_file(self, sFilename):
#reading the file to upload
try:
with open(sFilename): pass

except IOError:
print "Unable to open %s" % sFilename

postData=[('action', 'BinaryFileTransfer'),
  ('binaryFile', (pycurl.FORM_FILE, sFilename))]
 
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/startup.php')
curl.setopt(curl.HTTPPOST, postData)
curl.setopt(curl.WRITEFUNCTION, PostFileStorage.write)
curl.perform()
self.upload_data = json.loads(PostFileStorage.getvalue())

except:
print "An error has ocurred uploading the file"

#checking
if self.upload_data['success'] != True:
print ("[x] "+self.upload_data['error']['title'] + "\tReason: " + self.upload_data['error']['reason'])
sys.exit(errno.EACCES)

self.dicc_upload = {"Result ID":str(self.upload_data['root']),
"MD5":hashlib.md5(open(sFilename).read()).hexdigest(),
"SHA1":hashlib.sha1(open(sFilename).read()).hexdigest()}
#print self.dicc_upload

def __Result_ID(self, r_ID):
#obtaining json result
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/api2client.php?action=scanResult&ResultID=%s'% r_ID)
curl.setopt(curl.WRITEFUNCTION, ScanResultStorage.write)
curl.perform()
self.result_data = json.loads(ScanResultStorage.getvalue())

except:
print "An error has ocurred obtaining the json data"

#checking
if self.result_data['success'] != True:
print ("[x] "+self.result_data['error']['title'] + "\tReason: " + self.result_data['error']['reason'])
sys.exit(errno.EACCES)

#print self.result_data

def __Scan_History(self):
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/api2client.php?action=ScanHistory')
curl.setopt(curl.WRITEFUNCTION, ScanHistoryStorage.write)
curl.perform()
self.history_data = json.loads(ScanHistoryStorage.getvalue())

except:
print "An error has ocurred obtaining your Scan History"

#print self.history_data

def __Change_Log(self):
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/api2client.php?action=ChangeLog')
curl.setopt(curl.WRITEFUNCTION, ChangeLogStorage.write)
curl.perform()
self.ChangeLog_data = json.loads(ChangeLogStorage.getvalue())

except:
print "An error has ocurred obtaining the ChangeLog"

#print self.ChangeLog_data

def __Check_AV_Version(self):
try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/api2client.php?action=AvVersion')
curl.setopt(curl.WRITEFUNCTION, AVersionStorage.write)
curl.perform()
self.AVersion_data = json.loads(AVersionStorage.getvalue())

except:
print "An error has ocurred obtaining the ChangeLog"

#print self.AVersion_data

def __Export_to(self, ext_to, r_ID):
buf = cStringIO.StringIO()
ext_dicc = {'png':'Png', 'xls':'Excel', 'pdf':'Pdf'}

try:
curl.setopt(curl.URL, 'http://www.bytescanner.com/export4client.php?action=Export2%s&ResultID=%s' %(ext_dicc[ext_to], r_ID))
curl.setopt(curl.WRITEFUNCTION, buf.write)
f = open('bs_report.%s'%(ext_to), 'w')
f.write(curl.perform())
f.close()

except:
print "An error has ocurred saving the %s report" % ext_dicc[ext_to]


code original:
Código: python
#Author: Ersan YAKIT
#Email : [email protected]

import pycurl, json
import cStringIO
import errno, sys

storage = cStringIO.StringIO()
PostFileStorage = cStringIO.StringIO()
ScanResultStorage = cStringIO.StringIO()

BYTESCANNER_EMAIL= "[email protected]"
BYTESCANNER_PASSWORD= "yourbytescannerpassword"

c = pycurl.Curl()
c.setopt(c.WRITEFUNCTION, storage.write)
c.setopt(c.COOKIEFILE, '') #we want to store cookie into memory

#STEP I ( Login into system )
c.setopt(c.URL, 'http://www.bytescanner.com/client2api.php')
c.setopt(c.POSTFIELDS, 'action=Auth&email='+BYTESCANNER_EMAIL+'&password='+ BYTESCANNER_PASSWORD)
c.perform()

data = json.loads(storage.getvalue())

if data['success'] != True:
print ("[x] "+data['error']['title'] + "\tReason: " + data['error']['reason'])
sys.exit(errno.EACCES)

print ("[+] Logged In\n")
print("Welcome, "+data['root'][0]['email']+"\nLast Login: "+ data['root'][0]['lastlogin']+"\nLast Login Ip: "+ data['root'][0]['lastloginip']+"\n" )


#STEP II ( Get File Name from user. )
scanFile= raw_input("Enter Scan File Path: ")
try:
with open(scanFile): pass
except IOError:
print 'Unable to open :'+scanFile
print("[+] Transfering file "+ scanFile +"\n")
## sending File To server!
postData=[
('action', 'BinaryFileTransfer'),
('binaryFile', (pycurl.FORM_FILE, scanFile))
]
c.setopt(c.URL, 'http://www.bytescanner.com/startup.php')
c.setopt(c.HTTPPOST, postData)
c.setopt(c.WRITEFUNCTION, PostFileStorage.write)
c.perform()
data = json.loads(PostFileStorage.getvalue())
if data['success'] != True:
print ("[x] "+data['error']['title'] + "\tReason: " + data['error']['reason'])
sys.exit(errno.EACCES)
print("[+] File transfer completed. Result ID: "+str(data['root']) )

#STEP III recieve scan results
print("[+] Starting request for scan results...\n");

c.setopt(c.URL, 'http://www.bytescanner.com/api2client.php?action=scanResult&ResultID='+str(data['root']) )
c.setopt(c.WRITEFUNCTION, ScanResultStorage.write)
c.perform()

data = json.loads(ScanResultStorage.getvalue())
if data['success'] != True:
print ("[x] "+data['error']['title'] + "\tReason: " + data['error']['reason'])
sys.exit(errno.EACCES)
print ('{0:30}\t{1:40}\t{2:30}\t{3:30}\n'.format("Antivirus Provider", "Antivirus Ver", "Scan Time", "Scan Result"))

for tmpIndex in data['root']:
print ('{0:30}\t{1:40}\t{2:30}\t{3:30}'.format(
tmpIndex['malwareScanProvider'], 
tmpIndex['malwareScanProviderVer'],
tmpIndex['malwareScanProviderResultTime'], tmpIndex['malwareScanProviderResult']
))

storage.close()
PostFileStorage.close()
ScanResultStorage.close()
print("[+] Scan Completed...\n")


PD : EL retorno se almacena en un diccionario, asi que cuando importen la clase acuerdense de parsear la informacion.
Saludos
#59
Pues eso, querría saber si algún usuario español de underc0de tiene pensado asistir a la primera PyCon España que se celebrara a finales de Noviembre en Madrid.
Para más info -> You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
#60
Python / Cifrado de Vigenère
Septiembre 09, 2013, 06:22:56 PM
Buenas, otra solución a un reto de udtools : You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Code :

Código: python
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Cifrado Vigenere en Python - Sanko
# Yi = (Xi + Zi) % 27

class cif_Vigenere():

def __init__(self):
self.abecedario = 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZ'
self.__encode("P A R I S  V A U T  B I E N", "L O U P L  O U P L  O U P L")
self.__decode("A O N X D  L U L E  P C T W", "L O U P L  O U P L  O U P L")

def __encode(self, text, key):
encoded = ''
counter = 0

text = text.upper()
key = key.upper()

for i in range(len(text)):

if counter > len(key) - 1:
counter = 0

if text[i] == ' ':
encoded += '5'.replace('5', ' ')
counter += 1

else:
resultado = (self.abecedario.index(text[i]) + self.abecedario.index(key[counter]) + 1) % len(self.abecedario) - 1
encoded += self.abecedario[resultado]
counter += 1

print encoded


def __decode(self, enc_text, key):
decoded = ''
counter = 0

key = key.upper()

for i in range(len(enc_text)):
if counter > len(key) - 1:
counter = 0

if enc_text[i] == ' ':
decoded += '5'.replace('5', ' ')
counter +=1

else:
resultado = (self.abecedario.index(enc_text[i]) - self.abecedario.index(key[counter]) + 1) % len(self.abecedario) - 1
decoded += self.abecedario[resultado]
counter += 1

print decoded

cif_Vigenere()


Imágen :