Борьба с вирусом.
drnight
Давненько не брал я в руки шашек !

Сегодня закончился второй вечер борьбы с вирусом на домашнем компе одного моего знакомого.
Началось всё банально - с SMS-вируса, который не даёт работать. Причем этот вирус только первый раз удалось удалить из Safe Mode, второй раз уже и в Safe Mode он прописался.
Самым надежным выходом оказалось использование старого доброго ERD Commander и вычистки реестра зараженой машины, точнее, параметра Userinit. но об этом ниже.

Итак, новые вирусы используют новые методы борьбы с пользователями, всё что нашел, перечислю здесь.

1. Ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit должен иметь значение "C:\Windows\system32\userinit.exe," Версия вымогателя SMS, с которым я столкнулся, дописывала в конце адрес своего модуля.

2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell должен иметь значение "explorer.exe"

3.1. Прошли те времена, когда вирусы писали адреса антивирусных сайтов в C:\Windows\System32\drivers\etc\HOSTS (хотя туда заглянуть не мешает). Современные вирусы  добавляют в таблицу маршрутизации неправильные маршруты на подсети, содержащие IP адреса серверов антивирусов.
 
Заметить это легко по огромному выводу команды route print.
Там будет несколько десятков постоянных маршрутов вида
 

81.177.31.0  255.255.255.0      192.168.0.1       1

Лечится элементарно:
выполнить route -f и восстановить стандартные маршруты. Т.е., реконнектнуть VPN до провайдера, если есть, и кликнуть "исправить" на сетевом соединении.

3.2.И один замечтальный способ нагадить в HOSTS нашел на просторах Интернета. Вирус не пишет в HOSTS, он меняет путь, по которому система ищет HOSTS. Это ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\DataBasePath и его значение по умолчанию - %SystemRoot%\System32\drivers\etc

4. Модификация вируса, которая мне встретилась, имела одну интересную особенность, по которой легко находилась в System32. Каждое тело вируса было EXE-программой и имела уникальную иконку. Серобуромалиновый в крапинку квадратик из случайных пикселей. Это не давало никакой информации антивирусной программе, но невооруженным глазом вирусы элементарно находились. Особенно, если отсортировать файлы по типу файла.
К сожалению, скриншот не сохранился ((

Пока всё, что удалось нарыть.
На зараженых машинах, естественно не тосли обновления,  не было "восстановления системы", антивирь был нерабочим. Классика :)


 



Флудогенератор
drnight
Я люблю Posh.

На нем можно написать всё, что угодно. Например, маленький такой флудогенератор.
217431 - номер топика

function Sysadmins_ru_login
{
param ([string]$username, [string]$password, [string]$proxy_string = "")

$wc = new-object net.webclient
$url_login = "http://sysadmins.ru/login.php"

If ($proxy_string)
{
$proxy = New-Object System.Net.WebProxy(proxy_string)
$proxy.Credentials = (Get-Credential).GetNetworkCredential()
$wc.Proxy = $proxy
}



$wc.Headers.Add("User-Agent", "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0;)")
$wc.Headers.Add("Content-Type","application/x-www-form-urlencoded")
$postValues = New-Object System.Collections.Specialized.NameValueCollection
$postValues.Add('username',$username)
$postValues.Add('password',$password)
$postValues.Add('login', 'Вход')


$result = $wc.UploadValues($url_login, $postValues)
$string = [System.Text.Encoding]::ASCII.GetString($result)

$reg = [regex]' $sid = $reg.Matches($string)[0].Groups[1].Value
$cookie = "sysadminsnew_sid=" + $sid

$wc.Headers.Add("Cookie", $cookie)
$wc
}


function Posting
{
param ([System.Net.WebClient]$wc, [int]$topic, [string]$text)

$url_posting = "http://sysadmins.ru/posting.php"
$sid = ([regex]'sysadminsnew_sid=([^"]+)').Matches($wc.Headers["Cookie"])[0].Groups[1].Value

$postValues = New-Object System.Collections.Specialized.NameValueCollection
$postValues.Add('mode', 'reply')
$postValues.Add('t', $topic)
$postValues.Add('message', $text)

$postValues.Add('post', 'Отправить')
$postValues.Add('notify', 'off')



$postValues.Add('sid', $sid)
$result = $wc.UploadValues($url_posting, $postValues)
$string = [System.Text.Encoding]::ASCII.GetString($result)
$string
}

$wc_xxx = Sysadmins_ru_login "mylogin" "p@ssword"
Posting $wc_xxx 217431 "текст" | out-null

 




Скрипт легко модифицируется для любого форума.

PS: Да, написан по ламерски, так и не нашел, как честно sid из кукисов вытащить. (((

Доброго времени суток.
drnight
Внезапно осознал, что у меня есть жжурнал, который пролежал пустой целых 5 лет.
Пора просыпаться от зимней спячки и вливаться в славный жж-поток.

Лишь только главный вопрос не дает мне покоя - "Зачем?!?"

?

Log in