rhaft.c is a Netcraft imitation tool which can fetch some server information.
60e5b66a2cb02636f975d47b9b7628cf7990cd46a50502c50d06d794bc5bf068
/* Rhaft.c
* Netcraft Imitation tool.
*
* Digit-Labs Information Security
*
*
* by grazer
* grazer@digit-labs.org
*
* greetings to HWA and HIT2000
*/
#include<stdio.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
main(int argc, char *argv[])
{
int sock;
struct in_addr addr;
struct sockaddr_in sin;
struct hostent *he;
char digit[1024];
if (argc<2)
{
printf("\n usage : %s <system> | grep Server: \n",argv[0]);
exit(0);
}
if ((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(0);
}
sock=socket(AF_INET, SOCK_STREAM, 0);
bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
sin.sin_family=AF_INET;
sin.sin_port=htons(80);
if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
{
perror("connect");
}
send(sock, "HEAD / HTTP/1.0\n\n",17,0);
recv(sock, digit, sizeof(digit),0);
printf("%s", digit);
close(sock);
}