Exploit Code for ipTIME firmwares < 9.58 RCE with root privileges against 127 router models
2016.02.18 05:37
https://pierrekim.github.io/blog/2015-07-01-poc-with-RCE-against-127-iptime-router-models.html
해당 취약점은 iptime 9.58 이하의 거의 모든 장비에서 발생하는 것으로 확인되고 있으며, 아무런 권한 없이 쉘 명령어를 입력 할 수 있다.
사용자가 DDNS를 사용하고 있는 경우 WAN 상에서도 바로 명령어 실행이 가능
1. POC 코드
- 위 Html코드를 이용해서 Post로 데이터를 전송하여 쉘 명령어를 실행 할 수 있다.
- 공유기에 따라서 cgi-bin 부분이 sess-bin 으로 바뀔 수도 있다.
- 해당 스크립트를 실행시키면 현재 실행된 프로세스 목록을 확인 할 수 있다.
2. 취약점 확인
취약점은 펌웨어의 sbin 디렉터리에 존재하는 httpd에 존재한다. 일반적인 cgi 프로그램과 마찬가지로 공유기에서도 ScriptAlias를 이용하여 특정 디렉토리를 CGI 프로그램용으로 둔다.
- 여기에서는 bin 디렉터리를 /sess-bin/ 으로alias를 하는 것을 확인 할 수 있다.
- bin 디렉터리에는 단순 cgi 파일 뿐만 아니라 busybox파일과 그외의 시스템 명령어 바이너리가 존재 한다.
- ida를 이용해 httpd 파일을 뜯어 192.168.0.1을 url에 입력했을때 실행되는 부분을 찾아 보았다.
- trasnlate_uri 함수에서 /sess-bin/login_session.cgi 인지를 비교 한 후 패스워드가 존재 하면 auth_authorize로 넘어 가고 패스워드가 없는 경우 다른 경로로 이동하게 된다.
- init_cgi는 해당 취약점에서 중요한 부분인데 여기서 입력 cgi 환경 변수와 url 요청들과같은 것을 처리 한다.
-init_cgi 안에는 complete_env 함수가 존재하고 내부에서는 함수 내부에서 환경 변수를 저장한다.
- 문제가 되는 부분은 REQUEST_URI 부분으로 이부분은 우리가 요청한 sh로 저장이된다.
- 같은 cgi 디렉터리에 있기 때문에 sh도 일종의 url처럼 환경변수에 저장이 되고 나중에 이것이 시스템 명령어에 의해 실행이 된다.
취약점을 확인 하다보니, iptime에서 사용하는 httpd는 http://www.boa.org/ 제공하는 웹서버의 소스코드와 유사하였다.
- 위사진은 boa 웹서버의 소스코드 일부이며 execve(req->pathname, aargv, req->cgi_env);에서 req->pathname이 poc 코드에 있던 sh 명령어이다.
이것이 execv에 의해 post된 데이터와 환경변수에 의해 실행이되고 결과 값으로 쉘 명령어가 브라우저 상에 출력된다.
해당 취약점이 발견된 후 펌웨어 9.62에서는 cgi 디렉터리와 bin을 분리시켜 시스템 명령러가 실행되는것을 일단은 막아 두었다.
-
human hair wigs
2018.08.11 16:11
human hair wigs tres joli human hair wigs conforme à cette image a colis rapide
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
13 |
Apache struts2 RCE(Remote code execution) CVE-2017-5638, S2-045 취약점
![]() | Leekyu | 2017.03.19 | 2432 |
12 |
WordPress 4.7.0/4.7.1 - Unauthenticated Content Injection 취약점
![]() | Leekyu | 2017.02.11 | 12527 |
11 |
Pydio / AjaXplorer 5.0.3 Shell Upload 파일 업로드 취약점
![]() | Leekyu | 2016.08.27 | 1033 |
10 |
V2 Conference Video Conference System SQL injection Vulnerability.
![]() | Leekyu | 2016.07.23 | 947 |
9 | Joomla JCE Remote File Upload file (upgrade version) | Leekyu | 2016.04.04 | 5293 |
» | Exploit Code for ipTIME firmwares < 9.58 RCE with root privileges against 127 router models [1] | Leekyu | 2016.02.18 | 3589 |
7 |
Remote File Inclusion
![]() | Leekyu | 2014.11.09 | 3402 |
6 | JBoss AS Remote Exploit [1] | Leekyu | 2014.09.23 | 2379 |
5 |
구글봇을 이용한 공격
![]() | Leekyu | 2014.04.20 | 7125 |
4 |
Tomcat web application manager exploit
![]() | Leekyu | 2013.10.13 | 5025 |
3 |
Joomla JCE Remote File Upload
![]() | Leekyu | 2013.09.29 | 14726 |
2 |
HTTP server CONNECT method used to bypass filtering (HTTP_Connect_Proxy_Bypass_SMTP)
![]() | Leekyu | 2013.09.25 | 19148 |
1 |
Dadong's JSXX 0.41 VIP 난독화
![]() | Leekyu | 2013.07.03 | 984 |