Vmware Tool 설치시 linux header 경로관련 에러

linux header 설치

linux kernel은 일반적으로 컴파일된 바이너리로 여러 경로에 흩어져 있다. 
linux header 는 kernel을 위한 소스코드고 보통 커널 모듈을 빌드하는데 필요하다.

sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install linux-headers-generic
Read more

Nmap options

Nmap option

Nmap 6.40 ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}

TARGET SPECIFICATION:

Can pass hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : Input from list of hosts/networks
-iR : Choose random targets
--exclude : Exclude hosts/networks
--excludefile : Exclude list from file

HOST DISCOVERY:

-sL: List Scan - simply list targets to scan
-sn: Ping Scan - disable port scan
-Pn: Treat all hosts as online -- skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
--dns-servers : Specify custom DNS servers
--system-dns: Use OS's DNS resolver
--traceroute: Trace hop path to each host

SCAN TECHNIQUES:

-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-sN/sF/sX: TCP Null, FIN, and Xmas scans
--scanflags : Customize TCP scan flags
-sI : Idle scan
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP protocol scan
-b : FTP bounce scan

PORT SPECIFICATION AND SCAN ORDER:

-p : Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
F: Fast mode - Scan fewer ports than the default scan
-r: Scan ports consecutively - don't randomize
--top-ports : Scan most common ports
--port-ratio : Scan ports more common than

SERVICE/VERSION DETECTION:

-sV: Probe open ports to determine service/version info
--version-intensity : Set from 0 (light) to 9 (try all probes)
--version-light: Limit to most likely probes (intensity 2)
--version-all: Try every single probe (intensity 9)
--version-trace: Show detailed version scan activity (for debugging)

FIREWALL/IDS EVASION AND SPOOFING:

-f; --mtu : fragment packets (optionally w/given MTU)
-D : Cloak a scan with decoys
-S : Spoof source address
-e : Use specified interface
-g/--source-port : Use given port number
--data-length : Append random data to sent packets
--ip-options : Send packets with specified ip options
--ttl : Set IP time-to-live field
--spoof-mac : Spoof your MAC address
--badsum: Send packets with a bogus TCP/UDP/SCTP checksum


1. 포트 스캔 기술

  • TCP SYN 스캔 (-sS)
프로토콜(TCP) 포트를 스캔하는데 가장 빠른 방법으로 지금까지 단연 인기 있는 스캔방법이다. 이 스캔은 연결 스캔보다 더 비밀스러우며 모든 기능적인 TCP 스택에 대해 잘 작동한다.
  • TCP 연결 (-sT)
연결 스캔은 대부분의 다른 방법처럼 로우 패킷에 의존하기 보다는 장치를 스캔하는데 같은 이름의 시스템 콜을 사용한다. 이 스캔은 대부분 권한이 없는 유닉스 사용자들이 사용하며 그런 경우 SYN스캔이 작동하지 않기 때문에 IPv6를 대상으로 사용된다.
  • UDP (-sU)
UDP 포트 스캔이다.
  • TCP FIN, Xmas, Nll (-sF, -sX, sN)
특정 목적 스캔 방법으로 방화벽 뒤에 있는 시스템을 탐험하기 위해 방화벽을 몰래 지나치는데 사용한다. 불행히도 이 스캔들은 일부 시스템이 보여주지 않는 대상 시스템의 행동에 의존한다.
  • TCP ACK (-sA)
ACK 스캔은 보통 방화벽 규치 세그를 정밀하게 표시하기 위해 사용한다. 특히 ACK스캔은 방화벽 규칙이 제대로 된 상태에 있는지 아닌지를 이해하는데 도움을 준다. 단점을 열린 포트와 닫힌 포트를 구별하지 못하는 점이다.
  • TCP Window (-sW)
윈도우 스캔은 ACK스캔과 같은데 특정장치에 대해서는 열린 포트와 닫힌 포트를 구별할 수 있다는 점에서 다르다.
  • TCP Maimon (-sM)
이 모호한 방화벽-침투 스캔방법은 FIN스캔과 유사한테 ACK플래그도 포함한다. 이는 더 많은 패킷 필터링 방화벽을 잡게 허락하는데 단점은 FIN스캔보다 더 적은 시스템에 대해 작동한다는 점이다.
  • TCP Idle (-sl)
Idle 스캔은 모든 방법 중 가장 비밀스러운 스캔방법이며 때로는 신뢰성이 있는 IP주소 관계조차 탐험한다. 불행히도 이 스캔 역시 느리고 복잡하다.
  • IP 프로토콜 (-sO)
프로토콜 스캔은 어느 IP프로토콜이 대상 장치에 의해 지원되는지를 결정한다. 이것은 TCP나 UDP포트 번호보다는 IP프로토콜 숫자를 통해 순환하기 때문에 기술적으로 포트 스캔이 아니다. 하지만 여전히 -P 옵션을 사용해 스캔된 프로토콜 번호를 선택하고 결과를 보통의 포트 테이블 형식으로 보고하며 포트 스캐닝 방법과 같은 스캔엔진을 사용한다.
  • TCP FTP 바운스 (-b)
TCP FTP 바운스 스캔 종류는 FTP서버를 속여 프록시로 포트 스캔을 수행하게 한다. FTP서버는 이제 이 스캔을 방지하게 패치됐다.

2. 포트 선택

  • -p
-p인수를 통해 해당 포트를 지정한다. port대신 서비스가 매치될 수도 있다.(-p ssh)
  • -p 80, 21, 22
, 를 이용해 다수의 포트를 선택할 수 있다.
  • -p 20-23
-를 이용해 범위를 확장할 수 있다.
  • -p-
전체 포트(1 ~ 65535)를 스캔한다.
  • -p http*
와이드카드(*)는 포트와 유사한 이름의 서비스를 매치시키는데 사용될수 있다.

3. 서비스 탐지

  • -sV
열려있는 해당 포트의 서비스와 버젼을 탐지한다.

4. 방화벽, IDS 우회 및 스푸핑

  • -f; --mtu
fragment packets 크기를 조정하여 탐지를 어렵게 한다.
  • -S
source IP address를 변조한다.
  • -g; --source-port
source port를 변조한다.
  • -e
특정 인터페이스를 선택한다.
  • --data-length
랜덤 데이터를 패킷에 추가한다.
  • --ttl
time-to-live 필드를 설정한다.
  • --spoof-mac
MAC 주소를 변조한다.
  • --badsum
TCP/UDP/SCTP패킷에 잘못된 checksum 값을 설정한다.


참고:http://sol9501.blog.me/70102045865
 
Read more

Install APM

apt-get install apache2

apt-get install php5 php5-gd php5-mysql

apt-get install mysql-server mysql-client

apt-get install phpmyadmin

/etc/apache2/apache2.conf 에
"include /etc/phpmyadmin/apache.conf" 추가
Read more

취약성, 위협, 위험, 노출

취약성 (vulnerability) 

취약성은 컴퓨터나 네트워크에 침입하려고하며, 한 환경의 리소스에 대한 허가 없는 접근을 시도하려는 공격자에게 열린 문을 제공할 수 있는 소프트웨어, 하드웨어, 혹은 절차 상의 결점을 말한다. 취약성은 부당하게 이용될 수 있는 안전 장치의 부재 혹은 결점으로 간주된다. 이 취약성은 서버에서 실행되는 서비스, 제한 없는 모뎀 전화 접속 접근, 침입차단 시스템의 열린 포트, 아무나 출입할 수 있는 서버 룸의 느슨한 물리적 보안, 혹은 서버와 워크스테이션 상의 규제 없는 패스워드 관리가 될 수 있다. 

위협 (threat) 

위협은 정보 혹은 시스템에 대한 잠재적인 위험을 말한다. 위협의 주체는 침입차단 시스템의 특정 포트를 통해 네트워크에 접근하는 침입자, 보안 정책을 위반하는 방법으로 데이터에 접근하는 프로세스, 시설물들을 파괴하는 토네이도, 혹은 의도하지 않은 실수로 기밀 정보를 누설하거나 파일의 무결성을 해치는 직원이 될 수 있다. 

위험(risk) 

 위험은 위협 주체가 취약성을 활용할 수 있는 가능성을 말한다. 위험은 위협이 취약성을 부당하게 활용할 수 있는 잠재적 손해 혹은 가능성이다. 만약 침입차단 시스템이 다수의 개방된 포트를 가지고 있다면, 침입자가 허가되지 않은 방법으로 네트워크에 접근할 수 있는 보다 높은 위험성이 있다. 만약 사용자들이 과정과 절차에 대한 교육을 받지 않았다면, 직원이 고의적 혹은 의도하지 않은 실수로 데이터를 파괴할 수 있는 위험성이 높다. 만약 침입 탐지 시스템이 네트워크에 설치되지 않았다면, 인식했을 때는 이미 늦은 것이 될 때까지 공격이 계속될 수 있는 위험성이 높다. 취약성 또는 위협을 줄이는 것이 위험을 줄이는 것이다. 

노출(exposure) 

노출은 위협주체에게 손실을 드러내 보이는 경우를 말한다. 취약성은 조직에 있어서 발생 가능한 피해를 노출시킨다. 만약 패스워드 관리가 느슨하고 패스워드 규정이 집행되지 않으면, 기업은 사용자들의 패스워드가 유출되고 허가되지 않은 방법으로 사용될 수 있는 가능성에 노출될 수 있다. 만약 한 기업이 배선에 대한 점검을 하지 않고 사전에 화재예방에 대한 조치를 취하지 않는다면, 그 기업은 잠재적으로 참화를 가져오는 화재에 노출될 수 있다.
Read more

GCC(The GNU Compiler Collection) OPTION


GCC OPTION 

sudo apt-get install g++-multilib libc6-dev-i386 (ubuntu)
 : 64bit 머신에서 32bit 바이너리로 컴파일 가능하게 라이브러리 설치
-m32
 : 32bit 바이너리로 컴파일
-fno-stack-protector(<-> -stack-protector)
 : remove canary(__stack_chk_fail)
-mpreferred-stack-boundary=2
 : remove stack boundary(dummy)
-z execstack
 :executable stack
-fno-builtin
 :builtin함수 사용
-fPIC
 :flexible compile
-fno-pie
  : remove PIE 


gcc -m32 -masm=intel --save-temp -o a a.c
  : intel asem, save .i .s .o (.i .s .o파일 다 남김)
gcc -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack -fno-pie -o


 


Read more

IDA 유용한 단축키


IDA SHORTCUT

ctrl + 1 : Quick view
d : date
Alt + a : ASCII string style
Esc : back 
X : xref to 
Y : set function time (change argv, calling convention, return type)
M : enum member
N : rename 

insert(enum) : add enum 
n(enum) : add enum member 
u(enum) : del enum member 

d(structure) : add structure member 
u(structure) : del structure member 

ctrl + p : jump to function
g : jump to address

local win32 debugger 

F2 : soft breakpoint 
F7 : step into 
F8 : step over 

map file 생성 -> GODUP.Dll으로 olly 와 연동 

u : code undefine 
c : code define
Read more