요즘 ASP.Net 헌팅을 하는 것이 제 입문이라고 할 수 있습니다. 아이디어는 매우 간단합니다. 주요 목적은 원격 호스트에서 반환된 배너를 식별하고 원격 호스트 서버를 결정하는 것입니다. 자격을 갖춘 관리자가 배너를 수정할 수 있으므로 이는 정확하지 않을 수 있습니다.
코드는 다음과 같습니다(VB.Net을 사용하여 웹 검색에서 찾았습니다).
Dim swWriter As StreamWriter
'네트워크 인프라 데이터 흐름으로 데이터를 전송하는 데 사용됩니다.
nsStream을 NetworkStream으로 희미하게 표시
'데이터 전송을 위한 네트워크 기반 데이터 흐름 생성
tcpClient2를 TcpClient로 희미하게 표시
'이를 통해 원격 호스트에 TCP 연결 요청을 합니다.
sHostName을 문자열로 희미하게 표시
Dim srRead를 StreamReader로 사용
'네트워크 인프라 데이터 스트림에서 데이터 읽기
'HTTP 서비스 헌트
TcpConnect(ZSIP, 80) = "CG"인 경우
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: 알 수 없음"
노력하다
'tcpClient = 새 TcpClient(IP주소, 포트)
tcpClient2 = 새 TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'원격 호스트의 포트 8000에 대해 TCP 연결을 요청합니다.
nsStream = tcpClient2.GetStream()
'데이터 전송을 위한 네트워크 기본 데이터 흐름을 적용하고 획득합니다.
swWriter = 새 StreamWriter(nsStream)
swWriter.WriteLine("/index.htm HTTP/1.1 가져오기")
swWriter.WriteLine("호스트:" & IP.Text)
swWriter.WriteLine("수락:*/*")
swWriter.WriteLine("참조자:")
swWriter.WriteLine()
'현재 데이터 스트림의 데이터를 새로 고칩니다.
swWriter.Flush()
srRead = 새 StreamReader(nsStream, Encoding.Default)
'획득한 네트워크 기본 데이터 스트림으로 StreamReader 인스턴스를 초기화합니다.
희미한 L을 정수로 = 0
srRead.Peek = -1 및 L < 20이 아닐 때 수행
StrHttp = StrHttp & srRead.ReadLine()
엘 = 엘 + 1
고리
InStr(StrHttp, "IIS") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: IIS 버전을 알 수 없습니다."
SystemFW = "WindowsNT/2000/XP/2003"
종료 조건
InStr(StrHttp, "Apache") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 버전을 알 수 없습니다."
종료 조건
InStr(StrHttp, "Netscape-Enterprise") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Netscape-Enterprise 버전을 알 수 없습니다."
종료 조건
InStr(StrHttp, "Microsoft-IIS/5.0") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: IIS 5.0"
SystemFW = "Windows2000"
종료 조건
InStr(StrHttp, "Microsoft-IIS/5.1") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: IIS 5.1"
SystemFW = "Windows2000/XP"
종료 조건
InStr(StrHttp, "Microsoft-IIS/6.0") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: IIS 6.0"
SystemFW = "Windows2003"
종료 조건
InStr(StrHttp, "Apache/2") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 2.x"
종료 조건
InStr(StrHttp, "Apache/2.0.54") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 2.0.54"
종료 조건
InStr(StrHttp, "Apache/2.0.52") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 2.0.52"
종료 조건
InStr(StrHttp, "Apache/2.1.6") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 2.1.6"
종료 조건
InStr(StrHttp, "Apache/1.3.2") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.x"
종료 조건
InStr(StrHttp, "Apache/1.3.20") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.20"
종료 조건
InStr(StrHttp, "Apache/1.3.23") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.23"
종료 조건
InStr(StrHttp, "Apache/1.3.26") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.26"
종료 조건
InStr(StrHttp, "Apache/1.3.27") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.27"
종료 조건
InStr(StrHttp, "Apache/1.3.33") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Apache 1.3.33"
종료 조건
InStr(StrHttp, "Netscape-Enterprise/4.1") > 0이면
OppHTTP.Text = "HTTP 서비스가 시작되었습니다! 서비스 소프트웨어 유형: Netscape-Enterprise 4.1"
종료 조건
InStr(StrHttp, "Unix") > 0이면
SystemFW = "유닉스/리눅스 계열 시스템"
종료 조건
잡다
End Try가
추출되기 때문에 일부 변수는 정의되지 않습니다.
ZSIP: 분석된 실제 IP