Utoljára aktív 1 month ago

Osmo Nitb Scripts

sms_broadcast.py Eredeti
1#!/usr/bin/env python
2import telnetlib
3import sqlite3
4import sys
5
6imsi = 999999999999999
7HLR_DATABASE = "configs/hlr.sqlite3"
8
9def check_extension(extension):
10 conn.write(b"show subscriber extension %s\n" % extension)
11 res = conn.read_until(b"OpenBSC> ")
12
13 if b"No subscriber found for extension" in res:
14 create_subscriber(extension)
15
16def create_subscriber(extension):
17 print("No user with excension %s found. Creating new..." % extension)
18 print("Extension: %s, IMSI: %d" % (extension, imsi))
19
20 conn.write(b"show subscriber imsi %d\n" % imsi)
21 res = conn.read_until(b"OpenBSC> ")
22
23 if b"No subscriber found for imsi" in res:
24 conn.write(b"subscriber create imsi %d\n" % imsi)
25 conn.read_until(b"OpenBSC> ")
26
27 conn.write(b"enable\n")
28 conn.read_until(b"OpenBSC# ")
29 conn.write(b"subscriber imsi %d extension %s\n" % (imsi, extension))
30 conn.read_until(b"OpenBSC# ")
31 conn.write(b"disable\n")
32 conn.read_until(b"OpenBSC> ")
33
34def get_users():
35 # returns user id list generator
36
37 db = sqlite3.connect(HLR_DATABASE)
38 c = db.cursor()
39 c.execute("SELECT * FROM Subscriber")
40
41 for subscriber in c.fetchall():
42 yield subscriber[0]
43
44def send_sms(id, extension, message):
45 conn.write(b"subscriber id %d sms sender extension %s send %s\n" % (id, extension, message))
46 res = conn.read_until(b"OpenBSC> ")
47 if b"%" in res:
48 print(res)
49 exit(1)
50
51if __name__ == "__main__":
52 try:
53 extension = sys.argv[1]
54 message = " ".join(sys.argv[2:])
55 except:
56 print("usage: ./sms_broadcast.py extension message")
57 print("This script sends a message from the specified extension (number) to all devices connected to this base station")
58 exit(1)
59
60 conn = telnetlib.Telnet("127.0.0.1", 4242)
61 conn.read_until(b"OpenBSC> ")
62
63 check_extension(extension)
64
65 for id in get_users():
66 send_sms(id, extension, message)
67
sms_spam.py Eredeti
1#!/usr/bin/env python
2import telnetlib
3import sys
4import random
5import time
6
7imsi = 999999999999999
8
9def check_extension(extension):
10 conn.write(b"show subscriber extension %s\n" % extension)
11 res = conn.read_until(b"OpenBSC> ")
12
13 if b"No subscriber found for extension" in res:
14 print("Phone with extension %s not found ;(" % extension)
15 exit(1)
16
17def check_spam_subscriber():
18 conn.write(b"show subscriber imsi %d\n" % imsi)
19 res = conn.read_until(b"OpenBSC> ")
20
21 if b"No subscriber found for imsi" in res:
22 conn.write(b"subscriber create imsi %d\n" % imsi)
23 print(conn.read_until(b"OpenBSC> "))
24
25def send(extension, spam_number, message):
26 print("Sending sms from %d..." % spam_number)
27
28 conn.write(b"enable\n")
29 conn.read_until(b"OpenBSC# ")
30 conn.write(b"subscriber imsi %d extension %d\n" % (imsi, spam_number))
31 conn.read_until(b"OpenBSC# ")
32 conn.write(b"disable\n")
33 conn.read_until(b"OpenBSC> ")
34
35 conn.write(b"subscriber extension %s sms sender extension %d send %s\n" % (extension, spam_number, message))
36 res = conn.read_until(b"OpenBSC> ")
37
38 if b"%" in res:
39 print(res)
40 exit(1)
41
42if __name__ == "__main__":
43 try:
44 extension = sys.argv[1]
45 repeats = int(sys.argv[2])
46 message = " ".join(sys.argv[3:])
47 except:
48 print("usage: ./sms_spam.py extension [num of repeats] message")
49 print("This script sends a message to specified number")
50 exit(1)
51
52 conn = telnetlib.Telnet("127.0.0.1", 4242)
53 conn.read_until(b"OpenBSC> ")
54
55 check_extension(extension)
56 check_spam_subscriber()
57
58 for _ in range(repeats):
59 spam_number = random.randint(1000,9999)
60 send(extension, spam_number, message)
61 time.sleep(2)
62