2026년 6월 현재, Windows Server + IIS 조합은 기업 IT 인프라에서 여전히 광범위하게 쓰이고 있다. 일부 은행, 지방자치단체 세금 시스템, 도시 인프라 백엔드는 .NET Framework + IIS 위에서 동작하며, LDAP/Kerberos/AD 도메인에 깊이 통합되어 있다. 이런 IIS 서버를 외부에서 정찰할 때 어디서부터 파고들어야 하는지 정리한다.

IIS 서버를 찾는 첫 단계: 노출 자산 검색
IIS 정찰은 외부 노출 면적(enumerate externally exposed IIS instances)에서 시작한다. 검색 엔진과 인터넷 자산 검색 서비스가 핵심 도구다.
| 검색 대상 | 도구 | 핵심 쿼리/방법 |
|----------|------|---------------|
| SSL 인증서 + 조직명 | Shodan | org:"Target Inc" + http.title:"IIS" |
| SSL 인증서 + 조직명 | FOFA, Censys, Netlas, Odin | Shodan과 다른 인덱스 제공 |
| Google dork | ext:aspx | ASP.NET 흔적으로 IIS 신호 포착 |
| 와일드카드 서브도메인 | site:*.target.com | 중첩 서브도메인까지 |
| IIS 식별 | httpx / nuclei | Server: Microsoft-IIS/X-Powered-By 헤더 |
Server: Microsoft-IIS/10.0, X-Powered-By: ASP.NET 같은 응답 헤더는 IIS 식별의 가장 쉬운 단서다. 대규모 확인에는 httpx나 nuclei로 IIS 대상 목록을 자동 생성할 수 있다.
숨은 가상 호스트와 초기 단서 확보
IIS 인스턴스가 특정 가상 호스트에만 바인딩돼 있으면, Host 헤더가 맞지 않아 HTTPAPI 2.0 404가 반환될 수 있다. 이건 실제로 빈 서버가 아니라 vhost 미스매치 신호다.
- Exchange/OWA 프런트에서 자주 노출되는 내부 정보*:
Location: https://192.168.5.237/owa/헤더 → 내부 IP 노출X-FEServer헤더 → Exchange 내부 호스트명 노출- HTTP/1.0 요청만으로 위 정보가 새어나오는 구성 다수
숨은 vhost를 찾는 두 가지 경로는 다음과 같다.
- SSL 인증서의 subject 또는 SAN 필드에서 후보 호스트명 추출
- ffuf + Host 헤더 wordlist로 vhost 브루트포싱
맞는 호스트명을 찾으면 일반 404 대신 실제 애플리케이션이 응답한다. 이후 단계에서 활용 가능한 정보 노출로 이어지는 핵심 단계다.
IIS tilde shortname enumeration — DOS 8.3 레거시 공격면
IIS는 DOS 8.3 파일명 규칙에서 물려받은 동작 때문에, 특수 요청으로 파일과 디렉터리의 짧은 이름을 열거할 수 있다. 디렉터리 리스팅이 비활성화돼 있어도 WEB~1.CON, GLOBAL~1.ASA, SITEBA~1.ZIP, ADMIN~1 같은 조각이 드러난다.
$ shortscan --target https://target.com/ --timeout 5
[*] Found: WEB~1.CON
[*] Found: SITEBA~1.ZIP
- 짧은 이름을 전체 파일명으로 복원하는 도구*:
| 도구 | 방식 |
|------|------|
| LLM | shortname 조각 → 가능한 파일명 후보 생성 |
| GSNW | GitHub code search에서 매칭 파일명 수집 |
| GitHub-IIS-Shortname-Generator | 단어 목록 자동 생성 |
| shortnameguesser | 여러 소스를 질의해 타깃 wordlist 작성 |

| BigQuery | 공개 GitHub 데이터셋에서 shortname 패턴 매칭 |
| crunch | 남은 문자열 조합 wordlist 생성 |
Assetnote의 IIS hidden files BigQuery 연구에서 영감을 받은 기법이다. SITEBA~1.ZIP → sitebackup.zip, sitebase.zip 같은 실제 프로젝트 파일명 후보를 얻을 수 있다.
IIS/.NET 특화 퍼징 — 고가치 경로 우선 겨냥
일반 wordlist만으로는 IIS/.NET 생태계 고유 파일과 엔드포인트를 놓칠 수 있다.
- 우선 확인할 고가치 경로*:
/web.config
/web.config.bak
/web.config.old
/web.config.txt
/global.asax
/trace.axd
/elmah.axd
/connectionstrings.config
/appsettings.json
/appsettings.Development.json
/appsettings.Production.json
/secrets.json
/WS_FTP.LOG
/_vti_pvt/service.cnf
- IIS 특화 확장자 퍼징 대상*:
.asp, .aspx, .ashx, .asmx, .wsdl, .wadl, .config, .xml, .zip, .txt, .dll, .json
trace.axd는 활성화돼 있으면 헤더·쿠키·때로는 자격증명을 포함한 요청/응답 로그가 노출된다. elmah.axd는 개발자가 끄지 않은 디스크 엔드포인트로 남아 오류 로그를 보여준다. IIS는 대소문자를 구분하지 않으므로 mixed-case wordlist는 중복 요청을 만든다. tr '[:upper:]' '[:lower:]' | sort -u로 정규화하는 방식이 권장된다.
web.config와 ViewState machine key 노출
web.config를 path traversal, 잘못 노출된 백업, shortname 발견으로 읽을 수 있으면 IIS 대상에서 영향이 커진다.
IIS web.config에는 ViewState 서명과 암호화에 쓰이는 machine keys가 들어 있을 수 있다. machine keys가 있으면 ysoserial.net으로 악성 직렬화 ViewState payload를 위조해 deserialization 기반 원격 코드 실행으로 이어진다.
ASP.NET의 레거시 cookieless session 기능은 (S(X)) 형태의 세션 토큰을 URL 경로에 넣을 수 있다. IIS가 해당 세그먼트를 경로 정규화 중 제거하면서 /bin 디렉터리 접근 차단을 우회할 수 있다. 실제 애플리케이션 DLL을 받으면 dotPeek/dnSpy로 디컴파일해 하드코딩된 자격증명, API 키, 내부 엔드포인트 로직, 커텁 인증 구현을 확인한다.
경로 정규화, NTFS, 업로드, WAF 우회 기법
IIS가 reverse proxy 뒤에 있거나 그 자체로 reverse proxy 역할을 할 때 경로 정규화 차이가 접근 제어 우회로 이어질 수 있다. proxy는 인코딩된 경로를 다른 리소스로 보고 전달하지만, IIS는 %2f를 /로 디코딩하고 traversal을 해석해 보호 경로를 제공할 수 있다.
IIS 7.5와 유사 버전은 NTFS alternate data streams + index allocation 동작으로 basic authentication 우회가 가능할 수 있다. 인증 모듈은 보호 경로로 인식하지 못하지만 파일 시스템은 실제 디렉터리로 해석한다.
- 업로드 확장자 우회*:
.aspx,.asp가 차단돼도 IIS는 기본적으로 HTML로 제공하는 확장자를 통해 stored XSS가 가능하다.
| 우회 분류 | 확장자 예시 |
|----------|-----------|
| HTML 렌더링 | .cer, .hxt, .htm |
| XML 기반 XSS | .dtd, .mno, .vml, .xsl, .xht, .svg, .xml, .xsd, .xsf, .svgz, .xslt, .wsdl, .xhtml |
| Server-side includes | .stm, .shtm, .shtml |
IIS는 파일명 끝의 점을 제거하는 동작이 있어 shell.aspx., shell.aspx.., shell.aspx... 같은 업로드 필터 우회가 가능하다. WAF가 payload를 막을 때는 HTTP Parameter Pollution으로 중복 파라미터에 payload를 나눠 담을 수 있다. IIS와 ASP.NET은 기본적으로 중복 파라미터 값을 쉼표로 연결하며, WAF 뒤에서 payload가 재조립된다.
IIS 정찰의 실무적 의미와 추천 워크플로
IIS 기본 화면에서 멈추지 않고 더 깊게 정찰하는 것이 실무적으로 중요하다. 노출된 Windows/IIS 서버는 내부 IP, 설정 파일, shortname enumeration 같은 형태로 정보를 흘릴 수 있다.
- 추천 6단계 워크플로*:
- Shodan/FOFA/Censys/Netlas로 IIS 대상 후보 수집
- nuclei 태그(microsoft, windows, asp, aspx, iis, azure)로 노출 템플릿 스캔
- SSL 인증서 + ffuf Host 헤더로 숨은 vhost 발굴
- shortscan/shortnameguesser로 tilde shortname 열거
- IIS/.NET 특화 wordlist로 고가치 경로 fuzzing
- web.config/machine key/cookieless session/WAF 우회 시도
원본 연구는 NahamCon2021의 "Hacking IIS THE POWER OF RECON by Orwa Atyat" 발표에서 출발했고, Assetnote의 BigQuery 기반 IIS shortname 복원 기법이 후속 연구로 자리잡았다.
2026년 6월 기준으로, IIS는 Windows Server + AD 도메인 통합이라는 운영상의 이점 때문에 은행·지방자치단체·도시 인프라 곳곳에 남아 있다. 그 위의 레거시 .NET 애플리케이션은 쉽게 사라지지 않으며, 외부 노출 면적을 정기적으로 점검하는 것이 보안팀의 기본 업무다.
- 참고 자료*:
- NahamCon2021 - Hacking IIS THE POWER OF RECON by Orwa Atyat
- Hacking IIS / IIS Internet Information Services Extensions Overview
- IIS Shortname Discovery 도구군 (shortscan, GSNW, shortnameguesser)
- Assetnote의 BigQuery research for resolving IIS shortnames
'자동화&툴 리뷰' 카테고리의 다른 글
| GitDB: GitHub 저장소를 서버리스 RDB처럼 쓰는 TypeScript 라이브러리 (0) | 2026.06.20 |
|---|---|
| sogen - 고성능 Windows & Linux 유저스페이스 에뮬레이터 — DRM 분석과 멀웨어 분석의 새로운 무기 (0) | 2026.06.20 |
| Show GN: Clutio – 웹에서 읽으며 외국어를 공부하는 크롬 확장 (서버·로그인 없음) (0) | 2026.06.19 |
| Cursor Origin Git 서비스 올 가을 출시 — 에이전틱 시대의 새 Git 포지 (1) | 2026.06.19 |
| Landlink — LoRa로 만드는 오프그리드 메쉬 텍스트 통신 플랫폼 (0) | 2026.06.18 |