├── database ├── sms.db └── imsi.db ├── img └── logo.png ├── static ├── img │ ├── bg.jpg │ ├── logo.png │ ├── mask.png │ ├── favicon.ico │ ├── logo_small.png │ └── logo_small_t.png ├── sass │ ├── fbt │ │ ├── mixins │ │ │ ├── _tabs.scss │ │ │ ├── _cards.scss │ │ │ ├── _navbars.scss │ │ │ ├── _icons.scss │ │ │ ├── _inputs.scss │ │ │ ├── _transparency.scss │ │ │ ├── _labels.scss │ │ │ ├── _social-buttons.scss │ │ │ ├── _morphing-buttons.scss │ │ │ ├── _buttons.scss │ │ │ └── _vendor-prefixes.scss │ │ ├── _mixins.scss │ │ ├── _misc.scss │ │ ├── _typography.scss │ │ ├── _dropdown.scss │ │ ├── _buttons.scss │ │ ├── _inputs.scss │ │ ├── _bootstrap-table-base.scss │ │ ├── _variables.scss │ │ └── _fresh-bootstrap-table.scss │ └── fresh-bootstrap-table.scss ├── js │ ├── demo │ │ ├── demo.js │ │ ├── gsdk-switch.js │ │ └── jquery.sharrre.js │ └── bootstrap.js └── css │ └── demo.css ├── templates ├── debug.log ├── home.html ├── sms.html └── imsi.html ├── README.md └── GsmEvil.py /database/sms.db: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/img/logo.png -------------------------------------------------------------------------------- /database/imsi.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/database/imsi.db -------------------------------------------------------------------------------- /static/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/bg.jpg -------------------------------------------------------------------------------- /static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/logo.png -------------------------------------------------------------------------------- /static/img/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/mask.png -------------------------------------------------------------------------------- /static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/favicon.ico -------------------------------------------------------------------------------- /static/img/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/logo_small.png -------------------------------------------------------------------------------- /static/img/logo_small_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CharonDefalt/Gsm-attack-or-ss7/HEAD/static/img/logo_small_t.png -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_tabs.scss: -------------------------------------------------------------------------------- 1 | @mixin pill-style($color){ 2 | border: 1px solid $color; 3 | color: $color; 4 | } -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_cards.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($color){ 2 | @if $color == #FFFFFF{ 3 | background-color: rgba($color,.91); 4 | } @else { 5 | background-color: rgba($color,.69); 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_navbars.scss: -------------------------------------------------------------------------------- 1 | @mixin navbar-color($color){ 2 | background-color: $color; 3 | } 4 | 5 | @mixin center-item(){ 6 | left: 0; 7 | right: 0; 8 | margin-right: auto; 9 | margin-left: auto; 10 | position: absolute; 11 | } -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_icons.scss: -------------------------------------------------------------------------------- 1 | @mixin icon-background ($icon-url){ 2 | background-image : url($icon-url); 3 | 4 | } 5 | 6 | @mixin icon-shape ($size, $padding, $border-radius) { 7 | height: $size; 8 | width: $size; 9 | padding: $padding; 10 | border-radius: $border-radius; 11 | display: inline-table; 12 | 13 | } -------------------------------------------------------------------------------- /static/sass/fresh-bootstrap-table.scss: -------------------------------------------------------------------------------- 1 | @import "fbt/bootstrap-table-base"; 2 | 3 | @import "fbt/variables"; 4 | @import "fbt/mixins"; 5 | 6 | @import "fbt/typography"; 7 | 8 | // Core CSS 9 | @import "fbt/misc"; 10 | @import "fbt/buttons"; 11 | @import "fbt/inputs"; 12 | @import "fbt/dropdown"; 13 | 14 | @import "fbt/fresh-bootstrap-table"; -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_inputs.scss: -------------------------------------------------------------------------------- 1 | @mixin input-size($padding-vertical, $padding-horizontal, $height){ 2 | padding: $padding-vertical $padding-horizontal; 3 | height: $height; 4 | } 5 | 6 | @mixin placeholder($color, $opacity){ 7 | color: $color; 8 | @include opacity(1); 9 | } 10 | 11 | @mixin light-form(){ 12 | border-radius: 0; 13 | border:0; 14 | padding: 0; 15 | background-color: transparent; 16 | 17 | } -------------------------------------------------------------------------------- /static/sass/fbt/_mixins.scss: -------------------------------------------------------------------------------- 1 | //Utilities 2 | 3 | @import "mixins/transparency"; 4 | @import "mixins/vendor-prefixes"; 5 | 6 | 7 | //Components 8 | 9 | @import "mixins/buttons"; 10 | @import "mixins/inputs"; 11 | @import "mixins/labels"; 12 | @import "mixins/tabs"; 13 | 14 | @import "mixins/navbars"; 15 | @import "mixins/icons"; 16 | @import "mixins/social-buttons"; 17 | 18 | @import "mixins/morphing-buttons"; 19 | 20 | @import "mixins/cards"; -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_transparency.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: #{alpha(opacity=$opacity-ie)}; 8 | } 9 | 10 | @mixin black-filter($opacity){ 11 | top: 0; 12 | left: 0; 13 | height: 100%; 14 | width: 100%; 15 | position: absolute; 16 | background-color: rgba(17,17,17,$opacity); 17 | display: block; 18 | content: ""; 19 | z-index: 1; 20 | } -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | @mixin label-style(){ 2 | padding: $padding-label-vertical $padding-label-horizontal; 3 | border: 1px solid $default-color; 4 | border-radius: $border-radius-small; 5 | color: $default-color; 6 | font-weight: $font-weight-semi; 7 | font-size: $font-size-small; 8 | text-transform: uppercase; 9 | display: inline-block; 10 | vertical-align: middle; 11 | } 12 | 13 | @mixin label-color($color){ 14 | border-color: $color; 15 | color: $color; 16 | } 17 | @mixin label-color-fill($color){ 18 | border-color: $color; 19 | color: $white-color; 20 | background-color: $color; 21 | } -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_social-buttons.scss: -------------------------------------------------------------------------------- 1 | @mixin social-buttons-color ($color){ 2 | 3 | border-color: $color; 4 | color: $color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $color; 13 | border-color: $color; 14 | opacity: 1; 15 | } 16 | 17 | &:disabled, 18 | &[disabled], 19 | &.disabled { 20 | background-color: $transparent-bg; 21 | border-color: $color; 22 | } 23 | 24 | &.btn-fill { 25 | color: $white-color; 26 | background-color: $color; 27 | opacity: 0.9; 28 | 29 | &:hover, 30 | &:focus, 31 | &:active, 32 | &.active, 33 | .open > &.dropdown-toggle{ 34 | background-color: $color; 35 | color: $white-color; 36 | opacity: 1; 37 | } 38 | 39 | } 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_morphing-buttons.scss: -------------------------------------------------------------------------------- 1 | $prefixes: ('', '-moz-', '-webkit-', '-ms-') !default; 2 | 3 | @mixin circle-animation(){ 4 | @for $i from 0 to length($prefixes) { 5 | @include circle-animation-details(nth($prefixes, $i + 1)); 6 | } 7 | } 8 | 9 | @mixin circle-animation-details($name){ 10 | #{$name}animation-name: spin; 11 | #{$name}animation-duration: 1250ms; 12 | #{$name}animation-iteration-count: infinite; 13 | #{$name}animation-timing-function: linear; 14 | 15 | } 16 | @keyframes spin { 17 | from { transform:rotate(0deg); } 18 | to { transform:rotate(360deg); } 19 | } 20 | 21 | @-webkit-keyframes spin { 22 | from { -webkit-transform: rotate(0deg); } 23 | to { -webkit-transform: rotate(360deg); } 24 | } 25 | 26 | @-moz-keyframes spin { 27 | from { -moz-transform: rotate(0deg); } 28 | to { -moz-transform: rotate(360deg); } 29 | } 30 | 31 | @-ms-keyframes spin { 32 | from { -ms-transform: rotate(0deg); } 33 | to { -ms-transform: rotate(360deg); } 34 | } -------------------------------------------------------------------------------- /templates/debug.log: -------------------------------------------------------------------------------- 1 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 2 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 3 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 4 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 5 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 6 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 7 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 8 | [0915/233436.371:ERROR:crash_report_database_win.cc(469)] failed to stat report 9 | [0919/010738.720:ERROR:crash_report_database_win.cc(469)] failed to stat report 10 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 11 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 12 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 13 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 14 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 15 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 16 | [0919/010738.721:ERROR:crash_report_database_win.cc(469)] failed to stat report 17 | -------------------------------------------------------------------------------- /static/sass/fbt/_misc.scss: -------------------------------------------------------------------------------- 1 | /* General overwrite */ 2 | .freshbt-unique-ct{ 3 | display: block; 4 | padding: 10px; 5 | margin-top: auto; 6 | } 7 | 8 | a{ 9 | color: $info-color; 10 | 11 | &:hover, &:focus{ 12 | color: $info-states-color; 13 | text-decoration: none; 14 | } 15 | } 16 | 17 | a:focus, a:active, 18 | button::-moz-focus-inner, 19 | input[type="reset"]::-moz-focus-inner, 20 | input[type="button"]::-moz-focus-inner, 21 | input[type="submit"]::-moz-focus-inner, 22 | select::-moz-focus-inner, 23 | input[type="file"] > input[type="button"]::-moz-focus-inner { 24 | outline : 0 !important; 25 | } 26 | .ui-slider-handle:focus, 27 | .navbar-toggle { 28 | outline : 0 !important; 29 | } 30 | 31 | /* Animations */ 32 | .form-control, 33 | .input-group-addon, 34 | .tagsinput, 35 | .navbar, 36 | .navbar .alert{ 37 | @include transition($general-transition-time, linear); 38 | } 39 | .tagsinput .tag, 40 | .tagsinput-remove-link, 41 | .filter, 42 | .btn-hover, 43 | [data-toggle="collapse"] i, 44 | .btn, 45 | .pagination > li > a, 46 | .pagination > li > span{ 47 | @include transition($fast-transition-time, linear); 48 | } 49 | 50 | .btn-morphing .fa, 51 | .btn-morphing .circle, 52 | .gsdk-collapse{ 53 | @include transition($slow-transition-time, linear); 54 | } 55 | 56 | .fa{ 57 | text-align: center; 58 | } 59 | .margin-top{ 60 | margin-top: 50px; 61 | } 62 | -------------------------------------------------------------------------------- /static/js/demo/demo.js: -------------------------------------------------------------------------------- 1 | current_color = "orange"; 2 | full_color = true; 3 | 4 | $().ready(function(){ 5 | $fresh_table = $('.fresh-table'); 6 | 7 | if($('.switch').length != 0){ 8 | $('.switch')['bootstrapSwitch'](); 9 | } 10 | 11 | $('.fixed-plugin a').click(function(event){ 12 | // Alex if we click on switch, stop propagation of the event, so the dropdown will not be hide, otherwise we set the section active 13 | if($(this).hasClass('switch-trigger')){ 14 | if(event.stopPropagation){ 15 | event.stopPropagation(); 16 | } 17 | else if(window.event){ 18 | window.event.cancelBubble = true; 19 | } 20 | } 21 | }); 22 | 23 | $('.fixed-plugin .badge').click(function(){ 24 | 25 | $(this).siblings().removeClass('active'); 26 | $(this).addClass('active'); 27 | 28 | var new_color = $(this).data('color'); 29 | 30 | $fresh_table.fadeOut('fast', function(){ 31 | if(full_color){ 32 | $fresh_table.removeClass("full-color-" + current_color).addClass("full-color-" + new_color); 33 | } else { 34 | $fresh_table.removeClass("toolbar-color-" + current_color).addClass("toolbar-color-" + new_color); 35 | } 36 | 37 | current_color = new_color; 38 | $fresh_table.fadeIn('fast'); 39 | }); 40 | }); 41 | 42 | }); 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Mixin for generating new styles 2 | @mixin btn-styles($btn-color, $btn-states-color) { 3 | border-color: $btn-color; 4 | color: $btn-color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $btn-states-color; 13 | border-color: $btn-states-color; 14 | } 15 | 16 | &.disabled, 17 | &:disabled, 18 | &[disabled], 19 | fieldset[disabled] & { 20 | &, 21 | &:hover, 22 | &:focus, 23 | &.focus, 24 | &:active, 25 | &.active { 26 | background-color: $transparent-bg; 27 | border-color: $btn-color; 28 | } 29 | } 30 | 31 | 32 | &.btn-fill { 33 | color: $white-color; 34 | background-color: $btn-color; 35 | @include opacity(1); 36 | 37 | &:hover, 38 | &:focus, 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $btn-states-color; 43 | color: $white-color; 44 | } 45 | 46 | .caret{ 47 | border-top-color: $white-color; 48 | } 49 | } 50 | 51 | .caret{ 52 | border-top-color: $btn-color; 53 | } 54 | } 55 | 56 | 57 | @mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){ 58 | font-size: $font-size; 59 | border-radius: $border; 60 | padding: $padding-vertical $padding-horizontal; 61 | 62 | &.btn-round{ 63 | padding: $padding-vertical + 1 $padding-horizontal; 64 | } 65 | 66 | &.btn-simple{ 67 | padding: $padding-vertical + 2 $padding-horizontal; 68 | } 69 | 70 | } -------------------------------------------------------------------------------- /static/sass/fbt/_typography.scss: -------------------------------------------------------------------------------- 1 | /* Font Smoothing */ 2 | 3 | body{ 4 | font-family: "Roboto","Helvetica Neue","Open Sans",Arial,sans-serif; 5 | } 6 | 7 | h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, p, .navbar, .brand, .btn, a, .td-name, td, .form-control, label{ 8 | -moz-osx-font-smoothing: grayscale; 9 | -webkit-font-smoothing: antialiased; 10 | font-family: "Roboto","Helvetica Neue","Open Sans",Arial,sans-serif; 11 | } 12 | 13 | h1, .h1, h2, .h2, h3, .h3, h4, .h4{ 14 | font-weight: $font-weight-normal; 15 | margin: $margin-large-vertical 0 $margin-base-vertical; 16 | } 17 | 18 | h1, .h1 { 19 | font-size: $font-size-h1; 20 | } 21 | h2, .h2{ 22 | font-size: $font-size-h2; 23 | } 24 | h3, .h3{ 25 | font-size: $font-size-h3; 26 | margin: 20px 0 10px; 27 | } 28 | h4, .h4{ 29 | font-size: $font-size-h4; 30 | line-height: 30px; 31 | } 32 | h5, .h5 { 33 | font-size: $font-size-h5; 34 | margin-bottom: 15px; 35 | } 36 | h6, .h6{ 37 | font-size: $font-size-h6; 38 | font-weight: $font-weight-bold; 39 | text-transform: uppercase; 40 | } 41 | p{ 42 | font-size: $font-paragraph; 43 | line-height: $line-height-general; 44 | } 45 | 46 | h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { 47 | color: $dark-gray; 48 | font-weight: $font-weight-light; 49 | line-height: $line-height-general; 50 | } 51 | 52 | h1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small { 53 | font-size: 60%; 54 | } 55 | 56 | h1 .subtitle{ 57 | display: block; 58 | font-family: 'Grand Hotel',cursive; 59 | margin: 0 0 $margin-large-vertical; 60 | } 61 | 62 | .text-primary, .text-primary:hover{ 63 | color: #1D62F0 !important; 64 | } 65 | .text-info, .text-info:hover{ 66 | color: #109CFF !important; 67 | } 68 | .text-success, .text-success:hover{ 69 | color: #0C9C14 !important; 70 | } 71 | .text-warning, .text-warning:hover{ 72 | color: #ED8D00 !important; 73 | } 74 | .text-danger, .text-danger:hover{ 75 | color: #EE2D20 !important; 76 | } 77 | 78 | -------------------------------------------------------------------------------- /static/sass/fbt/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .fresh-table{ 2 | .dropdown-menu{ 3 | visibility: hidden; 4 | margin: 0; 5 | padding: 0; 6 | border-radius: $border-radius-extreme; 7 | display: block; 8 | z-index: 9000; 9 | position: absolute; 10 | border: none; 11 | background-color: rgba(23, 23, 23, 0.82); 12 | 13 | margin-top: 10px; 14 | 15 | @include opacity(0); 16 | @include box-shadow(none); 17 | 18 | > li > a { 19 | padding: $padding-base-vertical $padding-base-horizontal; 20 | color: #FFFFFF; 21 | 22 | img{ 23 | margin-top: -3px; 24 | } 25 | } 26 | 27 | > li > a:focus{ 28 | outline: 0 !important; 29 | } 30 | 31 | > li:first-child > a{ 32 | border-top-left-radius: $border-radius-extreme; 33 | border-top-right-radius: $border-radius-extreme; 34 | } 35 | 36 | > li:last-child > a{ 37 | border-bottom-left-radius: $border-radius-extreme; 38 | border-bottom-right-radius: $border-radius-extreme; 39 | } 40 | 41 | > li > a:hover, 42 | > li > a:focus { 43 | background-color: rgba(0,0,0,.35); 44 | color: #FFFFFF; 45 | opacity: 1; 46 | text-decoration: none; 47 | } 48 | 49 | > li.active > a, 50 | > li.active > a:hover, 51 | > li.active > a:focus{ 52 | background-color: rgba(0,0,0,.6); 53 | } 54 | 55 | @include transform-scale(0); 56 | @include transition($slow-transition-time, $transition-bezier); 57 | 58 | 59 | 60 | &:after { 61 | border-bottom: 11px solid rgba(23, 23, 23, 0.73); 62 | border-left: 11px solid rgba(0, 0, 0, 0); 63 | border-right: 11px solid rgba(0, 0, 0, 0); 64 | content: ""; 65 | display: inline-block; 66 | position: absolute; 67 | right: 12px; 68 | top: -11px; 69 | } 70 | 71 | } 72 | 73 | .dropup .dropdown-menu{ 74 | &:after { 75 | border-top: 11px solid rgba(23, 23, 23, 0.73); 76 | border-left: 11px solid rgba(0, 0, 0, 0); 77 | border-right: 11px solid rgba(0, 0, 0, 0); 78 | border-bottom: none; 79 | content: ""; 80 | display: inline-block; 81 | position: absolute; 82 | left: 12px; 83 | right: auto; 84 | top: auto; 85 | bottom: -11px; 86 | } 87 | 88 | } 89 | 90 | .open{ 91 | .dropdown-menu{ 92 | 93 | 94 | @include opacity(1); 95 | visibility: visible; 96 | 97 | @include transform-scale(1); 98 | @include transform-origin($dropdown-coordinates); 99 | } 100 | } 101 | 102 | } -------------------------------------------------------------------------------- /templates/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | GSM EVIL 2 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 |
33 |
34 | Imsi Sniffer 35 | Sms Sniffer 36 |
37 |
38 | 39 | 40 | 41 | 42 |
43 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /static/sass/fbt/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn{ 2 | border-width: $border-thick; 3 | background-color: $transparent-bg; 4 | font-weight: $font-weight-bold; 5 | 6 | @include opacity(.7); 7 | padding: $padding-base-vertical $padding-base-horizontal; 8 | 9 | @include btn-styles($default-color, $default-states-color); 10 | 11 | &:hover, 12 | &:focus{ 13 | @include opacity(1); 14 | outline: 0 !important; 15 | } 16 | &:active, 17 | &.active, 18 | .open > &.dropdown-toggle { 19 | @include box-shadow(none); 20 | outline: 0 !important; 21 | } 22 | 23 | &.btn-icon{ 24 | padding: $padding-base-vertical; 25 | } 26 | 27 | } 28 | 29 | // Apply the mixin to the buttons 30 | //.btn-default { @include btn-styles($default-color, $default-states-color); } 31 | .btn-primary { @include btn-styles($primary-color, $primary-states-color); } 32 | .btn-success { @include btn-styles($success-color, $success-states-color); } 33 | .btn-info { @include btn-styles($info-color, $info-states-color); } 34 | .btn-warning { @include btn-styles($warning-color, $warning-states-color); } 35 | .btn-danger { @include btn-styles($danger-color, $danger-states-color); } 36 | .btn-neutral { 37 | @include btn-styles($white-color, $white-color); 38 | 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $white-color; 43 | color: $default-color; 44 | } 45 | 46 | &.btn-fill, 47 | &.btn-fill:hover, 48 | &.btn-fill:focus{ 49 | color: $default-color; 50 | } 51 | 52 | &.btn-simple:active, 53 | &.btn-simple.active{ 54 | background-color: transparent; 55 | } 56 | } 57 | 58 | .btn{ 59 | &:disabled, 60 | &[disabled], 61 | &.disabled{ 62 | @include opacity(.5); 63 | } 64 | } 65 | .btn-round{ 66 | border-width: $border-thin; 67 | border-radius: $btn-round-radius !important; 68 | padding: $padding-round-vertical $padding-round-horizontal; 69 | 70 | &.btn-icon{ 71 | padding: $padding-round-vertical; 72 | } 73 | } 74 | .btn-simple{ 75 | border: $none; 76 | font-size: $font-size-medium; 77 | padding: $padding-base-vertical $padding-base-horizontal; 78 | 79 | &.btn-icon{ 80 | padding: $padding-base-vertical; 81 | } 82 | } 83 | .btn-lg{ 84 | @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); 85 | font-weight: $font-weight-normal; 86 | } 87 | .btn-sm{ 88 | @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); 89 | } 90 | .btn-xs { 91 | @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $border-radius-small); 92 | } 93 | .btn-wd { 94 | min-width: 140px; 95 | } 96 | 97 | .btn-group.select{ 98 | width: 100%; 99 | } 100 | .btn-group.select .btn{ 101 | text-align: left; 102 | } 103 | .btn-group.select .caret{ 104 | position: absolute; 105 | top: 50%; 106 | margin-top: -1px; 107 | right: 8px; 108 | } 109 | 110 | .btn-social { 111 | //@include btn-styles($default-color, $default-states-color); 112 | opacity: 0.85; 113 | padding: 8px 9px; 114 | 115 | min-width: 100px; 116 | margin: 20px 2px 0; 117 | 118 | .fa { 119 | font-size: 18px; 120 | vertical-align: middle; 121 | display: inline-block; 122 | margin-right: 5px; 123 | } 124 | 125 | &.btn-round { 126 | padding: 9px 10px; 127 | } 128 | 129 | } 130 | 131 | .btn-facebook { 132 | @include social-buttons-color($social-facebook); 133 | } 134 | 135 | .btn-twitter { 136 | @include social-buttons-color($social-twitter); 137 | } 138 | -------------------------------------------------------------------------------- /static/sass/fbt/_inputs.scss: -------------------------------------------------------------------------------- 1 | .form-control::-moz-placeholder{ 2 | @include placeholder($medium-gray,1); 3 | } 4 | .form-control:-moz-placeholder{ 5 | @include placeholder($medium-gray,1); 6 | } 7 | .form-control::-webkit-input-placeholder{ 8 | @include placeholder($medium-gray,1); 9 | } 10 | .form-control:-ms-input-placeholder{ 11 | @include placeholder($medium-gray,1); 12 | } 13 | 14 | .form-control { 15 | background-color: $white-bg; 16 | border: $border-thick solid $default-color; 17 | border-radius: $btn-round-radius; 18 | font-weight: $font-weight-bold; 19 | 20 | color: #666666; 21 | @include input-size($padding-base-vertical, $padding-base-horizontal, $height-base); 22 | @include box-shadow(none); 23 | 24 | @include opacity(.7); 25 | 26 | &:focus{ 27 | border-color: $dark-gray; 28 | @include box-shadow(none); 29 | @include opacity(1); 30 | outline: 0 !important; 31 | 32 | } 33 | 34 | .has-success &, 35 | .has-error &, 36 | .has-success &:focus, 37 | .has-error &:focus{ 38 | border-color: $light-gray; 39 | @include box-shadow(none); 40 | } 41 | 42 | .has-success &{ 43 | color: $success-color; 44 | } 45 | .has-success &:focus{ 46 | border-color: $success-color; 47 | } 48 | .has-error &{ 49 | color: $danger-color; 50 | } 51 | .has-error &:focus{ 52 | border-color: $danger-color; 53 | } 54 | 55 | & + .form-control-feedback{ 56 | border-radius: $border-radius-large; 57 | font-size: $font-size-base; 58 | margin-top: -7px; 59 | position: absolute; 60 | right: 10px; 61 | top: 50%; 62 | vertical-align: middle; 63 | } 64 | 65 | .open &{ 66 | border-radius: $border-radius-base $border-radius-base 0 0; 67 | border-bottom-color: transparent; 68 | } 69 | } 70 | 71 | .input-lg{ 72 | height: 55px; 73 | padding: $padding-large-vertical $padding-large-horizontal; 74 | } 75 | 76 | .has-error{ 77 | .form-control-feedback{ 78 | color: $danger-color; 79 | } 80 | } 81 | .has-success{ 82 | .form-control-feedback{ 83 | color: $success-color 84 | } 85 | } 86 | 87 | 88 | .input-group-addon { 89 | background-color: $white-color; 90 | border: 1px solid $light-gray; 91 | border-radius: $border-radius-base; 92 | 93 | .has-success &, 94 | .has-error &{ 95 | background-color: $white-color; 96 | border: 1px solid $light-gray; 97 | } 98 | .has-error .form-control:focus + &{ 99 | border-color: $danger-color; 100 | color: $danger-color; 101 | } 102 | .has-success .form-control:focus + &{ 103 | border-color: $success-color; 104 | color: $success-color; 105 | } 106 | .form-control:focus + &, 107 | .form-control:focus ~ &{ 108 | background-color: $white-color; 109 | border-color: $dark-gray; 110 | } 111 | } 112 | 113 | .input-group .form-control:first-child, 114 | .input-group-addon:first-child, 115 | .input-group-btn:first-child > .dropdown-toggle, 116 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { 117 | border-right: 0 none; 118 | } 119 | .input-group .form-control:last-child, 120 | .input-group-addon:last-child, 121 | .input-group-btn:last-child > .dropdown-toggle, 122 | .input-group-btn:first-child > .btn:not(:first-child) { 123 | border-left: 0 none; 124 | } 125 | .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { 126 | background-color: $light-gray; 127 | color: $default-color; 128 | cursor: not-allowed; 129 | } 130 | 131 | .input-group-btn .btn{ 132 | border-width: $border-thin; 133 | padding: $padding-round-vertical $padding-base-horizontal; 134 | } 135 | .input-group-btn .btn-default:not(.btn-fill){ 136 | border-color: $medium-gray; 137 | } 138 | 139 | .input-group-btn:last-child > .btn{ 140 | margin-left: 0; 141 | } 142 | 143 | .input-group-focus .input-group-addon{ 144 | border-color: $dark-gray; 145 | } 146 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |

3 | GSMEVIL 2 Title 4 |

5 | 6 | **GSMEVIL 2** is python web based tool which use for capturing imsi numbers and sms and also you able to see sms and imsi on any device using your favorite browser and it's make easy to capture sms and imsi numbers for those who not have much knowledge about gsm packets capturing. 7 | 8 | # Disclaimer:- 9 | This program was made to understand how GSM network works. Not for bad hacking ! 10 | We are not responsible for any illegal activity ! 11 | 12 | # Setup 13 | 14 | Install GSMEvil : 15 | ``` 16 | git clone https://github.com/sharyer/gsmevil2.git 17 | pip3 install pyshark flask flask_socketio sqlite3 18 | ``` 19 | 20 | Install Gr GSM : ( For receiving GSM transmissions ) 21 | ``` 22 | sudo add-apt-repository -y ppa:ptrkrysik/gr-gsm 23 | sudo apt update 24 | sudo apt install gr-gsm 25 | ``` 26 | 27 | If gr-gsm failled to setup. Than follow those this : https://github.com/ptrkrysik/gr-gsm/wiki/Installation 28 | 29 | Install Kalibrate : ( For finding frequencies ) 30 | ``` 31 | apt-get install kalibrate-rtl 32 | ``` 33 | OR 34 | ``` 35 | sudo apt install build-essential libtool automake autoconf librtlsdr-dev libfftw3-dev 36 | git clone https://github.com/steve-m/kalibrate-rtl 37 | cd kalibrate-rtl 38 | ./bootstrap && CXXFLAGS='-W -Wall -O3' 39 | ./configure 40 | make 41 | sudo make install 42 | ``` 43 | # Usage 44 | You need gsm frequency on which you capture sms or imsi. By using kalibrate you will get all your near gsm base stations frequencies. 45 | ``` 46 | kal -s GSM900 47 | ``` 48 | ``` 49 | kal: Scanning for GSM-900 base stations. 50 | GSM-900: 51 | chan: 4 (935.8MHz + 320Hz) power: 1829406.95 52 | chan: 11 (937.2MHz + 308Hz) power: 4540354.88 53 | ... 54 | ``` 55 | Now you need to capture gsm traffic using gr-gsm on frequency of your any gsm base station which you get from kalibrate. 56 | ``` 57 | grgsm_livemon -f M 58 | ``` 59 | Example : 60 | ``` 61 | grgsm_livemon -f 935.8M 62 | ``` 63 | if you see output that's mean you getting gsm packets than continue other setps else change frequency. 64 | ``` 65 | 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 66 | 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 67 | 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 68 | 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 69 | ... 70 | ``` 71 | Now every thing is ready you can start now capturing sms or imsi numbers using gsmevil. 72 | You able to run imsi catcher and sms sniffer both at same time using 2 seprate terminal for capture imsi numbers and sms both at same time. 73 | ``` 74 | cd #Example cd gsmevil2 75 | ``` 76 | #### Usage : 77 | 78 | Run this command to quick start Gsm Evil 2. 79 | ``` 80 | python3 GsmEvil.py 81 | ``` 82 | Options : 83 | ``` 84 | python3 GsmEvil.py -h 85 | Usage: GsmEvil.py: [options] 86 | 87 | Options: 88 | -h, --help show this help message and exit 89 | -i IFACE, --iface=IFACE Interface (default : lo) 90 | -p PORT, --port=PORT Port (default : 80) 91 | --host=HOST Host (default : localhost) 92 | ``` 93 | For change host port. 94 | ``` 95 | python3 GsmEvil.py -p 8080 96 | ``` 97 | For change hostname. 98 | ``` 99 | python3 GsmEvil.py --host=localhost 100 | ``` 101 | Open localhost or 127.0.0.1 in your favorite browser and use now. 102 | 103 | # Requirements 104 | linux operating system (kali linux) 105 | [rtl-sdr (RTL2832U)](https://osmocom.org/projects/sdr/wiki/rtl-sdr) with antenna (less than 15$) or [HackRF](https://greatscottgadgets.com/hackrf/) 106 | 107 | # Links 108 | Frequency : https://www.worldtimezone.com/gsm.html or https://en.wikipedia.org/wiki/GSM_frequency_bands 109 | Sdr : https://en.wikipedia.org/wiki/Software-defined_radio 110 | Sms : https://en.wikipedia.org/wiki/SMS#GSM 111 | Imsi : https://fr.wikipedia.org/wiki/International_Mobile_Subscriber_Identity 112 | Cell id : https://en.wikipedia.org/wiki/Cell_ID or https://unwiredlabs.com/ 113 | GSM : https://en.wikipedia.org/wiki/GSM 114 | Frequency Calculator : https://www.cellmapper.net/arfcn 115 | GR-GSM : https://github.com/ptrkrysik/gr-gsm 116 | 117 | # Donations 118 | Bitcoin : 17i3fuRvPB6RyugCwFW79zvGoZdNTjyQxJ 119 | 120 | # Contact 121 | Youtube : https://www.youtube.com/DigitalHackerOfficial 122 | Email : digitalhacker07@gmail.com 123 | Facebook : https://www.facebook.com/DigitalHackerOfficial 124 | Twitter : https://twitter.com/SheryarNinjhack 125 | -------------------------------------------------------------------------------- /static/sass/fbt/mixins/_vendor-prefixes.scss: -------------------------------------------------------------------------------- 1 | // User select 2 | // For selecting text on the page 3 | 4 | @mixin user-select($select) { 5 | -webkit-user-select: $select; 6 | -moz-user-select: $select; 7 | -ms-user-select: $select; // IE10+ 8 | user-select: $select; 9 | } 10 | 11 | @mixin box-shadow($shadow...) { 12 | -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 13 | box-shadow: $shadow; 14 | } 15 | 16 | // Box sizing 17 | @mixin box-sizing($boxmodel) { 18 | -webkit-box-sizing: $boxmodel; 19 | -moz-box-sizing: $boxmodel; 20 | box-sizing: $boxmodel; 21 | } 22 | 23 | 24 | @mixin transition($time, $type){ 25 | -webkit-transition: all $time $type; 26 | -moz-transition: all $time $type; 27 | -o-transition: all $time $type; 28 | -ms-transition: all $time $type; 29 | transition: all $time $type; 30 | } 31 | 32 | @mixin transform-scale($value){ 33 | -webkit-transform: scale($value); 34 | -moz-transform: scale($value); 35 | -o-transform: scale($value); 36 | -ms-transform: scale($value); 37 | transform: scale($value); 38 | } 39 | 40 | @mixin transform-translate-x($value){ 41 | -webkit-transform: translate3d($value, 0, 0); 42 | -moz-transform: translate3d($value, 0, 0); 43 | -o-transform: translate3d($value, 0, 0); 44 | -ms-transform: translate3d($value, 0, 0); 45 | transform: translate3d($value, 0, 0); 46 | } 47 | 48 | @mixin transform-origin($coordinates){ 49 | -webkit-transform-origin: $coordinates; 50 | -moz-transform-origin: $coordinates; 51 | -o-transform-origin: $coordinates; 52 | -ms-transform-origin: $coordinates; 53 | transform-origin: $coordinates; 54 | } 55 | 56 | @mixin icon-gradient ($top-color, $bottom-color){ 57 | background: $top-color; 58 | background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%); 59 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color)); 60 | background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%); 61 | background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%); 62 | background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%); 63 | background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%); 64 | } 65 | 66 | @mixin card-radial-gradient($extern-color, $center-color){ 67 | background: $extern-color; 68 | background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */ 69 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */ 70 | background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */ 71 | background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */ 72 | background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */ 73 | background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */ 74 | background-size: 250% 250%; 75 | } 76 | 77 | @mixin vertical-align { 78 | position: relative; 79 | top: 50%; 80 | -webkit-transform: translateY(-50%); 81 | -ms-transform: translateY(-50%); 82 | transform: translateY(-50%); 83 | } 84 | 85 | @mixin rotate-180(){ 86 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 87 | -webkit-transform: rotate(180deg); 88 | -ms-transform: rotate(180deg); 89 | transform: rotate(180deg); 90 | } 91 | 92 | @mixin bar-animation($type){ 93 | -webkit-animation: $type 500ms linear 0s; 94 | -moz-animation: $type 500ms linear 0s; 95 | animation: $type 500ms 0s; 96 | -webkit-animation-fill-mode: forwards; 97 | -moz-animation-fill-mode: forwards; 98 | animation-fill-mode: forwards; 99 | } 100 | 101 | @mixin topbar-x-rotation(){ 102 | @keyframes topbar-x { 103 | 0% {top: 0px; transform: rotate(0deg); } 104 | 45% {top: 6px; transform: rotate(145deg); } 105 | 75% {transform: rotate(130deg); } 106 | 100% {transform: rotate(135deg); } 107 | } 108 | @-webkit-keyframes topbar-x { 109 | 0% {top: 0px; -webkit-transform: rotate(0deg); } 110 | 45% {top: 6px; -webkit-transform: rotate(145deg); } 111 | 75% {-webkit-transform: rotate(130deg); } 112 | 100% { -webkit-transform: rotate(135deg); } 113 | } 114 | @-moz-keyframes topbar-x { 115 | 0% {top: 0px; -moz-transform: rotate(0deg); } 116 | 45% {top: 6px; -moz-transform: rotate(145deg); } 117 | 75% {-moz-transform: rotate(130deg); } 118 | 100% { -moz-transform: rotate(135deg); } 119 | } 120 | } 121 | 122 | @mixin topbar-back-rotation(){ 123 | @keyframes topbar-back { 124 | 0% { top: 6px; transform: rotate(135deg); } 125 | 45% { transform: rotate(-10deg); } 126 | 75% { transform: rotate(5deg); } 127 | 100% { top: 0px; transform: rotate(0); } 128 | } 129 | 130 | @-webkit-keyframes topbar-back { 131 | 0% { top: 6px; -webkit-transform: rotate(135deg); } 132 | 45% { -webkit-transform: rotate(-10deg); } 133 | 75% { -webkit-transform: rotate(5deg); } 134 | 100% { top: 0px; -webkit-transform: rotate(0); } 135 | } 136 | 137 | @-moz-keyframes topbar-back { 138 | 0% { top: 6px; -moz-transform: rotate(135deg); } 139 | 45% { -moz-transform: rotate(-10deg); } 140 | 75% { -moz-transform: rotate(5deg); } 141 | 100% { top: 0px; -moz-transform: rotate(0); } 142 | } 143 | } 144 | 145 | @mixin bottombar-x-rotation(){ 146 | @keyframes bottombar-x { 147 | 0% {bottom: 0px; transform: rotate(0deg);} 148 | 45% {bottom: 6px; transform: rotate(-145deg);} 149 | 75% {transform: rotate(-130deg);} 150 | 100% {transform: rotate(-135deg);} 151 | } 152 | @-webkit-keyframes bottombar-x { 153 | 0% {bottom: 0px; -webkit-transform: rotate(0deg);} 154 | 45% {bottom: 6px; -webkit-transform: rotate(-145deg);} 155 | 75% {-webkit-transform: rotate(-130deg);} 156 | 100% {-webkit-transform: rotate(-135deg);} 157 | } 158 | @-moz-keyframes bottombar-x { 159 | 0% {bottom: 0px; -moz-transform: rotate(0deg);} 160 | 45% {bottom: 6px; -moz-transform: rotate(-145deg);} 161 | 75% {-moz-transform: rotate(-130deg);} 162 | 100% {-moz-transform: rotate(-135deg);} 163 | } 164 | } 165 | 166 | @mixin bottombar-back-rotation{ 167 | @keyframes bottombar-back { 168 | 0% { bottom: 6px;transform: rotate(-135deg);} 169 | 45% { transform: rotate(10deg);} 170 | 75% { transform: rotate(-5deg);} 171 | 100% { bottom: 0px;transform: rotate(0);} 172 | } 173 | @-webkit-keyframes bottombar-back { 174 | 0% {bottom: 6px;-webkit-transform: rotate(-135deg);} 175 | 45% {-webkit-transform: rotate(10deg);} 176 | 75% {-webkit-transform: rotate(-5deg);} 177 | 100% {bottom: 0px;-webkit-transform: rotate(0);} 178 | } 179 | @-moz-keyframes bottombar-back { 180 | 0% {bottom: 6px;-moz-transform: rotate(-135deg);} 181 | 45% {-moz-transform: rotate(10deg);} 182 | 75% {-moz-transform: rotate(-5deg);} 183 | 100% {bottom: 0px;-moz-transform: rotate(0);} 184 | } 185 | 186 | } 187 | 188 | 189 | -------------------------------------------------------------------------------- /static/sass/fbt/_bootstrap-table-base.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * @author zhixin wen 3 | * version: 1.8.1 4 | * https://github.com/wenzhixin/bootstrap-table/ 5 | */ 6 | 7 | .bootstrap-table .table { 8 | margin-bottom: 0 !important; 9 | border-bottom: 1px solid #dddddd; 10 | border-collapse: collapse !important; 11 | border-radius: 1px; 12 | } 13 | 14 | .bootstrap-table .table, 15 | .bootstrap-table .table > tbody > tr > th, 16 | .bootstrap-table .table > tfoot > tr > th, 17 | .bootstrap-table .table > thead > tr > td, 18 | .bootstrap-table .table > tbody > tr > td, 19 | .bootstrap-table .table > tfoot > tr > td { 20 | padding: 8px !important; 21 | } 22 | 23 | .bootstrap-table .table.table-no-bordered > thead > tr > th, 24 | .bootstrap-table .table.table-no-bordered > tbody > tr > td { 25 | border-right: 2px solid transparent; 26 | } 27 | 28 | .fixed-table-container { 29 | position: relative; 30 | clear: both; 31 | border: 1px solid #dddddd; 32 | border-radius: 4px; 33 | -webkit-border-radius: 4px; 34 | -moz-border-radius: 4px; 35 | } 36 | 37 | .fixed-table-container.table-no-bordered { 38 | border: 1px solid transparent; 39 | } 40 | 41 | .fixed-table-footer, 42 | .fixed-table-header { 43 | overflow: hidden; 44 | border-radius: 4px 4px 0 0; 45 | -webkit-border-radius: 4px 4px 0 0; 46 | -moz-border-radius: 4px 4px 0 0; 47 | } 48 | 49 | .fixed-table-footer { 50 | border-top: 1px solid #dddddd; 51 | } 52 | 53 | .fixed-table-body { 54 | overflow-x: auto; 55 | overflow-y: auto; 56 | height: 100%; 57 | } 58 | 59 | .fixed-table-container table { 60 | width: 100%; 61 | } 62 | 63 | .fixed-table-container thead th { 64 | height: 0; 65 | padding: 0; 66 | margin: 0; 67 | border-left: 1px solid #dddddd; 68 | } 69 | 70 | .fixed-table-container thead th:first-child { 71 | border-left: none; 72 | border-top-left-radius: 4px; 73 | -webkit-border-top-left-radius: 4px; 74 | -moz-border-radius-topleft: 4px; 75 | } 76 | 77 | .fixed-table-container thead th .th-inner { 78 | padding: 8px; 79 | line-height: 24px; 80 | vertical-align: top; 81 | overflow: hidden; 82 | text-overflow: ellipsis; 83 | white-space: nowrap; 84 | } 85 | 86 | .fixed-table-container thead th .sortable { 87 | cursor: pointer; 88 | background-position: right; 89 | background-repeat: no-repeat; 90 | padding-right: 30px; 91 | } 92 | 93 | .fixed-table-container thead th .both { 94 | background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC'); 95 | } 96 | 97 | .fixed-table-container thead th .asc { 98 | background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg=='); 99 | } 100 | 101 | .fixed-table-container thead th .desc { 102 | background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII= '); 103 | } 104 | 105 | .fixed-table-container th.detail { 106 | width: 30px; 107 | } 108 | 109 | .fixed-table-container tbody td { 110 | border-left: 1px solid #dddddd; 111 | } 112 | 113 | .fixed-table-container tbody tr:first-child td { 114 | border-top: none; 115 | } 116 | 117 | .fixed-table-container tbody td:first-child { 118 | border-left: none; 119 | } 120 | 121 | /* the same color with .active */ 122 | .fixed-table-container tbody .selected td { 123 | background-color: #f5f5f5; 124 | } 125 | 126 | .fixed-table-container .bs-checkbox { 127 | text-align: center; 128 | } 129 | 130 | .fixed-table-container .bs-checkbox .th-inner { 131 | padding: 8px 0; 132 | } 133 | 134 | .fixed-table-container input[type="radio"], 135 | .fixed-table-container input[type="checkbox"] { 136 | margin: 0 auto !important; 137 | } 138 | 139 | .fixed-table-container .no-records-found { 140 | text-align: center; 141 | } 142 | 143 | .fixed-table-pagination div.pagination, 144 | .fixed-table-pagination .pagination-detail { 145 | margin-top: 10px; 146 | margin-bottom: 10px; 147 | } 148 | 149 | .fixed-table-pagination div.pagination .pagination { 150 | margin: 0; 151 | } 152 | 153 | .fixed-table-pagination .pagination a { 154 | padding: 6px 12px; 155 | line-height: 1.428571429; 156 | } 157 | 158 | .fixed-table-pagination .pagination-info { 159 | line-height: 34px; 160 | margin-right: 5px; 161 | } 162 | 163 | .fixed-table-pagination .btn-group { 164 | position: relative; 165 | display: inline-block; 166 | vertical-align: middle; 167 | } 168 | 169 | .fixed-table-pagination .dropup .dropdown-menu { 170 | margin-bottom: 0; 171 | } 172 | 173 | .fixed-table-pagination .page-list { 174 | display: inline-block; 175 | } 176 | 177 | .fixed-table-toolbar .columns-left { 178 | margin-right: 5px; 179 | } 180 | 181 | .fixed-table-toolbar .columns-right { 182 | margin-left: 5px; 183 | } 184 | 185 | .fixed-table-toolbar .columns label { 186 | display: block; 187 | padding: 3px 20px; 188 | clear: both; 189 | font-weight: normal; 190 | line-height: 1.428571429; 191 | } 192 | 193 | .fixed-table-toolbar .bars, 194 | .fixed-table-toolbar .search, 195 | .fixed-table-toolbar .columns { 196 | position: relative; 197 | margin-top: 10px; 198 | margin-bottom: 10px; 199 | line-height: 34px; 200 | } 201 | 202 | .fixed-table-pagination li.disabled a { 203 | pointer-events: none; 204 | cursor: default; 205 | } 206 | 207 | .fixed-table-loading { 208 | display: none; 209 | position: absolute; 210 | top: 42px; 211 | right: 0; 212 | bottom: 0; 213 | left: 0; 214 | z-index: 99; 215 | background-color: #fff; 216 | text-align: center; 217 | } 218 | 219 | .fixed-table-body .card-view .title { 220 | font-weight: bold; 221 | display: inline-block; 222 | min-width: 30%; 223 | text-align: left !important; 224 | } 225 | 226 | /* support bootstrap 2 */ 227 | .fixed-table-body thead th .th-inner { 228 | box-sizing: border-box; 229 | } 230 | 231 | .table th, .table td { 232 | vertical-align: middle; 233 | box-sizing: border-box; 234 | } 235 | 236 | .fixed-table-toolbar .dropdown-menu { 237 | text-align: left; 238 | max-height: 300px; 239 | overflow: auto; 240 | } 241 | 242 | .fixed-table-toolbar .btn-group > .btn-group { 243 | display: inline-block; 244 | margin-left: -1px !important; 245 | } 246 | 247 | .fixed-table-toolbar .btn-group > .btn-group > .btn { 248 | border-radius: 0; 249 | } 250 | 251 | .fixed-table-toolbar .btn-group > .btn-group:first-child > .btn { 252 | border-top-left-radius: 4px; 253 | border-bottom-left-radius: 4px; 254 | } 255 | 256 | .fixed-table-toolbar .btn-group > .btn-group:last-child > .btn { 257 | border-top-right-radius: 4px; 258 | border-bottom-right-radius: 4px; 259 | } 260 | 261 | .bootstrap-table .table > thead > tr > th { 262 | vertical-align: bottom; 263 | border-bottom: 1px solid #ddd; 264 | } 265 | 266 | /* support bootstrap 3 */ 267 | .bootstrap-table .table thead > tr > th { 268 | padding: 0; 269 | margin: 0; 270 | } 271 | 272 | .pull-right .dropdown-menu { 273 | right: 0; 274 | left: auto; 275 | } 276 | 277 | /* calculate scrollbar width */ 278 | p.fixed-table-scroll-inner { 279 | width: 100%; 280 | height: 200px; 281 | } 282 | 283 | div.fixed-table-scroll-outer { 284 | top: 0; 285 | left: 0; 286 | visibility: hidden; 287 | width: 200px; 288 | height: 150px; 289 | overflow: hidden; 290 | } -------------------------------------------------------------------------------- /templates/sms.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | GSM EVIL 2 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 | 34 | 35 |
36 | 39 |
40 | GSMEVIL 41 |
42 |
43 |
44 | 45 |
46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
IDSenderRecevierTextTime
57 |
58 |
59 |
60 | 100 |
101 | 102 | 103 | 149 | 150 | 200 | 201 | -------------------------------------------------------------------------------- /static/sass/fbt/_variables.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Fresh Bootstrap Table redesign by Creative Tim 3 | http://www.creative-tim.com 4 | @CreativeTim 5 | 6 | */ 7 | 8 | //== Buttons 9 | // 10 | //## For each of Bootstrap's buttons, define text, background and border color. 11 | 12 | $none: 0 !default; 13 | $border-thin: 1px !default; 14 | $border-thick: 2px !default; 15 | 16 | $white-color: #FFFFFF !default; 17 | $white-bg: #FFFFFF !default; 18 | $white-states-color: #FFFFFF !default; 19 | 20 | $smoke-bg: #F5F5F5 !default; 21 | 22 | $black-bg: rgba(30,30,30,.97) !default; 23 | 24 | $black-color: #333333 !default; 25 | $black-hr: #444444 !default; 26 | 27 | $black-font: #666666 !default; 28 | 29 | $light-gray: #E3E3E3 !default; 30 | $medium-gray: #DDDDDD !default; 31 | $dark-gray: #9A9A9A !default; 32 | 33 | $transparent-bg: transparent !default; 34 | 35 | $default-color: #AAAAAA !default; 36 | $default-bg: #AAAAAA !default; 37 | $default-states-color: #898989 !default; 38 | 39 | $primary-color: #3472F7 !default; 40 | $primary-bg: #3472F7 !default; 41 | $primary-states-color: #1D62F0 !default; 42 | 43 | $success-color: #05AE0E !default; 44 | $success-bg: #05AE0E !default; 45 | $success-states-color: #049F0C !default; 46 | 47 | $info-color: #2CA8FF !default; 48 | $info-bg: #2CA8FF !default; 49 | $info-states-color: #109CFF !default; 50 | 51 | $warning-color: #FF9500 !default; 52 | $warning-bg: #FF9500 !default; 53 | $warning-states-color: #ED8D00 !default; 54 | 55 | 56 | $danger-color: #FF3B30 !default; 57 | $danger-bg: #FF3B30 !default; 58 | $danger-states-color: #EE2D20 !default; 59 | 60 | 61 | 62 | $link-disabled-color: #666666 !default; 63 | 64 | 65 | $light-white: rgba($white-color, .8); 66 | $light-blue: rgba($primary-color, .2); 67 | $light-azure: rgba($info-color, .2); 68 | $light-green: rgba($success-color, .2); 69 | $light-orange: rgba($warning-color, .2); 70 | $light-red: rgba($danger-color, .2); 71 | 72 | 73 | //== Components 74 | // 75 | 76 | $padding-base-vertical: 8px !default; 77 | $padding-base-horizontal: 16px !default; 78 | 79 | $padding-round-vertical: 9px !default; 80 | $padding-round-horizontal: 18px !default; 81 | 82 | $padding-simple-vertical: 10px !default; 83 | $padding-simple-horizontal: 18px !default; 84 | 85 | $padding-large-vertical: 14px !default; 86 | $padding-large-horizontal: 30px !default; 87 | 88 | $padding-small-vertical: 5px !default; 89 | $padding-small-horizontal: 10px !default; 90 | 91 | $padding-xs-vertical: 1px !default; 92 | $padding-xs-horizontal: 5px !default; 93 | 94 | $padding-label-vertical: 2px !default; 95 | $padding-label-horizontal: 12px !default; 96 | 97 | $margin-large-vertical: 30px !default; 98 | $margin-base-vertical: 15px !default; 99 | 100 | $margin-bottom: 0 0 10px 0 !default; 101 | $border-radius-small: 3px !default; 102 | $border-radius-base: 4px !default; 103 | $border-radius-large: 6px !default; 104 | $border-radius-extreme: 10px !default; 105 | 106 | $border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default; 107 | $border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default; 108 | 109 | $btn-round-radius: 30px !default; 110 | 111 | $height-base: 40px !default; 112 | 113 | $font-size-base: 14px !default; 114 | $font-size-small: 12px !default; 115 | $font-size-medium: 16px !default; 116 | $font-size-large: 18px !default; 117 | $font-size-large-navbar: 20px !default; 118 | 119 | $font-size-h1: 52px !default; 120 | $font-size-h2: 36px !default; 121 | $font-size-h3: 28px !default; 122 | $font-size-h4: 22px !default; 123 | $font-size-h5: 18px !default; 124 | $font-size-h6: 14px !default; 125 | $font-paragraph: 16px !default; 126 | $font-size-navbar: 16px !default; 127 | $font-size-small: 12px !default; 128 | 129 | $font-weight-light: 300 !default; 130 | $font-weight-normal: 400 !default; 131 | $font-weight-semi: 500 !default; 132 | $font-weight-bold: 600 !default; 133 | 134 | $line-height-general: 1.5 !default; 135 | $line-height: 20px !default; 136 | $line-height-lg: 54px !default; 137 | 138 | 139 | $border-radius-top: 10px 10px 0 0 !default; 140 | $border-radius-bottom: 0 0 10px 10px !default; 141 | 142 | $dropdown-shadow: 1px 2px 3px rgba(0, 0, 0, 0.125); 143 | 144 | $general-transition-time: 300ms !default; 145 | 146 | $slow-transition-time: 370ms !default; 147 | $dropdown-coordinates: 29px -50px !default; 148 | 149 | $fast-transition-time: 100ms !default; 150 | $select-coordinates: 50% -40px !default; 151 | 152 | $transition-linear: linear !default; 153 | $transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default; 154 | $transition-ease: ease 0s; 155 | 156 | $navbar-padding-a: 10px 15px; 157 | $navbar-margin-a: 15px 3px; 158 | 159 | $padding-social-a: 10px 5px; 160 | 161 | $navbar-margin-a-btn: 15px 3px; 162 | $navbar-margin-a-btn-round: 16px 3px; 163 | 164 | $navbar-padding-a-icons: 6px 15px; 165 | $navbar-margin-a-icons: 6px 3px; 166 | 167 | $navbar-padding-brand: 20px 15px; 168 | $navbar-margin-brand: 5px 0px; 169 | 170 | $navbar-margin-brand-icons: 12px auto; 171 | 172 | $navbar-margin-btn: 15px 3px; 173 | 174 | $height-icon: 64px !default; 175 | $width-icon: 64px !default; 176 | $padding-icon: 12px !default; 177 | $border-radius-icon: 15px !default; 178 | 179 | $size-icon: 64px; 180 | $size-icon-sm: 32px; 181 | 182 | 183 | $height-icon-sm: 32px; 184 | $width-icon-sm: 32px; 185 | $padding-icon-sm: 4px; 186 | $border-radius-icon-sm: 7px; 187 | 188 | $height-icon-message: 40px; 189 | $width-icon-message: 40px; 190 | 191 | $height-icon-message-sm: 20px; 192 | $width-icon-message-sm: 20px; 193 | 194 | 195 | 196 | $white-navbar: rgba(#FFFFFF, .96); 197 | $blue-navbar: rgba(#34ACDC, .98); 198 | $azure-navbar: rgba(#5BCAFF, .98); 199 | $green-navbar: rgba(#4CD964, .98); 200 | $orange-navbar: rgba(#FF9500, .98); 201 | $red-navbar: rgba(#FF4C40, .98); 202 | 203 | $icon-default-color-top: #d9d9d9 !default; 204 | $icon-default-color-bottom: #909297 !default; 205 | 206 | $icon-blue-color-top: #4087ea; 207 | $icon-blue-color-bottom: #533ce1; 208 | 209 | $icon-azure-color-top: #36AFEC; 210 | $icon-azure-color-bottom: #2D7CE7; 211 | 212 | $icon-green-color-top: #83CB1E; 213 | $icon-green-color-bottom: #53A319; 214 | 215 | $icon-orange-color-top: #ffb33b; 216 | $icon-orange-color-bottom: #ff5221; 217 | 218 | $icon-red-color-top: #ED362C; 219 | $icon-red-color-bottom: #C51E1B; 220 | 221 | $icon-purple-color-top: #df55e1; 222 | $icon-purple-color-bottom: #943bea; 223 | 224 | $icon-pink-color-top: #ff2a63; 225 | $icon-pink-color-bottom: #ff2e2e; 226 | 227 | $icon-black-color-top: #787878; 228 | $icon-black-color-bottom: #343434; 229 | 230 | $social-facebook: #3b5998; 231 | $social-twitter: #55acee; 232 | $social-pinterest: #cc2127; 233 | $social-google: #dd4b39; 234 | $social-linkedin: #0976b4; 235 | $social-dribbble: #ea4c89; 236 | $social-github: #333333; 237 | $social-youtube: #e52d27; 238 | $social-stumbleupon: #eb4924; 239 | $social-reddit: #ff4500; 240 | $social-tumblr: #35465c; 241 | $social-behance: #1769ff; 242 | 243 | 244 | $filter-blue: darken($primary-color, 10%); 245 | $filter-azure: darken($info-color, 10%); 246 | $filter-green: darken($success-color, 10%); 247 | $filter-orange: darken($warning-color, 10%); 248 | $filter-red: darken($danger-color, 10%); 249 | 250 | 251 | $topbar-x: topbar-x !default; 252 | $topbar-back: topbar-back !default; 253 | $bottombar-x: bottombar-x !default; 254 | $bottombar-back: bottombar-back !default; 255 | 256 | 257 | 258 | 259 | 260 | -------------------------------------------------------------------------------- /templates/imsi.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | GSM EVIL 2 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 | 34 |
35 | 38 |
39 | GSMEVIL 40 |
41 |
42 |
43 | 44 |
45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
IDIMSITMSIMCCMNCLACCITime
59 |
60 |
61 |
62 | 102 |
103 | 104 | 105 | 151 | 152 | 153 | 205 | 206 | -------------------------------------------------------------------------------- /static/js/demo/gsdk-switch.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrapSwitch v1.3 by Larentis Mattia @spiritualGuru 3 | * http://www.larentis.eu/switch/ 4 | * ============================================================ 5 | * Licensed under the Apache License, Version 2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * ============================================================ */ 8 | 9 | !function ($) { 10 | "use strict"; 11 | 12 | $.fn['bootstrapSwitch'] = function (method) { 13 | var methods = { 14 | init: function () { 15 | return this.each(function () { 16 | var $element = $(this) 17 | , $div 18 | , $switchLeft 19 | , $switchRight 20 | , $label 21 | , myClasses = "" 22 | , classes = $element.attr('class') 23 | , color 24 | , moving 25 | , onLabel = "ON" 26 | , offLabel = "OFF" 27 | , icon = false; 28 | 29 | $.each(['switch-mini', 'switch-small', 'switch-large'], function (i, el) { 30 | if (classes.indexOf(el) >= 0) 31 | myClasses = el; 32 | }); 33 | 34 | $element.addClass('has-switch'); 35 | 36 | if ($element.data('on') !== undefined) 37 | color = "switch-" + $element.data('on'); 38 | 39 | if ($element.data('on-label') !== undefined) 40 | onLabel = $element.data('on-label'); 41 | 42 | if ($element.data('off-label') !== undefined) 43 | offLabel = $element.data('off-label'); 44 | 45 | if ($element.data('icon') !== undefined) 46 | icon = $element.data('icon'); 47 | 48 | $switchLeft = $('') 49 | .addClass("switch-left") 50 | .addClass(myClasses) 51 | .addClass(color) 52 | .html(onLabel); 53 | 54 | color = ''; 55 | if ($element.data('off') !== undefined) 56 | color = "switch-" + $element.data('off'); 57 | 58 | $switchRight = $('') 59 | .addClass("switch-right") 60 | .addClass(myClasses) 61 | .addClass(color) 62 | .html(offLabel); 63 | 64 | $label = $('