남기면 좋잖아

7장 침투 심화 공격 단계 본문

Penetration testing/Kali Linux

7장 침투 심화 공격 단계

Beautiful Hugo 2017. 7. 3. 19:57
반응형

- Contents -



7.1 파일 업로드 취약점의 이해

7.2 웹 백도어 공격






오늘 하게 될 내용은 침투 심화 공격 단계입니다.

공격자가 서버에 침투를 성공해 근접 네트워크에 접근하기 위해서 2차적인 작업을 하는 단계죠.

공격자들이 서버에 침투할 수 있는 경로는 웹 서비스가 많은 비중을 차지하게 됩니다.


그런의미로 이번 7장에서는 웹 백도어 공격에 대해 많은 내용을 다룰 것입니다.








7.1 파일 업로드 취약점의 이해






파일 업로드 취약점을 정의하면 '파일이 업로드되는 부분에 검증이 제대로 이뤄지지 않음으로써 악의적인 기능이 포함된 파일을 업로드해 시스템 침투와 권한을 획득하는 공격' 이라고 할 수 있습니다.


보통 외국 사이트를 보면 자기 자랑처럼 사이트를 변조해서 "나 이 시스템에 침투했다!" 라고 자랑을 하지만, 업무에선 그렇게 하면 고객이 좋아하지 않는 다고 합니다.

시스템 자체를 장악하는 것이 1차적으로 중요한 목표이지만, 실제 목표는 사내의 주요정보, 개인 주요 정보등을  획득하기 위함이죠.



따라서 웹 서버와 연결돼 있는 데이터베이스의 연결 정보에 관심을 갖게 되며, 해당 시스템을 통해 접근할 수 있는 네트워크 대역의 서버들, 기타 장비들이 있는지 확인합니다.


시간만 많이 주어진다면 서버에 침투가 된다는 것은 다른 대역까지도, 개인 PC까지도 침투가 가능할 수 있다고 하는데요.

그 파일 업로드 취약점이 발생할 수 있는 곳은 당연히 첨부 파일 기능이 있는 곳이 많이 차지하게 됩니다.


이에 대해 대응을 철저히 해야하지만, 관리자 페이지만 들어가면 저희가 실습할 때 사용하는 테스트 페이지보다 보안이 더욱 안돼 있을 때가 많다고 합니다.









7.2 웹 백도어 공격






파일 업로드 기능이 취약한 것을 파악했다면 악의적인 기능이 포함돼 있는 웹 셸을 업로드해 시스템 침투를 시도해봐야겠죠?



7.2.1 weevley로 백도어 제작


weevly 는 base 64 인코딩 기법을 이용해 웹셸을 생성하고, 서비스에 업로드된 파일을 이용해 내부 시스템에 침투하는 기능이 포함된 백도어 도구입니다.


현재 책에서는 v0.3 이고 현재 칼리리눅스에선 v3.2.0 이기 때문에.. 명령어가 매우 바뀌었습니다.


기본적으로 백도어를 만드는 명령은 이렇게 됩니다.


# weevely generate <password> <백도어 파일명>


명령을 성공했지만 당황스럽게 없어서 어떻게 된거지..? 했다가 설마설마하고 /usr/share/weevely/ 디렉터리에 가보니 생성된 걸 확인할 수 있었습니다 ㅋㅋ


이렇게 생성된 백도어 파일을 이제 대상 서버 어딘가세 심어줘야될텐데요.



저는 취약 서버대상에 DVWA 라는 모의해킹 공부하기 좋은 테스트환경이 있습니다.

아이디 비번은 admin/password 에 DVWA security 레벨은 low 로 해놓았습니다.


왼쪽 카테고리에 upload 부분에서 백도어파일을 업로드하면 경로가 나오고 

그대로 url에 경로를 붙이면 백도어파일이 있는 경로가 됩니다.






백도어 심기까지 완료가 되었고,

다시 weevely 로 돌아와서 명령어를 쳐줍니다.


# weevely http://192.168.0.12/dvwa/hackable/uploads/test.php 1234


옵션없이 백도어 파일까지의 URL과 패스워드를 순서대로 입력하시면됩니다.


그리고 최초 명령어 입력시 연결이 되는데요.




이렇게 쉘따기에 성공해버렸습니다.



또 신기한점은 :help 를 쳐보시면 weevely 만의 명령이 또 따로 있는데 그중에 저는 file_download 를 한번 테스트 해봤습니다.

각 명령어마다 사용법이 나와있구요. file_download의 경우 <복사하고자 하는파일 경로> <복사될 내 로컬경로> 를 차례대로 입력해주시면 됬습니다.





정상적으로 다운되었구요 ㅎㅎ





7.2.2 웹쉘로 백도어하기




번외로 저번장 진행할때 파일 업로드 취약점을 언급만 하고 넘어갔었는데요. 취약 대상서버에 msf를 활용해서 업로드 취약점에 대해 공격을 해볼까 합니다.


namp 으로 대상서버에 포트스캔 한결과




이렇게 나왔고, 맨 마지막줄 8180 포트가 http 프로토콜로 아파치 톰캣서비스를 한다고 적혀있네요.

192.168.0.12:8180 에 들어가 보니 정말 톰캣서비스 페이지가 나왔고,


디폴트라면 192.168.0.12:8180/manager/html 은 톰캣 관리자 페이지로 되어있을 것입니다.




예상대로 관리자페이지가 나와있습니다.

허나 그다음 문제는 톰캣관리자의 아이디와 패스워드인데요...

이 부분은 바로 MSF를 이용하는 겁니다.


msfconsole 에 접속하신뒤, search tomcat 로 검색해보시면


auxiliary/scanner/http/tomcat_mgr_login 모듈이 나올텐데 

이 모듈로 톰캣관리자 아이디와 패스워드를 브루트포스 방식으로 찾아내는겁니다.


msf> use auxiliary/scanner/http/tomcat_mgr_login 


show options 로 옵션을 보시면 rhost와 rport가 비어있거나 다른값일텐데 대상서버에 맞는 값을 넣어줍니다.


그리고 run 이나 exploit을 해주시면,




얼마 걸리지않아 도출되는 것을 보실 수 있습니다. 아이디와 비밀번호까지 디폴트로 되어있었던것 같네요..


이제 저 아이디와 비밀번호로 관리자페이지에 접속해봅니다.


그럼 밑으로 가보시면 첨부할수 있는 기능이 있습니다. 

거기에 준비해둔 웹쉘을 war 파일로 압축하여 올려주시면 정상적으로 첨부가 됩니다.



저는 shell.war 파일로 압축하여 올렸고 밑에 Browse... 부분에서 첨부해주시면 됩니다.


그리고 url에서 접속시켜주시면 됩니다.



제가 구한 웹쉘은 저렇게 url 부분에 명령어를 치면 웹에 뿌려주는 형태로 동작하는데요.

웹쉘에 따라 동작은 다 상이할수있지만 공격하는 방식은 거의 동일하다고 보시면됩니다.








오늘은 7장 침투 심화 공격 단계에서 백도어에 관한 내용을 다루어 봤습니다.

공격을 성공하는데 끝을 내지않고 언제든 침투할 수 있게 백도어를 심어둔다는게 해보면서 이런 의미란걸 알게되었습니다..

이런 공격들을 막으려면 소스코드 레벨에서 필터하여 방어해주는게 제일 좋다고 하네요.


다음 장에서는 패스워드 크랙 관련하여 다룰 껀데 어떤 내용이 있을지 궁금해지네요 ㅎㅎ


저는 여기서 7장 침투 심화 공격 단계를 마치겠습니다. 다들 화이팅합시다!!

반응형

'Penetration testing > Kali Linux' 카테고리의 다른 글

8장 패스워드 크랙 진단  (0) 2017.07.03
6장 취약점 진단 단계  (0) 2017.07.02
5장 취약점 평가 단계  (0) 2017.05.26
칼리 리눅스 설치 후 초기 설정  (0) 2017.05.21
4장 정보 수집 상세 단계  (0) 2017.05.19
Comments