Archive for fevereiro 2014
wig - Ferramenta para adquirir informação sobre WebApp // Identificador de CMS
wig é uma ferramenta open source desenvolvida em python que permite identificar tipos de CMS.
Funciona através da pesquisa de impressões digitais de ficheiros estáticos e extraindo a versão de ficheiros conhecidos. A deteção de versões é baseada em md5 checksums de ficheiros estáticos, regex e correspondência de strings.
O sistema operativo é identificado usando o valor da variável 'server' e 'X-Power-By' no cabeçalho (header) da resposta. A deteção do sistema operativo é baseada em cabeçalhos e identificação de pacotes descritos no cabeçalho 'server'.
O autor utiliza scripts para atualizar automaticamente a listagem de checksums md5 da ferramenta quando saem novas versões de CMS open source. Esta é maior vantagem desta ferramenta em comparação com outras ferramentas parecidas tais como BlindElephant e WhatWeb.
Ajuda wig:
wig.py --help
usage: wig.py [-h] [-p {1,2,4}] host
WebApp Information Gatherer
positional arguments:
host the host name of the target
optional arguments:
-h, --help show this help message and exit
-p {1,2,4} select a profile: 1) Make only one request - 2) Make one request
per plugin - 4) All
Como correr o script:
# wig.py http://www.example.com/
CMS Concrete5: [5.6.1.2]
Operating System Microsoft Windows Server: [2003]
Server Info Microsoft-IIS: [6.0]
______________________________________________________________
Time: 35.3 sec | Plugins: 59 | Urls: 312 | Fingerprints: 13972
Mais informação aqui: https://github.com/jekyc/wig
Download aqui: https://github.com/jekyc/wig/archive/master.zip
segunda-feira, 24 de fevereiro de 2014
Código [C#] - Windows Userrole e Correr aplicação no startup
O outro dia ao programar deparei-me com uns problemas:
- Como posso verificar o tipo de utilizador (User ou Administrator)?
- Como fazer que a aplicação acrescente no Registry uma chave quando se instala ou corre, para que o programa arranque sempre com o Windows independentemente do tipo de utilizador?
- E verificar se por acaso a chave já foi acrescentada no Registry?
Bom vamos a isto, espero que me consigam acompanhar e que me faça entender:
1º Parte do problema, como obter o tipo de utilizador logado no Windows:
Com este pedaço de código obtemos o nome de sistema do utilizador, o tipo de conta que está a correr e se tem privilégios de administração do sistema. Consegue-se obter muita mais informação, mas para o objetivo pretendido chega.
2º Parte do problema, acrescentar no Registry uma chave:
O local de escrita de uma chave no Registry do Windows depende dos privilégios que o utilizador tem, isto é, para utilizadores com conta sem poderes de administração só podem ler e escrever na sua conta (CurrentUser):
Se o utilizador conseguir elevar os seu privilégios para administrador, consegue ler e escrever na sua conta, nas contas adjacentes se conseguir obter os SID's de utilizadores e na conta local da máquina (LocalMachine):
3ºParte e ultima parte do problema, verificar se a chave já foi acrescentada no Registry?
Talvez a parte mais fácil, um simples if para resolver o caso:
Função com o código completo:
Duvidas?
Bom espero que este pedaço de código ajude alguém a resolver o mesmo ou outro problema.
- Como posso verificar o tipo de utilizador (User ou Administrator)?
- Como fazer que a aplicação acrescente no Registry uma chave quando se instala ou corre, para que o programa arranque sempre com o Windows independentemente do tipo de utilizador?
- E verificar se por acaso a chave já foi acrescentada no Registry?
Bom vamos a isto, espero que me consigam acompanhar e que me faça entender:
1º Parte do problema, como obter o tipo de utilizador logado no Windows:
WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); bool IsAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
Com este pedaço de código obtemos o nome de sistema do utilizador, o tipo de conta que está a correr e se tem privilégios de administração do sistema. Consegue-se obter muita mais informação, mas para o objetivo pretendido chega.
2º Parte do problema, acrescentar no Registry uma chave:
O local de escrita de uma chave no Registry do Windows depende dos privilégios que o utilizador tem, isto é, para utilizadores com conta sem poderes de administração só podem ler e escrever na sua conta (CurrentUser):
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
Se o utilizador conseguir elevar os seu privilégios para administrador, consegue ler e escrever na sua conta, nas contas adjacentes se conseguir obter os SID's de utilizadores e na conta local da máquina (LocalMachine):
RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
3ºParte e ultima parte do problema, verificar se a chave já foi acrescentada no Registry?
Talvez a parte mais fácil, um simples if para resolver o caso:
string val = (string)rkApp.GetValue("App");
if (val == string.Empty || val == null){
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
}
else{}
Função com o código completo:
private static void SetStartup(){
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
bool IsAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
if (IsAdmin){
using(RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
if (rkApp != null){
string val = (string)rkApp.GetValue("App");
if (val == string.Empty || val == null){
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
}
else{}
}
else{
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
}
}
else{
using (RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
if (rkApp != null){
string val = (string)rkApp.GetValue("App");
if (val == string.Empty || val == null){
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
}
else{}
}
else{
rkApp.SetValue("App", String.Format("\"{0}\"", Application.ExecutablePath));
}
}
}
Duvidas?
Bom espero que este pedaço de código ajude alguém a resolver o mesmo ou outro problema.
DSD7JC65XQ4Z
domingo, 23 de fevereiro de 2014
Tag :
.net 3.5,
C#,
Código,
Dev,
Developer,
Programação,
Startup,
Userrole,
Windows,
Windows Registry
Live View - Máquina Virtual a partir de imagens RAW
Live View é uma ferramenta forense de base Java que tem a capacidade de criar uma máquina virtual VMware a partir de imagens RAW (.dd) ou discos físicos. Isto permite uma imagem ou disco e ganhar interactividade e prespectiva do ambiente ao nível de utilizador tudo isto sem modificar a imagem ou disco. Todas as alterações feitas ao disco são escritas num ficheiro à parte, o que permite ao utilizador reverter ao estado inicial.
Capacidades de booting Live View:
- Imagens completas em RAW
- Imagens de partições
- Discos físicos (ligados via USB ou Firewire)
Corre nos sistemas operativos:
- Windows 98, Me, NT, 2000, XP, 2003, Vista e 2008
- Linux (suporte limitado)
Live View automatiza uma grande variedade de tarefas técnicas, incluindo:
- Resolução de conflitos de hardware resultantes de booting em hardware diferente daquele em que o sistema operacional foi instalado originalmente.
- A criação de MBR personalizado para apenas imagens de partição
- Especificar corretamente um disco virtual para combinar com a imagem original ou disco físico.
Capacidades de booting Live View:
- Imagens completas em RAW
- Imagens de partições
- Discos físicos (ligados via USB ou Firewire)
Corre nos sistemas operativos:
- Windows 98, Me, NT, 2000, XP, 2003, Vista e 2008
- Linux (suporte limitado)
Live View automatiza uma grande variedade de tarefas técnicas, incluindo:
- Resolução de conflitos de hardware resultantes de booting em hardware diferente daquele em que o sistema operacional foi instalado originalmente.
- A criação de MBR personalizado para apenas imagens de partição
- Especificar corretamente um disco virtual para combinar com a imagem original ou disco físico.
Mais informações em: http://liveview.sourceforge.net/index.html
Download em: http://sourceforge.net/projects/liveview/files/
Análise Forense em Browsers - Mozilla Firefox
Neste tópico vamos ver como partes fundamentais de analise forense em browsers Mozilla Firefox, vulgarmente conhecidos por Firefox.
Breve história do Firefox:
Mozilla Firefox é um browser livre e multiplataforma desenvolvido pela Mozilla Foundation que conta com a ajuda de centenas de colaboradores.
A intenção da fundação é desenvolver um browser leve, seguro, intuitivo e altamente extensível.
Com mais de 25 milhões de downloads nos primeiros 99 dias após o lançamento, o Firefox tornou-se uma das aplicações em código-livre mais usadas por utilizadores domésticos.
Atingiu marca de 50 milhões de downloads em 29 de abril de 2005, aproximadamente 6 meses após o lançamento da versão 1.0.
A 26 de julho de 2005, o Firefox alcançou os 75 milhões de downloads, e a 19 de outubro de 2005 alcançou os 100 milhões de downloads, antes de completar o primeiro ano da versão 1.0 .
Em 26 de julho de 2012 estariam disponíveis cerca de 17.000 add-ons e já contavam com 3 bilhões de downloads.
O Firefox destaca-se como alternativa ao Microsoft Internet Explorer e reativou a chamada Guerra dos browsers.
Segundo a StatCounter, atualmente cerca de 20,01% de todos os utilizadores da Internet de todo o mundo utilizam o Firefox, sendo o terceiro browser mais usado.
O browser tem tido sucesso particular na Indonésia, Alemanha e Polónia, onde ele é o browser mais popular com 58%, 45% e 44% do mercado de participação.
Análise:
Como dito em cima o Firefox é um browser open-source multiplataforma, existem versões em Windows, Linux e Mac OSX.
Diretórios de interesse do Firefox:
Windows XP e versões anteriores:
C:\Documents and Settings\%username\Local Settings\Application Data\Mozilla\Firefox\Profiles
Windows Vista e 7:
C:\Users\%username%\%appdata%\Mozilla\Firefox\Profiles
Windows 8:
C:\Users\%username%\AppData\Roaming\Mozilla\Firefox\Profiles
Linux:
/home/$username/.mozilla/firefox/Profiles
Mac OS X:
/Users/$username/Library/Application Support/Firefox/Profiles/
Profiles.ini:
Neste diretório encontra-se um ficheiro de nome 'profiles.ini', este ficheiro contém informação e server para gerir perfis do Firefox. O ficheiro está em texto simples, e pode ser facilmente aberto, visualizado e editado utilizando um editor de texto tipo Notepad.
O exemplo que se segue mostra o conteúdo do profiles.ini para um único perfil:
Caminho Linux: /home/$username/.mozilla/firefox/profiles.ini
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=ozxfg1g3.default
Quando o Firefox começa este ficheiro ajuda a determinar que diretório de utilizador carregar. Como é possível verificar a variável path aponta para o diretório que contem os dados do perfil.
Em ambientes com contas múltiplas, a variável StartWithLastProfile=1 faz com que o Firefox salte a pergunta que perfil quer utilizar e usa o ultimo perfil usado por defeito. Com ambientes múltiplos existem perfis adicionais e o ultimo a ser usado está indicado pela variável Default=1, como é possível verificar no exempla abaixo:
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path= profiles/ozxfg1g3.default
[Profile1]
Name=alicew
IsRelative=0
Path=Profiles/1w0ed5ct.emanuel
Default=1
[Profile2]
Name=sheldon
IsRelative=0
Path=Dfgh5ty.dadinho
De acordo com o exemplo anterior a variável IsRelative=1 refere que ozxfg1g3.default é o diretório por defeito do Firefox.
IsRelative=0 refere a outros perfis personalizados.
StartWithLastProfile=1 valida a opção "Não voltar a perguntar no arranque - Don't ask at start up". Neste exemplo o último perfil usado foi o 1w0ed5ct.emanuel porque a variável Default=1 .
Basicamente isto é tudo o que há a saber sobre gestão de perfis no Firefox.
Dentro de um diretório de perfil especifico pode-se encontrar ficheiros e subdiretórios. O Firefox guarda dados em ficheiros base de dados SQLite. Estes ficheiros são aqueles que têm o grosso das provas numa pesquisa forense.
Formhistory.sqlite - Contém dados sobre o histórico de usernames, inputs submetidos e inputs em caixas de pesquisa, etc...
Places.sqlite - Contém todo o histórico de páginas visitadas.
Download.sqlite - Contém informação sobre os ficheiros descarregados.
Cookies.sqlite - Contém informação sobres os cookies dos sites visitados.
Signons.sqlite - Contém as passwords salvas no Firefox.
Formhistory.sqlite:
Este ficheiro de base de dados do tipo SQLite contém nomes, usernames, emails, e todos os tipos de inputs introduzidos pelo utilizador. Para podermos abrir este tipo de ficheiro necessitamos de uma ferramenta que abra e interprete SQLite, o sqlite3 faz esse trabalho.
A base de dados Formhistory.sqlite contém as colunas:
id; fieldname; value; timesUsed; firstUsed; lastUsed;
Fazemos uma query simples:
select * from moz_formhistory;
Que nos devolve o seguinte resultado:
1|searchbar-history|chrome download|1|1360055150428512|1360055150428512
2|searchbar-history|skype|1|1360055164035421|1360055164035421
3|username|Un0wn_X|1|1360208052290891|1360208052290891
É possível ter o output em .csv, usando os seguintes passos:
.headers on
.mode csv
.output file.csv
select * from moz_formhistory;
Histórico Web (Place.sqlite):
Todo o histórico de navegação na internet via Firefox fica guardado na base de dados places.sqlite, ficheiro que contém múltiplos esquemas (schemas).
As tabelas que fazem parte do places.sqlite são:
moz_anno_attributes;
moz_favicons;
moz_keywords;
moz_annos;
moz_historyvisits;
moz_places;
moz_bookmarks;
moz_inputhistory;
moz_bookmarks_roots;
moz_items_anos;
Para encontrar as URLs visitadas e a data de visita temos que de fazer uma query à tabela moz_places e utilizando a coluna visit_date da tabela moz_historyvisits.
A coluna id na tabela moz_places corresponde à coluna place_id na tabela moz_historyvisits. A coluna visited_date está convertida em PRTime (um integer 64-bits de contagem em microssegundos).
A query seguinte devolve o resulta de uma forma fácil de ler:
SELECT datetime(moz_historyvisits.visit_date/1000000,'unixepoch'), moz_places.url FROM moz_places,moz_historyvisits WHERE moz_places.id = moz_historyvisits.place_id ;
Resultado:
2013-02-06 14:58:20;http://allblogsl.blogspot.com/
2013-02-06 14:57:13;http://allblogsl.blogspot.com/2013/02/rooting-kioptrix-4.html
2013-02-06 14:52:59;http://forum.intern0t.org/
2013-02-06 14:55:23;http://forum.intern0t.org/
2013-02-06 14:55:21;http://gmail.com/
2013-02-06 14:56:31;http://facebook.com/
2013-02-06 14:56:44;http://google.com/ncr
2013-02-06 14:55:38;http://www.youtube.com/music
2013-02-06 14:55:41;http://www.unownsec.blogspot.com
2013-02-06 14:56:10;http://www.exploit-db.com/ghdb/3807
2013-02-06 14:56:40;http://www.exploit-db.com/ghdb/3808
2013-02-06 14:56:36;http://www.facebook.com/
2013-02-06 15:01:04;http://www.zub-moon.com/
2013-02-06 14:53:16;https://encrypted.google.com/
2013-02-06 14:55:31;https://encrypted.google.com/
2013-02-06 14:53:40;https://encrypted.google.com/search?q=sadsad&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
2013-02-06 14:53:02;https://forum.intern0t.org/forum.php
2013-02-06 14:55:28;https://forum.intern0t.org/forum.php
Marcadores/Bookmarks (Place.sqlite):
Marcadores também são guardados na base de dados places.sqlite. Para obtermos os marcadores temos de nos focar nas tabelas moz_bookmarks, moz_places e moz_items_anons.
Utilizando a query seguinte conseguimos extrair os marcadores guardados no Firefox:
SELECT moz_bookmarks.type, moz_bookmarks.title, moz_bookmarks.dateAdded, moz_bookmarks.lastModified, moz_places.url, moz_places.title, moz_places.rev_host, moz_places.visit_count FROM moz_places, moz_bookmarks WHERE moz_bookmarks.fk = moz_places.id AND moz_bookmarks.type <> 3;
Resultado:
type;title;dateAdded;lastModified;url;title;rev_host;visit_count
1;Getting Started;1356598969855000;1356598969856000;http://www.mozilla.com/en-US/firefox/central/;;moc.allizom.www.;0
1;Help and Tutorials;1356598969859000;1356598969861000;http://www.mozilla.com/en-US/firefox/help/;;moc.allizom.www.;0
1;Customize Firefox;1356598969862000;1356598969865000;http://www.mozilla.com/en-US/firefox/customize/;;moc.allizom.www.;0
1;Get Involved;1356598969866000;1356598969867000;http://www.mozilla.com/en-US/firefox/community/;;moc.allizom.www.;0
1;About Us;1356598969868000;1356598969869000;http://www.mozilla.com/en-US/about/;;moc.allizom.www.;0
1;Most Visited;1356598970368000;1356598970372000;place:redirectsMode=2&sort=8&maxResults=10;;;0
Utilizaremos a mesma query mas desta vez com as datas legíveis:
SELECT moz_bookmarks.type, moz_bookmarks.title, datetime(moz_bookmarks.dateAdded/1000000,'unixepoch'), datetime(moz_bookmarks.lastModified/1000000,'unixepoch'), moz_places.url, moz_places.title, moz_places.rev_host, moz_places.visit_count FROM moz_places, moz_bookmarks WHERE moz_bookmarks.fk = moz_places.id AND moz_bookmarks.type <> 3;
Resultado:
1;Getting Started;2012-12-27 09:02:49;2012-12-27 09:02:49;http://www.mozilla.com/en-US/firefox/central/;;moc.allizom.www.;0
1;Help and Tutorials;2012-12-27 09:02:49;2012-12-27 09:02:49;http://www.mozilla.com/en-US/firefox/help/;;moc.allizom.www.;0
1;Customize Firefox;2012-12-27 09:02:49;2012-12-27 09:02:49;http://www.mozilla.com/en-US/firefox/customize/;;moc.allizom.www.;0
1;Get Involved;2012-12-27 09:02:49;2012-12-27 09:02:49;http://www.mozilla.com/en-US/firefox/community/;;moc.allizom.www.;0
1;About Us;2012-12-27 09:02:49;2012-12-27 09:02:49;http://www.mozilla.com/en-US/about/;;moc.allizom.www.;0
1;Most Visited;2012-12-27 09:02:50;2012-12-27 09:02:50;place:redirectsMode=2&sort=8&maxResults=10;;;0
1;Recently Bookmarked;2012-12-27 09:02:50;2012-12-27 09:02:50;place:folder=BOOKMARKS_MENU&folder=UNFILED_BOOKMARKS&folder=TOOLBAR&queryType=1&sort=12&excludeItemIfParentHasAnnotation=livemark%2FfeedURI&maxResults=10&excludeQueries=1;;;0
1;Recent Tags;2012-12-27 09:02:50;2012-12-27 09:02:50;place:type=6&sort=14&maxResults=10;;;0
Dados de sessões salvas (Saved Sessions Data):
Quando o Firefox "crasha" ou quando não é terminado corretamente um ficheiro de nome sessiondata.js é criado e guardado, este ficheiro ajuda o Firefox a restaurar a sessão que não terminou de maneira correta.
O Firefox guarda este ficheiro em formato JSON (Javascript Object Notation Format), que pode ser visualizado com qualquer editor de texto tipo Notepad, mas os dados estarão desorganizados e será de difícil leitura. Para vermos o ficheiro estruturado e organizado utilizaremos um o JSON Viewer, um visualizador de ficheiros JSON.
Utilizando o JSON Viewer conseguimos pesquisar mais facilmente tabelas, janelas, inputs e cookies temporários da ultima sessão que foi interrompida.
Passwords (Signons.sqlite):
O Firefox guarda as passwords salvas na base de dados signons.sqlite, juntamente com o ficheiro encriptado key3.db . Existem vários softwares que ajudam a recuperação das passwords, tais como Firepassword Viewer, FirePass, FireMaster Linux e FirePassword.
Utilizando a query seguinte conseguimos extrair alguns dados interessantes dos utilizadores e passwords guardadas no Firefox:
SELECT id, hostname, httpRealm, formSubmitURL, usernameField, passwordField, encryptedUsername, encryptedPassword, guid, encType, datetime(timeCreated/1000000,'unixepoch'), datetime(timeLastUsed/1000000,'unixepoch'),datetime(timePasswordChanged/1000000,'unixepoch'), timesUsed FROM moz_logins
Resultado:
1;http://sup3rscorner.net;;http://sup3rscorner.net;login;password;MDIEEPgAABBBBAAACC CCCEwFAYIKoZIhvcWEQFnKrGFEqqqweRQTS3dEzNNCg==;MFoE EPgAAAAAAAWWWWWWAAEwFAYIKosklasvcNAwcECF2QDIfJd2/YBDAtTffkYu31kBzq0LXr7WmnYxCmoDvtGBh5O1bhOpnKLOpoW 2HYjOWl8HYldG2Vd/A=;{fcbb7594-2fd5-43ce-aa5f-f80304e6c468};1;2012-12-27 09:02:49;2012-12-27 09:02:49;2012-12-27 09:02:49;1
Cache:
Visualizar a cache também é muito importante. A cache tal como no Internet Explorer está dividida por vários ficheiros e vários diretórios. Vamos utilizar a ferramenta Mozillacacheview, outra ferramenta da distribuidora Nirsoft, sem esta ajuda preciosa não conseguiríamos obter o conteúdo do que está em cache.
Para fazer um dump da informação da cache para um ficheiro texto, temos que executar o mozillacacheview via linha de comandos, utilizando o seguinte comando:
MozillaCacheView.exe /stext cache.txt
Obtemos o seguinte resultado:
==================================================
Filename : 1.xml
Content Type : text/xml; charset=utf-8
URL : https://addons.mozilla.org/blocklist/3/%7Bec8030f7-c20a-464f-9b0e-13a3a9e97384%7D/11.0/Firefox/20120228210006/WINNT_x86-msvc/en-US/beta/Windows_NT%206.1/default/default/8/23/1
File Size : 48,359
Fetch Count : 1
Last Modified : 2/7/2013 10:53:57 PM
Last Fetched : 2/7/2013 10:53:53 PM
Expiration Time : 2/7/2013 10:57:17 PM
Server Name : web2.addons.phx1.mozilla.com
Server Response : HTTP/1.1 200 OK
Server Time : 2/7/2013 9:57:21 PM
Server Last Modified: N/A
Content Encoding :
Cache Name : 71FB9d01
Missing File : No
Cache Control : max-age=3600
ETag :
==================================================
Filename : 1359225691.css
Content Type : text/css
URL : https://forum.intern0t.org/clientscript/vbulletin_css/style00009l/additional.css?d=1359225691
File Size : 8,021
Fetch Count : 4
Last Modified : 2/7/2013 10:49:20 PM
Last Fetched : 2/7/2013 10:49:19 PM
Expiration Time : 2/7/2013 10:49:20 PM
Server Name : Apache
Server Response : HTTP/1.1 200 OK
Server Time : 1/30/2013 6:24:30 PM
Server Last Modified: 1/26/2013 10:41:32 AM
Content Encoding : gzip
Cache Name :
Missing File : No
Cache Control :
ETag : "42620c-bcef-4d435648a8f00"
==================================================
Extensões (Extension.sqlite):
Extensões são guardadas na base de dados extension.sqlite. É constituída por uma tabela simples com as seguintes colunas:
internal_id; id; syncGUID; location; versiontype; internalName; updateURL; updateKey; optionsURL; optionsType; aboutURL; iconURL; icon64URL; defaultLocale; visible; active; userDisabled; appDisabled; pendingUninstall; descriptor; installDate; updateDate; applyB
ackgroundUpdates; bootstrap; skinnable; size; sourceURI; releaseNotesURI; softDisabled; isForeignInstall; hasBinaryComponents; strictCompatibility;
Conseguimos obter a listagem de extensões utilizando a query:
select * from addon
Resultado:
1; testpilot@labs.mozilla.com; DhuDl_DAAg6C; app-profile; 1.2.2; extension;;;;;;; chrome://testpilot/skin/testpilot_32x32.png;; 1; 1; 1; 0; 0; 0; C:\Users\Un0wn_X\AppData\Roaming\Mozilla\Firefox\Profiles\1w0ed5ct.default\extensions\testpilot@labs.mozilla.com.xpi; 1356598961406; 1357045887854; 1; 0; 0; 1261351; https://addons.cdn.mozilla.net/storage/public-staging/13661/test_pilot-1.2.2-fx.xpi; https://addons.mozilla.org/versions/updateInfo/1375230/en-US/; 0; 0; 0; 0
2; {35379F86-8CCB-4724-AE33-4278DE266C70}; OR7Ax6piYzy2; app-profile; 1.0.8; extension;;;; chrome://grabpro/content/config.xul;; chrome://grabpro/content/about.xul; chrome://grabpro/skin/OneClickLogo.png;; 2; 1; 1; 0; 0; 0; C:\Program Files (x86)\Orbitdownloader\addons\OneClickYouTubeDownloader; 1356489886290; 1356489886290; 1; 0; 0; 541701;;; 0; 0; 1; 0
Cookies (Cookies.sqlite):
Os cookies ao contrário do Internet Explorer que são guardados em ficheiros independentes, no Firefox são guardados numa base de dados, cookies.sqlite.
Conseguimos obter a informação disponível sobre os cookies utilizando a query:
select name,value,host,path,expiry,datetime(lastAccessed/1000000,'unixepoch') from moz_cookies;
Resultado:
PREF; ID=cc5b4db31e95c539:U=51ac107344a2847c:FF=0:TM=1360055094:LM=1360055164:S=wrOb53NnmEx0x77M; .google.com; /; 1423127164; 2013-02-07 13:30:14
NID; 67=bye1hEM5ZQr2DRDANLajYiwJ0Hn39Ag4p0tVWmvgA5nbiAWvNc9hkXAOjPFFym7mF_HFT3Qd6tDtEJL-uRDfyT9HnFGimTQnO1BZS2EsB3RKTVEh19GXZ53UYMlLv-TK; .google.com; /; 1376019397; 2013-02-07 13:30:14
Downloads (Downloads.sqlite):
O histórico de downloads está disponível na base de dados downloads.sqlite.
Conseguimos obter que downloads foram efetuados utilizando a query:
select id,name,source,target,tempPath,datetime(startTime/1000000,'unixepoch'),datetime(endTime/1000000,'unixepoch') from moz_downloads;
Resultado:
1; mspass.zip; http://www.nirsoft.net/utils/mspass.zip; file:///C:/Users/Un0wn_X/Downloads/mspass.zip;; 2013-02-08 08:34:48; 2013-02-08 08:34:55
quarta-feira, 19 de fevereiro de 2014
Análise Forense em Browsers - Internet Explorer
Hoje em dia as pessoas passam maioritariamente do tempo a navegar na internet utilizando browsers. Com esta utilização muita informação se pode extrair e recolher.
Neste artigo vamos utilizar só ferramentas e recursos de código aberto, pois normalmente as ferramentas de análise forense computacional são demasiado caras.
Vamos começar pelo browser Internet Explorer, nativo e presente em todas as versões do Windows.
Index.dat:
O index.dat é um ficheiro de base de dados utilizado pelo internet explorer,
no formato MSIECF(Microsoft Internet Explorer Cache File Format) que contem a informação de todas as paginas visitadas incluído a data de acesso, localização no diretório de cache, HTTP headers e muito mais. Muitos softwares, como o Skype, o Live Messenger entre outros usam o Internet Explorer para mostrarem informação e para se ligarem à internet, logo toda essa informação também está disponível no ficheiro index.dat.
Localização do ficheiro index.dat:
Windows XP e anteriores:
C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5
Windows vista e 7:
C:\Users\%username%\ AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
Windows 8 será discutido noutro tópico.
Vamos começar por pesquisar o conteúdo do ficheiro index.dat, para isso utilizaremos a ferramenta Pasco, desenvolvida pela Foundstone, é uma ferramenta antiga mais ainda muito utilizada nos dias que correm e presente em muitas distribuições de Live Forensics.
Correndo a ferramenta numa shell linux ./pasco -d index.dat , obtemos o seguinte resultado, com o seguinte formato:
TYPE, URL, MODIFIED TIME, ACCESS TIME, FILENAME, DIRECTORY, HTTP HEADERS
Existe outra ferramenta de nome msiecfexport capaz de extrair e organizar a informação do ficheiro índex.dat de uma forma mais clara.
Cache:
No passo seguinte vamos pesquisar o conteúdo dos ficheiros de cache. Os ficheiros de cache são guardados localmente em disco e são o resultado da navegação na internet.
Estes ficheiros são guardados nos seguintes diretórios:
Windows XP :
C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5
Windows Vista e 7:
C:\Users\%username%\AppData\ Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
Windows 8 será discutido noutro tópico.
Um exemplo utilizando o msiecfexport:
Record type : URL
Offset range : 67968 - 68224 (256)
Location : temp:http://thepaperwall.com/wallpapers/girls/big/big_45fb5c22369e1c5d517f0282bd9250105f407e77.jpg
Primary time : Feb 05, 2013 04:26:07.030000000
Secondary time : Feb 05, 2013 04:26:02.830616500
Filename : big_45fb5c22369e1c5d517f0282bd9250105f407e77[1].jpg
Cache directory index : 1 (0x01)(OV08Z8PA)
Como se pode verificar o ficheiro big_45fb5c22369e1c5d517f0282bd9250105f407e77[1].jpg está localizado localmente no diretório de cache OV08Z8PA. Sendo assim, a localização exata do ficheiro é C:\Users\%username%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\OV08Z8PA\big_45fb5c22369e1c5d517f0282bd9250105f407e77[1].jpg .
Utilizando a ferramenta Pasco, o output é o seguinte:
URL temp:http://thepaperwall.com/wallpapers/g...105f407e77.jpg 02/04/2013 20:26:02 02/04/2013 20:26:07 big_45fb5c22369e1c5d517f0282bd9250105f407e77[1].jpg OV08Z8PA
Cookies:
Cookie, testemunho de ligação, ou, simplesmente, testemunho é um grupo de dados trocados entre o browser e o servidor de páginas, colocado num ficheiro de texto criado no computador do utilizador.
A sua função principal é de manter a persistência de sessões HTTP. A utilização e implementação de cookies foi um acrescento ao HTTP e muito debatida na altura em que surgiu o conceito, introduzido pela Netscape, devido às consequências de guardar informações confidenciais num computador, já que por vezes pode não ser devidamente seguro.
Dito isto, os Cookies podem ser encontrados em:
Windows XP:
C:\Documents and Settings\%username%\Cookies
Windows Vista e 7:
C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Cookies
Windows 8 será discutido noutro tópico.
Os Cookies normalmente estão em formato texto, e é muito difícil compreender a sua estrutura:
s_vsn_skypeallprod_1
3876974264756
skype.com/
1600
2798871808
31012227
2587949280
30277570
*
s_vi
[CS]v1|288542BB05010F82-4000012C80000C57[CE]
skype.com/
1024
505403008
30645652
3108158896
30278524
*
SC
CC=:CCY=:LC=en:TM=1359888053:TS=1359888053:TZ=:VER=0/6.1.0.129/272
skype.com/
1536
1767549056
30351564
3897935152
30278138
*
Vamos utilizar um ferramenta chamada Galleta, lançada pela McAfee labs.
Cookie: C:\Users\Osanda\AppData\Roaming\Microsoft\Windows\Cookies\un0wn@skype[2].txt
SITE, VARIABLE, VALUE, CREATION, TIME EXPIRE, TIME, FLAGS
skype.com/ s_vsn_skypeallprod_1 3876974264756 Thu Jan 31 14:52:34 2013 Tue Jan 31 14:52:34 2023 1600
skype.com/ s_vi [CS]v1|288542BB05010F82-4000012C80000C57[CE] Tue Feb 5 08:42:25 2013 Sun Feb 4 08:42:41 2018 1024
skype.com/ SC CC=:CCY=:LC=en:TM=1359888053:TS=1359888053:TZ=:VER=0/6.1.0.129/272 Sun Feb 3 10:40:39 2013 Mon Feb 3 10:40:53 2014 1536
A informação fica estruturada e permite uma melhor compreensão da mesma.
Favoritos:
Pesquisar os favoritos de um utilizador é sempre interessante, pode-se conseguir identificar alguns dos seu interesses.
Localização dos Favoritos:
Windows XP:
C:\Documents and Settings\%username%\Favorites
Windows Vista e 7:
C:\Users\%username%\Favorites
Windows 8 será discutido noutro tópico.
Favoritos estão divididos com ícones diferentes. Adicionei o website Google.pt aos favoritos, conseguimos observar que o ficheiro Google.url foi adicionado ao diretório.
[DEFAULT]
BASEURL=http://www.google.pt/
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.google.pt/
IDList=
IconFile=http://www.google.pt/favicon.ico
IconIndex=1
Artigo original: https://forum.intern0t.org/security-tutorials-guides/4700-browser-forensic-part-1-a.html
terça-feira, 18 de fevereiro de 2014
Write Blockers - Parte 1
O que são Write Blockers?
Write-blockers, bloqueadores de escrita, são dispositivos que permitem a recolha de informação de uma drive sem existir a possibilidade de acidentalmente danificar o conteúdo da mesma.
O seu nome vem da particularidade de apenas permitirem comandos de leitura e de bloquearem os de escrita.
Existem dois tipos de Write-blockers, Nativos e Tailgate.
Os dispositivos Nativos usam o mesmo interface nos dois sentidos de entrada de saída, por exemplo IDE para IDE.
Os dispositivos Taigate usam interfaces diferentes para a entrada e para a saída, por exemplo USB para SATA.
Steve Bress e Mark Menz foram os inventores do write-blockers de discos rígidos (Patente Estados Unidos #6813682 - http://www.google.com/patents/US6813682).
Existem write-blockers tanto em hardware como em software, maioria em software foram desenvolvidos especificamente para bloquearem a escrita para um determinado sistema operativo, isto é, um desenvolvido para Windows não funciona para discos com partições Linux. Os write-blockers em hardware funcionam independentemente do tipo de partição utilizado.
Write-blockers, bloqueadores de escrita, são dispositivos que permitem a recolha de informação de uma drive sem existir a possibilidade de acidentalmente danificar o conteúdo da mesma.
O seu nome vem da particularidade de apenas permitirem comandos de leitura e de bloquearem os de escrita.
Existem dois tipos de Write-blockers, Nativos e Tailgate.
Os dispositivos Nativos usam o mesmo interface nos dois sentidos de entrada de saída, por exemplo IDE para IDE.
Os dispositivos Taigate usam interfaces diferentes para a entrada e para a saída, por exemplo USB para SATA.
Steve Bress e Mark Menz foram os inventores do write-blockers de discos rígidos (Patente Estados Unidos #6813682 - http://www.google.com/patents/US6813682).
Existem write-blockers tanto em hardware como em software, maioria em software foram desenvolvidos especificamente para bloquearem a escrita para um determinado sistema operativo, isto é, um desenvolvido para Windows não funciona para discos com partições Linux. Os write-blockers em hardware funcionam independentemente do tipo de partição utilizado.
Preparação para Certificação Oracle - 1Z0-144 : Base de Dados Oracle 11G : Programar em PL/SQL - Parte 1
Identificação dos diferentes tipos de blocos PL/SQL
Um bloco é uma unidade básica num programa PL/SQL.
Blocos de PL/SQL agrupam declarações e demonstrações relacionadas.
Quatro palavras reservadas que definem um bloco PL/SQL são:
-DECLARE
-BEGIN
-EXCEPTION
-END
Estas palavras reservadas são utilizadas para fazer até três secções de um bloco:
-DECLARE:
A secção de declaração é iniciada com a palavra reservada DECLARE e termina quando começa a secção de código executável.
Esta secção é opcional e é utilizada para declarar variáveis, constantes, cursores e tipos de dados definidos pelo utilizador.
-BEGIN:
A secção executável começa com a palavra reservada BEGIN e acaba com a palavra reservada END.
Esta é a única secção obrigatória num bloco PL/SQL e tem de conter pelo menos uma instrução.
A secção executável pode conter um número ilimitado de blocos PL/SQL.
Esta secção contém o "sumo" de um programa PL/SQL.
-EXCEPTION:
O tratamento de exceções é utilizado para apanhar e tratar erros de run-time.
Começa com a palavra reservada EXCEPTION e termina com a palavra reservada END.
Esta secção é opcional.
As três palavras reservadas não acabam com ponto e vírgula (;) , contudo a palavra reservada END termina.
Também todas as instruções SQL e PL/SQL dentro de um bloco terminam com ponto e vírgula.
Exemplo básico de um bloco PL/SQL seria:
DECLARE
Existem dois tipos gerais de blocos PL/SQL:
Blocos Anónimos (Anonymous Blocks) :
Estes são blocos PL/SQL sem nome. Podem ser executados de imediato a partir do SQL*Plus, SQL*Developer ou outra ferramenta similar.
Blocos anónimos também podem ser declarados dentro de uma aplicação onde devia de ser executado.
Não são guardados na base de dados e são passados para o motor de PL/SQL para serem compilados e executados sempre que o bloco correr.
Blocos anónimos não podem ser chamados por outros blocos PL/SQL.
Blocos anónimos podem ser interpretados por ferramentas tipo SQL*Plus ou embebidos num pré compilador Oracle ou ainda num programa OCI(Oracle Call Interface).
Um bloco anónimo é compilado cada vez que é carregado em memória em três estágios:
1. Verificação de Sintaxe (Syntaxe checking): A sintaxe PL/SQL é verificada e uma arvore de análise é gerada.
2. Verificação de Semântica (Semantic checking): Verificação de tipo e verificação adicional da arvore de análise.
3. Geração de Código (Code generation): O código compilado é criado.
Subprogramas (Subprograms) :
Um subprograma é um bloco PL/SQL com nome que é guardado na base de dados.
Por ter nome e estar disponível nas tabelas da base de dados, blocos com nome podem ser invocados repetidamente.
Subprogramas podem conter parâmetros, e os valores destes podem ser diferentes a cada invocação.
Existem dois tipos de subprogramas:
-Procedures
-Funções (Functions)
A principal diferença entre os dois é que as funções devolvem sempre um valor quando chamadas.
Triggers :
Um trigger é um bloco anónimo PL/SQL especial que pode ser definido para atuar antes ou depois de um comando de SQL.
Pode atuar tanto a nível de um comando como atuar sobre linhas afetadas por um comando.
Também é possível definir triggers INSTEAD OF e triggers de Sistema.
Um bloco é uma unidade básica num programa PL/SQL.
Blocos de PL/SQL agrupam declarações e demonstrações relacionadas.
Quatro palavras reservadas que definem um bloco PL/SQL são:
-DECLARE
-BEGIN
-EXCEPTION
-END
Estas palavras reservadas são utilizadas para fazer até três secções de um bloco:
-DECLARE:
A secção de declaração é iniciada com a palavra reservada DECLARE e termina quando começa a secção de código executável.
Esta secção é opcional e é utilizada para declarar variáveis, constantes, cursores e tipos de dados definidos pelo utilizador.
-BEGIN:
A secção executável começa com a palavra reservada BEGIN e acaba com a palavra reservada END.
Esta é a única secção obrigatória num bloco PL/SQL e tem de conter pelo menos uma instrução.
A secção executável pode conter um número ilimitado de blocos PL/SQL.
Esta secção contém o "sumo" de um programa PL/SQL.
-EXCEPTION:
O tratamento de exceções é utilizado para apanhar e tratar erros de run-time.
Começa com a palavra reservada EXCEPTION e termina com a palavra reservada END.
Esta secção é opcional.
As três palavras reservadas não acabam com ponto e vírgula (;) , contudo a palavra reservada END termina.
Também todas as instruções SQL e PL/SQL dentro de um bloco terminam com ponto e vírgula.
Exemplo básico de um bloco PL/SQL seria:
DECLARE
v_temp NUMBER;
BEGIN
v_temp :=1;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Este bloco nunca vai criar uma exceção.');
DBMS_OUTPUT.PUT_LINE('Mas se uma ocorrer, cairia aqui.');
END;
Existem dois tipos gerais de blocos PL/SQL:
Blocos Anónimos (Anonymous Blocks) :
Estes são blocos PL/SQL sem nome. Podem ser executados de imediato a partir do SQL*Plus, SQL*Developer ou outra ferramenta similar.
Blocos anónimos também podem ser declarados dentro de uma aplicação onde devia de ser executado.
Não são guardados na base de dados e são passados para o motor de PL/SQL para serem compilados e executados sempre que o bloco correr.
Blocos anónimos não podem ser chamados por outros blocos PL/SQL.
Blocos anónimos podem ser interpretados por ferramentas tipo SQL*Plus ou embebidos num pré compilador Oracle ou ainda num programa OCI(Oracle Call Interface).
Um bloco anónimo é compilado cada vez que é carregado em memória em três estágios:
1. Verificação de Sintaxe (Syntaxe checking): A sintaxe PL/SQL é verificada e uma arvore de análise é gerada.
2. Verificação de Semântica (Semantic checking): Verificação de tipo e verificação adicional da arvore de análise.
3. Geração de Código (Code generation): O código compilado é criado.
Subprogramas (Subprograms) :
Um subprograma é um bloco PL/SQL com nome que é guardado na base de dados.
Por ter nome e estar disponível nas tabelas da base de dados, blocos com nome podem ser invocados repetidamente.
Subprogramas podem conter parâmetros, e os valores destes podem ser diferentes a cada invocação.
Existem dois tipos de subprogramas:
-Procedures
-Funções (Functions)
A principal diferença entre os dois é que as funções devolvem sempre um valor quando chamadas.
Triggers :
Um trigger é um bloco anónimo PL/SQL especial que pode ser definido para atuar antes ou depois de um comando de SQL.
Pode atuar tanto a nível de um comando como atuar sobre linhas afetadas por um comando.
Também é possível definir triggers INSTEAD OF e triggers de Sistema.
Análise Forense em Skype - Parte 1
Skype é uma aplicação que permite chamadas de voz e vídeo, mensagens instantâneas, transferência de ficheiros e partilha de ecrã entre utilizadores.
Milhões de pessoas utilizam diariamente para efetuar chamadas de voz e vídeo, mensagens, partilha e chamadas locais e internacionais de baixo custo.
Numa perspetiva forense esta análise pode dar uma grande quantia de informação que pode ser utilizada como prova em tribunal.
Por onde começar:
Primeiro, vamos começar por localizar as pastas do Skype:
Linux: ~/.Skype/UTILIZADOR-SKYPE/
Windows XP e anterior: C:\Documents and Settings\UTILIZADOR-WINDOWS\Application Data\Skype\UTILIZADOR-SKYPE
Windows Vista e posterior: C:\Users\UTILIZADOR-WINDOWS\AppData\Roaming\Skype\UTILIZADOR-SKYPE
Estamos no diretório do Skype e podemos verificar que existem quatro diretórios marcados com caixas vermelhas: happysahoo2959, namita.nahak, sudhansh251286 e trmr_rohit_marines.
Estes quatro diretórios são pastas de utilizadores que utilizaram ou utilizam o Skype neste sistema, como se pode verificar na figura a baixo:
Como podemos verificar na figura abaixo existe um ficheiro em XML de nome shared, que contém configurações. Vamos analisar esse ficheiro XML em primeiro lugar.
Podemos abrir o ficheiro shared.xml diretamente a partir de um browser ou utilizando outra ferramenta tipo Notepad, neste caso estamos a utilizar o Notepad++, o conteúdo do ficheiro deve ser algo parecido com este:
A primeira coisa que vemos é o timestamp que contém o valor 1384626184.32, este é um timestamp UNIX, por isso temos que converte-lo para um formato mais legível. Utilizando o website onlineconversion, conseguimos converter o valor para uma data legível.
Verificamos que o output é de Sábado, 16 de Novembro de 2012 às 17:49:44GMT.
Outra coisa importante neste ficheiro é a tag HostCache, que é o IP do nó do Skype. O IP começa após 0400050041050200 que significa que D5C7B3AD9C51 é o IP do nó.
Como podemos verificar após a conversão de todos os valores em decimal temos que o IP do nó é o 213.199.179.173:40017.
A tag UIVersion representa a versão do Skype instalado na máquina, neste caso é a 5.6.59.110, e a tag Language representa a linguagem de instalação, que neste caso é "en" - Inglês.
sexta-feira, 14 de fevereiro de 2014
FoxOne Scanner - Ferramenta gratuita de OSINT
FoxOne é uma ferramenta gratuita de OSINT, descrito pelo autor th3j35t3r como um scanner de reconhecimento de servidores não-invasivo e não-detetável.
Ignorando as limitações das APIs e detetando mais de 6500 caminhos de servidores/arquivos vulneráveis, sem nunca entrar em contacto com o servidor de destino.
Uma boa ferramenta para encontrar informação sobre um determinado domínio.
Características:
- Medidas Anti Falso-Positivo
- Medidas de Bot Stealth
- Framework em módulos, para uma mais fácil importação de novos módulos
Requisitos:
- MySQL Server
- PHP5
- Biblioteca PHP-GD
- PHP-MySQL
- Festival (Texto para Voz)
Instalação:
1. Criar uma base de dados MySQL em qualquer lugar (possibilidade de ser no localhost);
2. Importar o script 'foxone.sql' para a base de dados;
3. Editar o script 'foxone.sql' adicionando os detalhes da base de dados criada.
Ao correr o FoxOne ele cria e envia relatórios para o Desktop.
Download do script FoxOne aqui: http://www2.zippyshare.com/v/1223894/file.html
quinta-feira, 13 de fevereiro de 2014
Sandboxie - Correr Browser / Software / Programas Windows numa Sandbox
Sandboxie permite ao utilizador facilmente executar o browser ou programas numa área isolada abstrata chamada sandbox. Sob a supervisão da Sandboxie, uma aplicação funciona normalmente e à velocidade máxima, mas como é corrida numa área isolada abstrata não provoca mudanças permanentes na máquina onde corre, as alterações são realizadas ao nível da sandbox.
Ferramenta perfeita para todos aqueles que têm preguiça de criar uma máquina virtual para testar material.
Benefícios da Sandbox:
-Web Browsing Seguro: Executa o browser sob a proteção da Sandboxie, que significa que todo o software malicioso descarregado via browser fica "preso" na sandbox e pode ser descartado trivialmente.
-Privacidade Aumentada: Histórico de navegação, cookies e cache armazenada durante a navegação fica na sandbox e não são descarregados para o Windows.
-E-mail Seguro: Os vírus e outros softwares maliciosos que podem estar escondidos no e-mail não podem ser executados fora da sandbox.
-Windows permanece Limpo: Evitar o desgaste do Windows através da instalação de software numa sandbox.
O registo é opcional, mas passado 30 dias é apresentado uma opção de registo (Shareware).
Download do Sandboxie aqui: http://www.sandboxie.com/SandboxieInstall.exe
Mais informação sobre o Sandboixe aqui: http://www.sandboxie.com/
hash-identifier - Identificar tipos de hash usadas para cifrar passwords
Este script, desenvolvido em linguagem python, permite identificar vários tipos de hash usadas para cifrar dados, especialmente passwords.
Permite identificar os seguintes tipos de hash:
Download do script aqui : http://hash-identifier.googlecode.com/files/Hash_ID_v1.1.py
Mais informação sobre o script aqui: https://code.google.com/p/hash-identifier/
Permite identificar os seguintes tipos de hash:
- ADLER-32
- CRC-32
- CRC-32B
- CRC-16
- CRC-16-CCITT
- DES(Unix)
- FCS-16
- GHash-32-3
- GHash-32-5
- GOST R 34.11-94
- Haval-160
- Haval-192 110080 ,Haval-224 114080 ,Haval-256
- Lineage II C4
- Credenciais de Domínio em Cache
- XOR-32
- MD5(Half)
- MD5(Middle)
- MySQL
- MD5(phpBB3)
- MD5(Unix)
- MD5(Wordpress)
- MD5(APR)
- Haval-128
- MD2
- MD4
- MD5
- MD5(HMAC(Wordpress))
- NTLM
- RAdmin v2.x
- RipeMD-128
- SNEFRU-128
- Tiger-128
- MySQL5 - SHA-1(SHA-1($pass))
- MySQL 160bit - SHA-1(SHA-1($pass))
- RipeMD-160
- SHA-1
- SHA-1(MaNGOS)
- Tiger-160
- Tiger-192
- md5($pass.$salt) - Joomla
- SHA-1(Django)
- SHA-224
- RipeMD-256
- SNEFRU-256
- md5($pass.$salt) - Joomla
- SAM - (LM_hash:NT_hash)
- SHA-256(Django)
- RipeMD-320
- SHA-384
- SHA-256
- SHA-384(Django)
- SHA-512
- Whirlpool
Download do script aqui : http://hash-identifier.googlecode.com/files/Hash_ID_v1.1.py
Mais informação sobre o script aqui: https://code.google.com/p/hash-identifier/
Análise Forense em Webmails - Browsers - Parte 1
Quase toda a gente que usa a internet tem pelo menos uma conta de e-mail baseada na web (webmail).
Dito isto, a probabilidade de um investigador forense se cruzar com um caso envolvendo comunicações via webmail é muito elevada.
Enquanto examinadores governamentais têm a capacidade de pedir aos fornecedores dados de contas e conteúdos através de ordens judiciais, examinadores cooperativos e não governamentais ficam dependentes das provas deixadas no computador ou dispositivo móvel.
Os três maiores fornecedores de webmails são Google Gmail, Microsoft Hotmail/Outlook.com e Yahoo Mail, em conjunto têm mais de um bilião de utilizadores.
Cada um dos fornecedores oferecem características únicas, mas na generalidade têm todos uma implementação similar no ponto de vista de análise forense.
Browsers:
Num PC, maioria da atividade webmail é realizada através do browser, por isso não é nenhuma surpresa que maioria das provas serão composta por dados recolhidos do browser.
Dependendo do browser utilizado os dados são armazenados de formas diferentes, mas normalmente as melhores fontes de provas estão em cache, histórico ou em cookies de navegação.
O histórico e os cookies fornecem datas, horários e locais visitados, mas os dados com relevância podem ser encontrados em cache.
A cache armazena componentes de páginas em disco para que em futuras visitas o processo seja mais rápido.
Muitos e-mails lidos podem ser encontrados nas pastas de cache, essas pastas variam conforme o sistema operativo e o browser utilizado.
Internet Explorer:
Uma vez que o Internet Explorer (IE) vem por defeito na maioria das instalações do sistema operativo Windows, é provável que seja o browser mais utilizado e que deve ser sempre pesquisado na busca de webmails ou outro tipo de dados de navegação.
Dependendo da versão do Windows e do IE, os dados estão guardados em locais diferentes:
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Temporary Internet Files/Content.IE5
Win Vista/7 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/Temporary Internet Files/Content.IE5
Win Vista/7 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/Temporary Internet
Files/Low/Content.IE5
Win8/IE10 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/History
Nota: O IE10 também está disponível para o Windows 7. Se o IE9 tiver sido instalado e posteriormente atualizado para o IE10, haverá duas fontes de dados (o ficheiro index.dat do IE9 e a base de dados dentro da pasta webcache para o IE10).
Mozilla Firefox:
O Firefox é outro browser bastante popular que tal como o IE guarda a cache em vários locais dependendo do sistema operativo utilizado. O Firefox vem instalado por defeito em muitas distribuições Linux e também está disponível para MacOS-X.
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Application Data/Mozilla/Firefox/Profiles/*.default/Cache
Win7/8 – %root%/Users/%userprofile%/AppData/Local/Mozilla/Firefox/Profiles/*.default/Cache
Linux – /home/%userprofile%/.mozilla/firefox/$PROFILE.default/Cache
MacOS-X – /Users/%userprofile%/Library/Caches/Firefox/Profiles/$PROFILE.default/Cache/
Google Chrome:
O Google Chrome é outro dos 3 principais browsers utilizados atualmente. Está disponível para download para as plataformas Windows, Linux e MacOS-X.
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Application Data/Google/Chrome/User Data/Default/Cache
Win7/8 – %root%/Users/%userprofile%/AppData/Local/Google/Chrome/User Data/Default/Cache
Linux – /home/%userprofile%/.config/google-chrome/Default/Application Cache/Cache/
MacOS-X – /Users/%userprofile%/Caches/Google/Chrome/Default/Cache/
As pastas da cache mostram o conteúdo real de páginas e mensagens visitadas, que é muito importante quando se lida com dados provenientes de webmails.
Ressalva: Normalmente não se encontra em cache mensagens enviadas, mas sim lidas, uma vez que a mensagem é escrita e de seguida enviada sem haver visualização da mensagem fora da caixa de texto. A única vez que as mensagens enviadas são guardadas em cache é quando o utilizador visualiza a mensagem em HTML na pasta de "Mensagens Enviadas" após o envio.
É importante ter em consideração que estes não são os únicos locais para procurar dados de webmail.
Memória de sistema e o pagefile.sys são por vezes os locais únicos onde se encontram dados de Gmail, também copias sombra, pontos de restauro e ficheiros de hibernação contêm dados históricos valiosos que podem ser utilizados em conjunto com os dados encontrados nos locais atrás descritos.
Artigo retirado do: http://www.magnetforensics.com/webmail-forensics-digging-deeper-into-the-browser/
Dito isto, a probabilidade de um investigador forense se cruzar com um caso envolvendo comunicações via webmail é muito elevada.
Enquanto examinadores governamentais têm a capacidade de pedir aos fornecedores dados de contas e conteúdos através de ordens judiciais, examinadores cooperativos e não governamentais ficam dependentes das provas deixadas no computador ou dispositivo móvel.
Os três maiores fornecedores de webmails são Google Gmail, Microsoft Hotmail/Outlook.com e Yahoo Mail, em conjunto têm mais de um bilião de utilizadores.
Cada um dos fornecedores oferecem características únicas, mas na generalidade têm todos uma implementação similar no ponto de vista de análise forense.
Browsers:
Num PC, maioria da atividade webmail é realizada através do browser, por isso não é nenhuma surpresa que maioria das provas serão composta por dados recolhidos do browser.
Dependendo do browser utilizado os dados são armazenados de formas diferentes, mas normalmente as melhores fontes de provas estão em cache, histórico ou em cookies de navegação.
O histórico e os cookies fornecem datas, horários e locais visitados, mas os dados com relevância podem ser encontrados em cache.
A cache armazena componentes de páginas em disco para que em futuras visitas o processo seja mais rápido.
Muitos e-mails lidos podem ser encontrados nas pastas de cache, essas pastas variam conforme o sistema operativo e o browser utilizado.
Internet Explorer:
Uma vez que o Internet Explorer (IE) vem por defeito na maioria das instalações do sistema operativo Windows, é provável que seja o browser mais utilizado e que deve ser sempre pesquisado na busca de webmails ou outro tipo de dados de navegação.
Dependendo da versão do Windows e do IE, os dados estão guardados em locais diferentes:
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Temporary Internet Files/Content.IE5
Win Vista/7 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/Temporary Internet Files/Content.IE5
Win Vista/7 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/Temporary Internet
Files/Low/Content.IE5
Win8/IE10 – %root%/Users/%userprofile%/AppData/Local/Microsoft/Windows/History
Nota: O IE10 também está disponível para o Windows 7. Se o IE9 tiver sido instalado e posteriormente atualizado para o IE10, haverá duas fontes de dados (o ficheiro index.dat do IE9 e a base de dados dentro da pasta webcache para o IE10).
Mozilla Firefox:
O Firefox é outro browser bastante popular que tal como o IE guarda a cache em vários locais dependendo do sistema operativo utilizado. O Firefox vem instalado por defeito em muitas distribuições Linux e também está disponível para MacOS-X.
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Application Data/Mozilla/Firefox/Profiles/*.default/Cache
Win7/8 – %root%/Users/%userprofile%/AppData/Local/Mozilla/Firefox/Profiles/*.default/Cache
Linux – /home/%userprofile%/.mozilla/firefox/$PROFILE.default/Cache
MacOS-X – /Users/%userprofile%/Library/Caches/Firefox/Profiles/$PROFILE.default/Cache/
Google Chrome:
O Google Chrome é outro dos 3 principais browsers utilizados atualmente. Está disponível para download para as plataformas Windows, Linux e MacOS-X.
WinXP – %root%/Documents and Settings/%userprofile%/Local Settings/Application Data/Google/Chrome/User Data/Default/Cache
Win7/8 – %root%/Users/%userprofile%/AppData/Local/Google/Chrome/User Data/Default/Cache
Linux – /home/%userprofile%/.config/google-chrome/Default/Application Cache/Cache/
MacOS-X – /Users/%userprofile%/Caches/Google/Chrome/Default/Cache/
As pastas da cache mostram o conteúdo real de páginas e mensagens visitadas, que é muito importante quando se lida com dados provenientes de webmails.
Ressalva: Normalmente não se encontra em cache mensagens enviadas, mas sim lidas, uma vez que a mensagem é escrita e de seguida enviada sem haver visualização da mensagem fora da caixa de texto. A única vez que as mensagens enviadas são guardadas em cache é quando o utilizador visualiza a mensagem em HTML na pasta de "Mensagens Enviadas" após o envio.
É importante ter em consideração que estes não são os únicos locais para procurar dados de webmail.
Memória de sistema e o pagefile.sys são por vezes os locais únicos onde se encontram dados de Gmail, também copias sombra, pontos de restauro e ficheiros de hibernação contêm dados históricos valiosos que podem ser utilizados em conjunto com os dados encontrados nos locais atrás descritos.
Artigo retirado do: http://www.magnetforensics.com/webmail-forensics-digging-deeper-into-the-browser/
O que é a Ciência Forense Computacional?
A Ciência Forense Computacional abrange todas as questões relacionadas com crimes praticados na Internet ou fora dela, chamados ciber-crimes.
Estudando como recolher evidências de crimes e violações, analisar e documentar casos, esta ciência, segue as principais metodologias internacionais usadas e adotadas por todos os países do mundo na investigação de crimes e delitos comuns.
A Computação Forense consiste, basicamente, no uso de métodos científicos para preservação, recolha, validação, identificação, análise, interpretação, documentação e apresentação de evidência digital. A aplicação desses métodos nem sempre se dá de maneira simples.
Evidência digital entende-se pela informação armazenada ou transmitida em formatos ou meios digitais. Sendo que essa evidência, na maioria das vezes, é frágil e volátil, o que requer a atenção de um especialista certificado ou bastante experiente a fim de garantir que os materiais de valor probatório possam ser efetivamente isolados e extraídos correta e licitamente.
Tais materiais podem ser apresentados em um tribunal de justiça como prova de materialidade de um crime, ou mesmo como parte de um laudo pericial.
Nas últimas décadas, tem-se notado uma explosão do uso da tecnologia em todas as áreas da indústria, bem como no dia-a-dia das pessoas.
Não é surpresa que os criminosos acompanhem e até evoluam o emprego da tecnologia no planeamento e na prática de crimes.
À medida que a tecnologia invade o mercado com uma extraordinária quantidade de periféricos, como smartphones, tablets, notebooks, desktops dentre outros, além de armazenamentos como cloud, pen drives, hd's externos, etc.
Tudo isto somado à enorme quantidade de redes sociais, que já atingem todo o planeta, como Facebook, Twitter, etc.. exigem cada vez mais especialização e conhecimentos para atuar na área, que é cada vez maior.
Estudando como recolher evidências de crimes e violações, analisar e documentar casos, esta ciência, segue as principais metodologias internacionais usadas e adotadas por todos os países do mundo na investigação de crimes e delitos comuns.
A Computação Forense consiste, basicamente, no uso de métodos científicos para preservação, recolha, validação, identificação, análise, interpretação, documentação e apresentação de evidência digital. A aplicação desses métodos nem sempre se dá de maneira simples.
Evidência digital entende-se pela informação armazenada ou transmitida em formatos ou meios digitais. Sendo que essa evidência, na maioria das vezes, é frágil e volátil, o que requer a atenção de um especialista certificado ou bastante experiente a fim de garantir que os materiais de valor probatório possam ser efetivamente isolados e extraídos correta e licitamente.
Tais materiais podem ser apresentados em um tribunal de justiça como prova de materialidade de um crime, ou mesmo como parte de um laudo pericial.
Nas últimas décadas, tem-se notado uma explosão do uso da tecnologia em todas as áreas da indústria, bem como no dia-a-dia das pessoas.
Não é surpresa que os criminosos acompanhem e até evoluam o emprego da tecnologia no planeamento e na prática de crimes.
À medida que a tecnologia invade o mercado com uma extraordinária quantidade de periféricos, como smartphones, tablets, notebooks, desktops dentre outros, além de armazenamentos como cloud, pen drives, hd's externos, etc.
Tudo isto somado à enorme quantidade de redes sociais, que já atingem todo o planeta, como Facebook, Twitter, etc.. exigem cada vez mais especialização e conhecimentos para atuar na área, que é cada vez maior.




























