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'