It's a Good ida.
I've alreay compiled and collected many exploits (some need libraries) for myself.
I can share them with u now.
Compiled Exploitsbut these are regid exploits
there are some ponits:
1- It shouldn't be that hard to take apart expliot code from payload and do sometning like metasploit. we can use a data-base for each exploit and give some info (RHOST,RPORT,TARGET,LPORT,LHOST,CompatiblePAYLOADS,HowToCompile,...).
CODE
[NAME]
Some Exploit
[DESCIPTION]
Descriptions about ..
[PATH]
path of exploit.c
[PARAMS]
NUM=012345
0:RHOST=
1:RPORT=
2:LHOST=
3:LPORT=21
4:USER=anonymous
5:PASS=password
[TARGETS]
NUM=01
0=win2kspP2en
1=winxpsp2
[PAYLOADS]
NUM=01
0:win_bind_shell
1:win_revese_shell
[COMPILE]
gcc= -o exploit.exe exploit.c
cl=
c++ =
[EXEC]
exploit.exe -h RHOST ...
use XML format and describe each one so we have just one file for each exploit:
CODE
<NAME>Some Exploit</NAME><DES> Descriptions</DES> <PARAMS>RHOST,RPORT:,LHOST,LPORT,USER:anonymous,PASS=password</PARAMS><TARGETS>0=win2kspP2en,1=winxpsp2</TARGETS>
<PAYLOADS>win_bind_shell,win_revese_shell</PAYLOADS>
<COMPILE>gcc -o exploit.exe exploit.c</COMPILE>
<EXEC>exploit.exe -h RHOST ...</EXEC>
<CODE>
#include <winsock2.h>
....
</CODE>
even we can inject this info to the code as comments for C++
CODE
// NAME = Some Exploit
// DES = Descriptions
// PARAMS=RHOST,RPORT:,LHOST,LPORT,USER:anonymous,PASS=password
// TARGETS= 0:win2kspP2en,1:winxpsp2
// PAYLOADS=win_bind_shell,win_revese_shell
// COMPILE = gcc -o exploit.exe exploit.c
// EXEC = exploit.exe -h RHOST ...
// CODE
#include <winsock2.h>
....
so we need just a little word processing to get the code and save it as .\tmp\exploit.c and append the desire payload.
CODE
//Exploit.c
....
....
//PayLoad.c
....
....
sets the parameters and compile the result exploit as specified. then we have flexible exploits.
all we have to do is to
1-stablish a standard to describe these info.
2-take apart payloads from exploit codes