петък, 27 април 2012 г.

Следене на активност при Windows процеси

Тъй като с Sir Peach днес имахме задачка да проследим една "програмка" каква активност извършва - използвани файлове, registry ключове и т.н. се наложи да си спомня за този инструмент, а той е именно - Process Monitor на SysInternals

Download

Инструмента след пускането си hookва глобално всички процеси и следи всички event-и, за да проследите поведението на точно определен процес - използвате филтри.
Филтрите са много гъвкави и позволяват филтрация по пътека на изпълняваният файл, отварян файл, че дори по използвано Windows-ко API.

понеделник, 5 декември 2011 г.

OTPW – A one-time password login package

http://www.cl.cam.ac.uk/~mgk25/otpw.html

Въпреки че е проект на възраст който дори може да се счете за discontinued
ОТPW дава идея която може да намери приложение на твърде много места за да я пренебрегнем.

Ускоряване на linux boot процеса (както и app startup time) чрез Physical Block Reallocation


E4RAT - Improving Startup Times by Physical Block Reallocation
http://e4rat.sourceforge.net/

Резултатите са впечатляващи!
За момента не съм го пробвал, но обещавам като го пробвам да споделя личните си наблюдения.

неделя, 4 декември 2011 г.

VMX и Nested KVM

След няколко дни борба в крайна сметка открих, че поради архитектурните особености на Intel процесорите и по-специално VMX флага, създаването на вложени (Nested) виртуални машини с KVM ускорение е много слабо подържано и във всички релиизи на KVM модула е със статус 'експериментално'.

За по-слабо запознатите - Nested KVM е ситуация при която върху една хост машина се пуска гостуваща такава отново с KVM възможности с идеята тя да бъде сама по себе си хост за друга виртуална машина. Това по същество налага предаването на VMX флага към гост машините.

Тук ще споделя частичното решение което намерих.



Лимити:
Хайпервайзорите (виртуалните машини) които трябва да могат да изпълняват други машини могат да бъдат само 64 битови.

Ядро:

Въпреки, че не съм пробвал за версия 3.1 на Linux kernel-a също се твърди, че има тези възможности.

Аз обаче тъй като съм консервативен предпочитам все още да използвам 2.6.x kernel tree. Ето как можем да го направим по този начин:




  • Git-ваме си сорса от тук https://github.com/nyh/kvm-nested-vmx/tree/nvmx10
  • конфигурираме ядрото по собствен вкус
  • компилираме (и модулите)
  • инсталираме (и модулите)
стартираме това ядро и изпълняваме modprobe kvm_intel nested=1

за да сте сигурни може да изпълните modinfo kvm_intel за да видите дали опцията nested съществува.

QEMU:
Тествано е с версия 0.15
Единствената особеност е, че трябва да му кажем cpu-то на госта да има VMX:

С флаговете на хоста (в които разбира се има vmx)
-cpu host        

Cъс cpu-то което сме му казали но дава и vmx flag
-cpu <някое от подържаните cpu-та>,+vmx




За да видите какви cpu-та може да ползвате '-cpu ?'


четвъртък, 24 ноември 2011 г.

Подкарване на mikrotik 5.7 на виртуална машина различна от VMware

Наскоро на пиратската сцена излезе новият mikrotik 5.7 под формата на VMware-ски имидж. Под vSphere server тествано работи добре, но за потребителите на други платформи за виртуализация ето кратък туториъл.


За подкарване на мт 5.7 на virtualbox (3.1.6 OSE):

1. Създава се виртуална машина с хард диск vmdk файла
2. Тип на IDE контролера е PIIX4
3. От терминала се изпълняват командите
VBoxManage setextradata mt "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/FirmwareRevision" "string:00000001"
VBoxManage setextradata mt "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/ModelNumber" "string:VMware Virtual IDE Hard Drive"
VBoxManage setextradata mt "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "string:00000000000000000001"
4. Пускате машината и всичко работи :)
(Забележка: диск файла не трябва да е стартиран преди изпълнение на командите от точка 3)

За подкарване на мт 5.7 с qemu (qemu-kvm-0.12.3) 

Примерите са под Ubuntu 10.04:
1. аpt-get source qemu
2. cd qemu-kvm-0.12.3+noroms
3. във hw/ide/core.c файла:
на ред 114 променяме
padstr((char *)(p + 10), s->drive_serial_str, 20); /* serial number */
на
padstr((char *)(p + 10), "00000000000000000001", 20); /* serial number */

на ред 118 променяме
padstr((char *)(p + 23), s->version, 8); /* firmware version */
на
padstr((char *)(p + 23), "00000001", 8); /* firmware version */

на ред 119 променяме
padstr((char *)(p + 27), "QEMU HARDDISK", 40); /* model */
на
padstr((char *)(p + 27), "VMware Virtual IDE Hard Drive", 40); /* model */

4. ./configure
5. make
6. по избор "make install" или може да си го ползвате от директорията
7. в директория pc-bios се слагат файловете:
    bios.bin
    vgabios-cirrus.bin
    pxe-rtl8139.bin
   
    могат да се намерят на
    http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/bios.bin?root=qemu
    http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/vgabios-cirrus.bin?root=qemu
    http://svn.savannah.gnu.org/viewvc/*checkout*/trunk/pc-bios/pxe-rtl8139.bin?root=qemu

8. конвертирате vmdk имиджа
qemu-img convert "MikroTik v5.xx.vmdk" -O qcow2 mt5.qcow2

9. стартирате с имидж mt5.qcow2
пример:
./x86_64-softmmu/qemu-system-x86_64 -drive file=mt5.qcow2



Наличието на подробно описание за това как да се възползваме от  пиратски софтуер не е оправдание за употребата му!



Статията е публикувана единствено с научна цел и автора отрича да се е докосвал до въпросният пиратски софтуер.


понеделник, 21 ноември 2011 г.

Как да възстановим изтрит файл в linux

Например изтритият файл е access_log на Apache. Какво да направим:

lsof | grep access_log

Ще ни даде output от вида:
httpd 26120 apache 42w REG 253,0 5852 12222531 /apachelogs
/access_log (deleted)

важно е в случая е да запомним pid-a: 26120 и fd-то: 42. Знаейки това можем да си върнем файла като изпълним следната команда:


cat /proc/26120/fd/42 > /apachelogs/access_log


В случая с Apache, добра идея е да рестартираме сервиса след това.


Happy end!

Ето и един линк с визуални примери за други lsof приложения:
http://danielmiessler.com/study/lsof/