#20250104

1. victim.jeonjucom.kr 공격
- ip 확인
> nslookup victim.jeonjucom.kr
192.168.0.126

- 열려있는 포트 확인
> nmap -v -p1-65535 192.168.0.126
21 22 23 25 80 143 8080 443 3306 110

- 정보수집 후 사이트 접속

- 서버에 등록된 사용자 수

- 시스템에 접속 가능한지 확인

위 사이트의 웹 애플리케이션이 취약하다.

-----

웹 접속
admin
password

DVWA Security > LOW
Command Injection > ; cat /etc/passwd로 사용자 정보 확인.


---

ssh 접속

bee
1qaz2wsx



윈도우에서 intra.st.kr 접속하기
윈도우 DNS 서버 변경
192.168.0.209
192.168.0.99

포트포워딩 DNS(53)만 UDP로 열기

> sudo nano /etc/bind/st.kr.zone


---

editplus 접속
> nano /etc/vsftpd.conf
#write_enable=yes > 주석 제거
#anon_upload_enable=yes > 주석 제거
#anon_mkdir_wirte_enable=yes > 주석 제거
#xferlog_file=/var/log/vsftpd.log > 주석 제거
(241231_5.png)
(241231_6.png)
> nano /etc/vsftpd.chroot_list
계정 추가 : st, master
(241231_7.png)

> systemctl restart vsftpd

editplus > ftp 설정 > intra.st.kr - st - 123456 - /home/st/public_html > 고급 옵션 > passive ftp모드 해제

하면 editplus에서 정상적으로 접속 가능.

---

웹 구축

PHP-FPM(FPM : FastCGI Process Manager) 설치
> sudo apt -y install php8.3-fpm
> a2enmod proxy_fcgi setenvif
> a2enconf php8.3-fpm
> systemctl restart php8.3-fpm apache2

proifle.php
monitor.php
/includes/header.php

db 접속
> create database st;
> create user st@localhost identified by '123456';
> grant all on st.* to st@localhost;
> flush privileges;

/includes/db.php

----

로그인 기능 만들기 위해 192.168.0.126 서버에서 db 테이블 가져오기.

192.168.0.126 접속.
root > cd /var/www/dvwa/config/config.inc.php
에서 db 비밀번호 확인.


db 접속 후 테이블 확인
mysql -u root -p
비밀번호 : bug

db 빠져나온 후 db 내용 꺼내기
> mysqldump -u root -p dvwa > dvwa.sql

dvwa.sql 우분투 서버로 가져오기
192.168.0.209 > wget 192.168.0.126/dvwa.sql

st db에 적용시키기
mysql -u st -p st < dvwa.sql


sudo nano /etc/rsyslog.conf
sudo nano /etc/rsyslog.d/50-default.conf

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

-----

로그인 기능 구현

login.php
method="POST"

login_ok.php
db 연결
select * from users where user='admin' and password='password'
라고 설정하고 db에서 실행시켜보니 값이 찾아지지 않는다.
테이블을 보니 password 값이 해시값으로 나타나 있었기 때문이다.


그러므로 함수를 사용해 웹에 출력시킨 후 db에서 다시 실행하면 값이 찾아지는 것을 확인할 수 있다.
$password=md5($password);
select * from users where user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99'