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:
# 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:
# 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:
# rm /etc/apt/sources.list.d/ruby.list
Finalmente possiamo eliminare la chiave del repository di Ubuntu Trusty digitando:
# apt-key del C3173AA6
Adesso aggiorniamo l’elenco delle chiavi GPG eliminando automaticamente quelle scadute o non valide:
# apt-key update
Adesso aggiorniamo gli indici dei Repository dato che abbiamo eliminato quelli di Ubuntu Trusty:
# apt-get update
Adesso eliminiamo la cartella del vecchio WPScan, nel mio caso è in /home/davenull/ , quindi digitiamo:
# 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:
$ 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:
# 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:
# 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:
$ 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:
$ 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:
$ 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:
$ rvm install 2.4.2
Se volete anche la documentazione di ruby installatela digitando:
$ rvm docs generate-ri
Per impostare Ruby 2.4.2 di default digitiamo:
$ 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:
$ 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:
$ bundle install --without test
Per avviare wpscan il comando è sempre il solito. Posizionatevi all’interno della cartella di wpscan e digitate:
$ ruby wpscan.rb
Ed ecco il famoso output:
_______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ ® \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| 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:
$ ruby wpscan.rb --update
Buon Penetration Testing, e non fate danni!!!
Author: davenull
Ho 28 anni (ad aprile 29) e vengo da Taranto (Puglia, Italia) e sono:
Sistemista/Programmatore Unix (Debian, OpenMediaVault, OpenWrt, FreeBSD, NetBSD, Lineage OS);
Prototipatore con Raspberry Pi.
Esperto di Sicurezza Informatica, scrivo exploit da poco piì di dieci anni, circa quindici;
Esperto di microarchitetture embedded, specialmente bcm63, ar7 ed armhf (6 e 7);
Fondamentalista del Free Software (Free as in Freedom)
Relatore ed organizzatore di svariati Linux Day a Taranto e a Francavilla Fontana (Brindisi);
Sistemista di svariate sale server che ora non vi sto ad elencare;
Co-Founder di JonixLUG: https://www.jonixlug.altervista.org
Founder di FreeNIX Security Labs: https://www.freenixsecurity.net
Collaboratore esterno dell’Associazione Fare Zero Makers: http://www.farezero.org
Leave a comment
You must be logged into post a comment.
4 Replies to “Compilare WPScan 2.9.4-dev su Debian Jessie”
ciao, ho seguito la guida alla lettera, ed è tutto perfettamente funzionante, l’unica cosa e che all’apertura del terminale mi esce la scritta: Required ruby-2.5.0 is not installed.
cosa devo fare? grazie per tutto
ma funziona??? e su che distro hai provato?
si funziona alla perfezione. solo che all’apertura del terminale mi dava quel warn, ma adesso dopo il riavvio non esce più. grazie della risposta. l’ho installata su deepin: 4.14.0-deepin2-amd64 basata ovviamente su debian.
se posso ti consiglio di dargli una guardata, è una distro davvero user friendly, soprattutto per chi arriva da windows.
Conosco Deepin, ma ai miei clienti propongo sempre linux mint debian edition, specialmente adesso che esiste la versione 3 basata su stretch. Invece personalmente uso Debian Stretch con dwm come window manager.