분류 전체보기
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함수 항목이 출력된다. 해당 항목..
[webhacking.kr] 18 : SQL injection 공백 / and 우선순위
[webhacking.kr] 18 : SQL injection 공백 / and 우선순위
2016.10.29이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
Proxy / VPN
Proxy / VPN
2016.10.29프록시의 기능은 크게 두가지. 1. 중계, 2. 캐싱. HTTP proxy `` X-Forwarded-For``? Client IP 구하기 : X-Forwarded-For와 X-Real-IP `` X-Forwarded-Host`` : Client가 요청한 원래 host. reverse proxy server가 원래 요청받은 서버가 어디인지 식별하기 위해 사용한다. 이 field들은 proxy server가 original host's IP를 제대로 report해준다는 데 의존하기 때문에 신뢰성이 떨어진다. 위조되기도 쉽고, 표준이 아니라 "사실상의" 표준이기 때문에 지켜지지 않는 경우도 많다. 단, 마지막 IP는 항상 마지막 proxy server에 연결된 IP다. `` X-Forwarded-For:cl..
Wireshark / tcpdump
Wireshark / tcpdump
2016.10.29ShortCut Ctrl + F 하고 나서 Ctrl +N / B Ctrl + M 마커 하고 나서 Shift + Ctrl + N / B Tip SYN이후 모든 segment는 ACK flag가 set(1)되어있다. File-Export HTTP Object 기능 유용. frame protocol은 모든 data를 포괄한다. 따라서 frame containts나 frame matches로 Ctrl + F를 대체할 수 있음. Text String 검색은 Packet Detail로 설정해야 나오는 경우가 대부분. list로 설정하면 검색이 안된다. FTP 클릭하고 Follow TCP Stream하면 segmentation되어 전송된 FTP 패킷전체가 한번에 보이고 이를 file로 save할 수 있다. 이 때 반..
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를 백그라운드로 돌..
FSB, Format String Attack/Bug
FSB, Format String Attack/Bug
2016.10.23#1 %08x / n$``c %x``보다 ``c %08x``를 사용하는 편이 보기도 좋고, 출력 문자 개수 맞추기도 편하다.``c %hn`` 이전에 선행 출력 문자 개수를 만들 때도 ``c %*x || %*d``를 사용한다. + 특정 위치 데이터를 출력하려면 ``c n$`` 이용한다. #2 %hn``c %n``이 작용하는 순간 그 위치 포함 +4 bytes가 ``c 0``으로 초기화 되면서 값이 써진다. 그래서 ``c %n``으로 쓰려면 하위주소 부터 쓰고 상위주소를 써야 이후에 쓰는 ``c %n``이 이전에 쓴 하위 2 bytes 값을 덮어 쓰지 않는다.그러나 이렇게 하위주소 부터 쓰고 상위주소를 써도, 4 bytes를 잡고 쓰게 되므로 다음 2 bytes를 덮어 써서 그 부분의 데이터가 손실된다.따라..
Windows Authentication [ SAM ]
Windows Authentication [ SAM ]
2016.10.14LSA , Local Security Authority [ lsass.exe ]SRM , Security Reference Monitor SAM , Security Account Manager SAMwindows 계정의 패스워드 해시를 저장하고 있는, *nix의 `` /etc/shadow``같은 파일이다.SYSKEY로 암호화 되어있기 때문에 SYSKEY를 이용해서 복호화해야 password hash를 얻을 수 있다.* 사실 단순히 password hash가 목적이라면 fgdump같은 툴을 사용해 memory에 올라가 있는 hash value를 바로 얻는 방법도 있다. FormatSAM 암호화를 풀면, windows 계정 패스워드가 다음과 같은 형태로 저장되어 있다.```username:SID:LM has..
Interrupt
Interrupt
2016.10.07Interrupt가 발생하면 CPU는 ISR로 진입하게 되며 Interrupt를 적절히 처리해 주는 것은 OS의 역할이다.이는 Interrupt가 하드웨어적으로 CPU에 바로 입력되기 때문에 가능하다.* CPU pin 중에 Interrupt pin이 하나 존재한다.각각의 디바이스는 Interrupt Controller를 가지고 있는데, 여기서 CPU의 Interrupt pin으로 전기적 신호를 보내는 식으로 동작한다. Interrupt VS SignalInterrupts can be viewed as a mean of communication between the CPU and the OS kernel. Signals can be viewed as a mean of communication between..
Windows boot process, MBR
Windows boot process, MBR
2016.10.02MBR 앞쪽 440Byte에는 bootstrapping program이 들어있고, OS-specific하다. ( Windows MBR laoder, LILO, GRUB... )MBR의 446~509( 64Byte )Byte에 Partition Table이 들어있고, bootstrapping program과 달리 표준화되어있다. 각 파티션은 16Byte를 사용하므로 기본적으로 4개의 파티션에 대한 정보를 나타낼 수 있다. 각 파티션 정보의 첫 번째 바이트는 해당 파티션이 부팅 가능한 파티션인지 나타낸다. ( 0x80이면 부팅 가능 0x00이면 불가능 ) MBR 바이너리는 이렇게 생겼다.드라이브 1 드라이브 1의 MBR code 드라이브 2 드라이브 2의 MBR code파티션 테이블이 잘못되면 출력되는 In..
RDP를 활용한 Shadowing & Remote control
RDP를 활용한 Shadowing & Remote control
2016.09.30Shadowing Terminal Services session을 이용해 다른 터미널 세션을 컨트롤 할 수 있다. 즉 다른 사용자가 보고있는 그 화면 자체를 보거나, 컨트롤 할 수 있기 때문에 이를 이용해 원격지원 할 수 있다. RDP 시 `` /shadow:[sessionID]``를 붙여주거나, 일단 RDP로 연결한 다음 `` cmd - mstsc /shadow:[sessionID]`` 또는 `` 작업관리자 - 사용자 - user 우클릭 - 원격제어```` gpedit.msc``설정에 따라 Host에 세션에 shadow가 붙는다는 내용의 안내문구와 수락/거부 팝업이 뜬다.세션을 유지한 채 shadowing을 종료하려면 `` Ctrl + *`` (tenkey쪽 버튼으로 눌러야함) Windows 10 호스..
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..
Tools - Reversing, bf tool
Tools - Reversing, bf tool
2016.09.25이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.