OS/LINUX & UNIX
PLT, GOT
PLT, GOT
2016.11.01``c *(func@plt + 2) == func@got``다. PLT : Procedure Linkage TableGOT : Global Offset Table같은 file 내의 procedure라면 PLT가 따로 필요 없지만, 외부 library func를 호출할 때 PLT가 필요하다. linker가 PLT를 보고 func를 찾게 되기 때문. windows의 IAT와 비슷하다고 생각하면 된다. PLT는 GOT를 참조하여 해당 주소로 점프한다. dynamic linking함수를 호출할 때는 항상 PLT를 이용한다. * static 옵션으로 컴파일하면 바로 libc func 위치로 call하게 된다. system함수를 disassemble 해보면 PLT 영역의 system함수 항목이 출력된다. 해당 항목..
NetCat ( nc )
NetCat ( nc )
2016.10.25standalone server이를 이용하면 non-socket programming binary도 standalone server로 동작할 수 있다.근데 하나의 connection만 처리할 수 있으며 connection이 종료되면 nc도 꺼진다.```bash$ nv -vvv -e /bin/sh -l -p 1234``` ```bash$ rm -f /tmp/f; mkfifo /tmp/f$ cat /tmp/f | /bin/sh -i 2>&1 | nc -vvv -l -p 1234 > /tmp/f``` * `` -i`` 는 interactive 옵션인데, 대화형 모드로 띄워준다.interactive modestartup file을 읽어들이고, 프롬프트를 표시해준다.interactive mode를 백그라운드로 돌..
xinetd / micro-inetd
xinetd / micro-inetd
2016.09.26micro-inetd```bashusage: micro-inetd port program [args...]``` xinetd원래 유닉스 기반 시스템에서 네트워크 서비스를 제공하는 방법으로는 inetd + tcpd 조합과 standalone 방식이 있었다.요즘은 보안측면의 한계로 inetd 대신 xinetd를 사용한다.xinetd를 사용하면 tcpd로 패킷을 포워딩 해줄 필요 없다. TCP wrapper를 사용 안한다는 의미는 아니고, 별도의 프로그램(tcpd)을 따로 사용할 필요가 없어진 거라고 생각하면 된다. 기본 설정파일은 `` /etc/xinetd.conf`` 이고,xinetd가 제공하는 서비스들의 설정은 `` /etc/xinetd.d/``에 각각 존재한다.* 프로세스는 설정 파일에 지정된 `` u..
Shell shock
Shell shock
2016.08.15Bash 코드 인젝션 취약점(CVE-2014-6271 / CVE-2014-7169)환경변수 함수 정의 뒤에 임의의 실행코드를 추가하면 Bash에서 해당 환경 변수를 임포트하는 과정에서 추가된 실행코드가 루트권한으로 함께 실행된다. ```cbash-3.2$ env efunc='() { :;}; echo vulerable'vulnerable``` 사용 중인 시스템에 취약점 CVE-2014-7169이 존재 여부는 아래의 명령어를 통해 간단히 테스트 할 수 있다. Bash 코드 인젝션 취약점 스캔 공격자는 아래와 같은 과정을 통해 원격코드 실행을 테스트함으로써 해당 취약점이 포함된 Bash를 구동하는 웹 CGI 환경을 지속적으로 탐색하는 것으로 관찰되었다. 따라서 일반적인 웹 환경의 /cgi-bin/ 디렉토리 ..
리눅스 파일 설치과정 / Makefile 작성 / 윈도우에서 make하기. nmake
리눅스 파일 설치과정 / Makefile 작성 / 윈도우에서 make하기. nmake
2016.08.151) source code 2) ./configure [옵션] (생략)옵션에 따라 Makefile 생성이 때 configure 파일은 source code 제작자가 마음대로 만든 shell script이기 때문에 옵션 설명을 읽어봐야함. 3) makeMakefile에 나와있는 source code간의 관계, 필요한 컴파일러 등을 참고해서 컴파일한다. 4) make install적당한 디렉토리로 파일을 이동시키거나, make 결과인 설치파일을 실행한다. 빌드 스크립트 자동으로 만들어주는 패키지들.```bashapt-get install autoconf, automake, libtool, autoscan``` Makefile 작성법```bashmake -p``````maketarget: dependencie..
[LINUX & UNIX] Conf file Path, 설정, log
[LINUX & UNIX] Conf file Path, 설정, log
2016.08.10유닉스 리눅스 커널 설정 파일 /etc/system /etc/sysctl.conf 로그 저장 경로 /var/adm/ /var/log/ 로그 설정 파일 /etc/syslog.conf ( syslogd ) 대부분의 설정 파일 /etc/default/ 로그인 관련 /etc/default/login sudo 설정 파일 /etc/sudoers sudo visudo PAM 대상 서비스 설정 /etc/security/limits.conf 웹서버 설정 %webservdir%/conf/httpd.conf ( 웹서버 디렉토리는 대체로 /usr/local/apache ) DNS 서버 구성 /etc/named.conf DNS query 대상 서버 지정 /etc/resolv.conf 서비스 포트 지정 /etc/services ..
r 계열 명령어
r 계열 명령어
2016.08.09R command로 불리는 r 계열의 명령어(`` rsh, rlogin, rcp, rmd``) 등을 사용할 경우 `` $HOME/.rhosts`` 파일만 검사해서 요청을 처리하게 된다. `` .rhosts`` 파일의 형식.```hostname [username]````` hostname``은 접근을 허락하는 호스트, `` username``은 접근을 허락하는 사용자명.`` +@netgroup`` 으로 적어줄 시에는 `` netgroup``에 속한 모든 사용자의 접근을 허락하며, `` -hostname``으로 명시할 경우 `` hostname``을 통해 접근하는 모든 사용자를 거부하게 된다. .rhost 파일 생성 방지`` $HOME/.rhosts``라는 디렉퇴를 만든 다음 디렉토리 안에 임의의 파일을 생..
[LINUX & UNIX] Command
[LINUX & UNIX] Command
2016.08.08이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.