3939CWD = os .path .dirname (SCRIPT_LOC )
4040EXPLOIT_LOC = os .path .join (CWD , 'exploit' )
4141PAYLOAD_LOC = os .path .join (CWD , 'payloads' )
42- DNS_LOC = os .path .join (CWD , 'dns.conf' )
4342DEBUG = False
4443AUTOSEND = 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
237201def 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