-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathForm1.cs
122 lines (110 loc) · 4.4 KB
/
Form1.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using FastRDP.Models;
using System.Windows.Forms;
namespace FastRDP
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
resultGridView.Rows.Add("", "", "", "", "", "");
}
private void usernamesBtn_Click(object sender, EventArgs e)
{
if (usernamesOFD.ShowDialog() == DialogResult.OK)
{
usernameTextBox.Text = usernamesOFD.FileName.ToString();
}
}
private void passwordsBtn_Click(object sender, EventArgs e)
{
if (passwordsOFD.ShowDialog() == DialogResult.OK)
{
passwordsTextBox.Text = usernamesOFD.FileName.ToString();
}
}
private void startStopScan_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hostsList.Text))
{
MessageBox.Show("Hosts list must be filled.");
return;
}
startStopScan.Enabled = false;
if (startStopScan.Text == "Start Scan")
{
int timeout = Convert.ToInt32(numericTimeout.Value);
int threads = Convert.ToInt32(numericThreads.Value);
RDPBruteForce.parseArguments(usernamesOFD.FileName, passwordsOFD.FileName, hostsList.Lines,
portsList.Lines, timeout, threads);
new Thread(() =>
{
if (RDPBruteForce.start())
{
}
}).Start();
new Thread(() =>
{
Thread.Sleep(3000);
this.Invoke(new MethodInvoker(delegate { startStopScan.Text = "Stop Scan"; }));
while (true)
{
RDPResult? rdpResult;
rdpResult = RDPBruteForce.getResult();
if (rdpResult == null && RDPBruteForce.allResultGetted()) break;
else if (rdpResult == null) continue;
if (rdpResult == null && RDPBruteForce.allResultGetted())
{
break;
}else if(rdpResult == null)
{
continue;
}
resultGridView.Invoke(new Action(() =>
{
if(rdpResult != null)
{
if(!rdpResult.Status)
{
resultGridView.Rows[0].SetValues(rdpResult.Hostname, rdpResult.Port, rdpResult.Username,
rdpResult.Password, rdpResult.Status.ToString(), rdpResult.Error);
}
else
{
resultGridView.Rows.Add(rdpResult.Hostname, rdpResult.Port, rdpResult.Username,
rdpResult.Password, rdpResult.Status.ToString(), rdpResult.Error);
}
}
}));
}
this.Invoke(new MethodInvoker(
delegate
{
startStopScan.Text = "Done";
startStopScan.Enabled = false;
MessageBox.Show("Scan finished.", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
}));
}).Start();
}
else
{
if (RDPBruteForce.stop())
{
RDPBruteForce.stop();
startStopScan.Text = "Start Scan";
}
}
Thread.Sleep(3000);
startStopScan.Enabled = true;
}
}
}