Il y a quelques jours, la team MSRC de Microsoft a sortit EMET (Enhanced Mitigation Evaluation Toolkit). Un outil aidant à la gestion des différentes protections fournies par Windows, comme le DEP. Je me suis dit qu’il serait intéressant d’y jeter un oeil pour voir si toutes les protections mises en place sont solides.
(suite…)
Post Category: RE
novembre 1st, 2009 at 10:25 admin
Ce post décrit une feature du noyau NT très peu documentée, la gestion des I/Os d’un process tournant sous V8086. Je vous conseille d’abord de (re)lire ce post qui discute de la gestion des exceptions et interruptions d’un processus 16 bits, faites attention notamment aux différents endroits ou le noyau prend la main pour gérer ces évènements, notamment pour une émulation par l’API win32 ou bien pour une reinjection en virtual mode.
Peut-être que certains l’on remarqué en lisant les .h du WDK, notamment le fichier %DDK_INC_PATH%\ntddk.h, dans l’enum PROCESSINFOCLASS on peut voir l’identifiant ProcessIoPortHandlers avec un commentaire à coté disant qu’il est accessible uniquement en KernelMode. Ce qui est marrant c’est que même googlant dessus on ne trouve pas grand chose d’intéressant (j’ai p-e mal cherché btw !). Ce post à pour but de montrer quel est son rôle et comment l’utiliser, nous arrivons ainsi à mettre en place un moyen de communication assez original entre notre process et le noyau qui change des IOCTLs et autres appels systèmes tellement classiques :]
(suite…)
Post Category: RE
septembre 26th, 2009 at 03:16 admin
Dans la série ‘j’touche le fond et je creuse encore ! ‘ je vous propose une méthode sympa pour debugger vos codes critiques. Récemment j’ai été amené à dev du code noyau tournant dans un contexte critique par rapport à l’OS. Comprendre par là que je tournait à des IRQL >= DIRQL, comme si j’étais dans une Interrupt Service Routine (ISR) déclénché par une interruption extérieur. Dans ces cas lorsqu’on veut débugger ces routines on ne peut pas forcément utiliser des fonctions comme DbgPrint ou KdPrint, même si la doc dit que c’est possible on perd beaucoup en performances et si comme moi vous debuggez votre machine depuis la liaison série l’OS se retrouve vite à genoux.
Alors après on peut très bien me dire de mettre des message de debug en queue et de les envoyer dans un worker thread qui balancera des DbgPrint à un IRQL de PASSIVE_LEVEL, ce n’est pas difficile à implémenter c’est juste que je n’avais pas envie de faire. de la même manière, mettre des breakpoints dans le code ou bien à l’aide du kernel-debugger n’est pas forcément très pratique non plus vu que l’OS notifiera à chaque fois le debugger dès qu’il en verra un.
De plus j’avais juste besoin de savoir si un codepath particulier était prit donc un simple signal me disant « oui ou non » me suffisait. Je me suis dit entre 2 trolls sur IRC concernant l’OS des barbus (qui ne marche pas très bien apparemment) qu’utiliser les LEDs du clavier comme signal pourrait être une solution, certes bizarre, mais efficace.
L’idée est simple, il s’agit juste de demander au code de faire clignoter une LED à un moment précis. Dans un premier temps je me suis donc documenté rapidement sur le contrôleur clavier i8042 pour savoir que 2 I/Os port sont utilisés :
- Le Read-input buffer sur 1 byte. Port 0×60
- Le Write-ouput buffer, 1 byte. Port 0×60
- Le Status-register, 1 byte uniquement accessible en lecture. Port 0×64
- Le Control-register, 1 byte en lecture/écriture.
Pour le controleur i8042 le Read-input et Write-ouput sont en fait confondus. Le Control-register quand à lui est uniquement accessible en envoyant une commande sur le Status-register qui sert alors de byte de commande lorsqu’on l’écrit. Attention il s’agit alors d’une commande pour le contrôleur clavier et non le clavier lui même !
Justement, la commande qui m’intéresse est celle qui permet de définir les LEDS clavier. Après quelques recherches sur le net je tombe sur The PS/2 Keyboard Interface et The AT Keyboard Controler. La commande qui m’intéresse est donc ’0xED (Set/Reset LEDs)’, comme il s’agit du clavier nous devons écrire cette commande dans le Write-ouput buffer
Si 1, SROLL_LOCK est allumée. Éteinte sinon.
Si 1, NUM_LOCK est allumée. Éteinte sinon.
Si 1, CAPS_LOCK est allumée. Éteinte sinon.
Maintenant il ne reste plus qu’a envoyer la commande puis les données. Ce qui se traduit en asm par :
#define KBD_DATA 0x60 // I/O port for keyboard data
#define KBD_STATUS 0x64 // I/O port for keyboard status (read)
#define KBD_CMD_SET_LEDS 0xED // Set keyboard leds
#define SCROLL_LOCK 1
#define NUM_LOCK 2
#define CAPS_LOCK 4
xor eax, eax
mov al, KBD_CMD_SET_LEDS
out KBD_DATA , al
mov al, Leds
out KBD_DATA, al
Oulà, pas trop vite, on oublie que pour écrire dans le Write-ouput buffer il faut d’abord attendre que le controleur nous dise que nous pouvons le faire. Pour cela il faut que le bit 1 du Status-register soit à 0, de plus pour une lecture il faut que le bit 0 soit à 1. On doit donc poller le Status-register afin de savoir quand on peut lire ou écrire le port 0×60. La routine est donc simplement :
kbd_wait:
in al, KBD_STATUS
test al, 2
jne kbd_wait
ret
Pour tester au lieu de me faire chier directement avec un driver, j’ai demandé à ce que l’IOPL de mon process soit modifié, pour Windows il faut que le token du process possède le privilège SeTcbPrivilege. Celui-ci peut être attribuer en allant dans Panneau de configuration -> Outils d’administration -> Stratégie de sécurité locale -> Stratégies locales -> Attribution des droits utilisateurs et en ajoutant votre utilisateur dans la stratégie « Agir en tant que partie du système d’exploitation » (après avoir ajouter votre user il faut vous que relanciez votre session).
Je vous laisse les sources maintenant à vous de vous amuser avec, en tout cas cela m’a bien servit dans mon driver pour tracer mon code.
Vous trouverez les sources ici :
http://ivanlef0u.fr/repo/kbd-leds.rar
Sinon quelques liens à lire :
Updates: Autoruns v9.53, ProcDump v1.3, Process Monitor v2.6 | New Mark’s Blog post: The Case of the Temporary Registry Profiles | Download Windows Internals 5 sample chapter
VMWare Cloudburst
VMware ring3 detection (RF handling)
Preventing the exploitation of user mode heap corruption vulnerabilities
Post Category: RE
août 14th, 2009 at 03:27 admin
Omg j’ai retrouvé l’url de mon blog, je m’en veux d’avoir été absent si longtemps mais j’avais d’autres projets. Vous allez rire mais depuis quelques temps je suis complètement absorbé par des challenges linux. Ce sont les challenges de intruded et de overthewire, il s’agit d’exploiter des failles applicatives sur différentes binaires. On se connecte en ssh sur le serveur et le binaire level-n est SUID level-n+1 ainsi lorsqu’on arrive à lancer un /bin/sh on peut aller lire le fichier qui contient le password du level suivant.
En fait, je dépose les soluces sur le wiki de Oldschool avec d’autres on essaye de réussir le plus de levels possibles. C’est uniquement dans le but d’apprende et de partager le plus de techniques d’exploitation puis tant qu’à faire, motiver d’autres personnes a faire ces challenges. Autant clarifier les choses, si vous criez au sploil n’aller pas sur le site et ne venez pas couiner !
Je me suis surtout concentré sur les levels de Utumno et de Maze, des serveurs de intruded. Certains sont vraiment intéressants comme ce BOF dans lequel on ne contrôle qu’un saved ebp ou bien même ce heap overflow sous l’allocateur ptmalloc. Ca reste assez classique mais ca fait toujours du bien de se creuser la tête dessus et ca me change de Windows
Sinon, IDT Sniffer marche, je n’ai plus qu’à finir l’interface avec l’user-land et la gestion du filtrages des exceptions avant de le release.
Enfin je vous propose du bon hardcore avec le groupe The Carrier et ‘Panicstricken’ de leur album ‘One Year Later’.
Panicstricken
I chose death over life, wanted to meet my maker I was dying inside.
Pain too great to deal with me made me try to take my life. But now I’ve seen the light, I’ve got a second chance at life.
I’m not retracting my old tracks.
I’m never going back.
To the locked doors and the blinding lights and the uncertainty of whether or not it will be a good or bad day. I never want to wonder what life would be like without me in it, because I’m alive.
I’ve taken what I’ve learned with me, it’s all I know, and I’ll been kickin’ my old shit out the front fucking door. Because I don’t need it anymore.
I’m taking steps forward one foot at a time, making sure not to fall.
And it will be the last trip of my life. Reaching up while the ship sinks to the bottom of this dead ocean.
A thousand stars couldn’t shine through all the shit we’ve been through, in this world that has no ending. I’m never going back to blinding lights.
Post Category: C:
juin 28th, 2009 at 09:02 admin
Encore un post qui parle du SMM, c’est la mode en cette saison. Pour ceux qui débarquent, je vous conseil d’abord de lire ce post pour vous mettre dans le bain. Je tiens juste d’emblée à préciser que le SMM c’est joli, c’est puissant, c’est funny mais qu’au final c’est quand même de la branlette intellectuelle. Il faut savoir que beaucoup de choses faisables en SMM le sont déjà en ring 0. Mis à part le cas très spécifique de la corruption d’hyperviseurs comme l’équipe de Invisible Things Lab l’a montré en profitant d’un bug permettant d’atteindre la SMRAM je ne vois pas en quoi le SMM est utile pour un attaquant. Attention je dis cela parce qu’il est plus simple actuellement de réaliser certaines attaques indétectables, comme par exemple un keylogger, sans avoir à se mettre en SMM. Finalement je rejoins l’opinion d’autres personnes qui disent qu’il faut prendre en compte le du risque SMM mais qu’on a déjà assez de choses non-secure à traiter pour le moment. Donc au final pas de quoi paniquer.
(suite…)
Post Category: RE
mars 29th, 2009 at 03:23 admin
Certains disent que je suis mort, d’autres que j’ai muté pour devenir reverser Java voir même spécialiste UML. Que nenni j’ai tenté de faire le gens ordinaire pendant quelques temps, vous savez : faire du social, parler à des gens, sortir et toutes ces conneries. Cela ne m’a pas beaucoup réussi donc ‘back to the roots’. Pour la peine vous prendrez bien un peu de bon son pour réveillez vos neurones. Du bon post-metal sludge avec Rosetta et Red In Tooth And Claw :
Red in tooth and claw
(suite…)
Post Category: RE
février 26th, 2009 at 04:27 admin
Et non ce blog n’est pas le mort, depuis le temps que je l’ai délaissé, je commençais à m’en vouloir. Disons que j’ai été prit par mal de taff en plus de pas faire grand chose de bien au niveau de mes projets perso et puis il y a eu une pénurie de chocapicz à cause de la crise
Alors au lieu de poster pour rien dire d’intéressant ou même de la merde comme une grosse tapz, j’ai préféré fermer ma gueule. Ce post est consacré à une technologie récente mais encore trop peu connue par les gens qui font des vrais choses (comprendre : pas des projets java et du .Net) : la Dynamic Binary Instrumentamention (DBI).
(suite…)
Post Category: RE
janvier 6th, 2009 at 05:45 admin
Putain, ça fait 1000 ans que j’ai pas bloggé, je suis surchargé en ce moment. Vous allez vous foutre de ma gueule mais je suis en train d’étudier des choses comme java/CPP/sql/xml/uml, disons que ce ne sont pas les choses les plus inintéressantes mais c’est très très chiant à bosser. J’ai tellement de projets et de rapports à rendre dessus que je n’ai même plus le temps de jouer avec mon Windows
Bref, je passe vite fait pour vous montrer une feature marrant de Windbg (d’ailleur la version 6.10.3.233 est sortie il y moins d’une semaine). Il s’agit d’une extension aidant au debugging de binaire VDM. Je crois qu’un exemple sera plus parlant qu’autre chose :
0:003> !vdmexts.load
0:003> !vdmexts.help
WOW commands are not currently available.
------------- VDMEXTS Debug Extension help:--------------
help [cmd] - Displays this list or gives details on command
ApiProfClr - Clears the api profiling table
ApiProfDmp [options] - Dumps the api profiling table
at 0xXXXX - shows name associated with hex atom #
bp <addr> - Sets a vdm breakpoint
bd/be <n> - Disables/enables vdm breakpoint 'n'
bl - Lists vdm breakpoints
chkheap - Checks WOW kernel's global heap
cia - Dump cursor/icon alias list
d<b|w|d> <addr> [len] - Dump vdm memory
ddemem - Dump dde memory thunks
ddte <addr> - Dump dispatch table entry pointed to by <addr>
denv <bProt> <selEnv> - Dump environment for current task or given selector/segment
df [vector] - Dump protect mode fault handler address
dfh [fh [pdb]] - Dump DOS file handles for current or given PDB
dg <sel> - Dump info on a selector
ddh [seg] - Dump DOS heap chain starting at <seg>:0000
dgh [sel|ownersel] - Dump WOW kernel's global heap
dhdib [@<address>] - Dump dib.drv support structures (DIBINFO)
di [vector] - Dump protect mode interrupt handler address
dma - Dump virtual DMA state
dpd - Dump DPMI DOS memory allocations
dpx - Dump DPMI extended memory allocations
dsft [sft] - Dump all or specified DOS system file tables
dt [-v] <addr> - Dump WOW Task Info
dwp <addr> - Dump WOWPORT structure pointed to by <addr>
e<b|w|d> <addr> <data> - Edit vdm memory
filter [options] - Manipulate logging filter
fs <text to find> - Find text in 16:16 memory (case insensitive)
glock <sel> - Increments the lock count on a moveable segment
gmem - Dumps Global/heap memory alloc'd by wow32
gunlock <sel> - Decrements the lock count on a moveable segment
hgdi16 [-v] <h16> - Returns 32-bit GDI handle for <h16>
hgdi32 [-v] <h32> - Returns 16-bit GDI handle for <h32>
ica - Dump Interrupt Controller state
k - Stack trace
kb - Stack trace with symbols
LastLog - Dumps Last Logged WOW APIs from Circular Buffer
lg [#num] [count] - Dumps NTVDM history log
lgr [#num] [count] - Dumps NTVDM history log (with regs)
lgt [1|2|3] - Sets NTVDM history log timer resolution
lm <sel|modname> - List loaded modules
ln [addr] - Determine near symbols
LogFile [path] - Create/close toggle for iloglevel capture to file
(path defaults to c:\ilog.log)
MsgProfClr - Clears the msg profiling table
MsgProfDmp [options] - Dumps the msg profiling table
ntsd - Gets an NTSD prompt from the VDM prompt
r - Dump registers
rmcb - Dumps dpmi real mode callbacks
SetLogLevel xx - Sets the WOW Logging Level
StepTrace - Toggles Single Step Tracing On/Off
sx - Displays debugging options
sx<d|e> <flag> - Disables/enables debugging options
timer - Display 8253 timer 0 information
u [addr] [len] - Unassemble vdm code with symbols
wc <hwnd16> - Dumps the window class structure of <hwnd16>
ww <hwnd16> - Dumps the window structure of <hwnd16>
x <symbol> - Get symbol's value
-------------- i386 specific commands
fpu - Dump 487 state
pdump - Dumps profile info to file \profile.out
pint - Sets the profile interval
pstart - Causes profiling to start
pstop - Causes profiling to stop
vdmtib [addr] - Dumps the register context in the vdmtib
where [options] can be displayed with 'help <cmd>'
Avec ça on peut voir facilement les exeptions et interrupt handlers mis en place par le binaire ntvdm.exe avec les couples (segment:offset) :
0:000> !vdmexts.df ; Dump protect mode fault handler address
00: 00C7:00001200
01: 00C7:00001205
02: 00C7:0000120A
03: 00C7:0000120F
04: 00C7:00001214
05: 00C7:00001219
06: 00C7:0000121E
07: 00C7:00001223
08: 00C7:00001228
09: 00C7:0000122D
0A: 00C7:00001232
0B: 00C7:00001237
0C: 00C7:0000123C
0D: 00C7:00001241
0E: 00C7:00001246
0F: 00C7:0000124B
10: 00C7:00001250
11: 00C7:00001255
12: 00C7:0000125A
13: 00C7:0000125F
14: 00C7:00001264
15: 00C7:00001269
16: 00C7:0000126E
17: 00C7:00001273
18: 00C7:00001278
19: 00C7:0000127D
1A: 00C7:00001282
1B: 00C7:00001287
1C: 00C7:0000128C
1D: 00C7:00001291
1E: 00C7:00001296
1F: 00C7:0000129B
0:000> !vdmexts.di ; Dump protect mode interrupt handler address
00: 00C7:00000D00
01: 00C7:00001307
02: 00C7:00000D0A
03: 00C7:00001307
04: 00C7:00000D14
05: 00C7:00000D19
06: 00C7:00000D1E
07: 00C7:00000D23
08: 00C7:00000D28
09: 00C7:00000D2D
0A: 00C7:00000D32
0B: 00C7:00000D37
0C: 00C7:00000D3C
0D: 00C7:00000D41
0E: 00C7:00000D46
0F: 00C7:00000D4B
10: 00C7:00001393
11: 00C7:00000D55
12: 00C7:00000D5A
13: 00C7:00002870
14: 00C7:00000D64
15: 00C7:000014A7
16: 00C7:00000D6E
17: 00C7:00000D73
18: 00C7:00000D78
19: 00C7:00001308
1A: 00C7:00000D82
1B: 00C7:00000D87
1C: 00C7:00000D8C
1D: 00C7:00000D91
1E: 00C7:00000D96
1F: 00C7:00000D9B
20: 00C7:00000DA0
21: 00C7:000004E6
22: 00C7:00000DAA
23: 00C7:00000DAF
24: 00C7:00000DB4
25: 00C7:000029CD
26: 00C7:00002A85
27: 00C7:00000DC3
28: 00C7:000012B8
29: 00C7:00000DCD
2A: 00C7:0000315E
2B: 00C7:00000DD7
2C: 00C7:00000DDC
2D: 00C7:00000DE1
2E: 00C7:00000DE6
2F: 00C7:00000DEB
30: 00C7:00001307
31: 00C7:000012DC
32: 00C7:00000DFA
33: 00C7:0000155D
34: 00C7:00000E04
35: 00C7:00000E09
36: 00C7:00000E0E
37: 00C7:00000E13
38: 00C7:00000E18
39: 00C7:00000E1D
3A: 00C7:00000E22
3B: 00C7:00000E27
3C: 00C7:00000E2C
3D: 00C7:00000E31
3E: 00C7:00000E36
3F: 00C7:00000E3B
40: 00C7:00000E40
41: 00C7:00001307
42: 00C7:00000E4A
43: 00C7:00000E4F
44: 00C7:00000E54
45: 00C7:00000E59
46: 00C7:00000E5E
47: 00C7:00000E63
48: 00C7:00000E68
49: 00C7:00000E6D
4A: 00C7:00000E72
4B: 00C7:00000E77
4C: 00C7:00000E7C
4D: 00C7:00000E81
4E: 00C7:00000E86
4F: 00C7:00000E8B
50: 00C7:00000E90
51: 00C7:00000E95
52: 00C7:00000E9A
53: 00C7:00000E9F
54: 00C7:00000EA4
55: 00C7:00000EA9
56: 00C7:00000EAE
57: 00C7:00000EB3
58: 00C7:00000EB8
59: 00C7:00000EBD
5A: 00C7:00000EC2
5B: 00C7:00000EC7
5C: 00C7:0000318B
5D: 00C7:00000ED1
5E: 00C7:00000ED6
5F: 00C7:00000EDB
60: 00C7:00000EE0
61: 00C7:00000EE5
62: 00C7:00000EEA
63: 00C7:00000EEF
64: 00C7:00000EF4
65: 00C7:00000EF9
66: 00C7:00000EFE
67: 00C7:00000F03
68: 00C7:00000F08
69: 00C7:00000F0D
6A: 00C7:00000F12
6B: 00C7:00000F17
6C: 00C7:00000F1C
6D: 00C7:00000F21
6E: 00C7:00000F26
6F: 00C7:00000F2B
70: 00C7:00000F30
71: 00C7:00000F35
72: 00C7:00000F3A
73: 00C7:00000F3F
74: 00C7:00000F44
75: 00C7:00000F49
76: 00C7:00000F4E
77: 00C7:00000F53
78: 00C7:00000F58
79: 00C7:00000F5D
7A: 00C7:00000F62
7B: 00C7:00000F67
7C: 00C7:00000F6C
7D: 00C7:00000F71
7E: 00C7:00000F76
7F: 00C7:00000F7B
80: 00C7:00000F80
81: 00C7:00000F85
82: 00C7:00000F8A
83: 00C7:00000F8F
84: 00C7:00000F94
85: 00C7:00000F99
86: 00C7:00000F9E
87: 00C7:00000FA3
88: 00C7:00000FA8
89: 00C7:00000FAD
8A: 00C7:00000FB2
8B: 00C7:00000FB7
8C: 00C7:00000FBC
8D: 00C7:00000FC1
8E: 00C7:00000FC6
8F: 00C7:00000FCB
90: 00C7:00000FD0
91: 00C7:00000FD5
92: 00C7:00000FDA
93: 00C7:00000FDF
94: 00C7:00000FE4
95: 00C7:00000FE9
96: 00C7:00000FEE
97: 00C7:00000FF3
98: 00C7:00000FF8
99: 00C7:00000FFD
9A: 00C7:00001002
9B: 00C7:00001007
9C: 00C7:0000100C
9D: 00C7:00001011
9E: 00C7:00001016
9F: 00C7:0000101B
A0: 00C7:00001020
A1: 00C7:00001025
A2: 00C7:0000102A
A3: 00C7:0000102F
A4: 00C7:00001034
A5: 00C7:00001039
A6: 00C7:0000103E
A7: 00C7:00001043
A8: 00C7:00001048
A9: 00C7:0000104D
AA: 00C7:00001052
AB: 00C7:00001057
AC: 00C7:0000105C
AD: 00C7:00001061
AE: 00C7:00001066
AF: 00C7:0000106B
B0: 00C7:00001070
B1: 00C7:00001075
B2: 00C7:0000107A
B3: 00C7:0000107F
B4: 00C7:00001084
B5: 00C7:00001089
B6: 00C7:0000108E
B7: 00C7:00001093
B8: 00C7:00001098
B9: 00C7:0000109D
BA: 00C7:000010A2
BB: 00C7:000010A7
BC: 00C7:000010AC
BD: 00C7:000010B1
BE: 00C7:000010B6
BF: 00C7:000010BB
C0: 00C7:000010C0
C1: 00C7:000010C5
C2: 00C7:000010CA
C3: 00C7:000010CF
C4: 00C7:000010D4
C5: 00C7:000010D9
C6: 00C7:000010DE
C7: 00C7:000010E3
C8: 00C7:000010E8
C9: 00C7:000010ED
CA: 00C7:000010F2
CB: 00C7:000010F7
CC: 00C7:000010FC
CD: 00C7:00001101
CE: 00C7:00001106
CF: 00C7:0000110B
D0: 00C7:00001110
D1: 00C7:00001115
D2: 00C7:0000111A
D3: 00C7:0000111F
D4: 00C7:00001124
D5: 00C7:00001129
D6: 00C7:0000112E
D7: 00C7:00001133
D8: 00C7:00001138
D9: 00C7:0000113D
DA: 00C7:00001142
DB: 00C7:00001147
DC: 00C7:0000114C
DD: 00C7:00001151
DE: 00C7:00001156
DF: 00C7:0000115B
E0: 00C7:00001160
E1: 00C7:00001165
E2: 00C7:0000116A
E3: 00C7:0000116F
E4: 00C7:00001174
E5: 00C7:00001179
E6: 00C7:0000117E
E7: 00C7:00001183
E8: 00C7:00001188
E9: 00C7:0000118D
EA: 00C7:00001192
EB: 00C7:00001197
EC: 00C7:0000119C
ED: 00C7:000011A1
EE: 00C7:000011A6
EF: 00C7:000011AB
F0: 00C7:000011B0
F1: 00C7:000011B5
F2: 00C7:000011BA
F3: 00C7:000011BF
F4: 00C7:000011C4
F5: 00C7:000011C9
F6: 00C7:000011CE
F7: 00C7:000011D3
F8: 00C7:000011D8
F9: 00C7:000011DD
FA: 00C7:000011E2
FB: 00C7:000011E7
FC: 00C7:000011EC
FD: 00C7:000011F1
FE: 00C7:000011F6
FF: 00C7:000011FB
Je sais, je balance tout cela sans explications mais je connais quelqu’un que ça intéressa au plus haut point. Je continuerais l’exploration de la machine virtuelle DOS prochainement, il faut juste que je trouve du temps pour le faire. Sinon pour ceux qui se le demande Abyss n’est pas mort, je projette aussi d’en faire quelque chose de marrant dans le futur :]
Post Category: RE
novembre 25th, 2008 at 12:40 admin
J’avais dit que je coderais une version générique pour mon outil TaskPwdDmp, c’est fait ! Après quelques retours me signalant que mon programme ne marchait à cause de l’utilisation d’offsets harcodés pour retrouver la fonction schedsvc!DecryptCredentials je me suis décidé à faire quelque chose de propre. Au lieu de fournir une liste de tous les offets possible de Windows XP à 2003 avec toutes les versions de DLLs possibles j’ai préféré opter pour une autre méthode plus simple.
(suite…)
Post Category: RE
octobre 27th, 2008 at 01:45 admin
Les auteurs du fameux journal technique uninformed sortent leur dernier opus disponible ici. Au programme :
Can you find me now? Unlocking the Verizon Wireless xv6800 (HTC Titan) GPS de Skywing.
Using dual-mappings to evade automated unpackers de Skape. Un court article expliquant comment bypasser les unpackers automatiques qui retrouvent l’OEP en regardant les pages mémoire exécutés par le binaire. Du fait que ces tools manipulent uniquement des adresses virtuelles, il est possible de mettre en place une zone mémoire unique possédant 2 adresses virtuelles dans le contexte du packer. Ainsi d’un coté le packer écrit le code dans une mémoire virtuelle alors qu’il sera exécuté dans une autre, dans la mémoire physique ce sont la ou les mêmes pages qui sont écrites et exécutées. L’outil d’unpacking automatique ni voit que du feu et croit qu’il s’agit de code provenant du packer.
Analyzing local privilege escalations in win32k de mxatone (Han but kikoo !! sale pourriture communiste @#!!!). Article décrivant en partie le fonctionnement du système GDI win32.sys de Windows. Ensuite mxatone nous montre des faiblesses au niveau de 3 API et l’art de les exploiter, un régal !
Exploiting Tomorrow’s Internet Today: Penetration testing with IPv6 de H D Moore.
Sinon de mon coté je continue d’étudier la gestion du mode virtuel sous Windows, j’espère pour avancer rapidement, je prépare aussi une mise à jour pour rendre plus générique mon outil qui permet de dumper les credentials stockés pour la gestion des tâches planifiées. Restez connecté !
Bonne lecture à tous.
Post Category: C:
octobre 12th, 2008 at 10:09 admin
Next Posts
Previous Posts