vak: (Default)
[personal profile] vak
Тут меня спросили старые друзья, где скачать исходники ОС Демос. Нет проблем, лежит на моём сайте: d22.tar.gz. Но оказалось, что у товарища файл не скачивается: антивирус его зарубает. То есть где-то там унутре схоронилась зараза. Стало любопытно! Давайте поисследуем.

Я в последние двадцать лет живу в Линуксе и на маке, и антивирусами не пользуюсь. И так всё безопасно. Из более раннего опыта остались положительные впечатления от антивируса ClamAV. Когда-то я его даже встраивал в наш корпоративный sendmail в Крониксе. Отлично справлялся: за несколько лет ни один вирус по почте не проскочил. В среднем одно-два письма с опасным вложением отлавливал.

Установить ClamAV на маке нетрудно. На Линуксе должно быть похоже.
brew install clamav
cd /usr/local/etc/clamav
cp freshclam.conf.sample freshclam.conf
Дальше нужно отредактировать файл freshclam.conf. По минимуму достаточно удалить строку "Example" в начале файла. Там в комментариях всё написано.

После этого обновляем базу вирусов из сети:
$ freshclam 
ClamAV update process started at Fri Feb 9 21:07:32 2024
daily database available for download (remote version: 27180)
ERROR: NULL X509 store
Time: 2.4s, ETA: 0.0s [========================>] 59.89MiB/59.89MiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a54e59a89f319f5921157771aad9bd2a.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 27180, sigs: 2052672, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
ERROR: NULL X509 store
Time: 5.9s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a77aeb1d9c704e1bd04cacbe4e177196.tmp-main.cvd' ...
Database test passed.
main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
bytecode database available for download (remote version: 334)
ERROR: NULL X509 store
Time: 0.1s, ETA: 0.0s [========================>] 285.12KiB/285.12KiB
Testing database: '/usr/local/var/lib/clamav/tmp.490347e161/clamav-a25b5b63ec44ab4235ae302d67208fef.tmp-bytecode.cvd' ...
Database test passed.
bytecode.cvd updated (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
Теперь просканируем исходники Демоса. Флаг -r включает рекурсивную обработку папок, флаг -o отключает сообщения про файлы, которые OK.
$ wget https://pub.sergev.org/unix/d22.tar.gz
$ tar xzf d22.tar.gz
$ clamscan -r -o d22
Loading: 10s, ETA: 0s [========================>] 8.68M/8.68M sigs
Compiling: 3s, ETA: 0s [========================>] 41/41 tasks

/Users/vak/d22/cmd/comint/dpi/tdpi.c: Empty file
d22/cmd/RCS: Symbolic link
/Users/vak/d22/cmd/wsh/Tape.z: Win.Trojan.Vienna-8 FOUND
/Users/vak/d22/cmd/true.sh: Empty file

----------- SCAN SUMMARY -----------
Known viruses: 8684540
Engine version: 1.3.0
Scanned directories: 124
Scanned files: 1613
Infected files: 1
Data scanned: 42.97 MB
Data read: 22.29 MB (ratio 1.93:1)
Time: 22.294 sec (0 m 22 s)
Start Date: 2024:02:09 21:11:15
End Date: 2024:02:09 21:11:37
Видим файл с вирусом. Это упакованный архив tar с исходниками утилиты wsh. Давайте его распакуем и просканируем внутри.
$ mkdir wsh
$ tar xzf d22/cmd/wsh/Tape.z -C wsh
$ clamscan -r -o wsh
Loading: 9s, ETA: 0s [========================>] 8.68M/8.68M sigs
Compiling: 3s, ETA: 0s [========================>] 41/41 tasks

/Users/vak/wsh/W.test.com: Win.Trojan.Vienna-8 FOUND

----------- SCAN SUMMARY -----------
Known viruses: 8684540
Engine version: 1.3.0
Scanned directories: 3
Scanned files: 114
Infected files: 1
Data scanned: 1.31 MB
Data read: 0.70 MB (ratio 1.87:1)
Time: 13.948 sec (0 m 13 s)
Start Date: 2024:02:09 21:14:59
End Date: 2024:02:09 21:15:12
Заглянем внутрь "больного" файла W.test.com.
$ cat -v wsh/W.test.com
?. a 17
echo hello > 00
echo "hi"There >> 00
echo Hey"You" >> 00
echo Go"To"Hell >> 00
echo MIG$a >> 00
echo CWD${CWD}IS >> 00
echo Good" Day $a" >> 00
echo Where" isMy${a}Years"Yeah >> 00
echo Here\"There\"and"any$a"Where >> 00
echo CWD$[\"%t\"%end]{CWD}IS >> 00
echo CWD$[\"%t\"%end]CWD"IS"ETC >> 00
echo \\ >> 00
echo "\" >> 00
echo '\' >> 00
echo "\\" >> 00
echo \n >> 00
echo \\n >> 00
echo \" >> 00
echo \""a" >> 00
echo '"' >> 00

echo \$ >> 00
echo "\$" >> 00
echo "\\$" >> 00
echo "$" >> 00
echo "\\\$" >> 00
echo \\\$ >> 00

echo "\""hi" >> 00

unset a
P?R^GM-^K?M-^A?^@^@??^C^@?^@^A?M-^K??0?!<^@u^C??^A?......... ............................................................
Очевидно, это был шелловский скрипт, которому почему-то дали расширение ".com". Вирус посчитал, что это выполняемый файл MS-DOS, и заразил его. Дописал в конец кучу мусора (тело вируса) и в начало несколько байт - переход на заражённый участок файла.

Вот такой привет из прошлого. В википедии пишут, что вирус Vienna появился в 1987 году. Архив Tape.z был упакован в 1990-м году.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org