ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

24.09.2007, 00:45
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
>> Вот это отличная идея, если кто сможет, реализуйте плиииз!!!
ок, напишу на Perl.. +)
|
|
|

24.09.2007, 01:56
|
|
Участник форума
Регистрация: 10.01.2006
Сообщений: 193
Провел на форуме: 553876
Репутация:
81
|
|
Сообщение от TANZWUT
Вспоминаем сниффер!!!
к примеру через SQL-inj или PHP-inj заливаем shell.jpg и .htaccess который будет асоциировать картинку с php файлом. 
ну а далее дело техники....
Квартет (с) Крылов 
Вспоминай) Вообще-то на сервере файлы лежат в изначальном виде (формате), это когда они вызываются по-другому (к примеру через mod_rewrite в .htaccess), их сервер открывает. Так что если это банальный шелл, то он всегда будет на сервере лежать как .php файл.
|
|
|

24.09.2007, 01:59
|
|
Участник форума
Регистрация: 10.01.2006
Сообщений: 193
Провел на форуме: 553876
Репутация:
81
|
|
Я завтра напишу на Php, но в моей версии кроме отправления сообщения на мыла, сайт будет закрыватся (тут естевственно надо под конкретный проект писать)
|
|
|

24.09.2007, 05:23
|
|
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме: 3578960
Репутация:
468
|
|
4 Nightmarе.
Делать было нечего, сделал
Скрипт пользуеца мускулом, предварительно ему нужны данные для доступа.
Он делает слепок директории и заносит в базу, делая мд5 и определяя размер файлов и директоии.
При проверке эти данные сверяются, если что-то не совпадает то в корне контролируемой директоии создается
.htaccess блокирующий файл для всех (кто хочет может поменять на локалхост) и высылает репорт админу.
Код:
<?php
$server = 'localhost'; //хост
$username = 'anti_change'; //юзер мускула
$password = 'password'; //пароль мускула
$database = 'anti_change'; //база мускула
$path = 'C:/TopServer/home/localhost/wordpress'; //реальный путь к контролируемой директории
$mail_to = 'admin@localhost'; //кому писать репорт
$mail_from = 'axtung@localhost'; //от кого
$mail_subj = 'axtung!!!'; //тема письма
mysql_connect($server, $username, $password);
mysql_select_db($database);
function scan_dir($dirname)
{
GLOBAL $text, $retext;
$dir = opendir($dirname);
while (($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_file($dirname."/".$file))
{
$sql = "INSERT INTO `first_scan` (`category`, `name`, `md5_file`, `size`) VALUES ('file', '".$dirname."/".$file."', '".md5_file($dirname.'/'.$file)."', '".filesize($dirname.'/'.$file)."')";
mysql_query($sql);
}
if(is_dir($dirname."/".$file))
{
$sql = "INSERT INTO `first_scan` (`category`, `name`, `md5_file`, `size`) VALUES ('directory', '".$dirname."/".$file."', '---', '".disk_total_space($dirname."/".$file)."')";
mysql_query($sql);
scan_dir($dirname."/".$file);
}
}
}
closedir($dir);
}
function check_dir($dirname)
{
GLOBAL $text, $retext;
$dir = opendir($dirname);
while (($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_file($dirname."/".$file))
{
$sql = "SELECT * FROM `first_scan` WHERE `name` = '".$dirname."/".$file."' and `category` = 'file'";
$result_file = mysql_query($sql);
$array_file = mysql_fetch_array($result_file);
if ($array_file)
{
if ($array_file['md5_file'] != md5_file($dirname.'/'.$file))
{
$sql_md5 = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('error md5_file', '".$dirname."/".$file." error checksum')";
$res=mysql_query($sql_md5);
}
if ($array_file['size'] != filesize($dirname.'/'.$file))
{
$sql_size = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('error size file', '".$dirname."/".$file." error size file')";
mysql_query($sql_size);
}
}
else
{
$sql_nf = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('file not found', '".$dirname."/".$file." file not found')";
mysql_query($sql_nf);
}
}
if (is_dir($dirname."/".$file))
{
$sql = "SELECT * FROM `first_scan` WHERE `name` = '".$dirname."/".$file."' and `category` = 'directory'";
$result_dir = mysql_query($sql);
$array_dir = mysql_fetch_array($result_dir);
if ($array_dir)
{
if ($array_dir['size'] != disk_total_space($dirname."/".$file))
{
$sql_size = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('error size directory', '".$dirname." error size directory')";
mysql_query($sql_size);
}
}
else
{
$sql_nf = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('directory not found', '".$dirname."/".$file." directory not found')";
mysql_query($sql_nf);
}
check_dir($dirname."/".$file);
}
}
}
closedir($dir);
}
function check_del()
{
$sql = "SELECT * FROM `first_scan`";
$result = mysql_query($sql);
while ($array = mysql_fetch_array($result))
{
if (!is_dir($array['name']) && ($array['category'] == 'directory'))
{
$sql_del_dir = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('directory deleted', '".$array['name']." directory deleted')";
mysql_query($sql_del_dir);
}
if (!file_exists($array['name']) && ($array['category'] == 'file'))
{
$sql_del_file = "INSERT INTO `axtung!` (`category_error`, `description`) VALUES ('file deleted', '".$array['name']." file deleted')";
mysql_query($sql_del_file);
}
}
}
if (isset($action) && ($action == 'first'))
{
mysql_query("DROP TABLE `axtung!`");
mysql_query("CREATE TABLE `axtung!` (
`id` int(11) NOT NULL auto_increment,
`category_error` text,
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1");
mysql_query("DROP TABLE `first_scan`");
mysql_query("CREATE TABLE `first_scan` (
`id` int(10) NOT NULL auto_increment,
`category` text NOT NULL,
`name` text NOT NULL,
`md5_file` text NOT NULL,
`size` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=501;
");
scan_dir($path);
echo 'слепок сделан';
}
if (isset($action) && ($action == 'check'))
{
check_dir($path);
check_del();
$mail = '';
$report = '';
$sql_mail = "SELECT * FROM `axtung!`";
$result = mysql_query($sql_mail);
while ($array = mysql_fetch_array($result))
{
$mail .= $array['description']."\n";
$report .= $array['description']."<br>";
}
if (!empty($mail))
{
$fh = fopen ('C:/TopServer/home/localhost/wordpress/.htaccess', "w");
fwrite($fh, "\n"."deny from all");
fclose ($fh);
mail('admin@localhost','axtung!',$mail,"From: axtung@localhost\r\n");
echo 'Ахтунг!!!<br>'.$report.'Внимание доступ к сайту закрыт!!!';
}
else
{
echo 'Все норм, спи спокойно';
}
}
if (isset($action) && ($action == 'clear_error'))
{
mysql_query('TRUNCATE `axtung!`');
echo 'лог очищен';
}
?>
<form action="<?=basename($PHP_SELF)?>?action=first" method="POST">
<input type="submit" value="создать слепок файловой системы">
</form>
<br>
<form action="<?=basename($PHP_SELF)?>?action=check" method="POST">
<input type="submit" value="проверить">
</form>
<br>
<form action="<?=basename($PHP_SELF)?>?action=clear_error" method="POST">
<input type="submit" value="очистить лог из базы">
</form>
Юзай на здоровье.
З.Ы. Просьба на корявости не обращать внимания, ибо писал ночью и особенной ценности скрипт для меня не представлял.
З.Ы.Талисману пасиба за реверсивный поиск, ибо самому было лень)
Последний раз редактировалось life_is_shit; 24.09.2007 в 05:25..
|
|
|

25.09.2007, 02:27
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Супер, пасиб за скрипт!!!!!!
|
|
|

25.09.2007, 08:45
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
life_is_shit, в твоем скрипте дырок 5 минимум...
Инклуд и скули уже увидел...
|
|
|

25.09.2007, 09:20
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 228
Провел на форуме: 4325663
Репутация:
240
|
|
Нету там ни одного вызова инклуд функций.
life_is_shit, пасиб за скрипт.
|
|
|

25.09.2007, 09:37
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
В идеале брать чексум файла и проверять на изменение. Скрипт кодится зендом и все. никаких проблем. Зенд платный? О_о
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

25.09.2007, 09:39
|
|
Administrator
Регистрация: 27.05.2002
Сообщений: 1,241
Провел на форуме: 20377164
Репутация:
0
|
|
Безусловно скрипт не имеет смысла и не от чего не защищает. Защита от инклюда файлов должна быть сделана на основании серии исследований:
1) Проверка контрольной суммы всех файлов.
2) Поиск записей в файлах, которые попадают под возможности шела (типа инклюде, eval , system и т. д.) . Файлы в которых нужны эти функции и места в них помечаются (хотя по любому проверка мд5 такие файлы защитит).
3) Создаем серию ловушек. Типо файлы конфигов и мониторим время их просмотра. В случае измениния времени начинаем думать какая зараза смотрит наши файлы.
Этого будет достаточно. Могу тоже самое продолжить про мониторинг всег sql инъекций, но это на уровне шаре хостинга реализовать сложнее.
|
|
|

25.09.2007, 14:01
|
|
Постоянный
Регистрация: 21.08.2007
Сообщений: 367
Провел на форуме: 3578960
Репутация:
468
|
|
4 Егорыч+++
Полностью прав, но для магазина к примеру скрипт вполне подойдет.
4 Nightmarе & 4 The_HuliGun
всегда пожалуйста, если нада туда чонить дописать пишите в аську, без проблем.
4 Isis
вообще-то скрипт желательно запоролить, или поставить доступ с одного Ip.
недостаток в том, что пароли к базе в открытом виде, но есть зенд)
|
|
|
|
 |
|
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books
|
PSalm69 |
Избранное |
273 |
13.02.2016 01:24 |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|