웹 해킹 & 시큐어 코딩

웹 해킹 & 시큐어 코딩 (13)

홍시뗄레 2025. 1. 21. 15:21

[실습3-1] OS Command Injection 공격 실습

admin 계정으로 로그인하고 나서 ping check을 들어간다. 192.168.0.1을 입력해본다. 방화벽 IP 주소다. 그냥 결과값을 몽땅 출력시키는 케이스이다. 

 

192.168.0.1&echo "test"

이번엔 이걸 쳐보자. 뒤에 echo 붙이기

밑에 "test"가 나온 것을 알 수 있다. command injection이 된다고 판단할 수 있다.

 

이번엔

192.168.0.1&ipconfig

이런 식으로 나왔다. ipconfig으로 했을 때 나오는 걸 보니 윈도우 기반이라는 것을 알 수 있다. 만약 리눅스 기반이었다면 ifconfig라고 치면 나올 것이다.

윈도우 기반에서 네트워크 정보를 알아낼 수 있는 ipconfig. 

 

다음으로는 버전 정보를 찾아보자.

192.168.0.1&ver

이렇게 밑에 버전 정보가 나온다.

 

다음으로

192.168.0.1&whoami

해당 프로그램을 실행한 사용자 정보를 확인할 수 있다.

system 권한이다. 윈도우 최고 권한이라는 것을 알 수 있다. 

패스워드 획득도 가능하고 여러가지 공격 방향을 정할 수 있다. 원격 데스크톱 공격도 가능하다.

 

192.168.0.1|whoami

이렇게 쳐보자.

앞에 있던 구문들은 다 없어지고 뒤의 whoami 명령어만 작동된 걸 볼 수 있다.

이렇게 문자 &, |의 차이가 나타난다.

 

리눅스 기반으로는 cat으로 패스워드 열람, 소스코드 열람도 가능하다. 

윈도우로도 해보자.

192.168.0.1|dir

디렉터리 정보가 나온다. 이 중에서 파일을 열람해보자. 

예시로 common.php 파일을 열어보자.

 

192.168.0.1|type common.php

이렇게 소스코드가 출력된다. 다양한 소스코드 열람이 충분히 가능하다는 의미이다.

 

[실습3-2] OS Command Injection 공격을 통한 Reverse-Shell 실습

Bind Shell

정방향 연결. client에서 연결 요청을 하고 server가 응답하는 방식.

Reverse Shell

client가 요청하는 게 아니라 server가 요청을 해서 client가 응답을 하며 연결되는 방식.

방화벽이 있는 환경에서 자주 사용된다. 웹 포트만 연결될 수 있어서 비교적 느슨한 out bound 정책으로 연결을 맺게 된다. 연결을 맺고 나면 그때부터 시스템 명령을 요청할 수 있다. 

 

netcat

네트워크 상에서 파일을 전송하는 등 유용한 해킹도구이다. 평문 전송을 한다.

ncat: 암호화 통신을 제공한다. 

 

netcat을 다운로드 받아야 하는데 현재 바이러스가 걸려져 있어 다운로드가 안된다고 한다... 그래서 나중에 실습을 하고 나서 다시 글을 수정하겠다.