..you how to create native tools. I'm not going to make a new tool though, instead I will show you what is required to create one. You can find all the native tools in the configuration..
AntiFTP uses wordlists in order to bruteforce FTP user accounts
<?php
/*
Handler for AntiHash
Author: Remco Kouw
Site: http://www.hacksuite.com
Last Edit: 13-04-2015
*/
// set variable to be able to save a task
$_MODULE_C = "thc_ah";
$_LOG = "cracked.txt";
include_once("../../Includes/screen_header.php");
include_once($_PATHS['style_root']."/screen.php");
include_once($_PATHS['functions_root']."/scrn.php");
$sDest = $_PATHS['module_default_root']."/hash_detect.php";
(!IsThere($sDest) ? include_once($_PATHS['end']) : include_once($sDest));
if(!function_exists("WriteF")){
$sDest = $_PATHS['functions_root']."/fwrite.php";
(!IsThere($sDest) ? include_once($_PATHS['end']) : include_once($sDest));
}
// options
$sOptions = "<b>logging:</b> ".($_CONTEXT['log']==true ? "on" : "off")."<br>\n";
$sOptions .= "<b>silence:</b> ".($_CONTEXT['silent']==true ? "on" : "off")."<br>\n";
$sOptions .= "<b>verbose:</b> ".($_CONTEXT['verbose']==true ? "on" : "off")."\n";
$aFileData = array();
if(isset($_POST['submit'])){
switch($_POST['submit']){
// quick 'n dirty input validation
case"Crack":
if($_POST['sHash']==""){
die($sOut."No hash specified to crack".$sEnd);
}
// load wordlist
$sWordlist = ExploitFilter($_PATHS['wordlists_root']."/".$_POST['sWordlist'],0,1);
if(false===($aFileData = @file($sWordlist))){
die($sOut."Wordlist doesn't exist".$sEnd);
}
$iLength = strlen($_POST['sHash']);
$sEncFunc = "";
foreach($_CONTEXT['hashes'] as $sKey=>$aValues){
if($aValues[0]==$iLength){
$sEncFunc = $sKey;
break;
}
}
if($sEncFunc==""){
die($sOut."Unknown encryption type".$sEnd);
}
$sDest = $_PATHS['module_default_root']."/func_antihash.php";
(!IsThere($sDest) ? include_once($_PATHS['end']) : include_once($sDest));
$_POST['sSaltStructure'] = ($_POST['sSaltStructure']==-1 ? "" : $_POST['sSaltStructure']);
// get it on with..
$bCracked = false;
$sPass = "";
include_once($_PATHS['includes_root']."/task_start.php");
echo $sOut;
echo Screen("<br>\n<b>Running..</b><p>\n",$_CONTEXT['verbose'],$_CONTEXT['silent']);
// spit fire...
flush();
ob_flush();
// wordlist attack
for($x=0;$x<count($aFileData);$x++){
$aFileData[$x] = trim($aFileData[$x]);
if(AntiHash(trim($aFileData[$x]),$_POST['sHash'],$sEncFunc,$_POST['sSaltString'],$_POST['sSaltStructure'])){
$sPass = $aFileData[$x];
$bCracked = true;
if($_CONTEXT['log']==true){
WriteF($_LOG,time()."|".$_POST['sHash']."|".$aFileData[$x]."\n");
}
break;
}
}
echo $bCracked ? "Password is ".$sPass : "Failed to crack password";
break;
// View Passes
case"View Passes":
echo $sOut;
if(!function_exists("RawToArray")){
include_once($_PATHS['functions_root']."/raw_to_array.php");
}
if(false==($aKeys = RawToArray($_LOG))){
echo"<b id=h7>[no passwords cracked yet]</b>";
}
else{
for($x=0;$x<count($aKeys);$x++){
echo"<b>".date($_CONTEXT['time_pattern'].' H:i:s',$aKeys[$x][0])."</b> hash <b>".$aKeys[$x][1]."</b> is <b>".$aKeys[$x][2]."</b><br>\n";
}
}
exit;
break;
// Clear Passes
case"Clear Passes":
echo $sOut;
echo (WriteF($_LOG,"","w")==true ? "Successfully deleted old entries." : "Failed to delete old entries.");
echo $sEnd;
exit;
break;
default:
// default template
echo $sOut;
echo $sOptions;
echo $sEnd;
exit;
}
}
else{
echo $sOut;
echo $sOptions;
echo $sEnd;
exit;
}
// update entry in background task file
include_once($_PATHS['includes_root']."/task_end.php");
echo $sEnd;
?>