Troubles with pipes, fork, and dup2 | Unix Linux Forums | Shell Programming and Scripting

  Go Back    


Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

Troubles with pipes, fork, and dup2

Shell Programming and Scripting


Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 11-10-2013
dano88 dano88 is offline
Registered User
 
Join Date: Mar 2010
Last Activity: 11 November 2013, 4:04 AM EST
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Troubles with pipes, fork, and dup2

I want to execute metasploit by two pipes to communicate with it, but I have troubles with that communication. When I run my program, I get this error: "stty: standard input: Inappropriate ioctl for device" and I don't receive the metasploit promt.
just select an exploit.
This is my code:



Code:
#include <stdio.h>
 #include <stdlib.h>
 #include <string.h> 
#include <errno.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <iostream> 

 int main(int argc, char** argv) { 

     int pipeIn[2];    
     int pipeOut[2];     
     pipe(pipeIn);
     pipe(pipeOut);
     pid_t hijo=fork();

     if (hijo==0) {
         dup2(pipeIn[0], STDIN_FILENO);
         dup2(pipeOut[1], STDOUT_FILENO);
         dup2(pipeOut[1], STDERR_FILENO); 
         close(pipeIn[0]);         close(pipeOut[1]);
          close(pipeIn[1]);         close(pipeOut[0]); 

        char* argv[]={"msfconsole", NULL};
         execvp("msfconsole", argv);

     }else if (hijo==-1) { 
        perror("fork");         exit(EXIT_FAILURE);     

} else{//padre  
       close(pipeIn[0]);         close(pipeOut[1]); 

        char buf[1024];
         int count;
           bool b=true;
         int ccount=0;
          for (;b;){
             while (b && (count=read(pipeOut[0], buf, sizeof(char) * 1024))>0){
                 buf[count]='\0'; 
                 printf ("%s", buf);
                 if (strstr(buf, "msf >")!= 0){
                      write(pipeIn[1], "use exploit/windows/fileformat/adobe_pdf_embedded_exe_nojs \n\0 ", sizeof(char)*1024);
                     if (ccount++>=1){ printf ("encontrado"); b=false; }
             } }
          }
               close(pipeIn[1]); 
              close(pipeOut[0]);
           }}


It shows this:

Code:
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMM                MMMMMMMMMM
MMMN$                           vMMMM
MMMNl  MMMMM             MMMMM  JMMMM
MMMNl  MMMMMMMN       NMMMMMMM  JMMMM
MMMNl  MMMMMMMMMNmmmNMMMMMMMMM  JMMMM
MMMNI  MMMMMMMMMMMMMMMMMMMMMMM  jMMMM
MMMNI  MMMMMMMMMMMMMMMMMMMMMMM  jMMMM
MMMNI  MMMMM   MMMMMMM   MMMMM  jMMMM
MMMNI  MMMMM   MMMMMMM   MMMMM  jMMMM
MMMNI  MMMNM   MMMMMMM   MMMMM  jMMMM
MMMNI  WMMMM   MMMMMMM   MMMM#  JMMMM
MMMMR  ?MMNM             MMMMM .dMMMM
MMMMNm `?MMM             MMMM` dMMMMM
MMMMMMN  ?MM             MM?  NMMMMMN
MMMMMMMMNe                 JMMMMMNMMM
MMMMMMMMMMNm,            eMMMMMNMMNMM
MMMMNNMNMMMMMNx        MMMMMMNMMNMMNM
MMMMMMMMNMMNMMMMm+..+MMNMMNMNMMNMMNMM
        http://metasploit.pro


       =[ metasploit v4.7.2-1 [core:4.7 api:1.0]
+ -- --=[ 1211 exploits - 733 auxiliary - 202 post
+ -- --=[ 317 payloads - 30 encoders - 8 nops

stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
stty: standard input : Inappropriate ioctl for device
^C

Sponsored Links
    #2  
Old 11-11-2013
Chubler_XL's Avatar
Chubler_XL Chubler_XL is offline Forum Advisor  
Registered User
 
Join Date: Oct 2010
Last Activity: 18 December 2014, 5:15 PM EST
Posts: 3,051
Thanks: 114
Thanked 984 Times in 921 Posts
Looks like another hacker tool masquerading as "Penetration Testing Software".

I can't really see legit reason to automate running this unix through pipes.
Sponsored Links
    #3  
Old 11-11-2013
dano88 dano88 is offline
Registered User
 
Join Date: Mar 2010
Last Activity: 11 November 2013, 4:04 AM EST
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Firstly, thank you for your answer. But I have one question: what would you do to automate it?
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
C, unix, pipes, fork, recursion tarasque Programming 2 07-06-2012 12:03 PM
C++ socket, fork & pipes timmyyyyy Programming 2 02-17-2012 04:34 PM
a issue with dup2 vovan Programming 1 02-05-2009 12:28 AM
Interprocess communication using pipes and fork scmay UNIX for Advanced & Expert Users 2 10-14-2004 10:44 PM
PIPEs and Named PIPEs (FIFO) Buffer size Jus Filesystems, Disks and Memory 1 08-20-2004 11:14 AM



All times are GMT -4. The time now is 01:24 AM.