Skip to content

Commit e8d5efa

Browse files
committed
Send DNS list as array, update submodule
1 parent 605b402 commit e8d5efa

File tree

2 files changed

+30
-69
lines changed

2 files changed

+30
-69
lines changed

FakeDns

start.py

Lines changed: 29 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
CWD = os.path.dirname(SCRIPT_LOC)
4040
EXPLOIT_LOC = os.path.join(CWD, 'exploit')
4141
PAYLOAD_LOC = os.path.join(CWD, 'payloads')
42-
DNS_LOC = os.path.join(CWD, 'dns.conf')
4342
DEBUG = False
4443
AUTOSEND = None
4544

@@ -176,62 +175,27 @@ def get_lan():
176175
return lan
177176

178177

179-
def write_conf(lan):
180-
"""Writes the configuration file for FakeDns"""
181-
exists = os.path.isfile(DNS_LOC)
178+
def generate_dns_rules(lan):
179+
"""Creates domain array for FakeDns"""
180+
rules = []
182181

183-
try:
184-
with open(DNS_LOC, 'w+') as buf:
185-
buf.write('A manuals.playstation.net ' + lan + '\n')
186-
buf.write('A post.net.playstation.net ' + lan + '\n')
187-
buf.write('A get.net.playstation.net ' + lan + '\n')
188-
buf.write('A d[a-z]{2}01.ps4.update.playstation.net ' + lan + '\n')
189-
buf.write('A f[a-z]{2}01.ps4.update.playstation.net ' + lan + '\n')
190-
buf.write('A h[a-z]{2}01.ps4.update.playstation.net ' + lan + '\n')
191-
buf.write('A gs2.ww.prod.dl.playstation.net ' + lan + '\n')
192-
buf.write('A [a-z0-9\.\-]*.cddbp.net 0.0.0.0\n')
193-
buf.write('A [a-z0-9\.\-]*.ea.com 0.0.0.0\n')
194-
buf.write('A [a-z0-9\.\-]*.llnwd.net 0.0.0.0\n')
195-
buf.write('A [a-z0-9\.\-]*.playstation.com 0.0.0.0\n')
196-
buf.write('A [a-z0-9\.\-]*.playstation.net 0.0.0.0\n')
197-
buf.write('A [a-z0-9\.\-]*.playstation.org 0.0.0.0\n')
198-
buf.write('A [a-z0-9\.\-]*.ribob01.net 0.0.0.0\n')
199-
buf.write('A [a-z0-9\.\-]*.sbdnpd.com 0.0.0.0\n')
200-
buf.write('A [a-z0-9\.\-]*.scea.com 0.0.0.0\n')
201-
buf.write('A [a-z0-9\.\-]*.sonyentertainmentnetwork.com 0.0.0.0\n')
202-
if not exists:
203-
fix_permissions()
204-
return True
205-
except IOError:
206-
return False
207-
208-
209-
def fix_permissions():
210-
"""Make FakeDNS config file the same permissions as start.py
211-
212-
This should only be run if the config didn't exist before
213-
It will not include execution privileges
214-
"""
215-
try:
216-
stats = os.stat(SCRIPT_LOC)
182+
rules.append('A manuals.playstation.net ' + lan)
183+
rules.append('A post.net.playstation.net ' + lan)
184+
rules.append('A get.net.playstation.net ' + lan)
185+
rules.append('A (d|f|h)[a-z]{2}01.ps4.update.playstation.net ' + lan)
186+
rules.append('A gs2.ww.prod.dl.playstation.net ' + lan)
187+
rules.append('A [a-z0-9\.\-]*.cddbp.net 0.0.0.0')
188+
rules.append('A [a-z0-9\.\-]*.ea.com 0.0.0.0')
189+
rules.append('A [a-z0-9\.\-]*.llnwd.net 0.0.0.0')
190+
rules.append('A [a-z0-9\.\-]*.playstation.com 0.0.0.0')
191+
rules.append('A [a-z0-9\.\-]*.playstation.net 0.0.0.0')
192+
rules.append('A [a-z0-9\.\-]*.playstation.org 0.0.0.0')
193+
rules.append('A [a-z0-9\.\-]*.ribob01.net 0.0.0.0')
194+
rules.append('A [a-z0-9\.\-]*.sbdnpd.com 0.0.0.0')
195+
rules.append('A [a-z0-9\.\-]*.scea.com 0.0.0.0')
196+
rules.append('A [a-z0-9\.\-]*.sonyentertainmentnetwork.com 0.0.0.0')
217197

218-
os.chown(DNS_LOC, stats.st_uid, stats.st_gid)
219-
220-
mask = oct(stats.st_mode & 0o777)
221-
newmask = ''
222-
223-
for i in mask:
224-
if i != 'o':
225-
if int(i) % 2 != 0:
226-
i = str(int(i) - 1)
227-
newmask += i
228-
229-
mask = int(newmask, 8)
230-
os.chmod(DNS_LOC, mask)
231-
except AttributeError:
232-
pass
233-
except OSError:
234-
print('NON-FATAL ERROR: Unable to change permissions of DNS config')
198+
return rules
235199

236200

237201
def check_update_pup(type, md5):
@@ -251,13 +215,11 @@ def check_update_pup(type, md5):
251215
pass
252216

253217

254-
def start_servers():
218+
def start_servers(rules):
255219
"""Start DNS and HTTP servers on seperate threads"""
256-
print('>> Starting DNS server thread...', end='\r')
257-
fakedns.main(DNS_LOC, DEBUG)
220+
fakedns.main(rules, DEBUG)
258221
print('>> DNS server thread is running...')
259222

260-
print('>> Starting HTTP server thread...', end='\r')
261223
server = ThreadedHTTPServer(('', 80), MyHandler)
262224
thread = threading.Thread(name='HTTP_Server',
263225
target=server.serve_forever,
@@ -459,16 +421,15 @@ def main():
459421

460422
lan = get_lan()
461423

462-
if write_conf(lan):
463-
while len(lan) < 15:
464-
lan += ' '
465-
print('╔════════════════════════════════════════════════════════╗')
466-
print('║ Your DNS IP is {} ║'.format(lan))
467-
print('╚════════════════════════════════════════════════════════╝')
468-
else:
469-
closer('ERROR: Unable to write {}'.format(DNS_LOC))
424+
rules = generate_dns_rules(lan)
425+
426+
while len(lan) < 15:
427+
lan += ' '
428+
print('╔════════════════════════════════════════════════════════╗')
429+
print('║ Your DNS IP is {} ║'.format(lan))
430+
print('╚════════════════════════════════════════════════════════╝')
470431

471-
start_servers()
432+
start_servers(rules)
472433

473434
while True:
474435
pass

0 commit comments

Comments
 (0)