17일차

문제21
계정 추가 competition
adduser competition ->cd /home -> ls -> su competition -> cd ~ -> chmod 711 $HOME -> chmod 755 ~/public_html
호스트 추가(bind)
nano /etc/bind/st.kr.zone -> systemctl restart named
호스팅 추가(hosting)
cd /etc/apache2
cd sites-available
ls
nano hosting.conf

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



Options None
Order Allow,Deny
Allow from all
Deny from 100.100.100.1/24
Deny from 100.100.100.1/32


systemctl restart apache2

http://competition.st.kr

su competition
ls
rm -rf index.html (삭제)
rm -rf index.php
touch index.html(생성)

문제11

문제6
kali로 부터 오는 메일차단

문제14
암호강도높인후 계정생성
nano /etc/login.defs
shop.st.kr > 워드프레스 기반 쇼핑몰이다
디렉토리 777 - 022 = 755
파일 666 - 022 = 644

부팅시 마운트지점
/etc/fstab
/etc/passwd
/etc/login.defs(로그인강도높이기)
/etc/mail/access > X (sendmail 설치시 확인 가능)

cd /home/word
cd public_html
show.st.kr
cd
chown shop:shop
cp
unzip word.zip
http://shop.st.kr/wordpress


공격의 시작
ping shop.st.kr
100.100.100.1 쉽게 노출
hping3 shop.st.kr -S -i u50 -c 5
hping3 st.kr -a i 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
wpscan --url shop.st.kr -U user.txt -P passwd.txt
공격을 성공시키기

미션1
shop 로그에 기록된 access.log 데이터에 100.100.100.1은 총몇번을 접속 시도 했는지 계산하시오

미션2
해커가 실행했던 명령어가 무엇인지 알수있는가?
php.st.kr/monitor.php 에서 확인가능하도록 하려면

공격후에 대한 로그 확보
미션2
shop에 대한 웹 파일과 데이터베이스 백업후 관리자 PC에 저장
/etc/skel 파일 수정
nano backup.sh
#!/bin/sh
set $(date)
NOW=$(date "+%Y%m%d_%T")
mysqldump -u XXX -pXXXXXX XXX > /home/XXX/XXX_$NOW.sql
fname="backup-dvwa-$1$2$3.tar.gz"
tar cvzf /backup/$fname /home/dvwa/public_html#!/bin/sh
/home/shop
nano backup.sh
#!/bin/sh
set $(date)
NOW=$(date "+%Y%m%d_%T")
mysqldump -u shop -p123456 shop >
/home/shop/public_html/shop_$NOW.sql
fname="backup-shop-$1$2$3.tar.gz"
tar cvzf /backup/$fname /home/shop/public_html
ls -al -> backup.sh가 root일경우 shop로바꿔줘야한다 ->chown shop:shop backup.sh -> ls -> ls -al -> chmod 777 backup.sh -> ls -> su word ->ls(backup.sh가 초록색으로 바뀌면O) -> ./backup.sh


미션3
백업 파일로 복원작업 진행
호스트 이름 : backup.st.kr
shop.st.kr

ftp 10.0.2.15
shop
123456
dir
cd public_html
dir

*복원 시스템구축*
step1
lapm설치
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
일반계정 홈페이지 작동시키기
1> 계정추가전에
cd /etc/skel
mkdir public_html

cd public_html
mkdir includes
mkdir auth
mkdir logs
touch index.html
touch index.php

a2enmod userdir
st.kr/~st : /home/st/public_html > Forbidden
su st
chmod 711 $HOME
chmod 755 ~/public_html

shop 계정만들고나서
step2
도메인 세팅(p522~p548 참고)
cd /etc/bind
sudo nano /etc/bind/named.conf.default-zones
cp db.local st.kr.zone
nano /etc/bind/st.kr.zone
systemctl restart named
dns 210으로 변경
설치할때오류나면 dns 99로변경
sudo nano /etc/resolv.conf

step3
호스팅 세팅
nano /etc/apache2/site-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
systemctl restart apache2

step4
백업 받은 파일은 백업서버로 이전
cd /home/shop/public_html
XXX.sql 파일은 복원

create database shop;
create user shop@localhost identified by '123456';
grant all on shop.* to shop@localhost;
flush privileges;

unzip public_html.zip
ls
mysql
show databases;
use shop;
show tables; (없으면 exit으로 나가서 mtsql -u shop < shop_20250112_17_01_57.sql)


복원 작업 끝~