Domanda:
Script Kiddies: come trovano l'IP del mio server?
microwth
2016-02-12 18:53:49 UTC
view on stackexchange narkive permalink

Ho ancora creato un sito su Digital Ocean senza un dominio, quindi c'è solo l'IP. Nonostante non dica a nessuno della sua esistenza o lo pubblicizzi, ricevo centinaia di avvisi da fail2ban che vari IP stanno cercando di hackera la mia porta SSL o cerchi file PHP.

Ma come fanno a sapere che esisto? Da dove prendono l'IP?

Benvenuto in Internet! Fanno scansioni 24 ore su 24 dell'intero spazio degli indirizzi IPv4 pubblici. Però non li chiamerei bambini.
Noterai che ciò accade molto velocemente, praticamente entro pochi minuti dall'accesso online. Può solo peggiorare, soprattutto se stai ospitando un target di alto valore. Puoi alleviarlo in una certa misura installando i componenti aggiuntivi di xtables geoip e utilizzando una corrispondenza di negazione, consentendo solo paesi specifici (il traffico più elevato proviene da Cina, Brasile, Russia, ecc.). Nota che tutto ciò però è ridurre il traffico dei bot e ridurre il lavoro che la tua CPU deve svolgere per vietare queste scansioni / attacchi automatici. Questo da solo non ti protegge affatto.
@TechnikEmpire E per non parlare di quegli aggressori possono utilizzare una VPN che fa sembrare che provengano dal tuo paese ospitante. Non ferma le VPN.
@MarkBuffalo infatti, è solo un modo per risparmiare tempo CPU, niente di più.
Dispari. Ho il mio sito web ospitato localmente online da circa un mese (non costantemente, solo durante lo sviluppo) e devo ancora avere un solo visitatore.
@Carcigenicate Sei persino raggiungibile? Cioè, IP pubblico, port forwarding ecc.?
@deviantfan Sì. Posso raggiungere il sito tramite computer esterni alla mia rete locale utilizzando il nostro IP pubblico.
@deviantfan In realtà, sto usando una porta non standard, quindi probabilmente è per questo.
randint (1,255): randint (1: 255): randint (1: 255): randint (1: 255) ti colpirà, prima o poi.
È come chiederti, come ha fatto il postino a trovare la tua casa, così ha potuto gettare il volantino nella tua cassetta della posta che ha gettato in ogni cassetta delle lettere del tuo quartiere.
Non chiamerei altre persone script kiddies senza rendermi conto che il tuo indirizzo IP è pubblico. FWIW Sono stato anche morso da questo su DO. Disabilita l'autenticazione della password tramite SSH e starai bene.
Il tuo IP apparteneva probabilmente a un sito web precedentemente noto, quindi è solo nuovo per le tue impostazioni.
Sette risposte:
Mark Buffalo
2016-02-12 19:19:10 UTC
view on stackexchange narkive permalink

Non puoi nascondere il tuo indirizzo IP su Internet. Non sono segreti.

Più o meno quello che ha detto @DeerHunter. È banale scansionare l'intera Internet. Se lo desiderano, possono indirizzare le goccioline oceaniche digitali conosciute che sono online.

Possono farlo con un timer in modo che quando vai offline o online, continuerà a provare perché potrebbero essere obiettivi di alto valore che potrebbero diventare vulnerabili in un attimo.

Lascia che ti dia un esempio di codice molto approssimativo . Supponiamo che il tuo indirizzo IP sia 104.16.25.255 . Otteniamo l'indirizzo IP di www.digitalocean.com in modo da poter controllare facilmente gli indirizzi IP associati. www.digitalocean.com restituisce 104.16.25.4 . Analizziamo tutto: 104.16.25.*”


La scansione è incredibilmente facile dal punto di vista della programmazione

Supponiamo di voler provare a trovare tutto indirizzi IP associati nelle vicinanze. Supponiamo che i programmi possano gestire molto bene numeri e modelli. Ecco un esempio di un numero intero incrementato:

  i ++;  

Questo incrementa il valore corrente di i di 1 . Supponiamo che i inizi come 1 . Dopo i ++ , otterrai 2 . Dai un'occhiata a questo loop dolorosamente semplice:

  for (int i = 1; i < 256; i ++) {scanIpAddress ("104.16.25." + I);}  

Una variante bash alternativa di una riga sarebbe la seguente:

  for ip in `seq 1 255`; eseguire scan_thingy_command 192.168.0. $ ip --options -oG lol.txt; done  

Hai appena scansionato 104.16.25.1 e modificato i da 0 a 1 . Man mano che l'intero ciclo continua, andrà da 104.16.25.0 a 104.16.25.255 . Non ho tempo per eseguire la scansione e guardare in questo momento, tuttavia, è possibile che questo minuscolo blocco non appartenga solo a digitalocean .

Per trovare più target su DigitalOcean, un programmatore può modificare ulteriormente i numeri. Ad esempio, introdurre un altro ciclo che annida il suddetto ciclo all'interno e aggiungere j : scanIpAddress ("104.16." + J + "." + I); . Ciò consentirà loro di scansionare 104.16.1-255.1-255 .

Da lì, possono continuare a tornare indietro e annidare per loop finché non ottengono l'intera Internet. Ci sono altri modi più efficienti per farlo, come masscan, ma questo è il modo più semplice.

Di nuovo, questo potrebbe essere fatto anche dalla riga di comando con una riga:

  per ott1 in `seq 1 255`; fare per ott2 in `seq 1 255`; fare per ott3 in `seq 1 255`; fare per ott4 in `seq 1 255`; esegui la scansione di $ ott1. $ oct2. $ ott3. $ ott4 --stuff; fatto; fatto; fatto; done 

Altri metodi

L'esempio precedente era un esempio molto approssimativo . Potrebbero fare di più, il loro codice potrebbe essere diverso e potrebbero utilizzare metodi e / o programmi completamente diversi. Tuttavia, il concetto è più o meno lo stesso.

È anche possibile che i programmi in questione si rivolgano a tutti in massa.


Allora come posso nascondere le mie cose online?

Se è online, qualunque cosa tu nasconda, la troveranno ... o proveranno a trovarla.

Tuttavia, a seconda del tuo server web, puoi provare i controlli di accesso http come .htaccess . Se utilizzi i controlli di accesso, di nuovo, dipende dal tuo server web, è probabile che sarai in grado di impedire ad altri di visualizzare / accedere alle pagine.

Questo però non ti proteggerà dai tentativi di accesso non al sito web. E se stai negando loro l'accesso a pagine web inesistenti, ora sanno che sei davvero online e possono concentrare i loro attacchi più facilmente! Tuttavia, è ancora buono pratica.

Ecco un esempio .htaccess deny per Apache (2.4 e versioni successive):

  Require ip 192.168.1.100  

Nell'esempio sopra, stai negando a tutti l'accesso a quella cartella, tranne il tuo indirizzo IP. Tieni presente che 192.168.1.100 è un indirizzo IP locale. Dovrai sostituirlo con il tuo indirizzo IP pubblico.

Inoltre, tieni presente che se il tuo aggressore esegue un proxy / VPN sulla tua macchina, lui può comunque accedere a quelle pagine. Se il tuo aggressore ha già accesso al sito web, può modificare il file .htaccess o rimuoverlo. Niente è al 100%.

Non mettere nulla online se non sei pronto per la scansione. Tutti hanno un piano fino a quando non vengono portati in bocca.

@TechnikEmpire Attacco di overflow di Buffalo.
@MarkBuffalo Pensavo che l'attacco di Buffalo Overflow fosse "Buffalo bufalo bufalo Buffalo bufalo bufalo Buffalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo bufalo. "
@corsiKa Porta questa discussione fuori tema su BuffaloOverflow.stackexchange.com.
"come posso nascondere le mie cose online?" Vorrei aggiungere la modifica delle porte predefinite ... "script kiddies" cerca obiettivi facili ... 80/443/22 / ecc ... se non sei ancora online, cambialo in 81/444/23 / ecc. .. o 55080/55443/55022 / ecc ... o qualsiasi altra cosa ... Non fare affidamento su questo per proteggerti, ma mitigherà una GRANDE porzione degli attacchi automatici, specialmente se non sei online. Torna indietro quando sei pronto.
nessuno ha pensato a "Buffaloverflow"? modifica: ora mi sono assicurato i diritti di marchio su quel nome. Pagare!
Per trovare tutti gli IP Digital Ocean, è sufficiente controllare gli elenchi dei numeri AS. Vuoi guardare "AS14061 Digital Ocean, Inc.".
Dovresti usare: Richiedi ip 192.168.1.100 Per essere compatibile con Apache 2.4+ - così tante volte ho dovuto cambiare quelle vecchie clausole, i miei occhi stanno sanguinando ora!
@karora Sì, per Apache 2.4 è diverso. Stavo per aggiornarlo prima, ma non ho avuto tempo. Sentiti libero di modificare il mio post.
@WernerCD O anche più semplice. Non inviare file a tutti i computer che li richiedono.
fail2ban + suricata in modalità IPS utilizzando iptables nfqueue + modsecurity2 + ssh basato su chiave con challenge + vsftpd w / ftps + maldet + webserver ha autorizzazioni di sola lettura per iniziare.
@DrewJordan Copia = Destra: P
Puoi nascondere i tuoi contenuti online utilizzando solo un indirizzo IPv6 statico che non è collegato a un record DNS pubblico.
In pratica faccio abbastanza bene proteggere la mia area di amministrazione con `Consenti da 20.16 # il mio intervallo di lavoro Consenti da 160.88 # il mio intervallo di casa`. Anche se aggiungi il 3 ° e il 4 ° per il tuo cellulare e il tuo bar preferito, blocchi comunque il 99% degli IP ... (ovviamente, se sei un viaggiatore appassionato, è probabile che ti ostacoli ... e ovviamente , nessun sostituto per misure aggiuntive.)
Ascoltare i Beatles dire: "Ehi, Buffalo Bill. Cosa hai ucciso? Buffalo Bill."
user2428118
2016-02-12 21:29:05 UTC
view on stackexchange narkive permalink

Lo spazio degli indirizzi IPv4 è limitato a soli 4.294.967.296 indirizzi. [nota 1] Data una larghezza di banda sufficiente, diventa banale scansionare ogni singolo indirizzo IP là fuori, soprattutto se sei il proprietario di una botnet composta da migliaia di dispositivi compromessi.

Con IPv6 [nota 2] , le cose sono un po 'più complicate: con oltre 300.000.000.000.000.000.000.000.000.000.000.000.000 di indirizzi, diventa poco pratico enumerarli tutti. Tuttavia, esistono ancora vari mezzi con cui è possibile scoprire gli indirizzi; ad esempio, in un caso recente motore di ricerca Internet of Things Shodan è stato scoperto mentre utilizzava server NTP per scoprire nuovi host IPv6 quando sincronizzavano i loro orologi.

Il succo di questo: se non sei pronto per essere sondato, non dovresti essere su Internet. La scansione dell'intera Internet IPv4 può essere eseguita in pochi giorni e anche il tuo indirizzo IPv6 verrà scoperto, a meno che tu non lo utilizzi affatto.

Nota 1: alcuni di questi non sono disponibili perché sono stati riservati per scopi speciali.
Nota 2: IPv6 è disponibile solo per gli utenti di Digital Ocean quando lo hanno abilitato.

+1 per "* se non sei pronto per essere sondato, non dovresti essere su Internet *"
"La scansione dell'intera Internet IPv4 può essere eseguita in pochi minuti"? Come? Con uno spazio di indirizzamento di 4 miliardi (e sì, parte di quell'intervallo è riservato per l'uso di reti private, ma la maggior parte non lo è) e anche le migliori richieste di rete impiegano circa 5 millisecondi per essere completate, alcune back-of- La matematica del tovagliolo indica che la scansione dell'intero intervallo IP richiederebbe un singolo computer, che esegue una richiesta alla volta, ben oltre 200 giorni. Avresti bisogno di una server farm * massiccia *, ben oltre le risorse del tuo tipico script kiddie, per parallelizzare quanto basta per ridurlo a "pochi minuti".
@Mason Sì, probabilmente dovrei chiarire che avrai bisogno di molta larghezza di banda per i tuoi server (o una [botnet davvero grande] (https://www.abuse.ch/?p=3294)) per questo. ** Modifica: ** lo ha cambiato in "giorni" e ha aggiunto un collegamento a un esempio al post.
tecnicamente potresti semplicemente affittare un enorme rig per la scansione per la giornata.
@MasonWheeler waitaminute, che 200 giorni sono se hai fatto ogni richiesta in serie, il che è un po 'folle. Semplicemente usando processi in background o qualcosa del genere, penserei che tu possa fare almeno 200 richieste simultaneamente senza molto degrado della latenza, quindi una scansione completa di ipv4 richiederebbe 1 computer 1 giorno, non 200 giorni. E forse anche molto meglio di così, non sono sicuro dei numeri esatti al momento.
@MasonWheeler Non è difficile procurarsi un server con 1 Gbit / s di connettività. La maggior parte dei percorsi di rete ha un PMTU di 1500 byte o un po 'meno. Per poter utilizzare la larghezza di banda, significa che l'apparecchiatura deve essere in grado di gestire almeno 83333 pacchetti al secondo. Ci sono circa 3700 milioni di indirizzi unicast globali in IPv4. L'invio di un pacchetto a ciascuno di essi a quella velocità richiede 12 ore e 20 minuti.
@MasonWheeler Non hai sentito parlare di masscan? https://github.com/robertdavidgraham/masscan
@TerryChia Certo che no, non l'ho fatto. L'ho appena guardato, però, e dice che per ottenere la scansione ultra veloce sono necessari 10 Gbps di larghezza di banda, che nessuno ha effettivamente. È 10 volte più veloce persino di Google Fiber!
@MasonWheeler Ancora una volta, no. I documenti dicono che hai bisogno di 10 Gbps per superare i 2mil di pacchetti / sec. È necessario molto meno per eseguire la scansione dell'intero spazio degli indirizzi IPv4 in meno di 200 giorni.
@MasonWheeler "Avresti bisogno di un'enorme server farm, ben oltre le risorse del tuo tipico script kiddie" - ecco a cosa serve il cloud: puoi affittare 4000 server per un'ora per meno di $ 30 su DigitalOcean.
Sono necessari 45 minuti per eseguire la scansione di Internet su una porta gigapit con masscan e driver dna. Questo è banale.
David Richerby
2016-02-13 00:28:41 UTC
view on stackexchange narkive permalink

Ma come fanno a sapere che esisto?

Non sanno che tu esisti. Non sanno che stanno parlando con te : sanno solo che stanno parlando a un computer con un particolare indirizzo IP. Gli indirizzi IP sono molto simili ai numeri di telefono. Se componi un prefisso legittimo seguito da un numero casuale con il giusto numero di cifre, ci sono buone possibilità che tu possa parlare con qualcuno, soprattutto se il prefisso ha molti abbonati. Ciò non significa che "sapevi che quella persona esiste": significa solo che hai scoperto che il suo numero di telefono è collegato.

Da dove prendono l'IP?

Non lo ottengono da nessuna parte. È solo un numero a 32 bit e non ce ne sono davvero così tanti. 134.183.96.2 lì, questo è un indirizzo IP. L'ho ottenuto schiacciando la tastiera (ed eliminando le cifre non valide). Probabilmente appartiene a qualcuno perché quasi tutti gli indirizzi IP lo fanno. I cattivi si limitano a scansionare sistematicamente lo spazio degli indirizzi; troveranno qualsiasi indirizzo IP perché "trovare" significa semplicemente "generare numeri validi sufficienti".

Oscalation
2016-02-13 09:51:16 UTC
view on stackexchange narkive permalink

Ma come fanno a sapere che esisto?

Sanno che esiste qualcosa su quell'indirizzo IP perché il loro scanner glielo dice. Molto probabilmente non sono venuti a cercarti, si sono semplicemente imbattuti in quell'indirizzo IP scansionando grandi blocchi o l'intera Internet.

http://blog.erratasec.com/2013/09/masscan-entire-internet-in-3-minutes.html

Peter
2016-02-14 19:46:23 UTC
view on stackexchange narkive permalink
  1. Gli indirizzi IP sono finiti.
  2. Gli indirizzi IP vengono assegnati in blocchi.

Quindi puoi scansionare tutti gli IP dal tuo PC di casa in circa un anno, anche se il tuo ISP potrebbe notarlo e chiederti cosa stai stai cercando di tirare. È più probabile che alcuni blocchi contengano server scarsamente protetti, in particolare i blocchi assegnati ai provider di hosting. La scansione solo di questi blocchi è molto economica, veloce e facile e la probabilità di successo è relativamente alta.

La scansione da un singolo IP è problematica, perché il tuo IP verrà bloccato presto, quindi queste persone usano le botnet o l'equivalente commerciale: servizi cloud. Non è necessario creare la propria botnet. Invece puoi noleggiare una botnet.

Molti esperti di sicurezza ignorano semplicemente tutte le scansioni come "rumore di fondo", quindi non le bloccherà necessariamente.
user100251
2016-02-14 22:28:09 UTC
view on stackexchange narkive permalink

Molto probabilmente non sanno che l'IP dato appartiene a te in particolare. Ma conoscono il pool di IP che appartiene alla tua società di hosting e usano queste informazioni per cercare host attivi. Puoi usare iptables per migliorare la sicurezza della tua macchina o per limitare il numero di connessioni e tipi di connessione ma a parte questo non c'è nient'altro che puoi fare. Internet doveva essere utilizzato per condividere informazioni. Se non vuoi condividere, disconnetti il ​​box (box di sviluppo). Se si tratta di una scatola di sviluppo, sarebbe una buona idea spostarla localmente e non fornire accesso ad essa al di fuori della tua LAN.

Quasi certamente _non_ sanno che il blocco di indirizzi appartiene a qualcuno in particolare, perché quell'informazione quasi certamente non gli serve.Molto probabilmente non è un attacco mirato.
Un attacco è sempre mirato.L'unica domanda è verso chi o cosa.
Avm-x
2019-01-19 10:37:18 UTC
view on stackexchange narkive permalink

Perché scansionare indirizzi IP alla ricerca di porte aperte è un compito facile.
Molti strumenti come ZMAP ( 1300 volte più veloce di NMAP) possono scansionare l'intera Internet con un poche ore se si dispone di una connessione Internet decente.

Come se volessi scansionare l'intera Internet sulla porta 80 (il tuo ISP potrebbe chiedere):

  sudo zmap -p 80 0.0.0.0/0  

E ZMAP non scansionerà gli indirizzi IP privati ​​(come sono nel file blacklist.conf)



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...