Elohim Posted February 23, 2014 Report Posted February 23, 2014 Preia o lista de host-uri (domenii sau ip-uri ) din hosts.txt si verifica o serie de path-uri comune pentru gasirea path-ului de login. ( wp-login.php ). Bun de folosit impreuna cu un brute force tool pentru wordpress.import threading,Queue,urllib2,sysda = open('wpuri.txt','a')nu = open('bad.txt','w')paths = ['','/blog','/wp','/wordpress','/journal']class Discloser(threading.Thread): def __init__(self, queue): threading.Thread.__init__(self) self.queue = queue def run(self): while True: host = self.queue.get() self.checker(host) self.queue.task_done() def checker(self,Host): try: for p in paths: f = urllib2.urlopen(Host+p+'/wp-login.php', timeout=15) if 'wp-admin-css' in f.read(): print Host+p da.write(Host+p+'\n') da.flush() return True nu.write(Host+'\n') nu.flush() return False except Exception, e: #print e nu.write(Host+'\n') nu.flush() return Falsedef main(urls,numthreads): queue = Queue.Queue(maxsize=6000) for i in range(numthreads): try: t = Discloser(queue) t.daemon = True t.start() except Exception, e: print 'Cant Start',numthreads,'Thread. I started',i,'Threads' break for url in urls: host = url.rstrip() if url.startswith('http://') else 'http://'+url.rstrip() queue.put(host.rstrip()) queue.join()if __name__ == "__main__":#----------------------------------------- print '[+]Wordpress Login Path Discloser v1.0' print '[+]Author: Elohim' fispas = open("hosts.txt",'rU') urls = fispas.readlines() numthreads = int(sys.argv[1])#----------------------------------------- main(urls,numthreads)Usage:python checker.py 4040 = Numarul thread-urilor.Ce este bun, salveaza in wpuri.txt, ce nu este bun, salveaza in bad.txt daca se doresc verificari ulterioare.Path-uri folosite:paths = ['','/blog','/wp','/wordpress','/journal']Daca mai aveti alte idei, postati aici si le adaug.Spor la folosit. 1 Quote
GarryOne Posted February 23, 2014 Report Posted February 23, 2014 No offence, dar e cel mai inutil script, ever. Si mai mai si [RST] Quote
Elohim Posted February 23, 2014 Author Report Posted February 23, 2014 @GarryOne, imagineaza-ti ca ai 300 000 de url-uri. Vrei sa pornesti un wordpress bruteforce pe ele. Ce faci, bagi toate domeniile ?Chiar si pe cele care nu folosesc wordpress ? Rata de WP : NonWP este de ~ 20:100 , ete inutil sa le folosesti raw.Acelasi lucru valabil si pe ip-uri. Quote
Bit-ul Posted February 23, 2014 Report Posted February 23, 2014 E mai degraba admin finder, nu path disclosure, duh. Quote
aelius Posted February 23, 2014 Report Posted February 23, 2014 E mai degraba admin finder, nu path disclosure, duh.Pai scrie in titlul threadului ce este. Quote
Elohim Posted February 24, 2014 Author Report Posted February 24, 2014 Lasand deoparte titlul acestui script, sa va prezint repede un calcul, pentru cei care au spus ca este inutilDa, este inutil pentru marea majoritate care nu au nicio folosinta pentru el. Insa sunt si care se folosesc de asa ceva, destul de multi.Bun, cum ziceam, exemplu de calcul.Avem o lista de domenii .net , 300 000 la numar. Mixte, extrate din Zone File-ul de la .net . Am luat 300 000 ca sa nu ie ia luni intregi sa verificam tot .net care are undeva la ~15.5 milBrute force cu un singur user : admin si o singura parola : adminModelul 1 : 300 000 domenii mixte ( wordpress si non wordpress ) processing time : ~ 3 ore cu 50 de thread-uri ( nu am vrut sa fortez serverul )Deci avem cam aproximativ 3 ore pentru un singur user/pass tuple.Modelul 2: ~4 ore timp de procesare cu scriptul postat mai sus, am salvat numai domeniile care ruleaza wordpress.Din 300 000, au ramas cam ~38 000 care sunt defapt ce ma intereseaza pe mine, respectiv blog-uri care ruleaza wordpress.Processing time pentru fiecare user/pass combo pe 38 000 URL ~ 20 minute .Bun, acum unora o sa le vina urmatoarea problema in cap. " Pai ce ai rezolvat, tot ai stat 3 ore ca sa treci cu checker-ul prin ele "Da, am stat 3 ore ca sa scot ce ma interesa, dar de acum inainte, fiecare user/pass combo imi va lua ~20 minute, sau de 3 ori mai putin daca maresc numarul de thread-uri.Nu o sa mai stau 3 ore pentru fiecare user/pass combo.Scriptul de mai sus este un mic exemplu pentru a demonstra ca se poate salva mult timp cu un mic set de unelte ajutatoare.Ca sa explic un pic si tag-ul [RST], acesta nu este pus acolo de un drag vizual sau pentru vreo anumita lauda. Este pus acolo pentru a se diferentia faptul ca nu este vreun script aiurea luat cu copy/paste de pe un forum de chinezi, ci este un script scris de un membru de pe acest forum, si pentru ca nu mi-am permis sa il adaug la RST power, deoarece nu este ceva fenomenal. Este doar work made easy. Quote
Htich Posted March 11, 2014 Report Posted March 11, 2014 python checker.py 50 File "checker.py", line 49 host = url.rstrip() if url.startswith('http://') else 'http://'+url.rstrip() ^SyntaxError: invalid syntax Quote
ENCODED Posted March 11, 2014 Report Posted March 11, 2014 [+]Wordpress Login Path Discloser v1.0[+]Author: ElohimSi a murit, numai face nimic Quote
Elohim Posted March 11, 2014 Author Report Posted March 11, 2014 Instalati-va Python 2.7, nu alte versiuni . Quote
ENCODED Posted March 11, 2014 Report Posted March 11, 2014 Instalati-va Python 2.7, nu alte versiuni ./usr/local/bin/python2.7 x.py 40[+]Wordpress Login Path Discloser v1.0[+]Author: ElohimSame si cu versiunea specificata de tine. Nu se intampla nimic, apare echo-ul si e gata. Quote
Elohim Posted March 11, 2014 Author Report Posted March 11, 2014 Un test foarte mic pentru a demonstra ca functioneazaE:\Projects\Wordpess Bruter and Checker\WP Checker>python wpc.py 30[+]Wordpress Login Path Discloser v1.0[+]Author: Elohimhttp://213.88.195.151http://213.144.23.168http://213.129.248.122http://213.175.196.96http://213.175.221.79http://213.218.178.181http://213.133.124.254http://213.175.220.156http://213.238.32.19http://213.125.143.186http://213.159.22.89http://213.99.28.205http://213.229.68.25http://213.206.68.85http://213.138.109.138http://213.128.249.106http://213.189.2.108http://213.183.62.103http://213.140.96.155http://213.215.218.51http://213.239.205.177Deci, fiecare url de mai sus care l-a afisat, inseamna ca exista http://ip/wp-login.php in care se regaseste textul "wp-admin-css" . De exemplu, http://213.239.205.177/wp-login.phpDaca nu exista, nu afiseaza nimic.Explicati mai bine ce exact vreti sa faceti, ce nu va iese.Daca vreti sa vedeti tot ce se intampla, schimbati linia asta#print ecuprint esi o sa afiseze si posibile erori, inclusiv cele de 404 Not found. Quote
Elohim Posted March 11, 2014 Author Report Posted March 11, 2014 (edited) @spide112, Decomenteaza print e si da-mi paste la niste erori, altfel nu pot sa imi dau seama ce este in neregula.ce numar de thread-uri folositi ? Edited March 11, 2014 by Elohim Quote
waingro Posted March 11, 2014 Report Posted March 11, 2014 gogule da i inainte tata.astia pe aici e gelosi bre ca tu stai si ti bati capul, le dai de treaba,DAR... NU LE DAI SI REZULTATUL=))daia bre e gelosi unii pe aici. Quote
sleed Posted March 12, 2014 Report Posted March 12, 2014 Nu merge, dar e cam degeaba scanner-ul asta ... Quote
ENCODED Posted March 12, 2014 Report Posted March 12, 2014 @spide112, Decomenteaza si da-mi paste la niste erori, altfel nu pot sa imi dau seama ce este in neregula.ce numar de thread-uri folositi ?Eroare nu da de nici un fel, pur si simplu porneste si nu da nici un rezultat, in lista de hosts.txt e o clasa intreaga, deci e imposibil sa nu fie nici un wordpress in 193 Am incercat si cu hosturile direct, acelasi lucru, am modificat si print e-ul, la fel, aceiasi eroare, pur si simplu nu vrea sa pedaleze. Quote
sebywarlord Posted April 30, 2014 Report Posted April 30, 2014 Foarte fain scriptul dar am o problema root:iview [~/wp]# python2.7 findwp.py 5555[+]Wordpress Login Path Discloser v1.0[+]Author: ElohimCant Start 5555 Thread. I started 302 ThreadsAm 10 milioane de linii in hosts.txt si nu vrea sa-mi porneasca cu cate threaduri vreau...,am ce sa-i fac? Quote
Elohim Posted May 1, 2014 Author Report Posted May 1, 2014 5555 thread-uri =)ulimit -s 256si apoi incearcati-o cu 1000 Quote