Sure, you'd just need something to bind those to a UI - I'll take an easy way out and assume a form with a single textbox. Depending on your requirements, a PropertyInfo grid or something may be more appropriate. 
Something like:
class PluginUIBuilder {
    public void Fill(IPluginSystem p) {
       var t = ((object)p).GetType();
       foreach (var pi in t.GetProperties()) {
          if (pi.GetCustomAttributes(typeof(ExternalInput), true).Length > 0) {
             string value = Prompt(pi.Name);
             pi.SetValue(p, value, null);
          }
       }
    }
    string Prompt(string name) {
       using (var f = new InputForm()) {
          f.Prompt = "Enter a value for " + name;
          if (f.ShowDialog() = DialogResult.OK) {
             return f.Value;
          }
          return null;
       }
    }
}
// client code
var p = new MyPlugin();
var ui = new PluginUIBuilder();
ui.Fill(p);
p.Execute();
You'll probably want to add properties to your attribute for things like descriptions, a convert function or class (may want to leverage the builtin type converters), validation, etc. 
At the end of the day, if you take this too far - you've just built the WinForm design surface. But, I've used Property Info grids for prompts for otherwise command line apps to decent success with very little code.