├── requirements.txt ├── xlotp ├── requirements.txt ├── xlpy │ ├── __init__.py │ ├── config.py │ └── client.py └── app.py ├── jam.sh ├── xlpy ├── __init__.py ├── config.py └── client.py ├── README.md ├── tsel ├── tsel │ └── 1.php └── app.py ├── .gitignore ├── dor.py └── centos6.sh /requirements.txt: -------------------------------------------------------------------------------- 1 | request 2 | -------------------------------------------------------------------------------- /xlotp/requirements.txt: -------------------------------------------------------------------------------- 1 | requests -------------------------------------------------------------------------------- /jam.sh: -------------------------------------------------------------------------------- 1 | while true 2 | 3 | do 4 | 5 | clear;date 6 | 7 | sleep 1 8 | 9 | done 10 | 11 | if done return -------------------------------------------------------------------------------- /xlpy/__init__.py: -------------------------------------------------------------------------------- 1 | from .config import Config 2 | from .client import XL 3 | 4 | __copyright__ = 'Copyright 2018 by Bintang Nur Pradana' 5 | __version__ = '5.0.0' 6 | __author__ = 'Bintang Nur Pradana' 7 | __author_email__ = 'bintangnurpradana54@gmail.com' 8 | __url__ = 'https://github.com/Bintang73/tembaktembakan.git' 9 | 10 | __all__ = ['Config','XL'] 11 | -------------------------------------------------------------------------------- /xlotp/xlpy/__init__.py: -------------------------------------------------------------------------------- 1 | from .config import Config 2 | from .client import XL 3 | 4 | __copyright__ = 'Copyright 2018 by Bintang Nur Pradana' 5 | __version__ = '5.0.0' 6 | __author__ = 'Bintang Nur Pradana' 7 | __author_email__ = 'bintangnurpradana54@gmail.com' 8 | __url__ = 'https://github.com/Bintang73/tembaktembakan.git' 9 | 10 | __all__ = ['Config','XL'] 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Tembak Paket Internet XL dengan termux 2 | 3 | Cara Tembak Paket Internet XL dengan termux di Android untuk mendapatkan mendapatkan paket internet yang sangat murah sekali 4 | 5 | Easy install 6 | 1.Download termux di play store 7 | 2.ketik kode perinah 8 | pkg install python 9 | pkg install git 10 | git clone https://github.com/kumpulanremaja/tembakpaket 11 | python dor.py 12 | 13 | 14 | anda akan mendapatkan kouta internet 30 GB dengan Harga 10.000 15 | untuk selengkapnya di bisa anda baca tutorialnya di https://www.kumpulanremaja.com/2019/07/tembak-paket-internet-xl-dengan-termux.html 16 | -------------------------------------------------------------------------------- /xlotp/xlpy/config.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import datetime 3 | 4 | class Config(object): 5 | XL_HOST_DOMAIN = 'https://my.xl.co.id' 6 | XL_OTPRQ_QUERY_PATH = '/pre/LoginSendOTPRq' 7 | XL_LOGIN_QUERY_PATH = '/pre/LoginValidateOTPRq' 8 | XL_PURCHASEPKG_QUERY_PATH = '/pre/opPurchase' 9 | 10 | DATE = datetime.datetime.now().strftime("%Y%m%d%I%M%S") 11 | IMEI = 'a26f8bbe24104a6d' 12 | 13 | HEADERS = { 14 | 'Host': 'my.xl.co.id', 15 | 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0', 16 | 'Accept': 'application/json, text/plain, */*', 17 | 'Accept-Encoding': 'gzip, deflate, br', 18 | 'Content-Type': 'application/json' 19 | } 20 | 21 | def __init__(self): 22 | self.imei = self.IMEI 23 | self.date = self.DATE 24 | self.headers = self.HEADERS 25 | -------------------------------------------------------------------------------- /xlpy/config.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import datetime 3 | 4 | class Config(object): 5 | XL_HOST_DOMAIN = 'https://my.xl.co.id' 6 | XL_HOST_DOMAINV2 = 'https://myprepaid.xl.co.id' 7 | XL_OTPRQ_QUERY_PATH = '/pre/LoginSendOTPRq' 8 | XL_PASSRQ_QUERY_PATH = '/prepaid/ForgotPasswordRq' 9 | XL_LOGIN_QUERY_PATH = '/pre/LoginValidateOTPRq' 10 | XL_LOGINPWD_QUERY_PATH = '/prepaid/LoginV2Rq' 11 | XL_PURCHASEPKG_QUERY_PATH = '/pre/opPurchase' 12 | XL_PURCHASEPKG_QUERY_PATHV2 = '/prepaid/opPurchase' 13 | 14 | DATE = datetime.datetime.now().strftime("%Y%m%d%I%M%S") 15 | IMEI = 'a26f8bbe24104a6d' 16 | 17 | HEADERS = { 18 | 'Host': 'myprepaid.xl.co.id', 19 | 'Connection' : 'keep-alive', 20 | 'User-Agent' : 'Mozilla/5.0 (Linux; Android 5.1; A1601 Build/LMY47I) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19', 21 | 'Accept' : 'application/json, text/plain, */*', 22 | 'Accept-Language' : 'en-US,en;q=0.5', 23 | 'Accept-Encoding' : 'gzip, deflate, br', 24 | 'Content-Type' : 'application/json' 25 | } 26 | 27 | def __init__(self): 28 | self.imei = self.IMEI 29 | self.date = self.DATE 30 | self.headers = self.HEADERS 31 | -------------------------------------------------------------------------------- /tsel/tsel/1.php: -------------------------------------------------------------------------------- 1 | 38 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | 81 | # SageMath parsed files 82 | *.sage.py 83 | 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ 105 | -------------------------------------------------------------------------------- /tsel/app.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | import sys 4 | import platform 5 | import time 6 | 7 | g = "\033[32;1m" 8 | gt = "\033[0;32m" 9 | bt = "\033[34;1m" 10 | b = "\033[36;1m" 11 | m = "\033[31;1m" 12 | c = "\033[0m" 13 | p = "\033[37;1m" 14 | u = "\033[35;1m" 15 | M = "\033[3;1m" 16 | k = "\033[33;1m" 17 | kt = "\033[0;33m" 18 | a = "\033[30;1m" 19 | 20 | W = '\x1b[0m' 21 | R = '\x1b[31m' 22 | G = '\x1b[1;32m' 23 | O = '\x1b[33m' 24 | B = '\x1b[34m' 25 | P = '\x1b[35m' 26 | C = '\x1b[36m' 27 | GR = '\x1b[37m' 28 | 29 | 30 | 31 | def slowprints(s): 32 | for c in s + '\n': 33 | sys.stdout.write(c) 34 | sys.stdout.flush() 35 | time.sleep(2.0/90) 36 | def lodprint(s): 37 | for c in s + '\n': 38 | sys.stdout.write(c) 39 | sys.stdout.flush() 40 | time.sleep(7.0/90) 41 | 42 | bintang=(gt+""" 43 | ======================================= 44 | TEMBAK PAKET BY BINTANG NUR PRADANA 45 | MASIH DALAM TAHAP UJICOBA 46 | BILA INGIN DI UPDATE TIAP HARI 47 | FOLLOW ACCOUNT SOSMED SAYA DI BAWAH INI 48 | 49 | IG: @bintang_nur_pradana 50 | Fb: Bintang Nur Pradana 51 | Yt: Bintang Nur Pradana 52 | ======================================= 53 | """) 54 | l="Harap tunggu.." 55 | 56 | def main_menu(): 57 | clear() 58 | slowprints(bintang) 59 | print(p+"Telkomsel Menu" + 60 | "\nPilih Salah Satu:" 61 | "\n [1] Minta kode otp" + 62 | "\n [2] COMING SOON!" 63 | ) 64 | choice = str(input(" ex:1👉 ")) 65 | exec_menu(choice) 66 | return 67 | 68 | def exec_menu(choice): 69 | clear() 70 | if(choice == ''): 71 | menu_actions['main']() 72 | else: 73 | try: 74 | menu_actions[choice]() 75 | except KeyError: 76 | print("Invalid selection, please try again.\n") 77 | menu_actions['main']() 78 | return 79 | 80 | def menu_1(): 81 | lodprint(l) 82 | os.system('cd tsel;php 1.php') 83 | 84 | def menu_2(): 85 | lodprint(l) 86 | clear() 87 | print(bintang) 88 | print(m+"errrrrrrrrrroroorororororoororo") 89 | 90 | 91 | def exit(): 92 | sys.exit() 93 | 94 | def clear(): 95 | return os.system("cls") if (platform.system() == 'Windows') else os.system("clear") 96 | 97 | menu_actions = { 98 | "main" : main_menu, 99 | "1" : menu_1, 100 | "2" : menu_2, 101 | "0" : exit 102 | } 103 | 104 | 105 | if __name__ == "__main__": 106 | main_menu() 107 | -------------------------------------------------------------------------------- /dor.py: -------------------------------------------------------------------------------- 1 | import os, sys, time, subprocess, socket, select, threading 2 | from platform import python_version 3 | pv = python_version() 4 | 5 | g = "\033[32;1m" 6 | gt = "\033[0;32m" 7 | bt = "\033[34;1m" 8 | b = "\033[36;1m" 9 | m = "\033[31;1m" 10 | c = "\033[0m" 11 | p = "\033[37;1m" 12 | u = "\033[35;1m" 13 | M = "\033[3;1m" 14 | k = "\033[33;1m" 15 | kt = "\033[0;33m" 16 | a = "\033[30;1m" 17 | 18 | W = '\x1b[0m' 19 | R = '\x1b[31m' 20 | G = '\x1b[1;32m' 21 | O = '\x1b[33m' 22 | B = '\x1b[34m' 23 | P = '\x1b[35m' 24 | C = '\x1b[36m' 25 | GR = '\x1b[37m' 26 | 27 | 28 | 29 | 30 | try: 31 | import platform 32 | from xlpy import * 33 | except Exception as err: 34 | os.system('pip install --upgrade pip') 35 | os.system('pkg install php') 36 | os.system('pip install requests') 37 | os.system('pip install -r requirements.txt') 38 | os.system('python dor.py')() 39 | except KeyboardInterrupt: 40 | print (m+"[" + p + "Fail To Import" + m + "]") 41 | sys.exit() 42 | 43 | 44 | 45 | def slowaprint(s): 46 | for c in s + '\n': 47 | sys.stdout.write(c) 48 | sys.stdout.flush() 49 | time.sleep(7.0 / 90) 50 | 51 | def slowprint(s): 52 | for c in s + '\n': 53 | sys.stdout.write(c) 54 | sys.stdout.flush() 55 | time.sleep(2.0 / 90) 56 | 57 | def main_menu(): 58 | clear() 59 | slowprint(W + '#'*45) 60 | slowprint(W + ' -== '+gt+'Menu Tembak Bintang Nur Pradana'+W+' ==-') 61 | slowprint(W + '#'*45) 62 | print(W + '# ' + str(time.strftime('%a, %d %B %Y'))) 63 | print(W + '# Provider gsm Operator ' + C + str(os.popen('getprop gsm.operator.alpha').read().split('\n')[0])) 64 | print(W + '# Python ' + C + str(pv) + W + ', ' + C + str(os.popen('getprop ro.product.device').read().split('\n')[0]) + ' ' + str(os.popen('getprop ro.build.version.release').read().split('\n')[0]) + ' Build SDK ' + str(os.popen('getprop ro.build.version.sdk').read().split('\n')[0])) 65 | print(W + '#'*45) 66 | 67 | 68 | slowprint (gt+"Menu Pilihan:") 69 | print (gt+" ["+p+"1"+gt+"] "+p+"Tembak XL dan Axis Work") 70 | print (gt+" ["+p+"2"+gt+"] "+p+"Telkomsel") 71 | print (gt+" ["+p+"3"+gt+"] "+p+"Waktu") 72 | print (gt+" ["+p+"0"+gt+"] "+p+"Keluar") 73 | 74 | 75 | 76 | choice = str(input(C+" Masukan Pilihan👉 ")) 77 | exec_menu(choice) 78 | return 79 | slowprint(W + '# ' + str(time.strftime('%a, %d %B %Y'))) 80 | 81 | def exec_menu(choice): 82 | clear() 83 | if(choice == ''): 84 | menu_actions['main']() 85 | else: 86 | try: 87 | menu_actions[choice]() 88 | except KeyError: 89 | print("Invalid selection, please try again.\n") 90 | menu_actions['main']() 91 | return 92 | 93 | def menu_1(): 94 | slowprint("loading") 95 | os.system('cd xlotp;python app.py') 96 | 97 | def menu_2(): 98 | slowaprint("loading") 99 | os.system('cd tsel;python app.py') 100 | def menu_3(): 101 | slowprint("loading") 102 | os.system('sh jam.sh;python app.py') 103 | return os.system('python app.py') 104 | 105 | def exit(): 106 | sys.exit() 107 | 108 | def clear(): 109 | return os.system("cls") if (platform.system() == 'Windows') else os.system("clear") 110 | 111 | menu_actions = { 112 | "main" : main_menu, 113 | "1" : menu_1, 114 | "2" : menu_2, 115 | "3" : menu_3, 116 | "0" : exit 117 | } 118 | 119 | 120 | if __name__ == "__main__": 121 | main_menu() 122 | -------------------------------------------------------------------------------- /xlpy/client.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | 4 | from .config import Config 5 | 6 | class XL(Config): 7 | _sessionId = "" 8 | 9 | def __init__(self, msisdn): 10 | self.msisdn = msisdn 11 | Config.__init__(self) 12 | 13 | def reqPassword(self): 14 | payload = { 15 | "Body" : { 16 | "Header" : { 17 | "ReqID" : self.date, 18 | "IMEI" : self.imei 19 | }, 20 | "ForgotPasswordRq" : { 21 | "msisdn" : self.msisdn, 22 | "username" : "" 23 | } 24 | }, 25 | "sessionId" : None 26 | } 27 | r = requests.post(self.XL_HOST_DOMAINV2 + self.XL_PASSRQ_QUERY_PATH, json=payload, headers=self.headers) 28 | status = json.loads(r.content) 29 | try: 30 | if(status['SOAP-ENV:Envelope']['SOAP-ENV:Body'][0]['ns0:CommonResponse'][0]['ns0:ErrorMessage'] == ['SUCCESS_FORGOT_PASSWORDMYXL_NEW']): 31 | return {"message" : "Successfully get Password"} 32 | else: 33 | return {"message" : "Failed get Password"} 34 | except: 35 | return {'message' : status['message']} 36 | 37 | def loginWithPassword(self, password): 38 | params = {"password" : password} 39 | r = requests.get("http://xlpy.herokuapp.com/api/encrypt", params=params) 40 | status = r.json() 41 | payload = { 42 | "Body" : { 43 | "Header" : { 44 | "IMEI" : self.imei, 45 | "ReqID" : self.date 46 | }, 47 | "LoginV2Rq" : { 48 | "msisdn" : self.msisdn, 49 | "pass" : status["encrypted"] 50 | } 51 | }, 52 | "onNet" : "True", 53 | "staySigned" : "False", 54 | "platform" : "00", 55 | "onNetLogin" : "YES", 56 | "appVersion" : "3.0.2", 57 | "sourceName" : "Android", 58 | "sourceVersion" : "5.1" 59 | } 60 | try: 61 | r = requests.post(self.XL_HOST_DOMAINV2 + self.XL_LOGINPWD_QUERY_PATH, json=payload, headers=self.headers) 62 | except: 63 | r = requests.post(self.XL_HOST_DOMAINV2 + self.XL_LOGINPWD_QUERY_PATH, json=payload, headers=self.headers, verify=False) 64 | status = json.loads(r.content) 65 | if(len(status) == 6): self._sessionId = status['sessionId'] 66 | else: return False 67 | 68 | def purchasePackage(self, serviceid): 69 | payload = { 70 | "Body" : { 71 | "HeaderRequest" : { 72 | "applicationID" : "3", 73 | "applicationSubID" : "1", 74 | "touchpoint" : "MYXL", 75 | "requestID" : self.date, 76 | "msisdn" : self.msisdn, 77 | "serviceID" : serviceid 78 | }, 79 | "opPurchase" : { 80 | "msisdn" : self.msisdn, 81 | "serviceid" : serviceid 82 | }, 83 | "Header" : { 84 | "IMEI" : self.imei, 85 | "ReqID" : self.date 86 | } 87 | }, 88 | "sessionId" : self._sessionId, 89 | "onNet" : "True", 90 | "platform" : "00", 91 | "staySigned" : "True", 92 | "onNetLogin" : "YES", 93 | "appVersion" : "3.0.2", 94 | "sourceName" : "Android", 95 | "sourceVersion" : "5.1" 96 | } 97 | try: 98 | r = requests.post(self.XL_HOST_DOMAINV2 + self.XL_PURCHASEPKG_QUERY_PATHV2, json=payload, headers=self.headers) 99 | except: 100 | r = requests.post(self.XL_HOST_DOMAINV2 + self.XL_PURCHASEPKG_QUERY_PATHV2, json=payload, headers=self.headers, verify=False) 101 | status = json.loads(r.content) 102 | if(len(status) == 4): return {"message" : "Successfully purchased the package"} 103 | else: return {"message" : status['message']} 104 | -------------------------------------------------------------------------------- /xlotp/xlpy/client.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | 4 | g = "\033[32;1m" 5 | gt = "\033[0;32m" 6 | bt = "\033[34;1m" 7 | b = "\033[36;1m" 8 | m = "\033[31;1m" 9 | 10 | from .config import Config 11 | 12 | class XL(Config): 13 | _sessionId = "" 14 | 15 | def __init__(self, msisdn): 16 | self.msisdn = msisdn 17 | Config.__init__(self) 18 | 19 | def reqOTP(self): 20 | payload = { 21 | "Header": None, 22 | "Body": { 23 | "Header": { 24 | "ReqID": self.date, 25 | "IMEI": self.imei 26 | }, 27 | "LoginSendOTPRq": { 28 | "msisdn": self.msisdn 29 | } 30 | }, 31 | "sessionId": None, 32 | "onNet": "False", 33 | "platform": "04", 34 | "serviceId": "", 35 | "packageAmt": "", 36 | "reloadType": "", 37 | "reloadAmt": "", 38 | "packageRegUnreg": "", 39 | "appVersion": "3.8.0", 40 | "sourceName": "Chrome", 41 | "sourceVersion": "", 42 | "screenName": "login.enterLoginNumber" 43 | } 44 | r = requests.post(self.XL_HOST_DOMAIN + self.XL_OTPRQ_QUERY_PATH, json=payload, headers=self.headers, verify=False) 45 | status = json.loads(r.content) 46 | try: 47 | if(len(status) == 3): 48 | if(status['LoginSendOTPRs']): 49 | return ({'message' : b+'Kode Otp Terkirim'}) 50 | else: 51 | return({'message' : status['message']}) 52 | elif(len(status) == 2): 53 | return ({'message' : status['message']}) 54 | else: 55 | return ({'message' : 'Error Parameter'}) 56 | except: 57 | return ({'message' : 'Unknown Error'}) 58 | 59 | def loginWithOTP(self, otpCode): 60 | payload = { 61 | "Header": None, 62 | "Body": { 63 | "Header": { 64 | "ReqID": self.date, 65 | "IMEI": self.imei 66 | }, 67 | "LoginValidateOTPRq": { 68 | "headerRq": { 69 | "requestDate": self.date[:8], 70 | "requestId": self.date, 71 | "channel": "MYXLPRELOGIN" 72 | }, 73 | "msisdn": self.msisdn, 74 | "otp": otpCode 75 | } 76 | }, 77 | "sessionId": None, 78 | "platform": "04", 79 | "msisdn_Type": "P", 80 | "serviceId": "", 81 | "packageAmt": "", 82 | "reloadType": "", 83 | "reloadAmt": "", 84 | "packageRegUnreg": "", 85 | "appVersion": "3.8.0", 86 | "sourceName": "Chrome", 87 | "sourceVersion": "", 88 | "screenName": "login.enterLoginOTP", 89 | "mbb_category": "" 90 | } 91 | r = requests.post(self.XL_HOST_DOMAIN + self.XL_LOGIN_QUERY_PATH , json=payload, headers=self.headers, verify=False) 92 | status = json.loads(r.content) 93 | try: 94 | if(len(status) == 5): 95 | self._sessionId = status['sessionId'] 96 | else: 97 | return False 98 | except: 99 | pass 100 | 101 | def purchasePackage(self, serviceid): 102 | payload = { 103 | "Header": None, 104 | "Body": { 105 | "HeaderRequest": { 106 | "applicationID": "3", 107 | "applicationSubID": "1", 108 | "touchpoint": "MYXL", 109 | "requestID": self.date, 110 | "msisdn": self.msisdn, 111 | "serviceID": serviceid 112 | }, 113 | "opPurchase": { 114 | "msisdn": self.msisdn, 115 | "serviceid": serviceid 116 | }, 117 | "XBOXRequest": { 118 | "requestName": "GetSubscriberMenuId" 119 | }, 120 | "Header": { 121 | "IMEI": self.imei, 122 | "ReqID": self.date 123 | } 124 | }, 125 | "sessionId": self._sessionId, 126 | "serviceId": serviceid, 127 | "packageRegUnreg": "Reg", 128 | "reloadType": "", 129 | "reloadAmt": "", 130 | "platform": "04", 131 | "appVersion": "3.8.0", 132 | "sourceName": "Chrome", 133 | "sourceVersion": "", 134 | "msisdn_Type": "P", 135 | "screenName": "home.storeFrontReviewConfirm", 136 | "mbb_category": "" 137 | } 138 | r = requests.post(self.XL_HOST_DOMAIN + self.XL_PURCHASEPKG_QUERY_PATH , json=payload, headers=self.headers, verify=False) 139 | status = json.loads(r.content) 140 | try: 141 | if(len(status) == 4): 142 | return({'message' : b+'Paket Berhasil Dibeli'}) 143 | else: 144 | return({'message' : status['message']}) 145 | except: 146 | return({'message' : 'Unknown Error'}) 147 | -------------------------------------------------------------------------------- /xlotp/app.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | import sys 4 | import platform 5 | import time 6 | from xlpy import * 7 | import base64 8 | 9 | g = "\033[32;1m" 10 | gt = "\033[0;32m" 11 | bt = "\033[34;1m" 12 | b = "\033[36;1m" 13 | m = "\033[31;1m" 14 | c = "\033[0m" 15 | p = "\033[37;1m" 16 | u = "\033[35;1m" 17 | M = "\033[3;1m" 18 | k = "\033[33;1m" 19 | kt = "\033[0;33m" 20 | a = "\033[30;1m" 21 | 22 | W = '\x1b[0m' 23 | R = '\x1b[31m' 24 | G = '\x1b[1;32m' 25 | O = '\x1b[33m' 26 | B = '\x1b[34m' 27 | P = '\x1b[35m' 28 | C = '\x1b[36m' 29 | GR = '\x1b[37m' 30 | 31 | 32 | 33 | def slowprints(s): 34 | for c in s + '\n': 35 | sys.stdout.write(c) 36 | sys.stdout.flush() 37 | time.sleep(2.0/90) 38 | def lodprint(s): 39 | for c in s + '\n': 40 | sys.stdout.write(c) 41 | sys.stdout.flush() 42 | time.sleep(7.0/90) 43 | 44 | bintang=(gt+""" 45 | ======================================= 46 | TEMBAK PAKET BY BINTANG NUR PRADANA 47 | MASIH DALAM TAHAP UJICOBA 48 | BILA INGIN DI UPDATE TIAP HARI 49 | FOLLOW ACCOUNT SOSMED SAYA DI BAWAH INI 50 | 51 | IG: @bintang_nur_pradana 52 | Fb: Bintang Nur Pradana 53 | Yt: Bintang Nur Pradana 54 | ======================================= 55 | """) 56 | l="Harap tunggu.." 57 | 58 | def main_menu(): 59 | clear() 60 | slowprints(bintang) 61 | print(p+ 62 | " Tembak Tembakan Bintang" + 63 | "\n Pilih Salah Satu:" 64 | "\n [1] Menu Beli Paket" + 65 | "\n [2] Minta Otp Code" + 66 | "\n [3] Menu utama" 67 | ) 68 | choice = str(input(" ex:1👉 ")) 69 | exec_menu(choice) 70 | return 71 | 72 | def exec_menu(choice): 73 | clear() 74 | if(choice == ''): 75 | menu_actions['main']() 76 | else: 77 | try: 78 | menu_actions[choice]() 79 | except KeyError: 80 | print("Invalid selection, please try again.\n") 81 | menu_actions['main']() 82 | return 83 | 84 | def menu_1(): 85 | lodprint(l) 86 | clear() 87 | print(bintang) 88 | print(p+"Menu Tembak Paket XL dan Axis") 89 | msisdn = str(input("Masukan No Misal 62xx 👉 ")) 90 | clear() 91 | print(bintang) 92 | po = str(input(p+"Masukan Kode Otp 👉 ")) 93 | clear() 94 | print(bintang) 95 | print (p+" 1.Xtra Kuota 30GB Rp. 10.000") 96 | print (p+" 2.Xtra 3GB 30day 22.900 ") 97 | print (p+" 3.Xtra 5GB 30day 32.900 ") 98 | print (p+" 4.Xtra 9GB 30day 52.900 ") 99 | print (p+" 5.Xtra 17GB 30day 82.900 ") 100 | print (p+" 6.Xtra 25GB 30day 102.900 ") 101 | print (p+" 7.Kuota 700mb 10k") 102 | print (p+" 8.xtra 10GB 30day 59k") 103 | print (p+" 9.Axis Play 2GB Rp1 3Hr") 104 | print (p+" 10.Axis Play 3GB Rp1 3Hr") 105 | print (p+" 11.Axis Play 6GB Rp1 3Hr") 106 | print (p+" 12.Axis Play 9GB Rp1 3Hr") 107 | print (p+" 13.Axis Play 12GB Rp1 3Hr") 108 | print (p+" 14.Axis 1GB Rp.0 7Hr") 109 | print (p+" 15.Axis 500MB Rp.0 7Hr") 110 | print (p+" 16.Axis 500MB Rp.0 7Hr v2") 111 | print (p+" 17.Axis 500MB Rp.0 14Hr") 112 | print (p+" 18.Axis 500MB Rp.0 7Hr v2") 113 | print (p+" 19.Axis 5GB Rp.0 30Hr") 114 | print (p+" 20.Axis Bonus Younder Music") 115 | print (p+" 21.Nelpon AXIS UNLIMITED 30Hr") 116 | print (p+" 00.Manual service id") 117 | pkt = str(input("Pilih Sesuai Keinginan >> ")) 118 | 119 | if pkt == '1': 120 | i = '8110577' 121 | elif pkt == '2': 122 | i = '8211010' 123 | elif pkt == '3': 124 | i = '8211011' 125 | elif pkt == '4': 126 | i = '8211012' 127 | elif pkt == '5': 128 | i = '8211013' 129 | elif pkt == '6': 130 | i = '8211014' 131 | elif pkt == '7': 132 | i = '8211170' 133 | elif pkt == '8': 134 | i ='8211183' 135 | elif pkt == '9': 136 | i ='3212251' 137 | elif pkt == '10': 138 | i ='3212252' 139 | elif pkt == '11': 140 | i ='3212253' 141 | elif pkt == '12': 142 | i ='3212254' 143 | elif pkt == '13': 144 | i ='3212255' 145 | elif pkt == '14': 146 | i ='3110086' 147 | elif pkt == '15': 148 | i ='3212176' 149 | elif pkt == '16': 150 | i ='3110085' 151 | elif pkt == '17': 152 | i ='3110041' 153 | elif pkt == '18': 154 | i ='3212226' 155 | elif pkt == '19': 156 | i ='3212290' 157 | elif pkt == '20': 158 | i ='3212183' 159 | elif pkt == '21': 160 | i ='1110149' 161 | elif pkt == '00': 162 | i = str(input("Service ID Paket👉")) 163 | else: 164 | print("Pilihan gak tercantum") 165 | lodprint(l) 166 | serviceid = i 167 | xl = XL(msisdn) 168 | r = xl.loginWithOTP(po) 169 | if(r != False): 170 | print(xl.purchasePackage(serviceid)['message']) 171 | decision = str(input(p+"Ulangi Proses [Y/N]? 👉 ")) 172 | menu_actions['main']() if(decision in ['N','n']) else menu_actions['1']() 173 | 174 | def menu_2(): 175 | lodprint(l) 176 | clear() 177 | print(bintang) 178 | print(p+"Minta Kode Otp") 179 | msisdn = str(input("Masukan Nomor 62xx👉")) 180 | lodprint(l) 181 | xl = XL(msisdn) 182 | print(xl.reqOTP()['message']) 183 | decision = str(input(p+"Ulangi Proses[Y/N]? 👉 ")) 184 | menu_actions['main']() if(decision in ['N','n']) else menu_2() 185 | 186 | def menu_4(): 187 | clear() 188 | print(".::Password Menu::.") 189 | msisdn = str(input("Input your MSISDN >> ")) 190 | xl = XL(msisdn) 191 | print(xl.reqPassword()['message']) 192 | decision = str(input("Want to repeat the process [Y/T]? >> ")) 193 | menu_actions['main']() if(decision in ['T','t']) else menu_actions['3']() 194 | return 195 | 196 | def menu_3(): 197 | lodprint(l) 198 | os.system('cd ..;python dor.py') 199 | 200 | 201 | def exit(): 202 | sys.exit() 203 | 204 | def clear(): 205 | return os.system("cls") if (platform.system() == 'Windows') else os.system("clear") 206 | 207 | menu_actions = { 208 | "main" : main_menu, 209 | "1" : menu_1, 210 | "2" : menu_2, 211 | "3" : menu_3, 212 | "0" : exit 213 | } 214 | 215 | 216 | if __name__ == "__main__": 217 | main_menu() 218 | -------------------------------------------------------------------------------- /centos6.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # initialisasi var 4 | OS=`uname -p`; 5 | 6 | # go to root 7 | cd 8 | 9 | # disable se linux 10 | echo 0 > /selinux/enforce 11 | sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux 12 | 13 | # set locale 14 | sed -i 's/AcceptEnv/#AcceptEnv/g' /etc/ssh/sshd_config 15 | service sshd restart 16 | 17 | # disable ipv6 18 | echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 19 | sed -i '$ i\echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6' /etc/rc.local 20 | sed -i '$ i\echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6' /etc/rc.d/rc.local 21 | 22 | # install wget and curl 23 | yum -y install wget curl 24 | 25 | # setting repo 26 | wget http://script.fawzya.net/centos/app/epel-release-6-8.noarch.rpm 27 | wget http://script.fawzya.net/centos/app/remi-release-6.rpm 28 | rpm -Uvh epel-release-6-8.noarch.rpm 29 | rpm -Uvh remi-release-6.rpm 30 | 31 | if [ "$OS" == "x86_64" ]; then 32 | wget http://script.fawzya.net/centos/app/rpmforge.rpm 33 | rpm -Uvh rpmforge.rpm 34 | else 35 | wget http://script.fawzya.net/centos/app/rpmforge.rpm 36 | rpm -Uvh rpmforge.rpm 37 | fi 38 | 39 | sed -i 's/enabled = 1/enabled = 0/g' /etc/yum.repos.d/rpmforge.repo 40 | sed -i -e "/^\[remi\]/,/^\[.*\]/ s|^\(enabled[ \t]*=[ \t]*0\\)|enabled=1|" /etc/yum.repos.d/remi.repo 41 | rm -f *.rpm 42 | 43 | # remove unused 44 | yum -y remove sendmail; 45 | yum -y remove httpd; 46 | yum -y remove cyrus-sasl 47 | 48 | # update 49 | yum -y update 50 | 51 | # install webserver 52 | yum -y install nginx php-fpm php-cli 53 | service nginx restart 54 | service php-fpm restart 55 | chkconfig nginx on 56 | chkconfig php-fpm on 57 | 58 | # install essential package 59 | yum -y install rrdtool screen iftop htop nmap bc nethogs openvpn vnstat ngrep mtr git zsh mrtg unrar rsyslog rkhunter mrtg net-snmp net-snmp-utils expect nano bind-utils 60 | yum -y groupinstall 'Development Tools' 61 | yum -y install cmake 62 | 63 | yum -y --enablerepo=rpmforge install axel sslh ptunnel unrar 64 | 65 | # matiin exim 66 | service exim stop 67 | chkconfig exim off 68 | 69 | # setting vnstat 70 | vnstat -u -i eth0 71 | echo "MAILTO=root" > /etc/cron.d/vnstat 72 | echo "*/5 * * * * root /usr/sbin/vnstat.cron" >> /etc/cron.d/vnstat 73 | service vnstat restart 74 | chkconfig vnstat on 75 | 76 | # install screenfetch 77 | cd 78 | wget http://script.fawzya.net/centos/screenfetch-dev 79 | mv screenfetch-dev /usr/bin/screenfetch 80 | chmod +x /usr/bin/screenfetch 81 | echo "clear" >> .bash_profile 82 | echo "screenfetch" >> .bash_profile 83 | 84 | # install webserver 85 | cd 86 | wget -O /etc/nginx/nginx.conf "http://script.fawzya.net/centos/conf/nginx.conf" 87 | sed -i 's/www-data/nginx/g' /etc/nginx/nginx.conf 88 | mkdir -p /home/vps/public_html 89 | echo "
Setup by Fawzya.Net
" > /home/vps/public_html/index.html 90 | echo "" > /home/vps/public_html/info.php 91 | rm /etc/nginx/conf.d/* 92 | wget -O /etc/nginx/conf.d/vps.conf "http://script.fawzya.net/centos/conf/vps.conf" 93 | sed -i 's/apache/nginx/g' /etc/php-fpm.d/www.conf 94 | chmod -R +rx /home/vps 95 | service php-fpm restart 96 | service nginx restart 97 | 98 | # install openvpn 99 | wget -O /etc/openvpn/openvpn.tar "http://script.fawzya.net/centos/conf/openvpn-debian.tar" 100 | cd /etc/openvpn/ 101 | tar xf openvpn.tar 102 | wget -O /etc/openvpn/1194.conf "http://script.fawzya.net/centos/conf/1194-centos.conf" 103 | if [ "$OS" == "x86_64" ]; then 104 | wget -O /etc/openvpn/1194.conf "http://script.fawzya.net/centos/conf/1194-centos64.conf" 105 | fi 106 | wget -O /etc/iptables.up.rules "http://script.fawzya.net/centos/conf/iptables.up.rules" 107 | sed -i '$ i\iptables-restore < /etc/iptables.up.rules' /etc/rc.local 108 | sed -i '$ i\iptables-restore < /etc/iptables.up.rules' /etc/rc.d/rc.local 109 | MYIP=`dig +short myip.opendns.com @resolver1.opendns.com`; 110 | MYIP2="s/xxxxxxxxx/$MYIP/g"; 111 | sed -i $MYIP2 /etc/iptables.up.rules; 112 | sed -i 's/venet0/eth0/g' /etc/iptables.up.rules 113 | iptables-restore < /etc/iptables.up.rules 114 | sysctl -w net.ipv4.ip_forward=1 115 | sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf 116 | service openvpn restart 117 | chkconfig openvpn on 118 | cd 119 | 120 | # configure openvpn client config 121 | cd /etc/openvpn/ 122 | wget -O /etc/openvpn/1194-client.ovpn "http://script.fawzya.net/centos/open-vpn.conf" 123 | sed -i $MYIP2 /etc/openvpn/1194-client.ovpn; 124 | PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 15 | head -n 1`; 125 | useradd -M -s /bin/false Fawzya 126 | echo "Fawzya:$PASS" | chpasswd 127 | echo "Fawzya" > pass.txt 128 | echo "$PASS" >> pass.txt 129 | tar cf client.tar 1194-client.ovpn pass.txt 130 | cp client.tar /home/vps/public_html/ 131 | cp 1194-client.ovpn /home/vps/public_html/ 132 | cd 133 | 134 | # install badvpn 135 | wget -O /usr/bin/badvpn-udpgw "http://script.fawzya.net/centos/conf/badvpn-udpgw" 136 | if [ "$OS" == "x86_64" ]; then 137 | wget -O /usr/bin/badvpn-udpgw "http://script.fawzya.net/centos/conf/badvpn-udpgw64" 138 | fi 139 | sed -i '$ i\screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300' /etc/rc.local 140 | sed -i '$ i\screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300' /etc/rc.d/rc.local 141 | chmod +x /usr/bin/badvpn-udpgw 142 | screen -AmdS badvpn badvpn-udpgw --listen-addr 127.0.0.1:7300 143 | 144 | # install mrtg 145 | cd /etc/snmp/ 146 | wget -O /etc/snmp/snmpd.conf "http://script.fawzya.net/centos/conf/snmpd.conf" 147 | wget -O /root/mrtg-mem.sh "http://script.fawzya.net/centos/conf/mrtg-mem.sh" 148 | chmod +x /root/mrtg-mem.sh 149 | service snmpd restart 150 | chkconfig snmpd on 151 | snmpwalk -v 1 -c public localhost | tail 152 | mkdir -p /home/vps/public_html/mrtg 153 | cfgmaker --zero-speed 100000000 --global 'WorkDir: /home/vps/public_html/mrtg' --output /etc/mrtg/mrtg.cfg public@localhost 154 | curl "http://script.fawzya.net/centos/conf/mrtg.conf" >> /etc/mrtg/mrtg.cfg 155 | sed -i 's/WorkDir: \/var\/www\/mrtg/# WorkDir: \/var\/www\/mrtg/g' /etc/mrtg/mrtg.cfg 156 | sed -i 's/# Options\[_\]: growright, bits/Options\[_\]: growright/g' /etc/mrtg/mrtg.cfg 157 | indexmaker --output=/home/vps/public_html/mrtg/index.html /etc/mrtg/mrtg.cfg 158 | echo "0-59/5 * * * * root env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg" > /etc/cron.d/mrtg 159 | LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 160 | LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 161 | LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg 162 | cd 163 | 164 | # setting port ssh 165 | sed -i '/Port 22/a Port 143' /etc/ssh/sshd_config 166 | sed -i 's/#Port 22/Port 22/g' /etc/ssh/sshd_config 167 | service sshd restart 168 | chkconfig sshd on 169 | 170 | # install dropbear 171 | yum -y install dropbear 172 | echo "OPTIONS=\"-p 80 -p 110 -p 444\"" > /etc/sysconfig/dropbear 173 | echo "/bin/false" >> /etc/shells 174 | service dropbear restart 175 | chkconfig dropbear on 176 | 177 | # install vnstat gui 178 | cd /home/vps/public_html/ 179 | wget http://script.fawzya.net/centos/app/vnstat_php_frontend-1.5.1.tar.gz 180 | tar xf vnstat_php_frontend-1.5.1.tar.gz 181 | rm vnstat_php_frontend-1.5.1.tar.gz 182 | mv vnstat_php_frontend-1.5.1 vnstat 183 | cd vnstat 184 | sed -i "s/\$iface_list = array('eth0', 'sixxs');/\$iface_list = array('eth0');/g" config.php 185 | sed -i "s/\$language = 'nl';/\$language = 'en';/g" config.php 186 | sed -i 's/Internal/Internet/g' config.php 187 | sed -i '/SixXS IPv6/d' config.php 188 | cd 189 | 190 | # install fail2ban 191 | yum -y install fail2ban 192 | service fail2ban restart 193 | chkconfig fail2ban on 194 | 195 | # install squid 196 | yum -y install squid 197 | wget -O /etc/squid/squid.conf "http://script.fawzya.net/centos/conf/squid-centos.conf" 198 | service squid restart 199 | service squid stop 200 | sed -i $MYIP2 /etc/squid/squid.conf; 201 | chkconfig squid on 202 | 203 | # install webmin 204 | cd 205 | wget http://script.fawzya.net/centos/app/webmin-1.670-1.noarch.rpm 206 | rpm -U webmin-1.710-1.noarch.rpm 207 | rm webmin-1.710-1.noarch.rpm 208 | service webmin restart 209 | chkconfig webmin on 210 | 211 | # pasang bmon 212 | if [ "$OS" == "x86_64" ]; then 213 | wget -O /usr/bin/bmon "http://script.fawzya.net/centos/conf/bmon64" 214 | else 215 | wget -O /usr/bin/bmon "http://script.fawzya.net/centos/conf/bmon" 216 | fi 217 | chmod +x /usr/bin/bmon 218 | 219 | # block abuse 220 | cd 221 | wget script.fawzya.net/centos/block-abuse.sh 222 | chmod +x block-abuse.sh 223 | bash block-abuse.sh 224 | 225 | # downlaod script 226 | cd /usr/bin 227 | wget -O trial "script.fawzya.net/centos/menu.sh" 228 | wget -O speedtest.py "script.fawzya.net/centos/speedtest.py" 229 | wget -O userlog "script.fawzya.net/centos/user-login.sh" 230 | wget -O userexpire "script.fawzya.net/centos/auto-expire.sh" 231 | wget -O usernew "script.fawzya.net/centos/create-user.sh" 232 | wget -O userlist "script.fawzya.net/centos/daftar-user.sh" 233 | wget -O trial "script.fawzya.net/centos/trial.sh" 234 | wget -O hapus "script.fawzya.net/centos/hapus.sh" 235 | echo "cat log-install.txt" | tee tutorial 236 | echo "speedtest.py --share" | tee speedtest 237 | # sett permission 238 | chmod +x menu 239 | chmod +x userlog 240 | chmod +x userexpire 241 | chmod +x usernew 242 | chmod +x userlist 243 | chmod +x trial 244 | chmod +x hapus 245 | chmod +x tutorial 246 | chmod +x speedtest 247 | chmod +x speedtest.py 248 | 249 | cd 250 | # cron 251 | service crond start 252 | chkconfig crond on 253 | service crond stop 254 | echo "0 */12 * * * root /usr/bin/userexpire" > /etc/cron.d/user-expire 255 | echo "0 0 * * * root /usr/bin/reboot" > /etc/cron.d/reboot 256 | 257 | # set time GMT +7 258 | ln -fs /usr/share/zoneinfo/Asia/Jakarta /etc/localtime 259 | 260 | # finalisasi 261 | chown -R nginx:nginx /home/vps/public_html 262 | service nginx start 263 | service php-fpm start 264 | service vnstat restart 265 | service openvpn restart 266 | service snmpd restart 267 | service sshd restart 268 | service dropbear restart 269 | service fail2ban restart 270 | service squid restart 271 | service webmin restart 272 | service crond start 273 | chkconfig crond on 274 | 275 | # info 276 | clear 277 | echo "Informasi Penggunaan SSH" | tee log-install.txt 278 | echo "===============================================" | tee -a log-install.txt 279 | echo "" | tee -a log-install.txt 280 | echo "Layanan yang diaktifkan" | tee -a log-install.txt 281 | echo "--------------------------------------" | tee -a log-install.txt 282 | echo "OpenVPN : TCP 1194 (client config : http://$MYIP/1194-client.ovpn)" | tee -a log-install.txt 283 | echo "Port OS : 22, 143" | tee -a log-install.txt 284 | echo "Port Dropbear : 3128, 80" | tee -a log-install.txt 285 | echo "SquidProxy : 8080 (limit to IP SSH)" | tee -a log-install.txt 286 | echo "badvpn : badvpn-udpgw port 7300" | tee -a log-install.txt 287 | echo "Webmin : http://$MYIP:10000/" | tee -a log-install.txt 288 | echo "vnstat : http://$MYIP/vnstat/" | tee -a log-install.txt 289 | echo "MRTG : http://$MYIP/mrtg/" | tee -a log-install.txt 290 | echo "Timezone : Asia/Jakarta" | tee -a log-install.txt 291 | echo "Fail2Ban : [on]" | tee -a log-install.txt 292 | echo "IPv6 : [off]" | tee -a log-install.txt 293 | echo "" | tee -a log-install.txt 294 | 295 | echo "Script tersedia" | tee -a log-install.txt 296 | echo "------" | tee -a log-install.txt 297 | 298 | echo "speedtest --share : untuk cek speed vps" | tee -a log-install.txt 299 | echo "userlog : untuk melihat user yang sedang login" | tee -a log-install.txt 300 | echo "trial : untuk membuat akun trial selama 1 hari" | tee -a log-install.txt 301 | echo "usernew : untuk membuat akun baru" | tee -a log-install.txt 302 | echo "userlist : untuk melihat daftar akun beserta masa aktifnya" | tee -a log-install.txt 303 | echo "----------" | tee -a log-install.txt 304 | 305 | 306 | echo "" | tee -a log-install.txt 307 | echo "===============================================" | tee -a log-install.txt 308 | 309 | rm kvm-install.sh 310 | reboot 311 | --------------------------------------------------------------------------------