Yes, you can.
For fields, use the FieldInfo class.  The BindingFlags.NonPublic parameter allows you to see private fields.
public class Base
{
    private string _id = "hi";
    public string Id { get { return _id; } }
}
public class Derived : Base
{
    public void changeParentVariable()
    {
        FieldInfo fld = typeof(Base).GetField("_id", BindingFlags.Instance | BindingFlags.NonPublic);
        fld.SetValue(this, "sup");
    }
}
and a small test to prove it works:
public static void Run()
{
    var derived = new Derived();
    Console.WriteLine(derived.Id); // prints "hi"
    derived.changeParentVariable();
    Console.WriteLine(derived.Id); // prints "sup"
}