Compilare WPScan 2.9.4-dev su Debian Jessie
By davenull
Per chi come me si ritrova WPScan alla versione 2.9.2 e vuole aggiornarla all’ultima versione attuale, quindi alla 2.9.4-dev (anche se l’ultima versione stabile è la 2.9.3), e quindi con nuove funzionalità, lo può fare con meno sbattimenti rispetto a prima per quanto riguarda la versione di Ruby, la versione consigliata dal team di WPScan è l’ultima stabile, cioè la 2.4.2.
Mi riferisco a questo articolo, che oramai è da considerare obsoleto: https://www.freenixsecurity.net/it/2017/04/14/wpscan-come-trovare-vulnerabilita-in-wordpress/
La guida in questione è ancora su Debian Jessie, perchè su Stretch sto ancora risolvendo dei piccoli grandi problemi in modo da poter sfornare le distro. L’unica distro derivata da Debian Stretch attualmente è SparkyLinux.
Il mio obiettivo su Stretch è quello di riportare i nomi dei device di rete com’erano una volta e gestirli esattamente come prima, con il famoso file /etc/udev/rules.d/70-persistent-net.rules che eliminandolo resettava i nomi dei device di rete, e ci permetteva di passare la nostra distro customizzata da un PC (o un Raspberry Pi) ad un altro rigenerando e riattivando le unità di rete come se niente fosse. Ma in questo parleremo in un altro articolo, anche perchè ci sto ancora lavorando.
Prima aggiorniamo il sistema, non fa mai male. Ho un amico che dice sempre che non gli funziona niente, viene a casa mia e scopro che ha oltre 250 aggiornamenti da fare, aggiorniamo il sistema e quasi sempre tutti i problemi svaniscono, vabbè, lasciamo stare, digitiamo quindi:
1
|
# apt-get update && apt-get dist-upgrade
|
Per chi ha effettuato l’installazione citata nell’articolo precedente deve prima seguire questi passaggi, liberandosi dei pacchetti ruby2.3, ruby2.3-dev, e dei repository di Ruby provenienti da Ubuntu Trusty, chiavi GPG comprese. (è inutile avere chiavi GPG di Repository inutilizzati)
Iniziamo eliminando i pacchett ruby2.3, ruby2.3-dev e libruby2.3 digitando:
1
|
# apt-get remove –purge ruby2.3 ruby2.3-dev libruby2.3
|
Adesso possiamo eliminare il Repository di Ubuntu Trusty, che, se avete seguito la scritta precedentemente scritta da me, è in /etc/apt/sources.list.d/ruby.list , digitiamo quindi:
1
|
# rm /etc/apt/sources.list.d/ruby.list
|
Finalmente possiamo eliminare la chiave del repository di Ubuntu Trusty digitando:
1
|
# apt-key del C3173AA6
|
Adesso aggiorniamo l’elenco delle chiavi GPG eliminando automaticamente quelle scadute o non valide:
1
|
# apt-key update
|
Adesso aggiorniamo gli indici dei Repository dato che abbiamo eliminato quelli di Ubuntu Trusty:
1
|
# apt-get update
|
Adesso eliminiamo la cartella del vecchio WPScan, nel mio caso è in /home/davenull/ , quindi digitiamo:
1
|
# rm -rf /home/davenull/wpscan
|
Da adesso in poi, per chi sta effettuando una Fresh Install, e quindi non ha mai installato WPScan, può seguire il tutorial.
I requisiti di WPScan 2.9.3 sono questi, ma son gli stessi anche per la 2.9.4-dev:
Ruby >= 2.1.9 – Recommended: 2.4.2
Curl >= 7.21 – Recommended: latest – FYI the 7.29 has a segfault
RubyGems – Recommended: latest
Git
Per quanto riguarda “curl” non preoccupatevi perchè Debian usa sempre versioni stabili dei propri programmi (o quasi, poi vi spiegherò in un altro tutorial.
Per vedere la versione di un programma installato è semplicissimo, ad esempio per “curl” basta digitare:
1
|
$ curl —version
|
e l’output su Debian Jessie sarà:
curl 7.38.0 (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP
Quindi basta installare il curl dei Repository.
Rubygems (noto anche col nome di gems) è il package manager di Ruby, un pò come “pip” per Python, ma a differenza di pip non vi fa buttare il sangue con le dipendenze, scusate l’espressione ma “pip” mi ha fatto perdere nottate intere per cose assurde.
Rubygems risolve le dipendenze e può aggiornarsi all’ultima versione senza scaricare ne compilare nulla a mano, ed è quello che faremo successivamente con un semplicissimo comando.
Installiamo quindi dai Repository di Debian Jessie le dipendenze di WPScan che è possibile installare, alcune vanno compilate, ma non spaventatevi. Digitiamo quindi:
1
|
# apt-get install curl git libcurl4-openssl-dev make zlib1g-dev gawk g++ gcc libreadline6-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config apt-transport-https ruby ruby-dev gpgv2
|
Adesso avendo installato i pacchetti ruby e ruby-dev, abbiamo a disposizione il suo package manager, RubyGems, detto anche “gems”, ma non è all’ultima versione. Non dobbiamo compilarlo tranquilli, c’è un comando dentro gems che ci permette di portarlo all’ultima versione, digitiamo quindi:
1
|
# gem update –system
|
Ed il gioco è fatto, abbiamo RubyGems alla versione 2.6.13.
Adesso passiamo all’ultima versione di Ruby, e lo installiamo grazie ad un utilissimo strumento da poco inventato chiamato RVM, che sta appunto per Ruby enVironment Manager che serve proprio a questo, ha al suo interno svariate versioni di Ruby. Quindi addio Repository esterni o assurdità del genere.
Installiamo quindi nella home scarichiamo l’installer, la chiave di cifratura di RVM, ed installiamolo:
1
2
3
4
5
6
7
8
|
$ cd
$ mkdir RVM
$ cd RVM
# gpg –keyserver hkp://keys.gnupg.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
$ curl –O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer
$ curl –O https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
$ curl –sSL https://rvm.io/mpapis.asc | gpg –import –
$ gpg2 —verify rvm–installer.asc
|
La verifica del certificato “asc” potrebbe dare problemi, ma non proccupatevi, il file è attendibile.
Questo è il sito ufficiale di RVM: http://rvm.io/
E qui potete chattare in maniera criptata direttamente con il creatore del programma: https://keybase.io/mpapis
Torniamo a noi, installiamo RVM con l’installer scaricato precedentemente:
1
2
|
$ bash rvm–installer stable
$ source /home/davenull/.rvm/scripts/rvm
|
In pratica viene installato lato utente, ed è sconsigliata la multiutenza. E’ ancora un programma nuovo e sperimentale, ma molto, molto utile, perchè ci permette di installare qualsiasi versione di Ruby.
Per non avviare l’ultimo comando digitato ogni volta che dobbiamo usare RVM ci conviene aggiungerlo al file bashrc dell’utente digitanto:
1
|
$ echo “source ~/.rvm/scripts/rvm” >> ~/.bashrc
|
Adesso installiamo Ruby 2.4.2 da utente, e digitiamo la password di sudo quando ce la chiede, proprio come fa Rubygems:
1
|
$ rvm install 2.4.2
|
Se volete anche la documentazione di ruby installatela digitando:
1
|
$ rvm docs generate–ri
|
Per impostare Ruby 2.4.2 di default digitiamo:
1
|
$ rvm use 2.4.2 —default
|
Adesso torniamo nella home dell’utente (nel mio caso davenull) e finalmente scarichiamo il Repository di WPScan 2.9.4-dev da git:
1
2
3
|
$ git clone https://github.com/wpscanteam/wpscan.git
$ cd wpscan
$ gem install bundler
|
Per chi non lo sapesse bundler è paragonabile a make, da le istruzioni per la compilazione e l’installazione di un programma, in questo caso in Ruby.
E l’ultimo passo lo conosciamo, finalmente installiamo wpscan digitando:
1
|
$ bundle install —without test
|
Per avviare wpscan il comando è sempre il solito. Posizionatevi all’interno della cartella di wpscan e digitate:
1
|
$ ruby wpscan.rb
|
Ed ecco il famoso output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
\ \/ \/ / | ___/ \___ \ / __|/ _` | ‘_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 2.9.4-dev
Sponsored by Sucuri – https://sucuri.net
@_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________
Examples :
-Further help …
ruby wpscan.rb –help
-Do ‘non–intrusive‘ checks …
ruby wpscan.rb –url www.example.com
-Do wordlist password brute force on enumerated users using 50 threads …
ruby wpscan.rb –url www.example.com –wordlist darkc0de.lst –threads 50
-Do wordlist password brute force on the ‘admin‘ username only ...
ruby wpscan.rb —url www.example.com —wordlist darkc0de.lst —username admin
–Enumerate installed plugins ...
ruby wpscan.rb —url www.example.com —enumerate p
–Enumerate installed themes ...
ruby wpscan.rb —url www.example.com —enumerate t
–Enumerate users ...
ruby wpscan.rb —url www.example.com —enumerate u
–Enumerate installed timthumbs ...
ruby wpscan.rb —url www.example.com —enumerate tt
–Use a HTTP proxy ...
ruby wpscan.rb —url www.example.com —proxy 127.0.0.1:8118
–Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
ruby wpscan.rb —url www.example.com —proxy socks5://127.0.0.1:9000
–Use custom content directory ...
ruby wpscan.rb –u www.example.com —wp–content–dir custom–content
–Use custom plugins directory ...
ruby wpscan.rb –u www.example.com —wp–plugins–dir wp–content/custom–plugins
–Update the DB ...
ruby wpscan.rb —update
–Debug output ...
ruby wpscan.rb —url www.example.com —debug–output 2>debug.log
See README for further information.
[!] No argument supplied
|
Noterete un pò di opzioni in più rispetto alla versione precedente.
Ah non dimenticatevi di effettuare periodicamente l’update delle vulnerabilità con il comando:
1
|
$ ruby wpscan.rb —update
|
Buon Penetration Testing, e non fate danni!!!
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.