336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

리눅스 - 프로세스 백그라운드 실행
top &

top을 백그라운드로 실행
jobs

백그라운드로 실행되는 프로그램을 확인
fg %1

백그라운드로 실행되는 top명령을 다시 불러움

'Analysis > Linux' 카테고리의 다른 글

GDB 사용  (0) 2016.06.23
리눅스 로그 분석  (0) 2016.06.21
리눅스 시스템 정보 체크  (0) 2016.06.21
grep  (0) 2016.06.21
SetUID를 이용한 백도어 제작  (0) 2016.06.21
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

WebDAV에서 사용하는 메소드
Head/Trace : 네트워크 행동을 찾고 추적하는 기능
Get : 문서 검색
Put/Post : 문서를 서버에 전달
Delete : 리소스나 컬렉션을 삭제
Mkcol : 컬렉션을 만듦
PropFind/PropPatch : 리소스와 컬렉션의 속성을 검색하고 설정
Copy/Move : 이름 공간 문맥 내에 있는 컬렉션과 리소스를 관리
Lock/Unlock : 덮어 쓰기 방지 기능
Options : 서버가 지원하는 메소드를 출력


참고 : https://www.linux.co.kr/security/webdav_vulnerablity_analysis.pdf

'Analysis > Windows' 카테고리의 다른 글

SysWOW64란?  (0) 2016.07.18
Windbg 사용  (0) 2016.06.23
윈도우 보안 이벤트 // IIS 로그 분석  (0) 2016.06.21
윈도우 커맨드라인 명령어  (0) 2016.04.07
윈도우 디버깅 툴  (0) 2016.04.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Image file execution option


레지스트리 경로
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image file execution options

sethc.exe > cmd.exe     //StickyKeys (SHIFT 키를 5번 연속 클릭 시 실행, system32\sethc.exe)

utilman.exe > cmd.exe  //접근성 표시(system32\utilman.exe)


부팅 후 로그인 화면

StickyKey(sethc.exe) 및 접근성 표시(utilman.exe) 실행 시 cmd.exe가 실행

cmd 실행 후

net user administrator <password>


*StickyKeys 기능해제
Accessibility Options > Keyboard > Settings > Use shotcut(disable)





'Analysis > Malware' 카테고리의 다른 글

PEiD Signatures  (0) 2016.07.28
Packed.Dropper.PE  (0) 2016.07.27
GenPack:Trojan.Generic  (0) 2016.06.21
CryptXXX Decryptor  (0) 2016.06.21
Malware Classification  (0) 2016.06.21
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

보안 이벤트 넘버


%%2305 The specified user account has expired. (532)
%%2309 The specified account's password has expired. (535)
%%2310 Account currently disabled. (531)
%%2311 Account logon time restriction violation. (530)
%%2312 User not allowed to logon at this computer. (533)
%%2313 Unknown user name or bad password. (529)


====================================================


IIS 로그 파서


MSSQL 형식으로 로그 분석

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=24659


logparser -i:FS "SELECT TOP 20 Path, CreationTime FROM C:\inetpub\wwwroot\*.* ORDER BY CreationTime DESC" -rtp:-1 
최근 생성된 시간을 기준으로 찾기

logparser -i:FS "SELECT TOP 20 Path, LastWriteTime FROM C:\inetpub\wwwroot\*.* ORDER BY LastWriteTime DESC" -rtp:-1
최근 수정된 파일 찾기

logparser "SELECT DISTINCT TO_LOWERCASE(cs-uri-stem) AS URL, Count(*) AS Hits FROM ex*.log WHERE sc-status=200 GROUP BY URL ORDER BY URL"    -rtp:-1  
악성 파일을 삭제할 경우 200 OK 로그 찾기

logparser -i:FS "SELECT TO_LOWERCASE(SUBSTR(Name, LAST_INDEX_OF(Name, '.'),  STRLEN(Name))) AS Extenstion, Count(*) AS Files FROM C:\inetpub \wwwroot\*.*, C:\inetpub\scripts\*.* WHERE Attribute NOT LIKE 'D%' GROUP BY Extenstion ORDER BY Files DESC" -rtp:-1 
Script Abuse 분석(exe, dll 등의 파일 찾기)

logparser "SELECT [cs-uri-stem], [cs-uri-query], Count(*) AS [Hits] FROM c:\logs\web\ex*.log WHERE sc-status = 500 GROUP BY [cs-uri-stem], [cs-uri-query] ORDER BY [hits], [cs-uri-stem] DESC" -rtp:-1 -i:iisw3c
500 에러코드 검사

logparser "SELECT TO_STRING(TO_TIMESTAMP(date, time), 'yyyy-MM-dd') AS Day, cs-uri-stem, Count(*) AS Total ex*.log WHERE (sc-status<400 or sc-status>=500) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' OR TO_LOWERCASE(cs-uri-stem) LIKE '%.exe') GROUP BY Day, cs-uri-stem ORDER BY cs-uri-stem, Day" -rtp:-1 
가장 많은 리퀘스트 히트 찾기

logparser "SELECT date, QUANTIZE(time, 3600) AS hour, sc-status, Count(*) AS Errors FROM ex03*.log WHERE sc-status>=400 GROUP BY date, hour, sc-status HAVING Errors>25 ORDER BY Error DESC" -rtp:-1 
시간당 에러수가 가장 많이 발생한 날짜 확인

logparser "SELECT DISTINCT date, cs-uri-stem, c-ip, Count(*) AS Hits FROM ex*.log GROUP BY date, c-ip, cs-uri-stem HAVING Hits>50 ORDER BY Hits DESC" -rtp:-1 
하루동안 50번이상 동일 페이지에 접속을 시도한 Client IP 찾기

logparser "SELECT cs-uri-query, Count(*) AS Total FROM ex*.log WHERE sc-status>=500 GROUP BY cs-uri-query ORDER BY Total DESC" -rtp:-1 
모든 에러 기록 확인

logparser "SELECT cs-uri-stem, sc-status, Count(*) AS Total FROM ex*.log WHERE TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%' GROUP BY cs-uri-stem, sc-status ORDER BY cs-uri-stem, sc-status" -rtp:-1 
스크립트 및 Executable 파일의 HTTP 서버 코드 기록 확인

logparser "SELECT cs-uri-stem, WIN32_ERROR_DESCRIPTION(sc-win32-status) AS Error, Count(*) AS Total FROM ex*.log WHERE sc-win32-status>0 AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' OR TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%') GROUP BY cs-uri-stem, Error ORDER BY cs-uri-stem, Error" -rtp:-1
Win32 Status Code 분석을 통한 Attack 확인

logparser "SELECT cs-uri-stem, cs-method, Count(*) AS Total FROM ex*.log WHERE (sc-status<400 or sc-status>=500) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%') GROUP BY cs-uri-stem, cs-method ORDER BY cs-uri-stem, cs-method" -rtp:-1  
HTTP 메소드 통계 분석





'Analysis > Windows' 카테고리의 다른 글

Windbg 사용  (0) 2016.06.23
WebDAV에서 사용하는 메소드  (0) 2016.06.21
윈도우 커맨드라인 명령어  (0) 2016.04.07
윈도우 디버깅 툴  (0) 2016.04.07
SET-환경변수확인  (0) 2016.03.30
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Detection Name : GenPack:Trojan.Generic.2618737

MD5 : deaf01d9625d4104dbdc00eba37d7fc0


사용자 시스템 정보 수집

GetComputerNameA(&Buffer, &nSize)
GetVersionExA(&VersionInformation)
GlobalMemoryStatus((LPMEMORYSTATUS)&v15)


종료 및 재부팅

case 0x1000001:
  sub_300A70("SetShutdownPrivilege",1);
  ExitWindowsEx(0xCu, 0);
  break;
case 0x1000002:
  sub_300A70("SetShutdownPrivilege",1);
  ExitWindowsEx(0x6u, 0);
  break;
case 0x1000003:
  sub_300A70("SetShutdownPrivilege",1);
  ExitWindowsEx(0x4u, 0);
  break;


파일 다운로드 및 실행

wsprintfA(&v8, "abcdefg.exe");
GetTemppathA(0x104u, &CmdLine);
strcat(&CmdLine, "\\")
strcat(&CmdLine, &v8);
v1 = LoadLibraryA("urlmon.dll");
v2 = GetProcAddress(v1, "URLDownloadToFileA");
......
return WinExec(&CmdLine, 5u)


키보드/마우스 이벤트 API를 호출하여 제어

case 0x10000011:
  sub_300120(&v32);
  keybd_event(X[0], 0, 0, 0);
  sub_300170(&v32);
  break;
case 0x10000012:
  sub_300120(&v28);
  keybd_event(X[0], 0, 2u, 0);
  sub_300170(&v28);
  break;
case 0x10000013:
  sub_300120(&v30);
  SetCursorPos(*(int *)X, Y);
  sub_300170(&v30);
  break;
case 0x10000014:
  sub_300120(&v24);
  mouse_event(2u, 0, 0, 0, 0);
  sub_300170(&v24);
  break;
case 0x10000015:
  sub_300120(&v27);
  mouse_event(4u, 0, 0, 0, 0);
  sub_300170(&v27);
  break;


PC화면 스크린샷

CreateDC 함수 호출 후 전체 화면 DC 생성
CreateCompatibleDC 함수 호출 후 만들어진 전체 화면 DC를 호환되는 메모리 DC로 생성
CreateCompatibleBitmap 함수 호출 후 비트맵을 생성
BitBlt 함수를 호출 해서 메모리 DC에 화면 DC를 복사

v1 = this;
v2 = CreateDCA("DISPLAY", 0, 0, 0);
v3 = v2;
v4 = CreateCompatibleDC(v2);
v5 = v4;
v6 = v4;
v7 = CreateCompatibleBitmap(v3, *((_DWORD *)v1 + 5), *((_DWORD *)v1 + 6));
SelectObject(v5, v7);
BitBlt(v5, 0, 0, *((_DWORD *)v1 + 5), *((_DWORD *)v1 + 6), v3, 0, 0, 0xCC0020u);
............
GetDIBits(v6, v7, 0, *((_DWORD *)v1 + 6), (LPVOID)(*((_DWORD *)v1 + 1) + *((_DWORD *)v1 + 4)), (LPBITMAPINFO)v10, 0);
DeleteDC(v6);
DeleteDC(v3);
return DeleteObject(v7);


캠 도청

capCreateCaptureWindow 함수 호출 후 캡쳐 윈도우를 생성

C&C 서버에서 capDrivaerConnec 함수 호출 후 캡쳐 드라이브와 캡쳐 윈도우를 연결

v2 = CreateWindowExA(0, "#11220", WindowName, 0x80000000u, 0, 0, 0, 0, 0, 0, 0, 0);
*(_DWORD *)(v1 + 12) = v2;
*(_DWORD *)(v1 + 16) = capCreateCaptureWindowa("CVideoCap", 1342177280, 0, 0, 0, 0, v2, 0);



'Analysis > Malware' 카테고리의 다른 글

Packed.Dropper.PE  (0) 2016.07.27
[로컬 백도어] Image file execution option  (0) 2016.06.21
CryptXXX Decryptor  (0) 2016.06.21
Malware Classification  (0) 2016.06.21
Hosts 변조  (0) 2016.06.20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Decrypted: Kaspersky releases free decryptor for CryptXXX Ransomware
출처 : http://www.bleepingcomputer.com/news/security/decrypted-kaspersky-releases-free-decryptor-for-cryptxxx-ransomware/


'Analysis > Malware' 카테고리의 다른 글

[로컬 백도어] Image file execution option  (0) 2016.06.21
GenPack:Trojan.Generic  (0) 2016.06.21
Malware Classification  (0) 2016.06.21
Hosts 변조  (0) 2016.06.20
Anti-AV 센스  (0) 2016.06.20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

갓모드[GodMode, CVE-2014-6332]

CVE-2014-6332 취약점은 윈도 OLE(Object Linking and Embedding) 자동화 배열 원격코드 실행 취약점으로,
인터넷 익스플로러(Internet Explorer, 이하 IE)가 OLE 객체를 처리하는 과정에서 원격으로 코드를 실행하는 취약점이다.
이 취약점은 IE​의 VBScript 엔진에서 배열의 크기를 재설정하는 과정에서 충분한 에러 처리를 수행하지 않아 발생한다.
배열의 크기를 재설정할 때 배열의 크기를 저장하고 있는 변수를 새로운 값으로 갱신하는데,
배열을 할당하는 과정에서 에러가 발생한 경우 이전 값으로 되돌리지 않는다.
따라서 초기 배열의 영역 이외의 메모리를 읽고, 쓰고, 접근하는 것이 가능하게 된다. 

참고 : http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=1&menu_dist=2&seq=23225

실버라이트 취약점 [CVE-2013-0074]
참고 : http://hummingbird.tistory.com/5406

플래시 취약점 [CVE-2014-0515]
참고 : http://hacklab.kr/?p=203


IP 체크

'http://checkip.dyndns.org/' 접속을 통한 공인IP 체크


PE 내장

악성코드에 securityxploded에서 제작된 툴을 내장하여 정보수집에 활용

http://securityxploded.com/download.php#exescan


랜섬웨어 - 볼륨 섀도 카피 삭제
악성코드는 ‘vssadmin.exe Delete Shadows/All/Quiet‘
명령을 실행하여 볼륨 섀도 카피를 삭제한다.
이 경우 윈도 운영체제에서 제공하는 파일 백업 및 복원 기능을 정상적으로 이용할 수 없다.
이 명령은 CryptLocker류에서 공통적으로 확인할 수 있는 기능이다.


시작프로그램 레지스트리

HKCU\Software\Microsoft\Windows\CureentVersion\Run\


시스템 디렉토리

%SystemRoot%\
%SystemRoot%\system\
%SystemRoot%\system32\
%SystemRoot%\system32\
%SystemRoot%\system32\dllcache
%SystemRoot%\system32\drivers
%SystemRoot%\SysWOW64\
%SystemRoot%\SysWOW64\dllcache
%SystemRoot%\SysWOW64\drivers


SysWOW64는 64비트 시스템에서만 존재하는 폴더로 32비트와의 호환성을 위해 존재하는 폴더이다.
“%SystemRoot%\system32\” 폴더에 64비트 시스템 파일이 위치한다면 “%SystemRoot%\SysWOW64\”에는 32비트 시스템 파일이 위치한다.
따라서, 64비트 시스템에서는 2개의 폴더를 모두 조사할 필요가 있다.


사용자 디렉토리

%SystemDrive%\Users\
%SystemDrive%\Users\Public\(%Public%)
%SystemDrive%\Users\Default\


사용자 데이터 디렉토리

%UserProfile%\AppData\
%UserProfile%\AppData\Local\(%LocalAppData%)
%UserProfile%\AppData\LocalLow\
%UserProfile%\AppData\Roaming\(%AppData%)
%SystemDrive%\ProgramData\(%AllUsersProfile%)


휴지통 디렉토리

%SystemDrive%\$Recycle.Bin\


사용자볼륨 디렉토리

%SystemDrive%\System Volume Information\


임시 디렉토리

%UserProfile%\AppData\Local\Temp = %Temp%
%SystemRoot%\Temp\
%LocalAppData%\Microsoft\Windows\Temporary Internet Files\


웹브라우저 다운로드 디렉토리

%UserProfile%\Downloads
%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\
%SystemRoot\Downloaded Program Files   //Active X


알려진 디렉토리

%SystemDrive%\HNC


기타 디렉토리

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
%SystemDrive%\Program Files\Common Files\ = %CommonProgramFiles%
%SystemDrive%\Program Files (x86)\Common Files\ = %CommonProgramFiles(x86)%

%UserProfile%
(=%HomePath%)
%Windir%
%LocalAppdata%
%Public%
%SystemRoot%
%Temp%
(=%TMP%)

'Analysis > Malware' 카테고리의 다른 글

GenPack:Trojan.Generic  (0) 2016.06.21
CryptXXX Decryptor  (0) 2016.06.21
Hosts 변조  (0) 2016.06.20
Anti-AV 센스  (0) 2016.06.20
W32.Madangel  (0) 2016.04.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

웹사이트 참조 우선순위
 - 로컬시스템의 DNS Cache 정보
 - hosts.ics(internet connection sharing)
 - hosts
 - DNS


C:\Windows\System32\Drivers\etc\hosts 파일 변조
C:\Windows\System32\Drivers\etc\hosts.ics 생성


윈도우에서 캐시 초기화 ipconfig/flushdns, 수동 맵핑파일 {SystemDir}\drivers\etc\hosts

윈도우에서 캐시 리스트 확인 ipconfig/displaydns

리눅스(유닉스)에서는 기본적으로 dns 캐시를 사용하지 않는다. /etc/init.d/nscd restart (password/group/hosts캐시 초기화), 수동 맵핑파일 etc/hosts

MacOS X 10.4 이전 캐시 초기화  lookupd -flushdns, 수동 맵핑파일/etc/hosts
MacOS X 10.5 이후  캐시 초기화 dnscacheutil -flushdns, 수동 맵핑파일   /etc/hosts


익스플로어에서 DNS 캐시설정

https://support.microsoft.com/ko-kr/kb/263558

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings

값 이름: DnsCacheTimeout
데이터 형식: REG_DWORD
단위: 10진수
값: (초 단위 시간)

값 이름: ServerInfoTimeOut
데이터 형식: REG_DWORD
단위: 10진수
값: (초 단위 시간)

파이어폭스에서 DNS 캐시설정

about:config 접속
network.dnsCacheEntries (캐시 항목 개수),
network.dnsCacheExpiration (캐시 기간, 단위: 초) 두 항목을 변경하거나 새로 추가한다.
entry 개수가 0이 되면 캐시를 전혀 하지 않는다. 복잡한 웹사이트 로딩시 속도 저하가 발생할 수 있다.


호스트 변조 바이러스 중 '파밍 악성코드'는 드라이브 바이 다운로드 공격을 주로 이용하며
Java,Flash,IE등의 취약점을 대다수 이용하는 다동 스크립트(Dadong's Script), 공다팩(Gongda Exploit Pack)등이 주를 이룬다.

'Analysis > Malware' 카테고리의 다른 글

GenPack:Trojan.Generic  (0) 2016.06.21
CryptXXX Decryptor  (0) 2016.06.21
Malware Classification  (0) 2016.06.21
Anti-AV 센스  (0) 2016.06.20
W32.Madangel  (0) 2016.04.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Anti-AV 대상 프로세스

V3 Lite
V3LRun.exe
V3LTray.exe
V3LSvc.exe

V3 Internet Security
V3Up.exe
V3SP.exe
Mupdate2.exe
V3SVC.exe

SiteGuard
sgsvc.exe
sgui.exe
sgrun.exe

ASP
MYSFTY.exe

Online Security
Aosrts.exe

Antivir
avgnt.exe
avcenter.exe
avguard.exe
avscan.exe
avupgsvc.exe
avwsc.exe

Avast
avastsvc.exe
ashupd.exe
avastui.exe

AVG
avgam.exe
avgemc.exe
avgnsx.exe
avgrsx.exe
avgfrw.exe
avgwdsvc.exe
avgupd.exe

BitDefender
updatesrv.exe
seccenter.exe
bdagent.exe
bdagent.exe
bdreinit.exe

Eset
egui.exe
ekrn.exe

Kaspersky
Avp.exe

McAfree
shstat.exe
updaterui.exe
mctray.exe

MSE
msseces.exe

Symantec Norton
ccsvchst.exe
navw32.exe

Telus
vsserv.exe

Naver AV
NSVMon.npc
Nsavsvc.npc
NaverAgent.exe

Alyac
AYRTSRV.aye
AYupdsrv.aye
ayagent.aye

===================================


더미다를 이용한 백신우회 옵션


Protection Option
Anti-Debugger Detection - Ultra
Advanced API-Wrapping - Level2
Anti-Dumpers - Enable Protection
Anti-Patching - none
Entry Point Obfuscation - Enable Protection
Metamorph Security - Enable Protection
Resources Encryption - Disenable Protection
Memory Guard - Enable Protection
Monitor Blocker - Enable Enable
VMWare/VirtualPC - Compatible
When Dubugger Found : Crash App

Advanced Option
Encrypt Applications - Enable
.NET Assembles Checks - Enable
Protect as DLL Plugin - DisEnable
Active Context - DisEnable
Hide from PE scanners - Standard
Localization - English
Add Manifest - Don't add..
Splash screen settings - Display..



'Analysis > Malware' 카테고리의 다른 글

GenPack:Trojan.Generic  (0) 2016.06.21
CryptXXX Decryptor  (0) 2016.06.21
Malware Classification  (0) 2016.06.21
Hosts 변조  (0) 2016.06.20
W32.Madangel  (0) 2016.04.07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

LEA와 MOV의 차이점


MOV는 말 그대로 데이터값을 옮겨 주는 것
(인텔 명령어셋 : 명령어 DST, SRC)


MOV REG1, REG2
REG2의 값을 REG1에 옮긴다는 뜻


MOV EAX, ECX
ECX에 있는 값을 EAX에 옮긴다.

단순하게 보면 LEA도 비슷하다.


LEA REG, MEM
MEM 주소값을 REG에 옮긴다는 뜻


LEA EAX, 1234
EAX가 1234이라는 값을 가지게 된다.

MOV EAX, 1234와 차이점을 비교하면 차이가 없다.
MOV EAX, 1234도 EAX에 1234값을 옮기기 때문이다.


하지만
LEA는 OPCODE의 ModR/M 을 이용하고
SRC의 값을 연산한 뒤 REG에 옮길 수 있다.


즉, MOV는 특정 메모리나 레지스터의 값을 옮기기만 하는 것이지
옮겨지는 값에 연산을 할 수 없다.


LEA EAX, [EBP+1000]
EBP의 값에 1000을 더한 뒤 EAX에 그 값을 넣게 된다.

즉, EBP가 2000이었으면 EAX의 값을 3000이 된다.


위와 같은 명령을 MOV로 표현을 하려면
ADD EBP, 1000
MOV EAX, EBP로 두개의 명령어로 표현해야 한다.

즉, LEA를 이용하여 좀 더 명령어를 줄일 수 있게 된다.


?? MOV EAX, [EBP+5] ???
EBP+5의 위치에 있는 값을 EAX에 넣는다.
즉, EBP가 100이었으면, LEA처럼 계산된 값인 105를 EAX에 넣는게 아니라
주소가 105번지에 있는 값을 EAX에 넣게된다.


즉, LEA만이 실행중에 계산된값을 넣을 수 있다.

'Analysis > Assembly' 카테고리의 다른 글

VS2010 YASM설치  (0) 2016.07.26

+ Recent posts