- shellcraft 모듈에서는 sh() 함수를 이용해 간단하게 "/bin/sh" 를 실행하는 shellcode를 생성할 수 있다.
해당 함수는 aarch64,amd64,arm,i386,mips,thumb 아키텍처의 linux, freebsd 운영체제에 맞는 shellocode를 생성 할 수 있다.
다음과 같이 아키텍처와 운영체제를 선택한 후 sh() 함수를 호출하면, 해당 조건에 맞는 shellcode를 리턴한다.
shellcraft.i386.linux.sh()
[EXAMPLE]
- shellcraft 모듈에서는 bindsh() 함수를 이용해 간단하게 bind shellcode를 생성 할 수 있다.
해당 함수는 amd64,mips,thumb 아키텍처의 linux 운영체제에 맞는 bind shellocode를 생성 할 수 있다.
다음과 같이 아키텍처와 운영체제를 선택한 후 bindsh() 함수를 호출하면, 해당 조건에 맞는 shellcode를 리턴한다.
첫번째 인자는 사용할 Port 번호를 전달한다.
두번째 인자는 사용할 네트워크가 'ipv4','ipv6' 인지 전달한다.
shellcraft.amd64.linux.bindsh(port, network)
[EXAMPLE]
- shellcraft 모듈에 connect(), findpeersh() 함수를 이용해 간단하게 reverse shellcode를 생성 할 수 있다.
connect() 함수는 aarch64,amd64,arm,i386,mips,thumb 아키텍처의 linux 운영체제만 지원한다.
전달될 인자 값은 다음과 같다.
첫번째 인자 값은 연결할 IP 주소를 전달한다.
두번째 인자 값은 연결할 Port를 전달한다.
세번째 인자 값은 연결할 네트워가 'ipv4','ipv6'인지 전달한다.
findpeersh() 함수는를 이용해 connect 함수에 의해 생성된 소켓에 표준 스트림을 복제(링크) 한다.
findpeersh() 함수는 amd64,i386,mips,thumb 아키텍처의 linux 운영체제만 지원한다.
첫번째 인자 값으로 connect() 함수에 전달된 port 번호를 전달한다.
shellcraft.i386.linux.connect(host, port, network)
shellcraft.i386.linux.findpeersh(port)
[EXAMPLE]
REF: https://www.lazenca.net/pages/viewpage.action?pageId=14712942
03.Bind & Reverse Shellcode (0) | 2020.05.04 |
---|---|
02.Basic & Change permissions Shellcode (0) | 2020.05.04 |
01.The basics technique of Shellcode (0) | 2020.05.04 |
댓글 영역