DAY14
DAY14

최종 네트워크망 구축

20250108013 project 생성

[esw1] -포트 미러링
config t
monitor session 1 source interface fastethernet 1/0 - 14
monitor session 1 destination interface fastethernet 1/15
end
show monitor session 1

[r1]
config t
hostname r1
interface fastethernet0/0
ip address 100.100.100.254 255.255.255.0
no shutdown
exit
interface serial1/0
ip address 1.1.1.1 255.255.255.252
no shutdown
router rip
version 2
network 100.100.100.0
network 1.1.1.0

[r2]
config t
hostname r2
interface fastethernet0/0
ip address 125.246.95.254 255.255.255.0
no shutdown
exit
interface serial1/0
ip address 1.1.1.2 255.255.255.252
no shutdown
router rip
version 2
network 125.246.95.0
network 1.1.1.0

[kali]
100.100.100.1 255.255.255.0 100.100.100.254 125.246.95.152(server를 알 수 없으므로 방화벽으로 감)

nano /etc/hosts
nano /etc/resolv.conf
nano /etc/bind/named.conf.default-zones
nano /etc/apache2/sites-available/hosting.conf
nano /etc/bind/st.kr.zone
    10.0.2.15는 내부망이므로 125.246.95.152로 바꿔준다
a2ensite hosting
systemctl restart named
systemctl enable apache2
systemctl reload apache2


nano /etc/netplan/50-cloud-init.yaml *
network:
   version: 2
   ethernets:
    enp0s3:
       dhcp4: no
       addresses: [10.0.2.3/24] (맘대로)
       gateway4: 10.0.2.2 (utm)
       nameservers:
          addresses: [10.0.2.15] (도메인=네임서버)
sudo netplan apply

Bootstrap Example

외부 도메인 연결 오류

1. kali에서는 st.kr(도메인)으로 연결이 안되고 125.246.95.152로만 연결이 되나
win7(inside)은 연결이 되는 문제 발생

포트포워딩은 nat여야 가능하므로 해결할 수 없음

=> 해결:nano /etc/bind/st.kr.zone
    10.0.2.15는 내부망이므로 125.246.95.152로 바꿔준다

2. 메일 설정 최종 확인
유저가 서버에 있어야만 메일이 생성된다!

연결ip
mail.st.kr > 125.246.95.152 (kali, 외부메일)
mail2.st.kr > 10.0.2.15 (win7, 내부메일)

su
nano /etc/hostname
    (IP214.st.kr -> mail.st.kr)
nano /etc/mail/local-host-names (호스트이름 수정)
    mail.st.kr 추가
nano /etc/bind/st.kr.zone
reboot


Bootstrap Example

미션1: 정보수집을 통해 네트워크 환경을 재구성할 수 있다

ping st.kr
nslookup st.kr
traceroute (tracert) st.kr
dnsenum
(dnsenum을 통해 방화벽 및 UTM 존재 유무 확인, 내부 ip 확인이 가능하다!)
    sudo apt install dnsenum
    dnsenum st.kr
dnsmap
dnsrecon
fierce
masscan
nmap
nulcornscan 등등

#시스템 계정을 찾아라!
hydra 공격 또는 웹 취약점을 통해 발견이 가능하다.


Bootstrap Example

최종 점검

Bootstrap Example

1. 3server는 정상적으로 작동하나요?

최종 네트워크망 구축 완료

Bootstrap Example

2. 서버는 정상적으로 백업을 하나요?

[3server]
cd /backup
nano /etc/crontab
    시간 설정 후 저장
systemctl restart cron

[selk]
cd /backup/backup
ls
-> 백업파일 업로드 확인

=> 백업 완료

Bootstrap Example

미션2: 해커의 ping을 차단해보자

kali
su
ping st.kr (연결)

1. (방화벽)
https://192.168.0.254:4444
    방화벽 > icmp > 게이트웨이가 ping을 응답/사용/전달 체크 해제
=> ping st.kr 연결 안됨

2. (라우터)
access-list 차단
[r2]
config t
access-list 100 deny icmp host 100.100.100.1 host 125.246.95.152 echo
access-list 100 permit ip any any
interface serial1/0
ip access-group 100 in
exit
exit

< - >

show access-lists
config t
no access-list 100 (차단 해제)

Bootstrap Example

access-list 오류

해결
=> 안먹힐 때는 no access-list 100 한 뒤 다시 해보기


Bootstrap Example

2-1. 웹 취약점을 통한 백업서버 필요성 이해

kali >information gathering > dns analysis
    dnsenum st.kr
    /usr/share/dnsenum/dns.txt    > Brute forcing 공격
       log.st.kr.    604800    IN    A    10.0.2.3
    mail.st.kr.     604800    IN    A    125.246.95.152
    ns.st.kr.     604800    IN    A    192.168.0.214
    web2.st.kr.    604800    IN    A    125.246.95.152
    www.st.kr.     604800    IN    A    192.168.0.214


       st.kr class C netranges:
       _________________________

       125.246.95.0/24

       Performing reverse lookup on 256 ip addresses:
       _______________________________________________
=> mail, web2, www 등을 찾음! (word,dvwa는 못찾음)

    dnsmap
    dnsrecon
    fierce등등


포트찾기
nmap -v -sT -O st.kr
    PORT    STATE    SERVICE
    22/tcp    open    ssh
    25/tcp    open    smtp
    53/tcp    open    domain
    80/tcp    open    http
    110/tcp    open    pop3
    143/tcp    open    imap
    465/tcp    filtered    smtps
    587/tcp    filtered    submission
    4444/tcp    open    krb524 -> utm 눈에 띄므로 막아야함

=> 이런 경우 utm 사용자라면 웹으로 통해 접속 가능한지 확인이 가능하다!
Bootstrap Example

미션3: 외부에서 UTM에 접속하는 것을 차단해보자!

1. 방화벽에서 차단
    관리 > webadmin> 허용된 네트워크를 any에서 inside (network)로 변경
    => kali에서 125.246.95.152:4444 접속 안됨
2. 라우터에서 차단
    위와 동일

웹취약점(web:80)
1. nikto -host dvwa.st.kr (st.kr은 웹페이지밖에 없어서 nikto할 쓸모가 없다!)
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:       125.246.95.152
+ Target Hostname:    dvwa.st.kr
+ Target Port:    80
+ Start Time:    2025-01-08 02:34:40 (GMT-5)
---------------------------------------------------------------------------

패킷은 휘발성 데이터라서 처음 시작을 찾기 힘들기 때문에 로그로 남기는 것이 좋다!

nikto -host st.kr > /var/www/html > var/log/apache2
tail -f access.log (nikto -host 공격이 들어오면 로그가 남는다.)

nikto -host dvwa.st.kr > /home/dvwa/public_html
dvwa.st.kr > /home/dvwa/public_html/logs/access.log


=> 이런 경우 탐지시스템이 없으면 미리 알기 어려우므로 스노트(snort)룰등을 활용하면 좋을 것이다.

Bootstrap Example

2-2. 백업서버에 저장된 공격 로그 확인하기/공격 사용자 ip 차단하기

[3server]
su
apt -y install putty-tools
apt -y install mailutils
apt -y install samba-common smbclient cifs-utils(725p. samba > 리눅스 윈도우 공유 가능)

[win7]
c드라이브에 로그 디렉토리 생성
로그 파일 가져오기
pscp -P 22 master@10.0.2.15:access.log c:\log
    no such file or directory
pscp -P 22 master@10.0.2.15:/var/log/apache2/access.log c:\log
(실행 후 c드라이브에 로그 디렉토리에 access.log 가져와진 것을 확인할 수 있다.
    -> editplus로 열기)

/var/www/html의 경우 index.html만이 존재 하므로 취약성이 낮다.
단, /var/www/html에 로그가 대량 쌓여있으면 scan공격이 들어온 것으로 추정할 수 있다.

=> 공격로그를 확인한 경우 어떻게 해결할까?

1. 관리자에게 알린다
2. 스노트 룰을 이용해 탐지한다
3. 웹페이지에 접근하는 ip를 차단한다!!!
    교재 665p 1-8 응용
cd /etc/apache2/sites-available/hosting.conf

< VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName st.kr
    ServerAdmin st@st.kr
    Errorlog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined
< /VirtualHost>
< Directory /var/www/html/>
    Options
    AllowOverride
    Order by
    Allow from all
    Deny from 100.100.100.1
< /Directory>

systemctl reload apache2